feat(tech-writing): skill viết tài liệu kỹ thuật + thay 4 template rỗng - #52
Merged
Conversation
Aura-frog trước đây chỉ có skill documentation (ADR + Runbook). Bốn template
phase-1 là khung rỗng: lld.md dán cứng ví dụ ShareModal/Zustand của một dự án
khác, requirements.md có NFR bịa số ("< 200ms", "1000 concurrent users"),
confluence-page.md liệt kê FacebookCard/InstagramCard, và DESIGN_DECISIONS.md
lại trỏ vào lld.md — LLD không phải chỗ ghi quyết định.
Skill mới tech-writing, dựng trên 2 lượt deep-research (214 agent, 49 nguồn):
- Phân tầng T0-T3 theo quy mô, mặc định HẠ tầng: Y-statement -> ADR Nygard ->
MADR -> RFC. Thứ phân biệt là mức phân tích phương án, không phải độ dài.
- Vòng đời trạng thái của Oxide RFD (không có "draft"): ra sớm kèm nhãn đúng
hơn là giữ lại chờ hoàn hảo.
- Grounding trước khi viết, không phải sau: trích nguyên văn -> mọi claim về
code phải có file_read trước đó (grounding-discipline) -> claim nào không
chống lưng được thì XOÁ và đánh dấu lỗ hổng.
- Cấm tự chấm bản nháp trong chính context bản nháp. Huang et al. ICLR 2024:
GPT-4 GSM8K 95.5 -> 91.5 -> 89.0, GPT-3.5 CommonSenseQA 75.8 -> 38.1 sau khi
tự sửa. Dùng CoVe trả lời câu hỏi kiểm chứng ở context RIÊNG, và ưu tiên
verifier NGOÀI (chạy test, gọi API) hơn mọi suy nghĩ nội tại.
- Requirements theo bộ ba C/R/A của INCOSE GtWR v4: C1-C9 cá thể, C10-C15 tập
hợp, tập con ~10-12 rule lint được, A-attributes làm schema truy vết.
- LLD: nói THẲNG là không có chuẩn (IEEE 1016-2009 để ranh giới
architecture/HLD/LLD ngoài phạm vi). Dùng 12 viewpoint làm THỰC ĐƠN, và tiêu
chí dừng của ECSS: chi tiết tới mức code/compile/test được, không hơn.
Idempotency/observability/migration đánh dấu [UNVERIFIED] - không chuẩn nào
chống lưng, giữ vì hệ thống cần chứ không phải vì template có.
- Cổng chống AI-slop + nhãn mức bằng chứng [CODE]/[SOURCE]/[CONVENTION]/
[UNVERIFIED]. Ghi rõ gần như toàn bộ là QUY ƯỚC, không phải hiệu quả đo được.
- Liệt kê 4 niềm tin đã bị bác bỏ để không lọt lại vào skill.
DESIGN_DECISIONS.md -> decision-record.md; thêm LLD.md tách riêng.
CI job 'Validate Component Counts' so số skill thực tế với con số trong plugin.json description. Cập nhật cả README (10 auto-invoke + 33 on-demand — tech-writing đặt autoInvoke: true).
- individual[9] và set[6] nằm chung MỘT fence toon nên validator đọc declaration thứ hai thành tên rỗng. Tách thành 2 fence riêng. - folklore[9] thực ra có 10 dòng. Chạy lại aura-frog/scripts/ci/validate-toon.sh tại chỗ: 227 file, 0 lỗi.
validate-counts.sh đọc con số kỳ vọng từ khối Resources của aura-frog/CLAUDE.md, KHÔNG phải từ plugin.json — commit trước chỉ sửa plugin.json + README nên vẫn đỏ. Chạy cả validate-toon.sh và validate-counts.sh tại chỗ: đều PASS.
Skill git-worktree bị xoá CÓ CHỦ Ý ở 03ddfe3 ("consolidate 59→42 skills") nhưng link trong README bị bỏ lại lơ lửng, làm job "Check for broken markdown links" đỏ — main đã đỏ sẵn vì lỗi này từ trước PR #52. Nội dung worktree giờ nằm trong skills/git (frontmatter + mục "worktree isolation" đều còn). Đây là sửa ăn theo ngoài phạm vi PR, nhưng nó chặn CI của chính PR này.
Đây là nguồn đếm THỨ BA (sau plugin.json và aura-frog/CLAUDE.md): validate-readme-counts.sh so README với stats.json. Chạy generate-stats.sh để sinh lại (43 skills, 10 autoInvoke) rồi sửa 2 chỗ còn sót ở README. Đã chạy tại chỗ toàn bộ validator trong aura-frog/scripts/ci/: toon, counts, readme-counts, doc-maturity, docs-syntax, hook-parity, reflection-queue — PASS hết.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Vấn đề
Aura-frog chỉ có skill
documentationphủ ADR + Runbook. Bốn template phase-1 màscaffold-phase-deliverables.shsinh ra là khung rỗng:lld.mddán cứng ví dụ của một dự án khác —ShareModal.tsx,useSharePost.ts,platform: "facebook" | "instagram", Zustand + React Query. Ai dùng cũng phải xoá sạch trước.requirements.mdcó NFR bịa số:< 200ms,1000 concurrent users— dễ bị copy nguyên.confluence-page.mdliệt kêFacebookCard/InstagramCard.DESIGN_DECISIONS.mdánh xạ vàolld.md— LLD không phải chỗ ghi quyết định.Không có template nào cho phân tích kỹ thuật / trade-off, và không mục nào có non-goals, alternatives considered, hay failure modes.
Thay đổi
Skill mới
tech-writing, dựng trên 2 lượt deep-research (214 agent, 49 nguồn, ưu tiên nguồn sơ cấp) cộng phần tự verify trực tiếp từ PDF gốc.Phân tầng T0–T3, mặc định HẠ tầng. Y-statement → ADR Nygard → MADR → RFC. Thứ phân biệt là mức phân tích phương án, không phải độ dài. Kèm vòng đời trạng thái của Oxide RFD (cố tình không có
draft) — ra sớm kèm nhãn đúng hơn là giữ lại chờ hoàn hảo.Grounding trước khi viết, không phải sau. Trích nguyên văn → mọi claim về code phải có
file_readtrước đó (dùng lạigrounding-discipline.md) → claim nào không chống lưng được thì xoá và đánh dấu lỗ hổng, không làm mờ đi.Cấm tự chấm bản nháp trong chính context bản nháp. Đây là phần ngược trực giác nhất, và là lý do skill không có rubric LLM-tự-chấm — Huang et al., ICLR 2024 (arXiv 2310.01798, Bảng 3):
Cải thiện trong nghiên cứu trước đến từ oracle label và "vanish when oracle labels are not available". Multi-agent debate cùng budget cũng thua self-consistency (83.2@6 vs 85.3@6). Nên skill dùng CoVe với câu hỏi kiểm chứng trả lời ở context riêng, và ưu tiên verifier ngoài (chạy test, gọi API) hơn suy nghĩ nội tại.
Requirements theo bộ ba C/R/A của INCOSE GtWR v4: C1–C9 cá thể, C10–C15 tập hợp, tập con ~10–12 rule lint được bằng máy, A-attributes làm schema truy vết. Ghi rõ INCOSE §1.8 nói công cụ NLP/AI "do not address all the rules" — không quảng cáo "42 kiểm tra tự động".
LLD: nói thẳng là không có chuẩn. IEEE 1016-2009 để ranh giới architecture/HLD/LLD "beyond the scope of this standard". Dùng 12 design viewpoint làm thực đơn, cộng tiêu chí dừng của ECSS: chi tiết tới mức đơn vị "can be coded, compiled, and tested", không hơn. Idempotency / observability / migration-rollback đánh dấu
[UNVERIFIED]— không chuẩn công bố nào chống lưng, giữ vì hệ thống cần chứ không vì template có.Cổng chống AI-slop + nhãn mức bằng chứng
[CODE]/[SOURCE]/[CONVENTION]/[UNVERIFIED], và ghi rõ gần như toàn bộ nội dung là quy ước có nguồn sơ cấp, không phải hiệu quả đo được.Liệt kê 4 niềm tin đã bị bác bỏ để không lọt lại vào skill sau này (Google mandate design-doc gate; 42010 bắt buộc ghi lý do bác phương án; Rust RFC bắt buộc problem-first; adr.github.io có đúng 4 họ template).
File
skills/tech-writing/SKILL.mdtemplates/decision-record.mdtemplates/lld.mdtemplates/requirements.mdtemplates/confluence-page.mdskills/documentation/SKILL.mdtech-writing, giữ Runbookscripts/workflow/scaffold-phase-deliverables.shDESIGN_DECISIONS.md, thêmLLD.mdrules/workflow/workflow-deliverables.mdKiểm chứng
scripts/audit/audit-refs.sh— không thêm dead-ref nào. 5 dead-ref còn lại (skills/git-worktree, 4 filedocs/) đã fail sẵn trênorigin/main; không sửa vì ngoài phạm vi PR này.scaffold-phase-deliverables.shphase 1 → ra đúng 5 file, không còn ví dụ dán cứng.npm testKHÔNG chạy được —jestchưa cài trong môi trường (sh: jest: command not found). Không phải do PR này; thay đổi ở đây là markdown + 1 dòng shell.Ghi chú cho reviewer
Số LLM-as-judge (Cohen's κ) và ALCE không verify được sau 2 lượt research — SKILL.md ghi rõ cấm trích cho tới khi có ai đó kiểm lại từ paper gốc. Tương tự, chưa xác lập được là có hay không tồn tại benchmark đo chất lượng tài liệu kỹ thuật do AI sinh; phát biểu đúng là "chưa xác lập", không phải "không tồn tại".
Bài học từ quá trình: pass 1 bác claim C1–C15 với 0-3 phiếu vì
incose.orgtrả HTTP 403 — nó coi không lấy được thành không tồn tại. Pass 2 lật ngược 3-0 với trích dẫn nguyên văn. Unreachable ≠ absent.🤖 Generated with Claude Code