@educa-corp/sdd-framework 0.9.6 → 0.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/lint-trace.js +4 -4
- package/bin/self-check.js +448 -12
- package/bin/trace-schema.json +643 -112
- package/core/FRAMEWORK_VERSION +1 -1
- package/core/commands/amend-prd.md +7 -1
- package/core/commands/debug.md +8 -2
- package/core/commands/define-product.md +38 -1
- package/core/commands/dev-gen-test.md +9 -3
- package/core/commands/dev-run-test.md +8 -2
- package/core/commands/dev-smoke-test.md +7 -1
- package/core/commands/extend-prd.md +7 -1
- package/core/commands/fix-bug.md +11 -5
- package/core/commands/generate-architecture.md +9 -1
- package/core/commands/generate-bdd.md +45 -5
- package/core/commands/generate-code.md +43 -4
- package/core/commands/generate-design-spec.md +7 -1
- package/core/commands/generate-prd.md +9 -1
- package/core/commands/generate-spec-manifest.md +7 -1
- package/core/commands/generate-tech-docs.md +41 -1
- package/core/commands/learn.md +7 -1
- package/core/commands/map-testids.md +11 -5
- package/core/commands/propose-scenario.md +7 -1
- package/core/commands/qc-analyze.md +12 -6
- package/core/commands/qc-automation-assess.md +356 -0
- package/core/commands/qc-design-script.md +400 -0
- package/core/commands/qc-design-test.md +21 -15
- package/core/commands/qc-plan.md +9 -3
- package/core/commands/qc-report.md +9 -3
- package/core/commands/qc-review-script.md +333 -0
- package/core/commands/{qc-review.md → qc-review-testcase.md} +84 -53
- package/core/commands/qc-run-manualtest.md +401 -0
- package/core/commands/qc-run-script.md +414 -0
- package/core/commands/refine-prd.md +7 -1
- package/core/commands/report-bug.md +9 -3
- package/core/commands/review-code.md +9 -3
- package/core/commands/review-context.md +11 -3
- package/core/commands/review-tech-docs.md +11 -3
- package/core/commands/setup-ai-first.md +7 -1
- package/core/commands/validate-traces.md +10 -4
- package/core/modules/qc-playwright/stack-profile.yaml +1 -1
- package/core/rules/workflow.md +2 -2
- package/core/skills/qc/_shared/self-review-principles.md +2 -2
- package/core/skills/qc/qa-analyst/DOC_GAP.template.md +1 -1
- package/core/skills/qc/qa-analyst/spec-issue-reporter.md +1 -1
- package/core/skills/qc/qa-automation-assess/matrix.md +120 -0
- package/core/skills/qc/qa-designer/e2e/journey.md +1 -1
- package/core/skills/qc/qa-designer/exploratory/explore-to-functional.md +1 -1
- package/core/skills/qc/qa-designer/functional/api.md +1 -1
- package/core/skills/qc/qa-designer/functional/gui-feature.md +1 -1
- package/core/skills/qc/qa-designer/functional/gui-screen.md +1 -1
- package/core/skills/qc/qa-designer/integration/api.md +1 -1
- package/core/skills/qc/qa-designer/integration/db.md +1 -1
- package/core/skills/qc/qa-designer/integration/gui.md +1 -1
- package/core/skills/qc/qa-designer/integration/kafka.md +1 -1
- package/core/skills/qc/qa-designer/non-functional.md +1 -1
- package/core/skills/qc/qa-designer/shared/tc-metadata-format.md +11 -6
- package/core/skills/qc/qa-reviewer/script/e2e.md +1 -1
- package/core/skills/qc/qa-reviewer/script/exploratory.md +1 -1
- package/core/skills/qc/qa-reviewer/script/functional.md +1 -1
- package/core/skills/qc/qa-reviewer/script/integration.md +1 -1
- package/core/skills/qc/qa-reviewer/script/non-functional.md +1 -1
- package/core/skills/qc/qa-reviewer/shared/review-file-template.md +3 -3
- package/core/skills/qc/qa-reviewer/test-case/e2e.md +1 -1
- package/core/skills/qc/qa-reviewer/test-case/functional.md +1 -1
- package/core/skills/qc/qa-reviewer/test-case/integration.md +1 -1
- package/core/skills/qc/qa-reviewer/test-case/non-functional.md +1 -1
- package/core/skills/qc/qa-runner/e2e.md +2 -2
- package/core/skills/qc/qa-runner/functional/gui-feature.md +3 -3
- package/core/skills/qc/qa-runner/functional/gui-screen.md +3 -3
- package/core/skills/qc/qa-runner/integration.md +1 -1
- package/core/skills/qc/qa-runner/non-functional.md +1 -1
- package/core/steps/context-loader.md +1 -1
- package/core/steps/gate.md +7 -1
- package/core/steps/qc-scope.md +2 -2
- package/core/steps/qc-stamp.md +4 -4
- package/core/steps/report-footer.md +10 -9
- package/docs/02-concepts/pipeline-steps/07-dev-selftest.md +1 -1
- package/docs/02-concepts/pipeline-steps/08-qc-automation.md +9 -8
- package/docs/02-concepts/pipeline-steps/10-feedback-loop.md +3 -3
- package/docs/02-concepts/traceability.md +1 -1
- package/docs/03-guides/developer.md +1 -1
- package/docs/03-guides/tester-qa.md +8 -7
- package/docs/04-reference/commands.md +4 -2
- package/docs/04-reference/trace-schema.md +4 -4
- package/docs/explain/17-qc-design-test.md +5 -5
- package/docs/explain/18-qc-review.md +42 -20
- package/docs/explain/19-qc-run-test.md +9 -6
- package/docs/explain/20-qc-report.md +3 -3
- package/docs/explain/23-fix-bug.md +2 -2
- package/docs/explain/README.md +2 -2
- package/docs/plans/qc-surgery/01-checklist.md +70 -17
- package/package.json +1 -1
- package/core/commands/qc-run-test.md +0 -561
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Checklist 20 bước — đợt đại phẫu QC
|
|
3
|
-
updated: 2026-09-
|
|
3
|
+
updated: 2026-09-16
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Checklist — đang ở đâu
|
|
@@ -19,9 +19,9 @@ updated: 2026-09-11
|
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
21
|
node bin/build.js # đúc .tmpl → .md → core/
|
|
22
|
-
node bin/self-check.js # R1–
|
|
22
|
+
node bin/self-check.js # R1–R18 (R17/R18 thêm ở 0.9.6)
|
|
23
23
|
node test/run.js # gồm test ngân sách dung lượng core/commands
|
|
24
|
-
node bin/lint-trace.js # T1–
|
|
24
|
+
node bin/lint-trace.js # T1–T20 trên sổ trace thật (T19/T20 thêm ở 0.9.6)
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
---
|
|
@@ -73,20 +73,73 @@ node bin/lint-trace.js # T1–T14 trên sổ trace thật
|
|
|
73
73
|
|
|
74
74
|
---
|
|
75
75
|
|
|
76
|
-
## Việc dọn bắt buộc —
|
|
76
|
+
## Việc dọn bắt buộc — đo lại tại HEAD 0.9.6
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
| [ ] | Bổ nhãn `*Checkpoint: …*` cho lệnh còn thiếu | 6 file |
|
|
83
|
-
| [ ] | Gỡ comment provenance 10+ dòng ở đầu file lệnh → chuyển vào `bin/qc-base-map.json` | 12 file |
|
|
84
|
-
| [ ] | Thay gate cắt tay (5.4 KB) bằng `{{include:steps/gate.md}}` (11.1 KB) | 12 file |
|
|
78
|
+
> **Bốn trong năm dòng đã xong từ trước mà chưa ai tích.** Cột *Ghi* là số của lần lập bảng
|
|
79
|
+
> (2026-09-11); cột *Đo lại* là số đếm thật trên `commands/*.tmpl` + `skills/` ngày 2026-09-15,
|
|
80
|
+
> **đo trước khi sửa file này** — xem cách đếm ở cuối mục. Để nguyên `[ ]` thì người sau đi làm
|
|
81
|
+
> lại bốn việc đã xong.
|
|
85
82
|
|
|
86
|
-
|
|
83
|
+
| | Việc | Ghi | Đo lại 2026-09-15 |
|
|
84
|
+
|:-:|---|---|---|
|
|
85
|
+
| [x] | Sửa file skill còn gọi `TC_<FEATURE>.md` thay `.Test.md` | 14 file | **0 file.** Đúng 2 chỗ còn chuỗi đó, **cả hai** trong `qc-design-test` và là **phản ví dụ có chủ ý** — *"ghi ra thứ không trạm nào tìm thấy"*. Đừng `grep` rồi báo lỗi lại |
|
|
86
|
+
| [x] | Sửa tham chiếu skill treo `qa-script-runner/report/coverage-evaluator.md` | 1 chỗ | **Không phải lỗi — chưa bao giờ hỏng.** Mọi tham chiếu nằm gọn trong `upstream/qc-base/`, và `upstream/qc-base/skills/qa-gate/coverage-evaluator.md` có thật. Không có commit sửa nào để đi tìm |
|
|
87
|
+
| [ ] | Bổ nhãn `*Checkpoint: …*` cho lệnh còn thiếu | 6 file | **18 file** — chỉ 15/33 lệnh có nhãn; số cũ nhỏ hơn thực tế 3 lần *(lần lập bảng đếm trên tập lệnh QC rồi ghi như thể đếm toàn bộ 33 lệnh)*. **Không lệnh nào trong 18 đó được miễn**: cả 5 lệnh mức `none` — `review-code` `validate-traces` `debug` `review-context` `review-tech-docs` — đều ĐÃ có nhãn. 18 là nợ thật |
|
|
88
|
+
| [x] | Gỡ comment provenance 10+ dòng ở đầu file lệnh → `bin/qc-base-map.json` | 12 file | **0 file.** Không tmpl nào còn khối `<!-- -->` ở đầu; provenance rút còn đúng 1 dòng `ported_from:` ở 6 lệnh QC, phần còn lại đã nằm trong `bin/qc-base-map.json` (snapshot `596149f`) |
|
|
89
|
+
| [x] | Thay gate cắt tay (5.4 KB) bằng `{{include:steps/gate.md}}` (11.1 KB) | 12 file | **0 lệnh còn gate cắt tay.** 31/33 tmpl dùng `{{include:steps/gate.md}}`. Hai lệnh còn lại — `sync`, `update-framework` — không phải cắt tay: chúng **không có gate nào cả**, xem cảnh báo dưới |
|
|
90
|
+
|
|
91
|
+
> ⚠️ **Phát sinh khi đo — KHÔNG thuộc đợt dọn này.** `sync` và `update-framework` đều GHI file
|
|
92
|
+
> (`{service.path}/.agent/project-context.yaml`, `{living_docs_dir}/trace-report.json`, và
|
|
93
|
+
> `--init` copy đè cả `.agent/`) nhưng **không include gate và không có tên trong
|
|
94
|
+
> `gate.checkpoint_levels`** → rơi vào mặc định `normal`, mức lỏng nhất. Đây đúng hình dạng lỗi
|
|
95
|
+
> mà R18 sinh ra để bắt (G67 · G77 · G78 · G79). Xử ở việc **khai nốt registry
|
|
96
|
+
> `artifact_writers`**, không phải ở đây.
|
|
97
|
+
|
|
98
|
+
<details>
|
|
99
|
+
<summary>Cách đếm — chạy lại được, ra đúng số trên</summary>
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
# 1 — gate: 31 file có include; 2 file thiếu là sync, update-framework
|
|
103
|
+
grep -l "include:steps/gate.md" commands/*.tmpl | wc -l
|
|
104
|
+
|
|
105
|
+
# 2 — TC_<FEATURE>.md: đúng 2 hit, cả hai trong qc-design-test (phản ví dụ)
|
|
106
|
+
grep -rn 'TC_<FEATURE>.md' skills/ commands/
|
|
87
107
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
108
|
+
# 3 — coverage-evaluator: file đích tồn tại ⇒ tham chiếu không treo
|
|
109
|
+
ls upstream/qc-base/skills/qa-gate/coverage-evaluator.md
|
|
110
|
+
|
|
111
|
+
# 4 — nhãn Checkpoint: 15 có / 18 thiếu trên 33 lệnh
|
|
112
|
+
for f in commands/*.tmpl; do grep -qE '^s**Checkpoint:' "$f" || basename "$f" .tmpl; done | wc -l
|
|
113
|
+
|
|
114
|
+
# 5 — provenance: 0 dòng <!-- ở đầu tmpl
|
|
115
|
+
head -30 commands/*.tmpl | grep -c '^<!--'
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Vì sao mục này phải mang theo cách đếm:** không máy nào canh file kế hoạch. `self-check` canh
|
|
119
|
+
schema, `lint-trace` canh sổ trace, `test/run.js` canh build — cả ba xanh trong lúc bảng này sai
|
|
120
|
+
bốn dòng. Ghi kết quả đo mà không ghi cách đo thì người sau vẫn phải đo lại từ đầu, tức ô tích
|
|
121
|
+
không tiết kiệm được gì.
|
|
122
|
+
|
|
123
|
+
</details>
|
|
124
|
+
|
|
125
|
+
## Câu đã chốt với chị QC *(2026-09-16)*
|
|
126
|
+
|
|
127
|
+
| | Câu hỏi | Trả lời | Chặn bước nào |
|
|
128
|
+
|:-:|---|---|---|
|
|
129
|
+
| [x] | `/qc-run-manualtest` ghi kết quả test tay thế nào — nhập từng TC, hay đọc từ file checklist? | **Nhập từng TC.** Nguyên văn: *"ghi kết quả test tay em nhé. Chị sợ đọc checklist mà lệch thông tin lại ghi kết quả sai."* | d2-b2 — **hết chặn** |
|
|
130
|
+
| [x] | Smoke suite đặt tên gì (không được nhầm `/dev-smoke-test` đã có) | **`/qc-smoke-test`** — đúng quy ước hai làn `qc-`/`dev-` | d4-b2 — **hết chặn** |
|
|
131
|
+
| [x] | Ngưỡng dung lượng chốt bao nhiêu | **Không cần hỏi — đo được.** `1309 / 1450 KB` sau d2-b1 (còn 141 KB). Đo lại sau khi viết 3 lệnh của d2-b2 | d2-b2 |
|
|
132
|
+
|
|
133
|
+
> **Vì sao câu 1 quan trọng hơn vẻ ngoài của nó.** Phương án *"đọc file checklist"* nghe tiện hơn
|
|
134
|
+
> (điền offline, nhiều người điền dần), và đó là phương án được khuyến nghị lúc đầu. Chị QC chỉ ra
|
|
135
|
+
> một rủi ro nặng hơn sự tiện: một file điền tay là **nguồn thứ hai có thể trôi** — TC bị đánh số
|
|
136
|
+
> lại sau một lần `/qc-design-test`, TC mới thêm, dòng cũ còn sót — và khi nó lệch thì lệnh ghi
|
|
137
|
+
> `qc_status` cho **đúng SC sai**. Kiểu hỏng đó là **Nói dối** (sổ trace báo `pass` cho scenario
|
|
138
|
+
> chưa ai chạy); cái giá của phương án hỏi-từng-TC chỉ là **Ồn**. Đổi một rủi ro nói dối lấy một
|
|
139
|
+
> rủi ro phiền là đúng chiều, và cùng họ với `positive_assertion_guards` — luật đã có sẵn để
|
|
140
|
+
> **không bao giờ** ghi `pass` khi dữ liệu nền không chắc.
|
|
141
|
+
>
|
|
142
|
+
> **Điều chỉnh giữ nguyên tính an toàn đó:** lệnh **ghi ngay vào sổ trace sau mỗi câu trả lời**,
|
|
143
|
+
> không gom cuối phiên; chạy lại thì chỉ hỏi những SC còn `not_run` — tức **tự resume**. Như vậy
|
|
144
|
+
> sổ trace là nguồn duy nhất (không artifact trung gian nào để trôi) mà vẫn làm được nhiều buổi,
|
|
145
|
+
> nhiều người. Mỗi lần ghi kèm người chạy + ngày, khớp luật *"`pass` phải có bằng chứng"*.
|