@educa-corp/sdd-framework 0.9.6 → 0.9.8
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/qc-base-map.json +13 -11
- package/bin/self-check.js +497 -16
- package/bin/trace-schema.json +3226 -2656
- 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 +430 -0
- package/core/commands/qc-design-test.md +98 -20
- package/core/commands/qc-plan.md +9 -3
- package/core/commands/qc-report.md +92 -77
- package/core/commands/qc-review-script.md +342 -0
- package/core/commands/{qc-review.md → qc-review-testcase.md} +86 -54
- package/core/commands/qc-run-manualtest.md +401 -0
- package/core/commands/qc-run-script.md +421 -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-ts/module.yaml +13 -0
- package/core/modules/qc-playwright-ts/stack-profile.yaml +99 -0
- package/core/modules/qc-wdio-appium/module.yaml +20 -0
- package/core/modules/qc-wdio-appium/stack-profile.yaml +107 -0
- 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/data-flow.md +1 -1
- package/core/skills/qc/qa-analyst/spec-issue-reporter.md +1 -1
- package/core/skills/qc/qa-automation-assess/matrix.md +123 -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-runner → qa-designer}/exploratory/session.md +8 -2
- package/core/skills/qc/qa-designer/functional/api.md +2 -2
- 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/functional/job.md +128 -0
- package/core/skills/qc/qa-designer/integration/api.md +2 -2
- package/core/skills/qc/qa-designer/integration/db.md +2 -2
- package/core/skills/qc/qa-designer/integration/gui.md +1 -1
- package/core/skills/qc/qa-designer/integration/{kafka.md → queue.md} +21 -5
- package/core/skills/qc/qa-designer/non-functional.md +1 -1
- package/core/skills/qc/qa-designer/shared/skill-decision-tree.md +17 -0
- package/core/skills/qc/qa-designer/shared/tc-metadata-format.md +28 -6
- package/core/skills/qc/qa-reviewer/script/_shared/review-rules.md +121 -0
- package/core/skills/qc/qa-reviewer/script/api/auth.md +49 -0
- package/core/skills/qc/qa-reviewer/script/api/endpoint.md +89 -0
- package/core/skills/qc/qa-reviewer/script/api/security.md +46 -0
- package/core/skills/qc/qa-reviewer/script/exploratory.md +3 -3
- package/core/skills/qc/qa-reviewer/script/mobile/e2e.md +41 -0
- package/core/skills/qc/qa-reviewer/script/mobile/functional.md +90 -0
- package/core/skills/qc/qa-reviewer/script/mobile/integration.md +41 -0
- package/core/skills/qc/qa-reviewer/script/mobile/non-functional.md +43 -0
- package/core/skills/qc/qa-reviewer/script/web/e2e.md +46 -0
- package/core/skills/qc/qa-reviewer/script/web/functional.md +111 -0
- package/core/skills/qc/qa-reviewer/script/web/integration.md +46 -0
- package/core/skills/qc/qa-reviewer/script/web/non-functional.md +49 -0
- package/core/skills/qc/qa-reviewer/shared/read-doc-gap-inputs.md +1 -1
- package/core/skills/qc/qa-reviewer/shared/review-file-template.md +29 -10
- package/core/skills/qc/qa-reviewer/test-case/e2e.md +2 -2
- package/core/skills/qc/qa-reviewer/test-case/exploratory.md +1 -1
- package/core/skills/qc/qa-reviewer/test-case/functional.md +2 -2
- package/core/skills/qc/qa-reviewer/test-case/integration.md +2 -2
- package/core/skills/qc/qa-reviewer/test-case/non-functional.md +2 -2
- package/core/skills/qc/qa-script-designer/_shared/api-conventions.md +94 -0
- package/core/skills/qc/qa-script-designer/_shared/file-naming-and-folders.md +109 -0
- package/core/skills/qc/qa-script-designer/_shared/mobile-conventions.md +196 -0
- package/core/skills/qc/qa-script-designer/_shared/web-conventions.md +257 -0
- package/core/skills/qc/qa-script-designer/api/auth.md +43 -0
- package/core/skills/qc/qa-script-designer/api/endpoint.md +61 -0
- package/core/skills/qc/qa-script-designer/api/security.md +41 -0
- package/core/skills/qc/qa-script-designer/mobile/e2e.md +35 -0
- package/core/skills/qc/qa-script-designer/mobile/functional/feature.md +32 -0
- package/core/skills/qc/qa-script-designer/mobile/functional/screen.md +42 -0
- package/core/skills/qc/qa-script-designer/mobile/integration.md +39 -0
- package/core/skills/qc/qa-script-designer/mobile/non-functional.md +39 -0
- package/core/skills/qc/qa-script-designer/web/e2e.md +36 -0
- package/core/skills/qc/qa-script-designer/web/functional/api.md +39 -0
- package/core/skills/qc/qa-script-designer/web/functional/gui-feature.md +34 -0
- package/core/skills/qc/qa-script-designer/web/functional/gui-screen.md +42 -0
- package/core/skills/qc/qa-script-designer/web/integration.md +43 -0
- package/core/skills/qc/qa-script-designer/web/non-functional.md +42 -0
- package/core/skills/qc/qa-script-runner/mobile/run.md +38 -0
- package/core/skills/qc/qa-script-runner/report.md +41 -0
- package/core/skills/qc/qa-script-runner/web/run.md +48 -0
- package/core/steps/context-loader.md +1 -1
- package/core/steps/gate.md +7 -1
- package/core/steps/qc-scope.md +45 -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 +13 -12
- 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 +40 -11
- package/docs/04-reference/commands.md +4 -2
- package/docs/04-reference/modules.md +2 -1
- 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 +13 -10
- 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 +86 -21
- package/docs/plans/qc-surgery/PLAN_v2.md +295 -0
- package/docs/plans/qc-surgery/exec-S-ap-stack-typescript.md +420 -0
- package/docs/plans/qc-surgery/exec-S0-guard-cam-stack-cu.md +400 -0
- package/docs/plans/qc-surgery/exec-S1-hai-module-thay-qc-playwright.md +267 -0
- package/docs/plans/qc-surgery/exec-S2-qa-runner-thanh-script-designer-runner.md +340 -0
- package/docs/plans/qc-surgery/exec-S3-viet-lai-tieu-chi-review-script.md +322 -0
- package/docs/plans/qc-surgery/exec-S5-an-theo-don-dau-vet-stack-cu.md +292 -0
- package/package.json +1 -1
- package/core/commands/qc-run-test.md +0 -561
- package/core/modules/qc-playwright/stack-profile.yaml +0 -66
- package/core/skills/qc/qa-reviewer/script/e2e.md +0 -95
- package/core/skills/qc/qa-reviewer/script/functional.md +0 -109
- package/core/skills/qc/qa-reviewer/script/integration.md +0 -99
- package/core/skills/qc/qa-reviewer/script/non-functional.md +0 -134
- package/core/skills/qc/qa-runner/e2e.md +0 -49
- package/core/skills/qc/qa-runner/functional/api.md +0 -35
- package/core/skills/qc/qa-runner/functional/gui-feature.md +0 -57
- package/core/skills/qc/qa-runner/functional/gui-screen.md +0 -61
- package/core/skills/qc/qa-runner/integration.md +0 -47
- package/core/skills/qc/qa-runner/non-functional.md +0 -49
- package/core/skills/qc/qa-runner/report/report.md +0 -37
package/bin/lint-trace.js
CHANGED
|
@@ -965,7 +965,7 @@ function lintTestidContract() {
|
|
|
965
965
|
//
|
|
966
966
|
// LẬP LUẬN GIỮ `error` ĐÃ HẾT ĐÚNG. Nó là "QC đoán theo nền ⇒ trượt 100% locator TRONG IM
|
|
967
967
|
// LẶNG". Vế "im lặng" bị hai consumer vô hiệu hoá từ lâu:
|
|
968
|
-
// qc-
|
|
968
|
+
// qc-design-script "Cảnh báo mềm, KHÔNG im lặng hardcode: ⚠️ Tech-doc thiếu @trace.testid_attr…"
|
|
969
969
|
// generate-code "Cảnh báo mềm, KHÔNG im lặng hardcode, rồi mới fallback"
|
|
970
970
|
// Giữ `error` là dựng cổng thứ hai cho một chuyện đã có người canh — và cổng đó chặn nhầm
|
|
971
971
|
// người. Cùng lập luận đã dùng cho T14: "nợ tồn ở project đang chạy sẽ đỏ khắp nơi ở lần đầu
|
|
@@ -1272,10 +1272,10 @@ lintCodeVsLedger();
|
|
|
1272
1272
|
// Chân thứ tư — bảng ↔ *.Test.md — là chân DUY NHẤT mà giá trị id bị CHÉP CỨNG vào một
|
|
1273
1273
|
// artifact BỀN rồi nằm lại:
|
|
1274
1274
|
// generate-code → bake vào code → T17/T18 canh
|
|
1275
|
-
// qc-run-
|
|
1275
|
+
// qc-run-script → dựng locator LÚC CHẠY → đọc bảng tươi, tự cứu
|
|
1276
1276
|
// qc-design-test → chép vào .Test.md → chân này
|
|
1277
1277
|
//
|
|
1278
|
-
// VÌ SAO CẦN CẢ LỚP NÀY khi /qc-review và /qc-
|
|
1278
|
+
// VÌ SAO CẦN CẢ LỚP NÀY khi /qc-review-testcase và /qc-design-script ĐÃ có guard cho nó (G64):
|
|
1279
1279
|
// rules/workflow.md — "Canh contract ≠ canh dữ liệu. Cần CẢ HAI". Guard ở trạm 4-5 phủ 100%
|
|
1280
1280
|
// đường đi thật nhưng do LLM thực thi: nó không chặn được trước khi merge. T19 nông hơn nhưng
|
|
1281
1281
|
// chạy trong CI. Hai lớp KHÔNG thay nhau — đúng cặp self-check ↔ lint-trace.
|
|
@@ -1288,7 +1288,7 @@ function lintTestidVsTestCases() {
|
|
|
1288
1288
|
if (!QC_DIRS.length) {
|
|
1289
1289
|
infos.push(`T19 BỎ QUA — không có --qc nên chưa đối chiếu hợp đồng test-id với test-case. ` +
|
|
1290
1290
|
`Ca "TC bám id không còn trong §4.5.6" đang KHÔNG được kiểm ở tầng CI ` +
|
|
1291
|
-
`(/qc-review và /qc-
|
|
1291
|
+
`(/qc-review-testcase và /qc-design-script vẫn bắt được, nhưng chỉ khi có người chạy chúng). ` +
|
|
1292
1292
|
`Truyền --qc {qc_dir} để bật.`);
|
|
1293
1293
|
return;
|
|
1294
1294
|
}
|
package/bin/qc-base-map.json
CHANGED
|
@@ -58,9 +58,9 @@
|
|
|
58
58
|
},
|
|
59
59
|
{
|
|
60
60
|
"upstream": "agents/6-qa-runner.md",
|
|
61
|
-
"targets": [],
|
|
62
|
-
"state": "
|
|
63
|
-
"why": "
|
|
61
|
+
"targets": ["commands/qc-design-script.tmpl", "commands/qc-run-script.tmpl"],
|
|
62
|
+
"state": "replaced",
|
|
63
|
+
"why": "Dinh nghia agent cua upstream; framework dung LENH thay cho agent. Vai nay nay tach lam hai lenh: /qc-design-script (sinh) va /qc-run-script (chay + cham) — Dot 2 · b2. Chot o Buoc S · S2."
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
66
|
"upstream": "agents/7-qa-gate.md",
|
|
@@ -126,14 +126,14 @@
|
|
|
126
126
|
{
|
|
127
127
|
"upstream": "skills/qa-gate/styled-report-feat011.py",
|
|
128
128
|
"targets": [],
|
|
129
|
-
"state": "
|
|
130
|
-
"why": "
|
|
129
|
+
"state": "skipped",
|
|
130
|
+
"why": "Bao cao do CONG CU sinh, khong do script tu viet: Automation-Standards §1 + OQ-01 (dong 2026-06-02) chot Playwright HTML Report cho web/api; Mobile-Automation-Standards §1 chot Allure Report v2.x cho app. Hai file .py nay khong con dich de port — bo o Buoc S · S5 (2026-09-17). Lane QC van 100% markdown-first: do duoc 0 file chay duoc trong skills/qc."
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"upstream": "skills/qa-gate/styled-report-template.py",
|
|
134
134
|
"targets": [],
|
|
135
|
-
"state": "
|
|
136
|
-
"why": "
|
|
135
|
+
"state": "skipped",
|
|
136
|
+
"why": "Bao cao do CONG CU sinh, khong do script tu viet: Automation-Standards §1 + OQ-01 (dong 2026-06-02) chot Playwright HTML Report cho web/api; Mobile-Automation-Standards §1 chot Allure Report v2.x cho app. Hai file .py nay khong con dich de port — bo o Buoc S · S5 (2026-09-17). Lane QC van 100% markdown-first: do duoc 0 file chay duoc trong skills/qc."
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
"upstream": "skills/qa-io-contract/injection-scanner.md",
|
|
@@ -157,13 +157,15 @@
|
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
159
|
"upstream": "skills/qa-runner/script-writer.md",
|
|
160
|
-
"targets": [],
|
|
161
|
-
"state": "
|
|
160
|
+
"targets": ["skills/qc/qa-script-designer/web/", "skills/qc/qa-script-designer/mobile/", "skills/qc/qa-script-designer/api/", "skills/qc/qa-script-designer/_shared/"],
|
|
161
|
+
"state": "replaced",
|
|
162
|
+
"why": "Tach lam hai: phan SINH script -> qa-script-designer (Buoc S · S2, 2026-09-17), ba lane web/mobile/api theo active_platform. Stack doi tu Python sang TypeScript + Playwright/WDIO-Appium theo qc-base-new (Approved)."
|
|
162
163
|
},
|
|
163
164
|
{
|
|
164
165
|
"upstream": "skills/qa-runner/test-executor.md",
|
|
165
|
-
"targets": [],
|
|
166
|
-
"state": "
|
|
166
|
+
"targets": ["skills/qc/qa-script-runner/web/run.md", "skills/qc/qa-script-runner/mobile/run.md", "skills/qc/qa-script-runner/report.md"],
|
|
167
|
+
"state": "replaced",
|
|
168
|
+
"why": "Tach lam hai: phan CHAY + cham -> qa-script-runner (Buoc S · S2). Truoc day gop chung voi phan sinh script trong qa-runner, nen sua phan cham phai mo trang day cach viet."
|
|
167
169
|
},
|
|
168
170
|
{
|
|
169
171
|
"upstream": "skills/qa-tc-analyst/acceptance-criteria.md",
|