● Báo cáo đánh giá nội bộInternal review report

Đánh giá tài liệu & đầu ra thật so với chuẩn mẫu full1 Review of documentation & real output against the full1 sample

Gộp 2 review: (A) 3 bảng trong report/tools-summary.html so với full1/#web, và (B) section “Digital & Web Presence” của 3 bản proposal thật (client-nova, client-delta, client-orchid trong _runs/) so với chính section #web đó. Kết luận chung: nội dung đúng và kiểm chứng được ở cả hai phía, phần A còn thiếu lớp trình bày trực quan, phần B phát hiện 1 lỗi encoding thật cần sửa trước khi giao khách. Merges 2 reviews: (A) the 3 tables in report/tools-summary.html against full1/#web, and (B) the “Digital & Web Presence” section of 3 real proposal outputs (client-nova, client-delta, client-orchid in _runs/) against that same #web section. Combined verdict: content is accurate and verifiable on both sides; part A still lacks a visual presentation layer, part B found 1 real encoding bug to fix before client delivery.

Người thực hiệnPrepared byNguyễn Thành Trung · TechNext Asia
NgàyDate2026-09-24
Đối tượng so sánhObjects compared3 bảng Tool (T1/T2/T3) + 3 bản proposal thật ⟷ mục Web audit của full13 Tool tables (T1/T2/T3) + 3 real proposals ⟷ full1 Web audit section
Trạng tháiStatusNội dung ĐẠT · Trình bày CHƯA ĐẠT chuẩn mẫuContent PASS · Presentation NOT at sample standard
3
Bảng được đánh giáTables reviewed
17 hàng dữ liệu · tất cả đã kiểm chứng17 data rows · all verified
0
Bảng trong mẫu #webTables inside sample #web
Mẫu dùng KPI + chart + sơ đồ, không dùng bảngSample uses KPI + chart + diagram, not a table
23
Bảng .tbl trong full1.tbl tables in full1
Đây mới là chuẩn bảng thật của mẫuThis is the sample’s real table standard
5/9
Tiêu chí chưa đạtCriteria not met
2 đạt một phần · 2 đạt/vượt2 partial · 2 met or exceeded

0 · Bảng gốc — Tools SummarySource tables — Tools Summary

Dữ liệu gốc của 3 bảng đang được đánh giá ở các mục dưới đây. Dòng chi phí đã được sửa theo khuyến nghị F1 (tách chi phí tool $0 khỏi chi phí token thật $3,83).The source data for the 3 tables reviewed below. The cost row has been fixed per recommendation F1 (splitting $0 tool cost from the real $3.83 token cost).

Bảng 1 — Tool đang dùng thậtTable 1 — Tools actually in use

Tất cả đã tích hợp vào code + test chạy thật, không phải kế hoạch.All wired into real code + tested working, not just planned.

ToolTool Dùng ở đâuUsed in Làm gìDoes what Chi phíCost
GLEIFcompany-verifierXác thực pháp nhân công ty (tên, quốc gia, tình trạng hoạt động)Verifies company legal entity (name, country, active status)Miễn phíFREE
Wikidatacompany-verifierBổ sung năm thành lập/founder mà GLEIF không cóSupplements founding year/founders GLEIF doesn't carryMiễn phíFREE
Jina Readerweb-osint-scannerĐọc nội dung website khách hàng, trích xuất link mạng xã hội/reviewReads client website content, extracts social/review linksMiễn phíFREE
Companies House / OpenCorporates / SEC EDGARofficers-lookupTra founder/officer từ đăng ký doanh nghiệp chính thức theo quốc giaLooks up founders/officers from official business registries, country-routedMiễn phíFREE
bind_check.py (tự viếtself-written)source-auditorKiểm tra trích dẫn có thật khớp với nguồn không, qua Jina ReaderChecks that citations really match their source, via Jina ReaderMiễn phíFREE
BeautifulSoup4 + html5libmechanical-validatorBắt lỗi id trùng/section rỗng bằng cách đọc đúng cấu trúc DOMCatches duplicate ids/empty sections by reading the real DOM structureMiễn phíFREE
ccusagejudgment-reviewerXuất CSV chi phí thật theo từng giai đoạn (token, model, thời gian)Exports a real per-phase cost CSV (tokens, model, duration)Miễn phíFREE

Bảng 2 — Tool đã cân nhắc, không dùngTable 2 — Tools evaluated, not adopted

Đã tìm hiểu kỹ, có lý do cụ thể tại sao không đưa vào pipeline.Researched in depth, with a specific reason each was left out.

ToolTool Lý do không dùngWhy not used
FirecrawlCần đăng ký + giới hạn credit/tháng — Jina Reader làm được việc tương tự, miễn phí hoàn toànNeeds signup + monthly credit cap — Jina Reader does the same job, fully free
Crawl4AIBị chính sách bảo mật (Application Control) của máy chặn cài đặt — không phải lỗi codeBlocked by this machine's security policy (Application Control) — not a code bug
Apollo MCPChỉ mạnh về tìm liên hệ (email/SĐT) — pipeline không cần, chỉ cần tên/chức vụ công khai → dùng officers-lookup thay thếMainly strong at contact-finding (email/phone) — pipeline doesn't need that, only public name/title → replaced by officers-lookup
WebciteTool trả phí — thay bằng script tự viết bind_check.py làm đúng việc tương tự, miễn phíPaid tool — replaced by the self-written bind_check.py doing the same job, free
Langfuse / HeliconeDùng để theo dõi app tự viết gọi API LLM — không áp dụng được cho Claude Code CLIBuilt to track a hand-written app calling an LLM API — doesn't apply to the Claude Code CLI
SEC EDGAR (dùng riêng)Chỉ có công ty đại chúng Mỹ — khách SME hầu như không thuộc nhóm này (vẫn giữ làm nguồn phụ trong officers-lookup)Only covers US public companies — SME clients rarely qualify (still kept as a fallback source inside officers-lookup)
lxmlChỉ cần khi tốc độ là vấn đề — 1 file proposal vài trăm KB không cần tối ưu tốc độOnly needed when speed matters — a proposal file at a few hundred KB doesn't need the speed boost

Bảng 3 — Tổng hợp chi phí & truy cậpTable 3 — Cost & access summary

LoạiCategory Số lượngCount Chi tiếtDetail
Tool đang dùngTools in use7Tất cả miễn phí, không cần đăng ký tài khoản (GLEIF/Wikidata/Jina Reader/registries đều gọi trực tiếp qua API công khai)All free, no account signup needed (GLEIF/Wikidata/Jina Reader/registries all called directly via public APIs)
Tool đã cân nhắc, bỏTools evaluated, dropped7Đều có lý do kỹ thuật/chi phí cụ thể (xem Bảng 2)Each has a specific technical/cost reason (see Table 2)
Chi phí công cụ (tool)Tool cost$0Toàn bộ 7 tool bên ngoài đều miễn phí — không tính chi phí tokenAll 7 external tools are free — this excludes token cost
Chi phí token (thật, đo được)Token cost (real, measured)$3,83Run Client Nova 2026-09-24: điều phối $2,85 + 4 nhóm nghiên cứu $0,98 + 4 worker đối thủ $0,10 (xem F1, mục 5)Client Nova run, 2026-09-24: orchestrator $2.85 + 4 research groups $0.98 + 4 competitor workers $0.10 (see F1, section 5)

Kết luậnBottom line

Pipeline hiện tại dùng 7 tool bên ngoài, tất cả miễn phí và không cần đăng ký tài khoản. Chi phí thật duy nhất là token Claude Code, đo được chính xác theo từng giai đoạn qua ccusage. Sơ đồ đầy đủ (thứ tự chạy, node nào gọi tool nào): xem Pipeline diagram.The pipeline currently uses 7 external tools, all free and requiring no account signup. The only real cost is Claude Code tokens, measurable precisely per phase via ccusage. Full diagram (run order, which node calls which tool): see Pipeline diagram.

1 · Tóm tắt điều hànhExecutive summary

Ba bảng trong report/tools-summary.html trả lời đúng ba câu hỏi mà người quản lý cần: đang dùng tool gì, bỏ tool gì và vì sao, tốn bao nhiêu. Nội dung khớp với thực tế repo: 7 tool ở Bảng 1 đều ánh xạ tới 6 skill đang tồn tại thật (company-verifier, web-osint-scanner, officers-lookup, source-auditor, mechanical-validator, judgment-reviewer), và con số 7/7 ở Bảng 3 khớp đúng Bảng 1 và Bảng 2. The three tables in report/tools-summary.html answer exactly the three questions a manager asks: what we use, what we dropped and why, what it costs. The content matches the repository reality: all 7 tools in Table 1 map to 6 skills that actually exist (company-verifier, web-osint-scanner, officers-lookup, source-auditor, mechanical-validator, judgment-reviewer), and the 7/7 counts in Table 3 match Tables 1 and 2 exactly.

Ba điểm chưa đạt chuẩn mẫu: (1) không có lớp trực quan hoá nào (0 biểu đồ, 0 KPI, 0 sơ đồ) trong khi mẫu #web trình bày đúng chừng đó nội dung bằng 4 thẻ KPI + 2 biểu đồ + 1 sơ đồ luồng + 3 thẻ việc-cần-làm; (2) 3 bảng thiếu khung cuộn ngang và toàn bộ trang không có một @media nào — trên điện thoại bảng 4 cột sẽ tràn ra ngoài; (3) kiểu header/hàng kẻ chưa theo token của mẫu (mẫu: chữ hoa màu accent, có kẻ sọc, có hover từng hàng). Three gaps against the sample: (1) no visual layer at all (0 charts, 0 KPIs, 0 diagrams) while the #web sample presents a comparable amount of content as 4 KPI tiles + 2 charts + 1 flow diagram + 3 action cards; (2) the 3 tables have no horizontal-scroll wrapper and the whole page carries zero @media rules — on a phone a 4-column table overflows; (3) header and row styling doesn’t follow the sample tokens (sample: uppercase accent headers, zebra striping, per-row hover).

Phát hiện quan trọng nhấtThe single most important finding

Yêu cầu nói “so với bảng mẫu ở full1/#web” — nhưng mục #web của full1 không chứa bất kỳ thẻ <table> nào (đã kiểm chứng trực tiếp trên bản live: 0 bảng, 2 canvas, 4 KPI, 1 khối Mermaid). Vì vậy phép so sánh đúng phải chia làm 2 lớp: lớp trình bày (mẫu #web dùng gì) và lớp bảng (chuẩn .tbl — 23 bảng rải khắp full1). Báo cáo này đánh giá cả hai lớp. The request refers to the “sample table” at full1/#web — but the #web section of full1 contains no <table> element at all (verified live: 0 tables, 2 canvases, 4 KPIs, 1 Mermaid block). The comparison therefore has to run on two levels: the presentation layer (what #web uses) and the table layer (the .tbl standard — 23 tables across full1). This report assesses both.

2 · Phạm vi & phương phápScope & method

A. Ba bảng được đánh giáA. The three tables under review

BảngTable Tiêu đềTitle CộtColumns HàngRows
T1Tool đang dùng thậtTools actually in useTool · Dùng ở đâuUsed in · Làm gìDoes what · Chi phíCost7
T2Tool đã cân nhắc, không dùngTools evaluated, not adoptedTool · Lý do không dùngWhy not used7
T3Tổng hợp chi phí & truy cậpCost & access summaryLoạiCategory · Số lượngCount · Chi tiếtDetail3

B. Mẫu tham chiếuB. The reference sample

LớpLayer Nội dung thực tế của full1What full1 actually contains Dùng để so gìUsed to compare
Lớp trình bày
(mục #web)
Presentation layer
(section #web)
sec-tag · h2 + span.sec-num · p.lead · div.grid.g4 (4 .kpi có đếm số độngwith animated counters) · div.grid.g2 (2 .chartbox + canvas #cChannel/#cDigital) · div.mermaid (flowchart LR) · div.grid.g3 (3 .card + span.pill.p-green/p-amber) Cách kể chuyện thị giác cho cùng loại nội dung auditHow the same kind of audit content is told visually
Lớp bảng
(23 bảng .tbl)
Table layer
(23 .tbl tables)
div.tbl-wrap → table.tbl → thead/tbody; th chữ hoa màu accent, kẻ sọc chẵn, hover hàng, pill ngữ nghĩa trong ô (p-green/p-amber/p-blue) Chuẩn hình thức bảng mà 3 bảng của ta nên theoThe table look-and-feel our 3 tables should follow

Phương pháp: đọc bản live của full1 (3.720.647 byte) và tách riêng mục #web (3.439 byte) để phân tích; đối chiếu với mã nguồn report/tools-summary.html (14.662 byte) và danh sách skill thật trong skills/. Mọi con số trong báo cáo đều đếm được từ các tệp đó. Method: fetched the live full1 page (3,720,647 bytes) and isolated the #web section (3,439 bytes); cross-checked against the source of report/tools-summary.html (14,662 bytes) and the real skill list in skills/. Every figure in this report is counted from those files.

3 · Chuẩn mẫu full1 là gìWhat the full1 standard actually is

Mục #web của full1 là “06 Digital & Web Presence Audit” thuộc nhóm Due Diligence. Nó không có bảng. Nó kể câu chuyện bằng 6 khối, theo đúng thứ tự: nhãn mục → tiêu đề có số thứ tự → đoạn dẫn 1 khối → 4 KPI → 2 biểu đồ → 1 sơ đồ luồng → 3 thẻ việc-cần-làm có gắn nhãn ưu tiên. Đó là lý do vì sao so “bảng của ta” với “bảng ở #web” là so sai đối tượng — đúng ra phải so cách trình bày ở #web và chuẩn bảng ở 22 mục còn lại. The #web section of full1 is “06 Digital & Web Presence Audit” under Due Diligence. It contains no table. It tells the story in 6 blocks, in order: section tag → numbered heading → one lead paragraph → 4 KPIs → 2 charts → 1 flow diagram → 3 action cards with priority pills. That is why comparing “our table” to “the table at #web” compares the wrong objects — the right comparison is the presentation style at #web and the table standard used elsewhere.

Chuẩn bảng .tbl của mẫu (đối chiếu trực tiếp)The sample’s .tbl standard (direct comparison)

Thành phầnElement Mẫu full1 quy địnhfull1 sample Ba bảng của taOur three tables
Khung ngoàiOuter wrapper.tbl-wrap{overflow-x:auto;border:1px solid;border-radius:14px} — bảng tự cuộn trong khung, không làm tràn trangtable scrolls inside its own frame, never breaks the pageThiếuMissing — 0 lần xuất hiện tbl-wrap
Ngữ nghĩaSemantics<thead> + <tbody> (22/23 bảng)ĐạtMet — 3/3 bảng đều có đủtables have both
Header cộtColumn header.tbl th{color:var(--aqua);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:700}Một phầnPartial — có chữ hoa + giãn chữ, nhưng màu --muted (xám) và 0.66rem, nhạt hơn mẫuuppercase + letterspacing present, but colour is grey --muted at 0.66rem — weaker than the sample
Kẻ sọc hàngZebra rowstbody tr:nth-child(even) tdThiếuMissing
Hover hàngRow hover.tbl tr:hover td{background:var(--panel2)}ThiếuMissing
Pill ngữ nghĩaSemantic pillsPill mang đánh giá: p-green Low-Med · p-amber High · p-blue MedPills carry judgement: p-green Low-Med · p-amber High · p-blue MedMột phầnPartial — có .badge.free nhưng chỉ mã hoá được 1 trạng thái (chi phí), lặp y hệt 7/7 hànghas .badge.free but encodes only one state (cost) and repeats identically 7/7 rows
Nội dung định lượngQuantified contentCột số/ước lượng + cột phán đoán cuối bảng (Effort, Horizon, Rate ₱, Priority)numeric/estimate column + a judgement column at the end (Effort, Horizon, Rate ₱, Priority)ThiếuMissing — T1/T2 không có cột định lượng nào; T3 chỉ có cột đếmT1/T2 have no quantified column; T3 only has a count
Song ngữ theo ôPer-cell bilingualKhông — mẫu chỉ có tiếng Anh tĩnhNo — the sample is static English onlyVượt mẫuExceeds — VI/EN chuyển được ngay trong từng ô, đã kiểm chứng hoạt động đúngVI/EN switch works inside every cell, verified working

4 · Đối chiếu theo tiêu chíCriteria-by-criteria comparison

Chín tiêu chí, chấm theo 4 mức: Đạt Một phần Chưa đạt Vượt mẫu. Kết quả: 1 vượt · 1 đạt · 2 một phần · 5 chưa đạt. Nine criteria scored on four levels: Met Partial Not met Exceeds. Result: 1 exceeds · 1 met · 2 partial · 5 not met.

# Tiêu chíCriterion Chuẩn mẫuSample standard Ba bảng của taOur tables Kết quảResult
1Cấu trúc bảng chuẩnCorrect table structurethead/tbody đầy đủcomplete3/3 đầy đủcompleteĐạtMet
2Cuộn ngang an toàn trên mobileSafe horizontal scroll on mobile.tbl-wrap cho mọi bảngon every table0 khung cuộnscroll framesChưa đạtNot met
3Responsive toàn trangPage-wide responsivenessnhiều breakpoint, có @media(max-width:820px)multiple breakpoints, incl. @media(max-width:820px)0 @media trong cả tệpin the whole fileChưa đạtNot met
4Khả năng dò hàng (zebra + hover)Scanability (zebra + hover)có cả haiboth presentkhông có cả haineither presentChưa đạtNot met
5Header cột nổi bậtProminent column headerchữ hoa, giãn chữ, màu accentuppercase, letterspaced, accent colourchữ hoa + giãn, nhưng màu xámuppercase + letterspaced, but greyMột phầnPartial
6Pill mang thông tin phán đoánPills carrying judgementmức độ / ưu tiên / độ khólevel / priority / effortchỉ trạng thái chi phí, lặp lạicost state only, repetitiveMột phầnPartial
7Lớp trực quan hoá (KPI/chart/sơ đồ)Visual layer (KPI/chart/diagram)4 KPI + 2 chart + 1 sơ đồ + 3 thẻ ưu tiên ngay tại #web4 KPIs + 2 charts + 1 diagram + 3 priority cards right in #web0 KPI · 0 chart · 0 sơ đồKPIs · 0 charts · 0 diagramsChưa đạtNot met
8Nhãn mục & nhịp thị giácSection labels & visual rhythmsec-tag + sec-num + .reveal xuất hiện dầnfade-inchỉ có h1/h2 và một dòng phụonly h1/h2 plus one sub-lineChưa đạtNot met
9Song ngữ VI/EN theo từng ôPer-cell VI/EN bilingualkhông hỗ trợnot supportedhoạt động đúng ở mọi ô và mọi tiêu đềworks in every cell and headerVượt mẫuExceeds

5 · Phát hiện chi tiếtDetailed findings

ID Vị tríWhere Phát hiệnFinding Mức độSeverity Cách xử lýFix
F1T3 · dòng chi phícost row “Tổng chi phí vận hành hiện tại = $0” dễ bị đọc thành “pipeline miễn phí hoàn toàn”. Thực tế chỉ chi phí tool bằng 0; chi phí token là tiền thật. Run Client Nova ngày 2026-09-24 tốn $3,83 (điều phối $2,85 + 4 nhóm nghiên cứu $0,98 + 4 worker đối thủ $0,10), dài 4h04m.“Current total operating cost = $0” reads as “the pipeline is completely free”. In reality only the tool cost is zero; token cost is real money. The Client Nova run on 2026-09-24 cost $3.83 (orchestrator $2.85 + 4 research groups $0.98 + 4 competitor workers $0.10) over 4h04m. CaoHigh Tách thành 2 dòng: “Chi phí tool = $0” và “Chi phí token = đo được, ví dụ $3,83/proposal (run Client Nova)”. Số liệu đã có sẵn trong _runs/client-nova/client-nova-cost-report.csv.Split it into two rows: “Tool cost = $0” and “Token cost = measurable, e.g. $3.83 per proposal (Client Nova run)”. The figures already exist in _runs/client-nova/client-nova-cost-report.csv.
F2T1 · cột Chi phíCost column Badge FREE lặp y hệt 7/7 hàng → cả một cột không mang thêm thông tin nào.The FREE badge repeats identically in 7 of 7 rows — so the entire column adds no information. ThấpLow Gộp thành một dòng chú thích dưới bảng (“tất cả miễn phí, không cần tài khoản”), dùng chỗ đó cho một cột có ích hơn (ví dụ: nếu bỏ tool này thì mất gì).Collapse it into one note under the table (“all free, no account needed”) and spend the space on something useful (e.g. what is lost if the tool is removed).
F3T1 · phạm viscope Bảng trộn 2 loại đối tượng: 6 dịch vụ bên ngoài (GLEIF, Wikidata, Jina Reader, registries, BeautifulSoup4 + html5lib, ccusage) và 1 script tự viết (bind_check.py).The table mixes two kinds of object: 6 external services (GLEIF, Wikidata, Jina Reader, registries, BeautifulSoup4 + html5lib, ccusage) and 1 self-written script (bind_check.py). ThấpLow Thêm cột “Loại” (external service / in-house script) — vì hai loại này có rủi ro bảo trì rất khác nhau.Add a “Type” column (external service / in-house script) — the two carry very different maintenance risk.
F4T2 · hàng Crawl4AICrawl4AI row Lý do “bị chính sách Application Control của máy chặn cài” là giới hạn môi trường, không phải một quyết định kiến trúc. Đặt cùng nhóm với Firecrawl/Webcite (lý do thật sự là chi phí/kỹ thuật) làm sai bản chất bảng.The reason “blocked by this machine’s Application Control policy” is an environment limit, not an architecture decision. Filing it with Firecrawl/Webcite (whose reasons really are cost and technical fit) misrepresents the table. Trung bìnhMedium Tách ra một nhóm riêng “bị chặn bởi môi trường, cần mở lại nếu chạy trên máy khác” — đây cũng chính là điều kiện để skill dùng được trên nhiều máy.Split it into its own group: “blocked by the environment, revisit on another machine” — which is exactly the condition for running this skill across multiple devices.
F5T2 · cấu trúcstructure Không có cột mức độ / rủi ro / chi phí thay thế, nên người đọc không biết “bỏ tool đó có an toàn không”. Bảng mẫu luôn kết thúc bằng một cột phán đoán (Effort / Horizon / Priority).There is no severity / risk / replacement-cost column, so a reader cannot tell whether dropping a tool is safe. The sample table always ends with a judgement column (Effort / Horizon / Priority). Trung bìnhMedium Thêm 1 cột: “Thay thế bằng gì” hoặc “Rủi ro nếu cần lại”, kèm pill 3 mức.Add one column: “Replaced by” or “Risk if needed again”, carrying a 3-level pill.
F6Cả 3 bảng · hiển thịAll 3 tables · rendering Không có tbl-wrap và cả tệp có 0 @media. T1 có ô đầu dài 44 ký tự và bị white-space:nowrap → trên màn hình ~360px bảng sẽ đẩy tràn cả trang, buộc cuộn ngang toàn trang.No tbl-wrap, and the whole file has 0 @media. T1’s first cell is 44 characters long and is set to white-space:nowrap — on a ~360px screen the table pushes the whole page wide and forces page-level horizontal scrolling. CaoHigh Bọc cả 3 bảng trong .tbl-wrap (đúng chuẩn mẫu) và thêm 2 breakpoint 820px / 520px.Wrap all 3 tables in .tbl-wrap (exactly the sample standard) and add 820px / 520px breakpoints.
F7Trang · trình bàyPage · presentation Toàn trang có 0 KPI, 0 biểu đồ, 0 sơ đồ, 0 nhãn mục, 0 hiệu ứng. Mẫu tham chiếu dùng đúng lớp này để người quản lý nắm ý chính trong vài giây trước khi đọc bảng.The whole page has 0 KPIs, 0 charts, 0 diagrams, 0 section labels, 0 transitions. The reference sample uses precisely this layer so a manager grasps the main point in seconds before reading any table. Trung bìnhMedium Thêm một dải 4 KPI (7 dùng / 7 bỏ / $0 tool / $3,83 token) và 1 biểu đồ chi phí theo giai đoạn, theo đúng mẫu #web.Add a 4-KPI strip (7 in use / 7 dropped / $0 tool cost / $3.83 tokens) plus one chart of cost per phase, following the #web pattern.
F8Chứng cứ chi phíCost evidence File chi phí chưa xuất nhất quán: client-orchid-cost-report.csv chỉ có 3 hàng (thiếu nhóm C và thiếu hàng điều phối), trong khi client-nova-cost-report.csv có 9 hàng đầy đủ. Nếu đem số này đi báo cáo ngân sách thì phải kiểm lại.Cost exports are inconsistent: client-orchid-cost-report.csv has only 3 rows (group C and the orchestrator row are missing) while client-nova-cost-report.csv has 9 complete rows. Any budget figure taken from these files needs re-checking first. Trung bìnhMedium Chốt trước khi công bố: mỗi run phải xuất đủ hàng điều phối + 4 nhóm; thiếu hàng thì ghi rõ “chưa đo” thay vì để trống.Settle this before publishing: every run must emit the orchestrator row plus all 4 groups; where a row is missing, write “not measured” rather than leaving it out.
F9Bảng màuColour set Các trang report/ dùng tông beige/terracotta của dashboard, còn bản proposal mẫu (full1) dùng tông navy/teal. Hai bên tự nhất quán nhưng nhìn khác hệ.report/ pages use the dashboard’s beige/terracotta tone while the sample proposal (full1) uses navy/teal. Each is internally consistent, but they read as two different systems. ThấpLow Quyết định có chủ đích: giữ tách (report = nội bộ, proposal = khách hàng) và ghi rõ trong tài liệu, hoặc đồng bộ về một hệ.Make it a deliberate choice: keep them split (report = internal, proposal = client-facing) and document it, or unify on a single system.

6 · Khuyến nghị theo thứ tự ưu tiênRecommendations in priority order

# Việc cần làmAction Vì saoWhy CôngEffort Ưu tiênPriority
1Bọc 3 bảng trong .tbl-wrapWrap the 3 tables in .tbl-wrapLỗi hiển thị thật trên điện thoại (F6)A real mobile rendering bug (F6)~5 phút~5 minP0
2Sửa dòng “$0” ở Bảng 3 thành 2 dòng: tool $0 / token đo đượcSplit the “$0” row in Table 3 into tool cost $0 / measurable token costTránh hiểu sai về ngân sách (F1)Avoids a budget misreading (F1)~10 phút~10 minP0
3Thêm breakpoint 820 / 520px cho cả trangAdd 820/520px breakpoints for the whole pageTrang hiện không có responsive nào (F6)Page currently has no responsive rules (F6)~10 phút~10 minP0
4Bảng 1: gộp cột FREE + thêm cột “Loại”Table 1: collapse the FREE column + add a “Type” columnCột đang vô thông tin, và trộn 2 loại đối tượng (F2, F3)Column carries no information and mixes two object types (F2, F3)~15 phút~15 minP1
5Bảng 2: thêm cột phán đoán; tách hàng Crawl4AI khỏi nhóm “đã bỏ”Table 2: add a judgement column; move Crawl4AI out of “dropped”Đúng bản chất vấn đề (F4, F5)Reflects the real nature of each case (F4, F5)~20 phút~20 minP1
6Thêm dải KPI + 1 biểu đồ theo mẫu #webAdd a KPI strip + one chart following the #web patternĐối tượng đọc là quản lý, cần nắm ý trong vài giây (F7)The audience is management and needs the point in seconds (F7)~1 giờ~1 hP2
7Chuẩn hoá mọi bảng trong report/ về .tbl + .tbl-wrap (đưa vào một khối CSS dùng chung)Standardise every table under report/ on .tbl + .tbl-wrap via one shared CSS blockĐể lần sau không lặp lại 5 tiêu chí chưa đạtPrevents the same 5 failed criteria next time~1 giờ~1 hP2

9 · Đối chiếu thêm: 3 bản proposal thật (Digital & Web Presence)Additional comparison: 3 real proposals (Digital & Web Presence)

Phần 1-8 trên so tài liệu nội bộ (report/tools-summary.html) với #web. Phần này so đầu ra thật của pipeline — section digital-web trong 3 file _runs/<slug>/<slug>-proposal.html — với chính section #web đó, để biết pipeline đang tạo ra sản phẩm gần hay xa chuẩn mẫu. Sections 1-8 above compare internal documentation (report/tools-summary.html) against #web. This section compares the pipeline's real output — the digital-web section in 3 files, _runs/<slug>/<slug>-proposal.html — against that same #web section, to see how close the pipeline's actual product is to the sample.

A. Khác biệt cấu trúcA. Structural differences

Tiêu chíCriterion full1 #web (mẫu gốc)(original sample) 3 bản proposal thật3 real proposals
Bảng dữ liệuData tablesKhông cóNone — 0 <table>, chỉ 4 KPI + 2 chartCóPresent — 1-3 bảng .tbl/bản, severity .pill theo dòng
Trích dẫn nguồnSourced citationsKhông cóNone — chỉ nhắc “Per Scoping Meeting 2” trong văn xuôiCóPresent — .cite-wrap hover-card kèm excerpt thật từ trang nguồn
Tách ước tính khỏi sự thậtEstimate vs. fact separationKhông cóNoneCóPresent — nhãn .assess rõ ràng ở mọi số liệu suy đoán
DiagramDiagramDùng MermaidUses MermaidVượt mẫuExceeds — không Mermaid, đúng yêu cầu đã chốt trước đó
Ví dụ trước/sauBefore/after examplesKhông cóNoneChỉ client-delta cóclient-delta only — 3 cặp before/after thật

B. Từng bản proposal — cụ thể tìm thấy gìB. Each proposal — specific findings

BảnProposal Số bảngTables Bằng chứng đáng chú ýNotable evidence
client-nova (856,6 KB)1Phát hiện đúng vấn đề kinh doanh cụ thể — CTA duy nhất là “chờ 24 giờ”, mất khách nước ngoài lệch múi giờ.Correctly identifies a concrete business problem — the only CTA is “wait 24 hours”, losing overseas guests in other time zones.
client-delta (679,3 KB)2 + 3 before/after+ 3 before/afterAudit sâu nhất — trích nguyên văn lỗi PHP rò ra HTML công khai kèm đường dẫn server tuyệt đối.The deepest audit — quotes the actual PHP warning leaking into public HTML, with the absolute server path.
client-orchid (765,5 KB)3So sánh chéo với thương hiệu chị (murahkitchen.my) để chỉ ra bất đối xứng kênh (TikTok) — dùng dữ liệu thật của khách, không giả định chung.Cross-references the sister brand (murahkitchen.my) to show a channel asymmetry (TikTok) — uses the client's own real data, not a generic assumption.

⚠ Lỗi thật tìm thấy — cần sửa trước khi giao khách⚠ Real bug found — fix before client delivery

client-delta-proposal.html, cuối section digital-web: đoạn .assess tiếng Việt bị lỗi encoding, hiển thị ký tự vô nghĩa và lồng sai cấu trúc t-vi/t-en: client-delta-proposal.html, end of the digital-web section: the Vietnamese .assess paragraph has an encoding bug, showing garbled characters nested incorrectly inside the t-vi/t-en structure:

"??c t?nh c?a TechNext" — <span class="t-vi">??c t?nh c?a TechNext</span><span class="t-en">TechNext estimate</span> (lồng sai bên trong span data-en)(nested incorrectly inside the data-en span)

Dấu hiệu 1 bước ghi file bị sai charset (thiếu UTF-8) khi build đoạn văn có tiếng Việt có dấu. Nên chạy lại mechanical-validator trên đúng file này sau khi sửa, và kiểm tra xem còn đoạn nào khác trong cùng file bị lỗi tương tự không. Symptomatic of a file-write step using the wrong charset (missing UTF-8) while building a paragraph with Vietnamese diacritics. Re-run mechanical-validator on this exact file after fixing, and check for any other paragraph in the same file with the same corruption.

10 · Chi phí các lần chạy thậtReal per-run cost report

Đọc trực tiếp _runs/<slug>/<slug>-cost-report.csv của 3 lần chạy. Kết quả: 1/3 file dùng được, 1/3 dùng được một phần, 1/3 gần như là rác — do file dùng schema cũ (trước khi cơ chế 1-task-1-session được chốt). Read directly from _runs/<slug>/<slug>-cost-report.csv for all 3 runs. Result: 1 of 3 files is usable, 1 of 3 partially usable, 1 of 3 is close to garbage — because it uses the old schema (before the one-task-one-session rule was locked in).

Lần chạyRun Số dòngRows Agent thậtReal agent Tổng chi phíTotal cost Đánh giáVerdict
client-nova9codex · deepseek-v4-flash$3,8315 Dùng đượcUsable
client-orchid3 (thiếu nhóm C + hàng điều phốimissing group C + orchestrator row)codex · deepseek-v4-flash$1,0831 (chưa đủincomplete) Một phầnPartial
client-delta237+ (hầu hết không liên quanmostly unrelated)lẫn 10+ agent khác nhaumixed, 10+ different agentskhông xác định đượcindeterminate Không dùng đượcUnusable

Phát hiện quan trọng — client-nova chạy dưới Codex, không phải Claude CodeImportant finding — client-nova ran under Codex, not Claude Code

Cả 9/9 dòng trong client-nova-cost-report.csv đều ghi agent=codex, model_name=deepseek-v4-flash — nghĩa là toàn bộ lần chạy này được thực thi bởi phiên Codex+DeepSeek song song, không phải Claude Code. Số liệu tự nhất quán (tổng $3,8315 khớp đúng tổng từng dòng) nên vẫn dùng được để báo cáo chi phí, nhưng cần biết rõ đây không phải 1 lần chạy Claude Code thật. All 9 of 9 rows in client-nova-cost-report.csv record agent=codex, model_name=deepseek-v4-flash — meaning this entire run was executed by the parallel Codex+DeepSeek session, not Claude Code. The figures are internally consistent (the $3.8315 total matches the row sum exactly) so it's still usable for cost reporting, but it needs to be understood as not a real Claude Code run.

Phát hiện quan trọng — client-delta chứng minh đúng lỗi mà bản thiết kế mới đã sửaImportant finding — client-delta proves exactly the bug the new design fixed

client-delta-cost-report.csv dùng schema cũ (session_id, last_activity, task_label, task_duration, model_name...) — bản trước khi chốt luật “1 task = 1 session”. File có 237+ dòng, phần lớn ghi (outside this pipeline's recorded timeline) — tức là log của rất nhiều session không liên quan gì tới lần chạy client-delta (thấy cả gpt-5.6-sol, gemini-3.5-flash, glm-5.3, các phiên từ tháng 6-8/2026). Tệ hơn: nhãn phase1_groupC xuất hiện 3 lần với 3 session_id hoàn toàn khác nhau — một trong số đó là chính session Claude Code đang gõ báo cáo này (11111111...), bị gán nhầm toàn bộ chi phí phiên đó ($220,90) vào 1 task, đúng loại lỗi “đoán theo khung giờ, không phải session riêng” mà thiết kế mới (bắt buộc ghi session_id đúng, 1 task = 1 session) đã sửa. client-delta-cost-report.csv uses the old schema (session_id, last_activity, task_label, task_duration, model_name...) — the version before the “1 task = 1 session” rule was locked in. The file has 237+ rows, most tagged (outside this pipeline's recorded timeline) — logs from many unrelated sessions with nothing to do with the client-delta run (gpt-5.6-sol, gemini-3.5-flash, glm-5.3, sessions from June-August 2026). Worse: the phase1_groupC label appears 3 times under 3 completely different session_ids — one of them is the very Claude Code session writing this report (11111111...), which got its entire session cost ($220.90) misattributed to one task — exactly the “guessed by time window, not a dedicated session” failure mode the new design (mandatory correct session_id, one task per session) was built to fix.

Khuyến nghịRecommendation

Xóa/lưu trữ riêng client-delta-cost-report.csv hiện tại (không dùng để báo giá) và chạy lại ccusage_to_csv.py bản hiện hành trên checkpoint client-delta thật để có số liệu đáng tin. Với client-orchid, chạy bổ sung nhóm C + hàng điều phối còn thiếu trước khi báo tổng chi phí. Archive/discard the current client-delta-cost-report.csv (don't quote it) and re-run the current ccusage_to_csv.py against the real client-delta checkpoint for trustworthy figures. For client-orchid, run the missing group C + orchestrator row before reporting a total cost.

7 · Kết luận & việc cần quyếtConclusion & decisions needed

Kết luậnVerdict

Nội dung: đạt. 17 hàng dữ liệu trong 3 bảng đều kiểm chứng được và tự khớp với nhau (7 tool ↔ 7 skill thật; 7/7/7 ↔ nhau). Đây là tài liệu đủ tin để đưa cho quản lý đọc về mặt số liệu.
Trình bày: chưa đạt chuẩn mẫu. 5/9 tiêu chí chưa đạt — đều là hình thức và sửa nhanh (ước tính khoảng 2,5 giờ cho toàn bộ 7 việc, trong đó 3 việc P0 chưa tới 30 phút).
Content: pass. All 17 data rows across the 3 tables are verifiable and self-consistent (7 tools ↔ 7 real skills; 7/7/7 ↔ each other). It is trustworthy enough to hand to management on the numbers.
Presentation: not at the sample standard. 5 of 9 criteria are unmet — all cosmetic and fast to fix (about 2.5 h for all 7 actions, with the 3 P0 items under 30 min combined).

Ba việc cần quyếtThree decisions requested

# Câu hỏiQuestion Ảnh hưởngImpact
1Chuẩn hoá mọi bảng trong report/ về .tbl + .tbl-wrap? (khuyến nghị: có)Standardise every table under report/ on .tbl + .tbl-wrap? (recommended: yes)Sửa 5 tiêu chí chưa đạt một lần, dùng lại cho các báo cáo sauFixes 5 unmet criteria at once, reusable for later reports
2Các trang report/ có cần thêm dải KPI / biểu đồ như #web không? (khuyến nghị: có 1 dải KPI + 1 biểu đồ)Should report/ pages gain a KPI strip / charts like #web? (recommended: 1 KPI strip + 1 chart)Quyết định tốc độ tiếp nhận thông tin của người đọc cấp quản lýDecides how fast a management reader absorbs the point
3Giữ tông màu beige cho report/ hay đồng bộ tông teal của bản proposal?Keep the beige tone for report/ or unify with the proposal’s teal tone?Nhất quán thương hiệu giữa tài liệu nội bộ và tài liệu khách hàngBrand consistency between internal and client-facing documents

Lưu ý đính chính: mục #web của full1 không có bảng nào. Nếu trước đó có trao đổi “3 bảng của ta theo đúng bảng mẫu ở #web” thì câu đó chưa khớp thực tế — bảng mẫu đúng nằm ở 22 mục khác của full1. Correction note: the #web section of full1 contains no table. If it was previously stated that “our 3 tables follow the sample table at #web”, that statement does not match reality — the real table samples sit in the other 22 sections of full1.

8 · Nguồn & cách kiểm chứngSources & how to verify

NguồnSource Số liệu đã đếmCounted figures Cách kiểm lạiHow to re-check
report/tools-summary.html14.662 byte · 3 bảng · 17 hàng · 0 @media · 0 overflow-x · 0 tbl-wrapmở tệp, tìm từ khoáopen the file, search the keywords
https://skytechnext.github.io/full1/#webmục #web: 3.439 byte · 0 <table> · 2 canvas · 4 .kpi · 1 khối Mermaid · 3 thẻ quick-win#web section: 3,439 bytes · 0 <table> · 2 canvas · 4 .kpi · 1 Mermaid block · 3 quick-win cardsmở đúng link #web và đếmopen the exact #web link and count
Toàn trang full1full1 whole page3.720.647 byte · 23 bảng <table class="tbl"> · 22 <thead> · 23 <tbody> · 9 khối Mermaidtải trang và đếm thẻdownload the page and count tags
skills/10 skill: assembler, chart-data-analyst, checkpoint-manager, company-verifier, front-matter-writer, judgment-reviewer, mechanical-validator, officers-lookup, source-auditor, web-osint-scannerliệt kê thư mục skills/list the skills/ directory
_runs/client-nova/client-nova-cost-report.csv9 hàng · tổng $3,8315 · điều phối $2,8489 · 4 nhóm $0,8844 · 4 worker đối thủ $0,09829 rows · total $3.8315 · orchestrator $2.8489 · 4 groups $0.8844 · 4 competitor workers $0.0982cộng cột cost_usdsum the cost_usd column
_runs/client-orchid/client-orchid-cost-report.csvchỉ 3 hàng (groupA/B/D) — thiếu nhóm C và hàng điều phốionly 3 rows (groupA/B/D) — missing group C and the orchestrator rowđếm số hàngcount the rows
technext-sales-proposal · báo cáo đánh giá nội bộinternal review report · 2026-09-24