Telemetry
Đo quá trình xây dựng Local Food bằng Human + AI. Mọi số ở đây truy được về git, file trong repo, hoặc output lệnh — trừ giờ người thật, vốn do PM tự khai vì không công cụ nào đo thay được.
Cập nhật 2026-09-12 · chi tiết đầy đủ trong TELEMETRY-LF.md
Nén (Productivity Ratio)
Giờ truyền thống ÷ giờ ngồi máy thật. Chỉnh số bên dưới để xem kết quả đổi.
PM ước tính gộp cho 3 phiên 25/08 + 03/09 + 05/09 (trả lời: 'trên 9 giờ')
Git chỉ đoán được khoảng 5h44 – 16h34. Giờ thật do PM khai 31h — vượt cả cận trên, xác nhận mọi proxy từ commit đều đếm thiếu. Nếu lấy proxy làm mẫu số, Nén đã bị thổi phồng.
Baseline là ước lượng phản-thực: PM tự chốt. Là ước lượng phản-thực (counterfactual), không ai thực sự làm lại bằng tay để đo. Nén không đo chất lượng, và không trừ chi phí sửa 19 sự cố AI bên dưới.
Ước lượng → Thực tế (est → reconcile)
PERT ước lượng ban đầu
50.7h
Chỉ cho 8 tỉnh, và đã giả định CÓ AI hỗ trợ
Giờ thật đã bỏ ra
31h
PM tự khai
Chênh lệch
−19h42
Nhanh hơn ước lượng
Phạm vi đã giao
7.9×
Kế hoạch 8 tỉnh → thực tế 63 tỉnh
Làm ít giờ hơn ước lượng trong khi giao gấp 7.9 lần phạm vi. Nhưng đọc kèm phần cổng chất lượng bên dưới — có 1 cổng không đạt và 2 cổng cần lưu ý.
Nhịp làm việc
| Ngày | Commit | Git đoán | PM khai | Việc đã làm |
|---|---|---|---|---|
| 2026-08-25 | 3 | 7p – 7p | gộp | Dựng walking skeleton từ số không: scaffold Next.js, bản đồ, 2 tỉnh chạy end-to-end |
| 2026-08-26 | 24 | 2h43 – 2h43 | 3h30 | 8 artefact bước [0]→[7], đóng 8 Cổng hiểu, build W1-1→W1-9c, 2 vòng redesign UI, Search/Filter |
| 2026-09-03 | 7 | 1h11 – 2h12 | gộp | 6 tỉnh MVP, debug bug map trắng, trang /browse, SIT-UAT, A11y audit, Lighthouse |
| 2026-09-05 | 1 | — | gộp | Chốt quyết định mở rộng ra đủ 63 tỉnh |
| 2026-09-06 | 18 | 1h43 – 11h31 | 5h | 55 tỉnh, refactor bản đồ + sửa 2 centroid, RTM/Telemetry/Weekly, deploy Vercel, US-14 + US-15 |
| 2026-09-07 | 6 | 0p – 0p | 2h30 | Đo lại hiệu năng ở 63 tỉnh (kết quả trái với dự đoán), 7 KPI Knowledge Health, báo cáo HTML cho sếp, xuất hội thoại, tag v1.0 |
| 2026-09-08 | 4 | 0p – 0p | 3h30 | Chủ quyền biển đảo: Hoàng Sa/Trường Sa lên bản đồ ở mọi mức zoom (R14), tempo marquee, quy trình quản trị qua Supabase Dashboard, khối Cảm nhận mới nhất ở trang chủ |
| 2026-09-09 | 10 | 0p – 0p | 3h30 | Song ngữ Việt–Anh 63/63 tỉnh (US-16, ~41.000 từ, 10 agent song song), dọn lint về 0 và sửa bug deep-link, tự đánh giá T1–T10, bài T2 rà requirement (11 phát hiện, sửa 11/11), US-17 nhãn khẩu vị, tag v1.1 |
| 2026-09-11 | 5 | 0p – 0p | 2h30 | US-18 'Trưa nay ăn gì': bộ tài liệu [0]→[6] viết TRƯỚC khi code, thêm trường mealTypes và phân loại 197 món bằng 6 agent, cổng check:meal + review-meal, trang /goi-y song ngữ, đóng cổng W4-9 (PM duyệt, bể 132→121 món) |
| 2026-09-12 | 4 | 0p – 0p | 1h30 | Làm nổi hành động chính của /goi-y qua 3 vòng theo góp ý PM: nút tĩnh nhiều màu → bubble chạy vòng quanh mép màn hình → bubble thành lối vào duy nhất ở mọi trang (bỏ link trên thanh menu); đồng bộ 8 artefact lệch pha sau US-18 |
Sự cố AI — 19 lần AI sai, PM sửa
Bỏ qua toàn bộ bước [0]-[7], nhảy thẳng vào code — PM bắt
generateMetadata không await params; as Province không validate thật; mất deep-link sau redesign
Bánh cuốn Thanh Trì mô tả sai (có nhân — thực tế không nhân)
Bản đồ 2 tầng giấu mất 55 tỉnh; khung nhìn cắt mũi Cà Mau; blur-up làm trễ LCP
Playwright fullPage screenshot làm hiểu nhầm là có bug
Centroid Khánh Hòa/Đà Nẵng nằm giữa Biển Đông; 3 link nguồn 404
maplibre-gl@6.5.0 không load tile; Wikimedia 429/502; cache module-level
19 sự cố phân loại, nằm trong 23 mục DEVBOOK (4 mục còn lại là ghi chú hạn chế/bối cảnh, không phải lỗi). Con số này CÒN THIẾU: ít nhất 4 lần PM bắt lỗi chỉ nằm trong commit message, chưa được ghi thành mục riêng.
Cổng chất lượng — 7 đạt · 2 cần lưu ý · 1 không đạt
Cổng hiểu đã đóng (bước [0]→[7])
8 commit 'đóng Cổng hiểu'
Cổng hiểu PM phản biện thực chất
5 lần bắt lỗi/thiếu sót AI ngay tại cổng
Gate bị PM đánh FAIL, buộc làm lại
W1-9 → W1-9b → W1-9c (yêu cầu UI 'wow')
Build + typecheck
pnpm build, 0 lỗi TypeScript
Zod validate 63 file dữ liệu
provinceSchema.safeParse lúc build
Accessibility (axe-core)
4 trang, sau khi sửa 4 lỗi contrast + 1 lỗi focus
RLS bảo mật review
Tự tấn công DB: DELETE/UPDATE/lách kiểm duyệt đều 401
Performance — LCP < 2.5s
Đo lại 2026-09-07 với 63 tỉnh, trung vị 3 lần: LCP 6,20s (trước 8,8s hồi 8 tỉnh). Vẫn không đạt vì MapLibre GL nặng — R12 chấp nhận có ý thức. Trang không có bản đồ đạt 80/100.
SIT/UAT story MVP
Nhưng test US-02 đã lỗi thời → thực chất 7 đáng tin (RTM GAP-T1)
Spot-check nội dung (R2)
0 món đối chiếu chi tiết với nguồn. Không tuyên bố 'đã kiểm chứng'
Cổng không đạt và cần lưu ý được hiển thị ngang hàng với cổng đạt — dashboard này để phán xử, không phải để trưng bày.
Token — đo từ transcript, không phải ước lượng
Tính giá đầy đủ
24.1M
Con số phản ánh khối lượng thật
Output (AI viết ra)
3.5M
Phần AI thực sự sinh ra
Tổng thô
1427M
Gồm cả cache read — xem cảnh báo dưới
MD / 1M token
0.169
Theo token tính giá; 1 man-day ≈ 5.9M
98.3% lượng token là cache read. Đó là bối cảnh được đọc lại ở mỗi lượt, không phải nội dung mới. Trích con số 1427M mà bỏ ngữ cảnh sẽ gây hiểu sai — con số phản ánh đúng khối lượng làm việc là khoảng 24.1M tính giá đầy đủ, trong đó 3.5M là output AI thực sự viết ra.
Không có bước 'est' — không ai ước lượng token trước khi bắt đầu. Chỉ có reconcile (số thật).
Knowledge Health — 7 KPI kho kiến thức
AI chỉ tốt bằng kho kiến thức nó đọc được. Bảy chỉ số này đo harness có khoẻ không — đo ngày 2026-09-07, mỗi chỉ số bằng script chạy trên repo thật.
Target: ≥ 80%
11/12 story MVP có đủ requirement → code → test (đọc từ bảng RTM). US-07 (responsive) không có file code riêng vì là cross-cutting qua Tailwind.
Target: ≥ 70%
19/19 commit có đụng code đều cập nhật tài liệu trong CÙNG commit. Đo bằng git log --name-only.
Target: ≥ 85%
20/23 artefact còn khớp thực tế (đã loại AGENTS.md, CLAUDE.md — file cấu hình AI). KPI này đã bắt được 2 lỗi thật: MODULEMAP-LF.md lỗi thời nghiêm trọng (đã sửa), và PERFORMANCE-LF.md đo hồi 8 tỉnh trong khi bản đồ nay render 63 marker — đã đo lại ngày 2026-09-07, kết quả trái dự đoán: hiệu năng TỐT HƠN dù dữ liệu gấp 8 lần.
Target: ≤ 15%
3/38 module không được nhắc trong bất kỳ artefact nào (SiteFooter, MotionProvider, CompressionCalculator). Requirement mồ côi: 0 sau khi đóng GAP-T2.
Target: ≥ 90%
23/25 artefact có dấu vết con người (PM bắt/bác/sửa/duyệt, hoặc Cổng hiểu). 2 file thiếu là AGENTS.md và CLAUDE.md — file cấu hình cho AI.
Target: ≥ 75%
13/13 quyết định kiến trúc / vùng rủi ro cao đều có decision record (ARCH D1-D3, RISK R1-R13, DEVBOOK phần B, TECH-DEBT).
Target: ≥ 70%
Spot-check 6 chức năng bằng đúng prompt mẫu (liệt kê spec/code/test/decision record), rồi verify bằng máy: 38/38 tham chiếu có file tồn tại và anchor khớp.
Thiên lệch đã biết của c7: c7 có thiên lệch đã biết: AI tự chọn 6 chức năng và tự liệt kê tham chiếu, máy chỉ verify file/anchor CÓ TỒN TẠI — không verify nội dung có thực sự liên quan. Đúng quy trình thì PM phải tự đối chiếu kết quả với thực tế (như prompt mẫu ghi). Con số 100% nên đọc là 'không có tham chiếu bịa', không phải 'chất lượng truy xuất hoàn hảo'.
Quy mô mã nguồn & tài liệu
Dòng code
3.753
tsx + ts + mjs + sql + css
Dòng dữ liệu tỉnh
5.717
63 file JSON
Tài liệu dự án
87 trang
43.370 từ · 25 file .md
Component / Route
29 / 69
React component / route sinh tĩnh
| Loại | Dòng | File | Ghi chú |
|---|---|---|---|
| Artefact quản trị (.md) | 8.979 | 49 | gồm cả 00_Docs |
| Artefact của DỰ ÁN (.md ở gốc) | — | 25 | 43.370 từ ≈ 87 trang A4 |
| Dữ liệu tỉnh (.json) | 5.717 | 63 | |
| React/TypeScript (.tsx) | 2.602 | 35 | |
| Logic/thư viện (.ts) | 601 | 10 | |
| Cấu hình (.json) | 521 | 5 | |
| Script kiểm tra (.mjs) | 263 | 5 | |
| SQL (Supabase) | 200 | 2 | |
| CSS | 87 | 1 |
Đo bằng `git ls-files` (chỉ file đã track). KHÔNG tính node_modules và KHÔNG tính 00_Docs (giáo trình bootcamp, không phải sản phẩm của dự án).
Sản lượng
Tỉnh thành
63/63
Kế hoạch ban đầu 8
Món ăn
197
75 món có ảnh thật
Nguồn tham chiếu
287
0 món thiếu nguồn
Route sinh tĩnh
68
Build sạch, 0 lỗi TS
Commit
82
File trong repo
328
Artefact quản trị
33
SCOPE → RTM → Telemetry
Sự cố DEVBOOK
19
Đã phân loại