@anhth2/spec-driven-dev-plugin 0.11.0 → 0.14.0
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/commands/debug.md +47 -7
- package/commands/define-product.md +47 -7
- package/commands/dev-gen-test.md +65 -17
- package/commands/dev-run-test.md +66 -18
- package/commands/dev-run-test.tmpl +1 -1
- package/commands/dev-smoke-test.md +47 -7
- package/commands/fix-bug.md +83 -13
- package/commands/fix-bug.tmpl +36 -6
- package/commands/generate-bdd.md +74 -21
- package/commands/generate-bdd.tmpl +9 -4
- package/commands/generate-code.md +118 -35
- package/commands/generate-code.tmpl +53 -18
- package/commands/generate-design-spec.md +47 -7
- package/commands/generate-prd.md +47 -7
- package/commands/generate-spec-manifest.md +47 -7
- package/commands/generate-tech-docs.md +234 -20
- package/commands/generate-tech-docs.tmpl +187 -13
- package/commands/learn.md +47 -7
- package/commands/map-testids.md +564 -0
- package/commands/map-testids.tmpl +81 -0
- package/commands/propose-scenario.md +78 -18
- package/commands/propose-scenario.tmpl +31 -11
- package/commands/qc-analyze.md +67 -12
- package/commands/qc-analyze.tmpl +20 -5
- package/commands/qc-design-test.md +51 -10
- package/commands/qc-design-test.tmpl +4 -3
- package/commands/qc-plan.md +50 -10
- package/commands/qc-plan.tmpl +3 -3
- package/commands/qc-report.md +60 -8
- package/commands/qc-report.tmpl +13 -1
- package/commands/qc-review.md +49 -9
- package/commands/qc-review.tmpl +2 -2
- package/commands/qc-run-test.md +75 -20
- package/commands/qc-run-test.tmpl +10 -3
- package/commands/refine-prd.md +47 -7
- package/commands/report-bug.md +63 -9
- package/commands/report-bug.tmpl +16 -2
- package/commands/review-code.md +47 -7
- package/commands/review-context.md +47 -7
- package/commands/review-tech-docs.md +50 -9
- package/commands/review-tech-docs.tmpl +3 -2
- package/commands/setup-ai-first.md +37 -4
- package/commands/setup-ai-first.tmpl +2 -2
- package/commands/sync.md +47 -11
- package/commands/sync.tmpl +12 -9
- package/commands/update-framework.md +35 -2
- package/commands/validate-traces.md +98 -40
- package/commands/validate-traces.tmpl +51 -33
- package/core/FRAMEWORK_VERSION +1 -1
- package/core/commands/debug.md +47 -7
- package/core/commands/define-product.md +47 -7
- package/core/commands/dev-gen-test.md +65 -17
- package/core/commands/dev-run-test.md +66 -18
- package/core/commands/dev-smoke-test.md +47 -7
- package/core/commands/fix-bug.md +83 -13
- package/core/commands/generate-bdd.md +74 -21
- package/core/commands/generate-code.md +118 -35
- package/core/commands/generate-design-spec.md +47 -7
- package/core/commands/generate-prd.md +47 -7
- package/core/commands/generate-spec-manifest.md +47 -7
- package/core/commands/generate-tech-docs.md +234 -20
- package/core/commands/learn.md +47 -7
- package/core/commands/map-testids.md +564 -0
- package/core/commands/propose-scenario.md +78 -18
- package/core/commands/qc-analyze.md +67 -12
- package/core/commands/qc-design-test.md +51 -10
- package/core/commands/qc-plan.md +50 -10
- package/core/commands/qc-report.md +60 -8
- package/core/commands/qc-review.md +49 -9
- package/core/commands/qc-run-test.md +75 -20
- package/core/commands/refine-prd.md +47 -7
- package/core/commands/report-bug.md +63 -9
- package/core/commands/review-code.md +47 -7
- package/core/commands/review-context.md +47 -7
- package/core/commands/review-tech-docs.md +50 -9
- package/core/commands/setup-ai-first.md +37 -4
- package/core/commands/sync.md +47 -11
- package/core/commands/update-framework.md +35 -2
- package/core/commands/validate-traces.md +98 -40
- package/core/modules/qc-playwright/stack-profile.yaml +4 -3
- package/core/skills/code/SKILL.md +82 -9
- package/core/skills/debug/SKILL.md +117 -11
- package/core/skills/design-spec/SKILL.md +47 -7
- package/core/skills/discovery/SKILL.md +47 -7
- package/core/skills/prd/SKILL.md +70 -4
- package/core/skills/qc/qa-analyst/acceptance-criteria.md +5 -1
- package/core/skills/qc/qa-analyst/business-rules.md +6 -2
- package/core/skills/qc/qa-analyst/data-flow.md +6 -2
- package/core/skills/qc/qa-analyst/spec-breakdown.md +7 -3
- package/core/skills/qc/qa-designer/e2e/journey.md +1 -1
- package/core/skills/qc/qa-designer/exploratory/charter.md +2 -2
- 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-planner/test-plan.md +4 -4
- package/core/skills/qc/qa-runner/exploratory/session.md +2 -2
- package/core/skills/setup-ai-first/SKILL.md +35 -2
- package/core/skills/spec/SKILL.md +70 -4
- package/core/skills/test/SKILL.md +129 -16
- package/core/steps/context-loader.md +12 -5
- package/core/steps/report-footer.md +35 -2
- package/core/steps/trace-mirror.md +18 -10
- package/core/templates/project-context.yaml +27 -6
- package/docs/01-getting-started/core-concepts.md +7 -7
- package/docs/01-getting-started/installation.md +4 -2
- package/docs/01-getting-started/quickstart.md +1 -1
- package/docs/02-guides/README.md +1 -2
- package/docs/02-guides/developer/README.md +1 -1
- package/docs/02-guides/developer/bdd-and-trace.md +10 -8
- package/docs/02-guides/developer/commands.md +4 -4
- package/docs/02-guides/developer/scenarios.md +26 -14
- package/docs/02-guides/developer/workflow.md +81 -19
- package/docs/02-guides/product-owner/README.md +6 -4
- package/docs/02-guides/product-owner/commands.md +1 -1
- package/docs/02-guides/product-owner/scenarios.md +80 -1
- package/docs/02-guides/tester/README.md +13 -10
- package/docs/02-guides/tester/bug-reporting.md +2 -2
- package/docs/02-guides/tester/qc-automation.md +165 -0
- package/docs/02-guides/tester/reading-specs.md +4 -4
- package/docs/02-guides/tester/scenarios.md +5 -5
- package/docs/02-guides/tester/spec-manifest.md +17 -12
- package/docs/02-guides/tester/test-checklist.md +3 -3
- package/docs/02-guides/tester/workflow.md +12 -14
- package/docs/03-concepts/architecture.md +7 -4
- package/docs/03-concepts/pipeline.md +37 -12
- package/docs/03-concepts/traceability.md +19 -18
- package/docs/04-operations/README.md +1 -1
- package/docs/04-operations/bug-flow.md +46 -5
- package/docs/04-operations/sync-and-update.md +186 -24
- package/docs/05-reference/README.md +3 -0
- package/docs/05-reference/command-cheatsheet.md +147 -0
- package/docs/05-reference/commands.md +73 -70
- package/docs/05-reference/modules.md +4 -4
- package/docs/05-reference/trace-schema.md +23 -16
- package/docs/README.md +3 -5
- package/modules/qc-playwright/stack-profile.yaml +4 -3
- package/package.json +1 -1
- package/skills/code/SKILL.md +82 -9
- package/skills/debug/SKILL.md +117 -11
- package/skills/design-spec/SKILL.md +47 -7
- package/skills/discovery/SKILL.md +47 -7
- package/skills/prd/SKILL.md +70 -4
- package/skills/qc/qa-analyst/acceptance-criteria.md +5 -1
- package/skills/qc/qa-analyst/business-rules.md +6 -2
- package/skills/qc/qa-analyst/data-flow.md +6 -2
- package/skills/qc/qa-analyst/spec-breakdown.md +7 -3
- package/skills/qc/qa-designer/e2e/journey.md +1 -1
- package/skills/qc/qa-designer/exploratory/charter.md +2 -2
- package/skills/qc/qa-designer/exploratory/explore-to-functional.md +1 -1
- package/skills/qc/qa-designer/functional/api.md +1 -1
- package/skills/qc/qa-designer/functional/gui-feature.md +1 -1
- package/skills/qc/qa-designer/functional/gui-screen.md +1 -1
- package/skills/qc/qa-designer/integration/api.md +1 -1
- package/skills/qc/qa-designer/integration/db.md +1 -1
- package/skills/qc/qa-designer/integration/gui.md +1 -1
- package/skills/qc/qa-designer/integration/kafka.md +1 -1
- package/skills/qc/qa-designer/non-functional.md +1 -1
- package/skills/qc/qa-planner/test-plan.md +4 -4
- package/skills/qc/qa-runner/exploratory/session.md +2 -2
- package/skills/setup-ai-first/SKILL.md +35 -2
- package/skills/spec/SKILL.md +70 -4
- package/skills/test/SKILL.md +129 -16
- package/steps/context-loader.md +12 -5
- package/steps/report-footer.md +35 -2
- package/steps/trace-mirror.md +18 -10
- package/templates/project-context.yaml +27 -6
- package/docs/02-guides/qc-automation.md +0 -92
package/skills/debug/SKILL.md
CHANGED
|
@@ -67,6 +67,8 @@ Read `.agent/project-context.yaml`. Extract and store:
|
|
|
67
67
|
- `paths.specs_dir` → BDD specs root
|
|
68
68
|
- `paths.prd_dir` → PRD documents root
|
|
69
69
|
- `paths.refinement_dir` → findings/review output dir
|
|
70
|
+
- `paths.qc_dir` → QC automation artifacts root (visible top-level, one subfolder per UC: `{qc_dir}/{UC-ID}/`)
|
|
71
|
+
- `paths.qc_skills_dir` → where qc-* commands load QC skills from (default bundled `.agent/skills/qc`; override to the QC team's own repo/submodule so framework upgrade won't overwrite them)
|
|
70
72
|
- `paths.product_definitions_dir` → product definitions root
|
|
71
73
|
- `paths.domain_knowledge_dir` → domain knowledge root
|
|
72
74
|
- `paths.business_dictionary` → path to business-dictionary.md
|
|
@@ -79,6 +81,8 @@ If `paths` section is absent, use these defaults:
|
|
|
79
81
|
- `specs_dir` = `specs/bdd`
|
|
80
82
|
- `prd_dir` = `specs/prd`
|
|
81
83
|
- `refinement_dir` = `.agent/review`
|
|
84
|
+
- `qc_dir` = `docs`
|
|
85
|
+
- `qc_skills_dir` = `.agent/skills/qc`
|
|
82
86
|
- `product_definitions_dir` = `specs/product-definition`
|
|
83
87
|
- `domain_knowledge_dir` = `specs/domain-knowledge`
|
|
84
88
|
- `business_dictionary` = `specs/domain-knowledge/business-dictionary.md`
|
|
@@ -104,7 +108,7 @@ If `services` section is present:
|
|
|
104
108
|
- If `$ARGUMENTS` contains a path, extract the segment after `prd_dir`
|
|
105
109
|
|
|
106
110
|
**2. Route to service** — if active domain matches a key in `services`:
|
|
107
|
-
- Override `paths.specs_dir` → `services.{domain}.specs_dir`
|
|
111
|
+
- Override `paths.specs_dir` → `services.{domain}.specs_dir` — **only if `setup.spec_source` is NOT set.** When `spec_source` IS set, ALL BDD (web/app/**system**) is a shared cross-team artifact → leave `specs_dir` for step 4 to route to the spec repo; do NOT pin it per-service here.
|
|
108
112
|
- Override `paths.tech_docs_dir` → `services.{domain}.tech_docs_dir` — **only if `setup.spec_source` is NOT set.** When `spec_source` IS set, the tech-design (API contract) is a cross-team artifact and must live in the shared spec repo (handled in step 4), so leave `tech_docs_dir` for step 4 to route — do NOT pin it per-service here.
|
|
109
113
|
- Store `active_service` = `services.{domain}.path`
|
|
110
114
|
- Store `active_service_module` = `services.{domain}.module`
|
|
@@ -115,6 +119,7 @@ If `services` section is present:
|
|
|
115
119
|
- Set `active_service = unresolved`
|
|
116
120
|
|
|
117
121
|
**4. Spec source auto-override** — if `setup.spec_source` is set AND the corresponding path was not already explicitly set in `paths:`:
|
|
122
|
+
- Override `paths.specs_dir` → `{spec_source}/specs/bdd` — **always when `spec_source` is set.** All BDD (web/app/**system**) lives in the shared spec repo so every umbrella (FE/App/BE) reads the same scenarios; the FE tech-design gate + `/generate-code --phase=ui`/`--phase=integration` resolve the `system/` BDD here. *(Per-service `specs/bdd` only when there is no `spec_source`.)*
|
|
118
123
|
- Override `paths.prd_dir` → `{spec_source}/specs/prd`
|
|
119
124
|
- Override `paths.design_spec_dir` → `{spec_source}/specs/design-spec`
|
|
120
125
|
- Override `paths.tech_docs_dir` → `{spec_source}/specs/tech-docs` — **always when `spec_source` is set** (step 2 no longer pins tech-docs per-service in this case). The tech-design IS the cross-team API contract: BE authors it here, and FE/App read it from the same spec submodule at `/generate-code --phase=integration`. *(Per-service tech-docs only happen when there is no `spec_source` — a pure multi-service BE repo with no shared spec module.)*
|
|
@@ -123,8 +128,10 @@ If `services` section is present:
|
|
|
123
128
|
- Override `paths.core_entities` → `{spec_source}/specs/domain-knowledge/core-entities.md`
|
|
124
129
|
- Override `paths.bug_reports_dir` → `{spec_source}/feedback/bug-reports`
|
|
125
130
|
- Override `paths.bdd_proposals_dir` → `{spec_source}/feedback/bdd-proposals`
|
|
131
|
+
- Override `paths.prd_change_requests_dir` → `{spec_source}/feedback/prd-change-requests`
|
|
132
|
+
- Override `paths.trace_dir` → `{spec_source}/.trace` — **always when `spec_source` is set.** Trace TSVs are consolidated in the spec repo (single authoritative location, no per-service split) so the PM/PO has one place to manage status. Code-side commands (`/generate-code`, `/dev-run-test`, `/qc-run-test`) run from `service_root` but **write their trace row into `{spec_source}/.trace`** — like they already push `feedback/` there. *(Per-service `.trace` only when there is no `spec_source`.)*
|
|
126
133
|
|
|
127
|
-
> **Why under `spec_source`:** PRD, design-spec, domain knowledge, the **API contract (tech-docs)**,
|
|
134
|
+
> **Why under `spec_source`:** PRD, design-spec, domain knowledge, **all BDD (web/app/system)**, the **API contract (tech-docs)**, tester feedback, **and the `.trace/` coverage state** are all **cross-team artifacts** — they live in the **shared spec repo** so every umbrella (FE/App/BE) and the PM read one source via `/sync`. The service submodule holds only **code** (+ build/test tooling). `.trace/` and `feedback/` are the dev/QC **write areas** in the spec repo (the PRD/BDD/design-spec/tech-docs there stay read-only for dev/QC — only PO edits those). In single-service mode (no `spec_source`), everything defaults under the repo root — still one repo.
|
|
128
135
|
|
|
129
136
|
---
|
|
130
137
|
|
|
@@ -144,12 +151,12 @@ When `active_service` has been resolved to a real path in Step 1.5 (e.g., `user-
|
|
|
144
151
|
|----------|--------|
|
|
145
152
|
| `conventions.test_command` | service's `conventions.test_command` |
|
|
146
153
|
| `conventions.build_command` | service's `conventions.build_command` |
|
|
147
|
-
| `paths.trace_dir` | `{active_service}/{service paths.trace_dir}`
|
|
148
|
-
| `paths.specs_dir` | `{active_service}/{service paths.specs_dir}`
|
|
154
|
+
| `paths.trace_dir` | **If `spec_source` is set → keep the Step 4 spec-repo route (`{spec_source}/.trace`); ignore any service-level `trace_dir`.** Only when there is no `spec_source`: `{active_service}/{service paths.trace_dir}` (default `{active_service}/.trace`). |
|
|
155
|
+
| `paths.specs_dir` | **If `spec_source` is set → keep the Step 4 spec-repo route (`{spec_source}/specs/bdd`); ignore any service-level `specs_dir`** (BDD is cross-team, never per-service in this mode). Only when there is no `spec_source`: `{active_service}/{service paths.specs_dir}` if set, else the Step 1.5 override. |
|
|
149
156
|
|
|
150
157
|
**3. Store** `service_root = {active_service}` as the working directory anchor for all downstream commands:
|
|
151
158
|
- Shell commands (`/dev-run-test`, `/dev-gen-test`) run **from within** `service_root`
|
|
152
|
-
-
|
|
159
|
+
- **Source/test files** are written relative to `service_root`; **trace TSVs** are written to `{paths.trace_dir}` (the spec repo when `spec_source` is set — a cross-repo write, committed/pushed to the spec submodule like `feedback/`).
|
|
153
160
|
|
|
154
161
|
**4. If service config not found** — keep umbrella defaults, still set `service_root = {active_service}` (path anchor is always needed even without a config override).
|
|
155
162
|
|
|
@@ -451,6 +458,36 @@ Output Artifacts:
|
|
|
451
458
|
|
|
452
459
|
If no files were written (e.g., review or analysis commands) → write `Output Artifacts: none (read-only)`.
|
|
453
460
|
|
|
461
|
+
## Pipeline Position
|
|
462
|
+
|
|
463
|
+
Print a one-line map of the pipeline with the CURRENT command's phase marked `◀ bạn ở đây`,
|
|
464
|
+
so the user always sees where this command sits in the end-to-end flow:
|
|
465
|
+
|
|
466
|
+
```
|
|
467
|
+
Discovery → PRD → [Design Spec] → BDD → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
Find the current command in this phase legend and mark **its** phase in the map above:
|
|
471
|
+
|
|
472
|
+
| Phase | Commands |
|
|
473
|
+
|-------|----------|
|
|
474
|
+
| Discovery | `/define-product` |
|
|
475
|
+
| PRD | `/generate-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
476
|
+
| Design Spec | `/generate-design-spec` |
|
|
477
|
+
| BDD | `/generate-bdd` · `/review-context` (BDD) |
|
|
478
|
+
| Tech Design | `/generate-tech-docs` · `/map-testids` · `/review-tech-docs` |
|
|
479
|
+
| Code | `/generate-code` · `/review-code` |
|
|
480
|
+
| Dev Self-Check | `/dev-gen-test` · `/dev-run-test` · `/dev-smoke-test` |
|
|
481
|
+
| QC | `/qc-analyze` · `/qc-plan` · `/qc-design-test` · `/qc-review` · `/qc-run-test` · `/qc-report` |
|
|
482
|
+
| Trace Audit | `/validate-traces` |
|
|
483
|
+
|
|
484
|
+
For a **review command**, also append the 3-step review loop with the current step marked, e.g.:
|
|
485
|
+
`Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume`.
|
|
486
|
+
|
|
487
|
+
**Cross-cutting commands** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
|
|
488
|
+
`/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) sit outside the linear pipeline —
|
|
489
|
+
**omit the Pipeline line entirely** for these (do not force-fit them onto the map).
|
|
490
|
+
|
|
454
491
|
## Next Command Suggestion
|
|
455
492
|
|
|
456
493
|
Suggest the logical next command based on workflow phase:
|
|
@@ -492,10 +529,13 @@ Suggest the logical next command based on workflow phase:
|
|
|
492
529
|
Format the footer as:
|
|
493
530
|
```
|
|
494
531
|
---
|
|
495
|
-
Status
|
|
532
|
+
Status : {badge}
|
|
496
533
|
{Output Artifacts block}
|
|
497
|
-
|
|
534
|
+
Pipeline : Discovery → PRD → [BDD ◀ bạn ở đây] → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
535
|
+
(review cmd) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
|
|
536
|
+
Next : {suggested command with example arguments}
|
|
498
537
|
```
|
|
538
|
+
*(Omit the `Pipeline` line for cross-cutting commands listed above.)*
|
|
499
539
|
|
|
500
540
|
|
|
501
541
|
---
|
|
@@ -602,6 +642,36 @@ Output Artifacts:
|
|
|
602
642
|
|
|
603
643
|
If no files were written (e.g., review or analysis commands) → write `Output Artifacts: none (read-only)`.
|
|
604
644
|
|
|
645
|
+
## Pipeline Position
|
|
646
|
+
|
|
647
|
+
Print a one-line map of the pipeline with the CURRENT command's phase marked `◀ bạn ở đây`,
|
|
648
|
+
so the user always sees where this command sits in the end-to-end flow:
|
|
649
|
+
|
|
650
|
+
```
|
|
651
|
+
Discovery → PRD → [Design Spec] → BDD → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
Find the current command in this phase legend and mark **its** phase in the map above:
|
|
655
|
+
|
|
656
|
+
| Phase | Commands |
|
|
657
|
+
|-------|----------|
|
|
658
|
+
| Discovery | `/define-product` |
|
|
659
|
+
| PRD | `/generate-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
660
|
+
| Design Spec | `/generate-design-spec` |
|
|
661
|
+
| BDD | `/generate-bdd` · `/review-context` (BDD) |
|
|
662
|
+
| Tech Design | `/generate-tech-docs` · `/map-testids` · `/review-tech-docs` |
|
|
663
|
+
| Code | `/generate-code` · `/review-code` |
|
|
664
|
+
| Dev Self-Check | `/dev-gen-test` · `/dev-run-test` · `/dev-smoke-test` |
|
|
665
|
+
| QC | `/qc-analyze` · `/qc-plan` · `/qc-design-test` · `/qc-review` · `/qc-run-test` · `/qc-report` |
|
|
666
|
+
| Trace Audit | `/validate-traces` |
|
|
667
|
+
|
|
668
|
+
For a **review command**, also append the 3-step review loop with the current step marked, e.g.:
|
|
669
|
+
`Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume`.
|
|
670
|
+
|
|
671
|
+
**Cross-cutting commands** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
|
|
672
|
+
`/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) sit outside the linear pipeline —
|
|
673
|
+
**omit the Pipeline line entirely** for these (do not force-fit them onto the map).
|
|
674
|
+
|
|
605
675
|
## Next Command Suggestion
|
|
606
676
|
|
|
607
677
|
Suggest the logical next command based on workflow phase:
|
|
@@ -643,10 +713,13 @@ Suggest the logical next command based on workflow phase:
|
|
|
643
713
|
Format the footer as:
|
|
644
714
|
```
|
|
645
715
|
---
|
|
646
|
-
Status
|
|
716
|
+
Status : {badge}
|
|
647
717
|
{Output Artifacts block}
|
|
648
|
-
|
|
718
|
+
Pipeline : Discovery → PRD → [BDD ◀ bạn ở đây] → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
719
|
+
(review cmd) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
|
|
720
|
+
Next : {suggested command with example arguments}
|
|
649
721
|
```
|
|
722
|
+
*(Omit the `Pipeline` line for cross-cutting commands listed above.)*
|
|
650
723
|
|
|
651
724
|
|
|
652
725
|
---
|
|
@@ -710,6 +783,36 @@ Output Artifacts:
|
|
|
710
783
|
|
|
711
784
|
If no files were written (e.g., review or analysis commands) → write `Output Artifacts: none (read-only)`.
|
|
712
785
|
|
|
786
|
+
## Pipeline Position
|
|
787
|
+
|
|
788
|
+
Print a one-line map of the pipeline with the CURRENT command's phase marked `◀ bạn ở đây`,
|
|
789
|
+
so the user always sees where this command sits in the end-to-end flow:
|
|
790
|
+
|
|
791
|
+
```
|
|
792
|
+
Discovery → PRD → [Design Spec] → BDD → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
793
|
+
```
|
|
794
|
+
|
|
795
|
+
Find the current command in this phase legend and mark **its** phase in the map above:
|
|
796
|
+
|
|
797
|
+
| Phase | Commands |
|
|
798
|
+
|-------|----------|
|
|
799
|
+
| Discovery | `/define-product` |
|
|
800
|
+
| PRD | `/generate-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
801
|
+
| Design Spec | `/generate-design-spec` |
|
|
802
|
+
| BDD | `/generate-bdd` · `/review-context` (BDD) |
|
|
803
|
+
| Tech Design | `/generate-tech-docs` · `/map-testids` · `/review-tech-docs` |
|
|
804
|
+
| Code | `/generate-code` · `/review-code` |
|
|
805
|
+
| Dev Self-Check | `/dev-gen-test` · `/dev-run-test` · `/dev-smoke-test` |
|
|
806
|
+
| QC | `/qc-analyze` · `/qc-plan` · `/qc-design-test` · `/qc-review` · `/qc-run-test` · `/qc-report` |
|
|
807
|
+
| Trace Audit | `/validate-traces` |
|
|
808
|
+
|
|
809
|
+
For a **review command**, also append the 3-step review loop with the current step marked, e.g.:
|
|
810
|
+
`Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume`.
|
|
811
|
+
|
|
812
|
+
**Cross-cutting commands** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
|
|
813
|
+
`/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) sit outside the linear pipeline —
|
|
814
|
+
**omit the Pipeline line entirely** for these (do not force-fit them onto the map).
|
|
815
|
+
|
|
713
816
|
## Next Command Suggestion
|
|
714
817
|
|
|
715
818
|
Suggest the logical next command based on workflow phase:
|
|
@@ -751,8 +854,11 @@ Suggest the logical next command based on workflow phase:
|
|
|
751
854
|
Format the footer as:
|
|
752
855
|
```
|
|
753
856
|
---
|
|
754
|
-
Status
|
|
857
|
+
Status : {badge}
|
|
755
858
|
{Output Artifacts block}
|
|
756
|
-
|
|
859
|
+
Pipeline : Discovery → PRD → [BDD ◀ bạn ở đây] → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
860
|
+
(review cmd) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
|
|
861
|
+
Next : {suggested command with example arguments}
|
|
757
862
|
```
|
|
863
|
+
*(Omit the `Pipeline` line for cross-cutting commands listed above.)*
|
|
758
864
|
|
|
@@ -141,6 +141,8 @@ Read `.agent/project-context.yaml`. Extract and store:
|
|
|
141
141
|
- `paths.specs_dir` → BDD specs root
|
|
142
142
|
- `paths.prd_dir` → PRD documents root
|
|
143
143
|
- `paths.refinement_dir` → findings/review output dir
|
|
144
|
+
- `paths.qc_dir` → QC automation artifacts root (visible top-level, one subfolder per UC: `{qc_dir}/{UC-ID}/`)
|
|
145
|
+
- `paths.qc_skills_dir` → where qc-* commands load QC skills from (default bundled `.agent/skills/qc`; override to the QC team's own repo/submodule so framework upgrade won't overwrite them)
|
|
144
146
|
- `paths.product_definitions_dir` → product definitions root
|
|
145
147
|
- `paths.domain_knowledge_dir` → domain knowledge root
|
|
146
148
|
- `paths.business_dictionary` → path to business-dictionary.md
|
|
@@ -153,6 +155,8 @@ If `paths` section is absent, use these defaults:
|
|
|
153
155
|
- `specs_dir` = `specs/bdd`
|
|
154
156
|
- `prd_dir` = `specs/prd`
|
|
155
157
|
- `refinement_dir` = `.agent/review`
|
|
158
|
+
- `qc_dir` = `docs`
|
|
159
|
+
- `qc_skills_dir` = `.agent/skills/qc`
|
|
156
160
|
- `product_definitions_dir` = `specs/product-definition`
|
|
157
161
|
- `domain_knowledge_dir` = `specs/domain-knowledge`
|
|
158
162
|
- `business_dictionary` = `specs/domain-knowledge/business-dictionary.md`
|
|
@@ -178,7 +182,7 @@ If `services` section is present:
|
|
|
178
182
|
- If `$ARGUMENTS` contains a path, extract the segment after `prd_dir`
|
|
179
183
|
|
|
180
184
|
**2. Route to service** — if active domain matches a key in `services`:
|
|
181
|
-
- Override `paths.specs_dir` → `services.{domain}.specs_dir`
|
|
185
|
+
- Override `paths.specs_dir` → `services.{domain}.specs_dir` — **only if `setup.spec_source` is NOT set.** When `spec_source` IS set, ALL BDD (web/app/**system**) is a shared cross-team artifact → leave `specs_dir` for step 4 to route to the spec repo; do NOT pin it per-service here.
|
|
182
186
|
- Override `paths.tech_docs_dir` → `services.{domain}.tech_docs_dir` — **only if `setup.spec_source` is NOT set.** When `spec_source` IS set, the tech-design (API contract) is a cross-team artifact and must live in the shared spec repo (handled in step 4), so leave `tech_docs_dir` for step 4 to route — do NOT pin it per-service here.
|
|
183
187
|
- Store `active_service` = `services.{domain}.path`
|
|
184
188
|
- Store `active_service_module` = `services.{domain}.module`
|
|
@@ -189,6 +193,7 @@ If `services` section is present:
|
|
|
189
193
|
- Set `active_service = unresolved`
|
|
190
194
|
|
|
191
195
|
**4. Spec source auto-override** — if `setup.spec_source` is set AND the corresponding path was not already explicitly set in `paths:`:
|
|
196
|
+
- Override `paths.specs_dir` → `{spec_source}/specs/bdd` — **always when `spec_source` is set.** All BDD (web/app/**system**) lives in the shared spec repo so every umbrella (FE/App/BE) reads the same scenarios; the FE tech-design gate + `/generate-code --phase=ui`/`--phase=integration` resolve the `system/` BDD here. *(Per-service `specs/bdd` only when there is no `spec_source`.)*
|
|
192
197
|
- Override `paths.prd_dir` → `{spec_source}/specs/prd`
|
|
193
198
|
- Override `paths.design_spec_dir` → `{spec_source}/specs/design-spec`
|
|
194
199
|
- Override `paths.tech_docs_dir` → `{spec_source}/specs/tech-docs` — **always when `spec_source` is set** (step 2 no longer pins tech-docs per-service in this case). The tech-design IS the cross-team API contract: BE authors it here, and FE/App read it from the same spec submodule at `/generate-code --phase=integration`. *(Per-service tech-docs only happen when there is no `spec_source` — a pure multi-service BE repo with no shared spec module.)*
|
|
@@ -197,8 +202,10 @@ If `services` section is present:
|
|
|
197
202
|
- Override `paths.core_entities` → `{spec_source}/specs/domain-knowledge/core-entities.md`
|
|
198
203
|
- Override `paths.bug_reports_dir` → `{spec_source}/feedback/bug-reports`
|
|
199
204
|
- Override `paths.bdd_proposals_dir` → `{spec_source}/feedback/bdd-proposals`
|
|
205
|
+
- Override `paths.prd_change_requests_dir` → `{spec_source}/feedback/prd-change-requests`
|
|
206
|
+
- Override `paths.trace_dir` → `{spec_source}/.trace` — **always when `spec_source` is set.** Trace TSVs are consolidated in the spec repo (single authoritative location, no per-service split) so the PM/PO has one place to manage status. Code-side commands (`/generate-code`, `/dev-run-test`, `/qc-run-test`) run from `service_root` but **write their trace row into `{spec_source}/.trace`** — like they already push `feedback/` there. *(Per-service `.trace` only when there is no `spec_source`.)*
|
|
200
207
|
|
|
201
|
-
> **Why under `spec_source`:** PRD, design-spec, domain knowledge, the **API contract (tech-docs)**,
|
|
208
|
+
> **Why under `spec_source`:** PRD, design-spec, domain knowledge, **all BDD (web/app/system)**, the **API contract (tech-docs)**, tester feedback, **and the `.trace/` coverage state** are all **cross-team artifacts** — they live in the **shared spec repo** so every umbrella (FE/App/BE) and the PM read one source via `/sync`. The service submodule holds only **code** (+ build/test tooling). `.trace/` and `feedback/` are the dev/QC **write areas** in the spec repo (the PRD/BDD/design-spec/tech-docs there stay read-only for dev/QC — only PO edits those). In single-service mode (no `spec_source`), everything defaults under the repo root — still one repo.
|
|
202
209
|
|
|
203
210
|
---
|
|
204
211
|
|
|
@@ -218,12 +225,12 @@ When `active_service` has been resolved to a real path in Step 1.5 (e.g., `user-
|
|
|
218
225
|
|----------|--------|
|
|
219
226
|
| `conventions.test_command` | service's `conventions.test_command` |
|
|
220
227
|
| `conventions.build_command` | service's `conventions.build_command` |
|
|
221
|
-
| `paths.trace_dir` | `{active_service}/{service paths.trace_dir}`
|
|
222
|
-
| `paths.specs_dir` | `{active_service}/{service paths.specs_dir}`
|
|
228
|
+
| `paths.trace_dir` | **If `spec_source` is set → keep the Step 4 spec-repo route (`{spec_source}/.trace`); ignore any service-level `trace_dir`.** Only when there is no `spec_source`: `{active_service}/{service paths.trace_dir}` (default `{active_service}/.trace`). |
|
|
229
|
+
| `paths.specs_dir` | **If `spec_source` is set → keep the Step 4 spec-repo route (`{spec_source}/specs/bdd`); ignore any service-level `specs_dir`** (BDD is cross-team, never per-service in this mode). Only when there is no `spec_source`: `{active_service}/{service paths.specs_dir}` if set, else the Step 1.5 override. |
|
|
223
230
|
|
|
224
231
|
**3. Store** `service_root = {active_service}` as the working directory anchor for all downstream commands:
|
|
225
232
|
- Shell commands (`/dev-run-test`, `/dev-gen-test`) run **from within** `service_root`
|
|
226
|
-
-
|
|
233
|
+
- **Source/test files** are written relative to `service_root`; **trace TSVs** are written to `{paths.trace_dir}` (the spec repo when `spec_source` is set — a cross-repo write, committed/pushed to the spec submodule like `feedback/`).
|
|
227
234
|
|
|
228
235
|
**4. If service config not found** — keep umbrella defaults, still set `service_root = {active_service}` (path anchor is always needed even without a config override).
|
|
229
236
|
|
|
@@ -480,6 +487,36 @@ Output Artifacts:
|
|
|
480
487
|
|
|
481
488
|
If no files were written (e.g., review or analysis commands) → write `Output Artifacts: none (read-only)`.
|
|
482
489
|
|
|
490
|
+
## Pipeline Position
|
|
491
|
+
|
|
492
|
+
Print a one-line map of the pipeline with the CURRENT command's phase marked `◀ bạn ở đây`,
|
|
493
|
+
so the user always sees where this command sits in the end-to-end flow:
|
|
494
|
+
|
|
495
|
+
```
|
|
496
|
+
Discovery → PRD → [Design Spec] → BDD → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
Find the current command in this phase legend and mark **its** phase in the map above:
|
|
500
|
+
|
|
501
|
+
| Phase | Commands |
|
|
502
|
+
|-------|----------|
|
|
503
|
+
| Discovery | `/define-product` |
|
|
504
|
+
| PRD | `/generate-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
505
|
+
| Design Spec | `/generate-design-spec` |
|
|
506
|
+
| BDD | `/generate-bdd` · `/review-context` (BDD) |
|
|
507
|
+
| Tech Design | `/generate-tech-docs` · `/map-testids` · `/review-tech-docs` |
|
|
508
|
+
| Code | `/generate-code` · `/review-code` |
|
|
509
|
+
| Dev Self-Check | `/dev-gen-test` · `/dev-run-test` · `/dev-smoke-test` |
|
|
510
|
+
| QC | `/qc-analyze` · `/qc-plan` · `/qc-design-test` · `/qc-review` · `/qc-run-test` · `/qc-report` |
|
|
511
|
+
| Trace Audit | `/validate-traces` |
|
|
512
|
+
|
|
513
|
+
For a **review command**, also append the 3-step review loop with the current step marked, e.g.:
|
|
514
|
+
`Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume`.
|
|
515
|
+
|
|
516
|
+
**Cross-cutting commands** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
|
|
517
|
+
`/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) sit outside the linear pipeline —
|
|
518
|
+
**omit the Pipeline line entirely** for these (do not force-fit them onto the map).
|
|
519
|
+
|
|
483
520
|
## Next Command Suggestion
|
|
484
521
|
|
|
485
522
|
Suggest the logical next command based on workflow phase:
|
|
@@ -521,10 +558,13 @@ Suggest the logical next command based on workflow phase:
|
|
|
521
558
|
Format the footer as:
|
|
522
559
|
```
|
|
523
560
|
---
|
|
524
|
-
Status
|
|
561
|
+
Status : {badge}
|
|
525
562
|
{Output Artifacts block}
|
|
526
|
-
|
|
563
|
+
Pipeline : Discovery → PRD → [BDD ◀ bạn ở đây] → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
564
|
+
(review cmd) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
|
|
565
|
+
Next : {suggested command with example arguments}
|
|
527
566
|
```
|
|
567
|
+
*(Omit the `Pipeline` line for cross-cutting commands listed above.)*
|
|
528
568
|
|
|
529
569
|
|
|
530
570
|
```
|
|
@@ -46,6 +46,8 @@ Read `.agent/project-context.yaml`. Extract and store:
|
|
|
46
46
|
- `paths.specs_dir` → BDD specs root
|
|
47
47
|
- `paths.prd_dir` → PRD documents root
|
|
48
48
|
- `paths.refinement_dir` → findings/review output dir
|
|
49
|
+
- `paths.qc_dir` → QC automation artifacts root (visible top-level, one subfolder per UC: `{qc_dir}/{UC-ID}/`)
|
|
50
|
+
- `paths.qc_skills_dir` → where qc-* commands load QC skills from (default bundled `.agent/skills/qc`; override to the QC team's own repo/submodule so framework upgrade won't overwrite them)
|
|
49
51
|
- `paths.product_definitions_dir` → product definitions root
|
|
50
52
|
- `paths.domain_knowledge_dir` → domain knowledge root
|
|
51
53
|
- `paths.business_dictionary` → path to business-dictionary.md
|
|
@@ -58,6 +60,8 @@ If `paths` section is absent, use these defaults:
|
|
|
58
60
|
- `specs_dir` = `specs/bdd`
|
|
59
61
|
- `prd_dir` = `specs/prd`
|
|
60
62
|
- `refinement_dir` = `.agent/review`
|
|
63
|
+
- `qc_dir` = `docs`
|
|
64
|
+
- `qc_skills_dir` = `.agent/skills/qc`
|
|
61
65
|
- `product_definitions_dir` = `specs/product-definition`
|
|
62
66
|
- `domain_knowledge_dir` = `specs/domain-knowledge`
|
|
63
67
|
- `business_dictionary` = `specs/domain-knowledge/business-dictionary.md`
|
|
@@ -83,7 +87,7 @@ If `services` section is present:
|
|
|
83
87
|
- If `$ARGUMENTS` contains a path, extract the segment after `prd_dir`
|
|
84
88
|
|
|
85
89
|
**2. Route to service** — if active domain matches a key in `services`:
|
|
86
|
-
- Override `paths.specs_dir` → `services.{domain}.specs_dir`
|
|
90
|
+
- Override `paths.specs_dir` → `services.{domain}.specs_dir` — **only if `setup.spec_source` is NOT set.** When `spec_source` IS set, ALL BDD (web/app/**system**) is a shared cross-team artifact → leave `specs_dir` for step 4 to route to the spec repo; do NOT pin it per-service here.
|
|
87
91
|
- Override `paths.tech_docs_dir` → `services.{domain}.tech_docs_dir` — **only if `setup.spec_source` is NOT set.** When `spec_source` IS set, the tech-design (API contract) is a cross-team artifact and must live in the shared spec repo (handled in step 4), so leave `tech_docs_dir` for step 4 to route — do NOT pin it per-service here.
|
|
88
92
|
- Store `active_service` = `services.{domain}.path`
|
|
89
93
|
- Store `active_service_module` = `services.{domain}.module`
|
|
@@ -94,6 +98,7 @@ If `services` section is present:
|
|
|
94
98
|
- Set `active_service = unresolved`
|
|
95
99
|
|
|
96
100
|
**4. Spec source auto-override** — if `setup.spec_source` is set AND the corresponding path was not already explicitly set in `paths:`:
|
|
101
|
+
- Override `paths.specs_dir` → `{spec_source}/specs/bdd` — **always when `spec_source` is set.** All BDD (web/app/**system**) lives in the shared spec repo so every umbrella (FE/App/BE) reads the same scenarios; the FE tech-design gate + `/generate-code --phase=ui`/`--phase=integration` resolve the `system/` BDD here. *(Per-service `specs/bdd` only when there is no `spec_source`.)*
|
|
97
102
|
- Override `paths.prd_dir` → `{spec_source}/specs/prd`
|
|
98
103
|
- Override `paths.design_spec_dir` → `{spec_source}/specs/design-spec`
|
|
99
104
|
- Override `paths.tech_docs_dir` → `{spec_source}/specs/tech-docs` — **always when `spec_source` is set** (step 2 no longer pins tech-docs per-service in this case). The tech-design IS the cross-team API contract: BE authors it here, and FE/App read it from the same spec submodule at `/generate-code --phase=integration`. *(Per-service tech-docs only happen when there is no `spec_source` — a pure multi-service BE repo with no shared spec module.)*
|
|
@@ -102,8 +107,10 @@ If `services` section is present:
|
|
|
102
107
|
- Override `paths.core_entities` → `{spec_source}/specs/domain-knowledge/core-entities.md`
|
|
103
108
|
- Override `paths.bug_reports_dir` → `{spec_source}/feedback/bug-reports`
|
|
104
109
|
- Override `paths.bdd_proposals_dir` → `{spec_source}/feedback/bdd-proposals`
|
|
110
|
+
- Override `paths.prd_change_requests_dir` → `{spec_source}/feedback/prd-change-requests`
|
|
111
|
+
- Override `paths.trace_dir` → `{spec_source}/.trace` — **always when `spec_source` is set.** Trace TSVs are consolidated in the spec repo (single authoritative location, no per-service split) so the PM/PO has one place to manage status. Code-side commands (`/generate-code`, `/dev-run-test`, `/qc-run-test`) run from `service_root` but **write their trace row into `{spec_source}/.trace`** — like they already push `feedback/` there. *(Per-service `.trace` only when there is no `spec_source`.)*
|
|
105
112
|
|
|
106
|
-
> **Why under `spec_source`:** PRD, design-spec, domain knowledge, the **API contract (tech-docs)**,
|
|
113
|
+
> **Why under `spec_source`:** PRD, design-spec, domain knowledge, **all BDD (web/app/system)**, the **API contract (tech-docs)**, tester feedback, **and the `.trace/` coverage state** are all **cross-team artifacts** — they live in the **shared spec repo** so every umbrella (FE/App/BE) and the PM read one source via `/sync`. The service submodule holds only **code** (+ build/test tooling). `.trace/` and `feedback/` are the dev/QC **write areas** in the spec repo (the PRD/BDD/design-spec/tech-docs there stay read-only for dev/QC — only PO edits those). In single-service mode (no `spec_source`), everything defaults under the repo root — still one repo.
|
|
107
114
|
|
|
108
115
|
---
|
|
109
116
|
|
|
@@ -123,12 +130,12 @@ When `active_service` has been resolved to a real path in Step 1.5 (e.g., `user-
|
|
|
123
130
|
|----------|--------|
|
|
124
131
|
| `conventions.test_command` | service's `conventions.test_command` |
|
|
125
132
|
| `conventions.build_command` | service's `conventions.build_command` |
|
|
126
|
-
| `paths.trace_dir` | `{active_service}/{service paths.trace_dir}`
|
|
127
|
-
| `paths.specs_dir` | `{active_service}/{service paths.specs_dir}`
|
|
133
|
+
| `paths.trace_dir` | **If `spec_source` is set → keep the Step 4 spec-repo route (`{spec_source}/.trace`); ignore any service-level `trace_dir`.** Only when there is no `spec_source`: `{active_service}/{service paths.trace_dir}` (default `{active_service}/.trace`). |
|
|
134
|
+
| `paths.specs_dir` | **If `spec_source` is set → keep the Step 4 spec-repo route (`{spec_source}/specs/bdd`); ignore any service-level `specs_dir`** (BDD is cross-team, never per-service in this mode). Only when there is no `spec_source`: `{active_service}/{service paths.specs_dir}` if set, else the Step 1.5 override. |
|
|
128
135
|
|
|
129
136
|
**3. Store** `service_root = {active_service}` as the working directory anchor for all downstream commands:
|
|
130
137
|
- Shell commands (`/dev-run-test`, `/dev-gen-test`) run **from within** `service_root`
|
|
131
|
-
-
|
|
138
|
+
- **Source/test files** are written relative to `service_root`; **trace TSVs** are written to `{paths.trace_dir}` (the spec repo when `spec_source` is set — a cross-repo write, committed/pushed to the spec submodule like `feedback/`).
|
|
132
139
|
|
|
133
140
|
**4. If service config not found** — keep umbrella defaults, still set `service_root = {active_service}` (path anchor is always needed even without a config override).
|
|
134
141
|
|
|
@@ -461,6 +468,36 @@ Output Artifacts:
|
|
|
461
468
|
|
|
462
469
|
If no files were written (e.g., review or analysis commands) → write `Output Artifacts: none (read-only)`.
|
|
463
470
|
|
|
471
|
+
## Pipeline Position
|
|
472
|
+
|
|
473
|
+
Print a one-line map of the pipeline with the CURRENT command's phase marked `◀ bạn ở đây`,
|
|
474
|
+
so the user always sees where this command sits in the end-to-end flow:
|
|
475
|
+
|
|
476
|
+
```
|
|
477
|
+
Discovery → PRD → [Design Spec] → BDD → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
Find the current command in this phase legend and mark **its** phase in the map above:
|
|
481
|
+
|
|
482
|
+
| Phase | Commands |
|
|
483
|
+
|-------|----------|
|
|
484
|
+
| Discovery | `/define-product` |
|
|
485
|
+
| PRD | `/generate-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
486
|
+
| Design Spec | `/generate-design-spec` |
|
|
487
|
+
| BDD | `/generate-bdd` · `/review-context` (BDD) |
|
|
488
|
+
| Tech Design | `/generate-tech-docs` · `/map-testids` · `/review-tech-docs` |
|
|
489
|
+
| Code | `/generate-code` · `/review-code` |
|
|
490
|
+
| Dev Self-Check | `/dev-gen-test` · `/dev-run-test` · `/dev-smoke-test` |
|
|
491
|
+
| QC | `/qc-analyze` · `/qc-plan` · `/qc-design-test` · `/qc-review` · `/qc-run-test` · `/qc-report` |
|
|
492
|
+
| Trace Audit | `/validate-traces` |
|
|
493
|
+
|
|
494
|
+
For a **review command**, also append the 3-step review loop with the current step marked, e.g.:
|
|
495
|
+
`Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume`.
|
|
496
|
+
|
|
497
|
+
**Cross-cutting commands** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
|
|
498
|
+
`/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) sit outside the linear pipeline —
|
|
499
|
+
**omit the Pipeline line entirely** for these (do not force-fit them onto the map).
|
|
500
|
+
|
|
464
501
|
## Next Command Suggestion
|
|
465
502
|
|
|
466
503
|
Suggest the logical next command based on workflow phase:
|
|
@@ -502,8 +539,11 @@ Suggest the logical next command based on workflow phase:
|
|
|
502
539
|
Format the footer as:
|
|
503
540
|
```
|
|
504
541
|
---
|
|
505
|
-
Status
|
|
542
|
+
Status : {badge}
|
|
506
543
|
{Output Artifacts block}
|
|
507
|
-
|
|
544
|
+
Pipeline : Discovery → PRD → [BDD ◀ bạn ở đây] → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
545
|
+
(review cmd) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
|
|
546
|
+
Next : {suggested command with example arguments}
|
|
508
547
|
```
|
|
548
|
+
*(Omit the `Pipeline` line for cross-cutting commands listed above.)*
|
|
509
549
|
|
package/skills/prd/SKILL.md
CHANGED
|
@@ -180,6 +180,36 @@ Output Artifacts:
|
|
|
180
180
|
|
|
181
181
|
If no files were written (e.g., review or analysis commands) → write `Output Artifacts: none (read-only)`.
|
|
182
182
|
|
|
183
|
+
## Pipeline Position
|
|
184
|
+
|
|
185
|
+
Print a one-line map of the pipeline with the CURRENT command's phase marked `◀ bạn ở đây`,
|
|
186
|
+
so the user always sees where this command sits in the end-to-end flow:
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
Discovery → PRD → [Design Spec] → BDD → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Find the current command in this phase legend and mark **its** phase in the map above:
|
|
193
|
+
|
|
194
|
+
| Phase | Commands |
|
|
195
|
+
|-------|----------|
|
|
196
|
+
| Discovery | `/define-product` |
|
|
197
|
+
| PRD | `/generate-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
198
|
+
| Design Spec | `/generate-design-spec` |
|
|
199
|
+
| BDD | `/generate-bdd` · `/review-context` (BDD) |
|
|
200
|
+
| Tech Design | `/generate-tech-docs` · `/map-testids` · `/review-tech-docs` |
|
|
201
|
+
| Code | `/generate-code` · `/review-code` |
|
|
202
|
+
| Dev Self-Check | `/dev-gen-test` · `/dev-run-test` · `/dev-smoke-test` |
|
|
203
|
+
| QC | `/qc-analyze` · `/qc-plan` · `/qc-design-test` · `/qc-review` · `/qc-run-test` · `/qc-report` |
|
|
204
|
+
| Trace Audit | `/validate-traces` |
|
|
205
|
+
|
|
206
|
+
For a **review command**, also append the 3-step review loop with the current step marked, e.g.:
|
|
207
|
+
`Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume`.
|
|
208
|
+
|
|
209
|
+
**Cross-cutting commands** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
|
|
210
|
+
`/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) sit outside the linear pipeline —
|
|
211
|
+
**omit the Pipeline line entirely** for these (do not force-fit them onto the map).
|
|
212
|
+
|
|
183
213
|
## Next Command Suggestion
|
|
184
214
|
|
|
185
215
|
Suggest the logical next command based on workflow phase:
|
|
@@ -221,10 +251,13 @@ Suggest the logical next command based on workflow phase:
|
|
|
221
251
|
Format the footer as:
|
|
222
252
|
```
|
|
223
253
|
---
|
|
224
|
-
Status
|
|
254
|
+
Status : {badge}
|
|
225
255
|
{Output Artifacts block}
|
|
226
|
-
|
|
256
|
+
Pipeline : Discovery → PRD → [BDD ◀ bạn ở đây] → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
257
|
+
(review cmd) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
|
|
258
|
+
Next : {suggested command with example arguments}
|
|
227
259
|
```
|
|
260
|
+
*(Omit the `Pipeline` line for cross-cutting commands listed above.)*
|
|
228
261
|
|
|
229
262
|
|
|
230
263
|
---
|
|
@@ -436,6 +469,36 @@ Output Artifacts:
|
|
|
436
469
|
|
|
437
470
|
If no files were written (e.g., review or analysis commands) → write `Output Artifacts: none (read-only)`.
|
|
438
471
|
|
|
472
|
+
## Pipeline Position
|
|
473
|
+
|
|
474
|
+
Print a one-line map of the pipeline with the CURRENT command's phase marked `◀ bạn ở đây`,
|
|
475
|
+
so the user always sees where this command sits in the end-to-end flow:
|
|
476
|
+
|
|
477
|
+
```
|
|
478
|
+
Discovery → PRD → [Design Spec] → BDD → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
Find the current command in this phase legend and mark **its** phase in the map above:
|
|
482
|
+
|
|
483
|
+
| Phase | Commands |
|
|
484
|
+
|-------|----------|
|
|
485
|
+
| Discovery | `/define-product` |
|
|
486
|
+
| PRD | `/generate-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
487
|
+
| Design Spec | `/generate-design-spec` |
|
|
488
|
+
| BDD | `/generate-bdd` · `/review-context` (BDD) |
|
|
489
|
+
| Tech Design | `/generate-tech-docs` · `/map-testids` · `/review-tech-docs` |
|
|
490
|
+
| Code | `/generate-code` · `/review-code` |
|
|
491
|
+
| Dev Self-Check | `/dev-gen-test` · `/dev-run-test` · `/dev-smoke-test` |
|
|
492
|
+
| QC | `/qc-analyze` · `/qc-plan` · `/qc-design-test` · `/qc-review` · `/qc-run-test` · `/qc-report` |
|
|
493
|
+
| Trace Audit | `/validate-traces` |
|
|
494
|
+
|
|
495
|
+
For a **review command**, also append the 3-step review loop with the current step marked, e.g.:
|
|
496
|
+
`Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume`.
|
|
497
|
+
|
|
498
|
+
**Cross-cutting commands** (`/sync`, `/update-framework`, `/fix-bug`, `/debug`, `/learn`,
|
|
499
|
+
`/report-bug`, `/propose-scenario`, `/generate-spec-manifest`) sit outside the linear pipeline —
|
|
500
|
+
**omit the Pipeline line entirely** for these (do not force-fit them onto the map).
|
|
501
|
+
|
|
439
502
|
## Next Command Suggestion
|
|
440
503
|
|
|
441
504
|
Suggest the logical next command based on workflow phase:
|
|
@@ -477,8 +540,11 @@ Suggest the logical next command based on workflow phase:
|
|
|
477
540
|
Format the footer as:
|
|
478
541
|
```
|
|
479
542
|
---
|
|
480
|
-
Status
|
|
543
|
+
Status : {badge}
|
|
481
544
|
{Output Artifacts block}
|
|
482
|
-
|
|
545
|
+
Pipeline : Discovery → PRD → [BDD ◀ bạn ở đây] → Tech Design → Code → Dev Self-Check → QC → Trace Audit
|
|
546
|
+
(review cmd) Vòng review: [① phân tích ◀] → ② Review Board → ③ --resume
|
|
547
|
+
Next : {suggested command with example arguments}
|
|
483
548
|
```
|
|
549
|
+
*(Omit the `Pipeline` line for cross-cutting commands listed above.)*
|
|
484
550
|
|
|
@@ -51,6 +51,10 @@ Mỗi AC gắn mã trace: chức năng + BR-xx để TC sau này map 1-1.
|
|
|
51
51
|
|
|
52
52
|
## Output
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
Ghi vào **mục Acceptance Criteria** của `{paths.qc_dir}/{UC-ID}/REQUIREMENT_ANALYSIS.md`
|
|
55
|
+
(KHÔNG tạo file riêng — qc-analyze chỉ trả 2 file: `REQUIREMENT_ANALYSIS.md` + `DOC_GAPS.md`):
|
|
56
|
+
|
|
57
|
+
- Danh sách AC dạng Given/When/Then, có mã trace về chức năng, business rule (BR-xx)
|
|
58
|
+
và scenario chính thức `{UC-ID}-SC{N}` của `.feature`.
|
|
55
59
|
- Bảng ma trận: BR / chức năng × AC để xác nhận không bỏ sót.
|
|
56
60
|
- Đây là đầu vào trực tiếp cho `qa-designer` (mỗi AC → ≥1 test case) và `qa-reviewer` (đối chiếu coverage).
|
|
@@ -49,7 +49,11 @@ Với rule có nhiều điều kiện kết hợp → gợi ý dựng **Decision
|
|
|
49
49
|
|
|
50
50
|
## Output
|
|
51
51
|
|
|
52
|
+
Ghi vào **mục Business Rules** của `{paths.qc_dir}/{UC-ID}/REQUIREMENT_ANALYSIS.md`
|
|
53
|
+
(KHÔNG tạo file riêng — qc-analyze chỉ trả 2 file: `REQUIREMENT_ANALYSIS.md` + `DOC_GAPS.md`):
|
|
54
|
+
|
|
52
55
|
- Bảng business rule có ID (BR-xx) để TC trace ngược về.
|
|
53
|
-
- Rule MÂU THUẪN / KHÔNG RÕ → ghi vào `DOC_GAPS.md` (loại CONTRADICTORY / AMBIGUOUS,
|
|
54
|
-
cột "Ảnh hưởng" trỏ BR-xx) rồi ghi vào `DOC_GAPS.md`.
|
|
55
56
|
- Gợi ý các rule cần Decision Table / BVA khi sang qa-designer.
|
|
57
|
+
|
|
58
|
+
Rule MÂU THUẪN / KHÔNG RÕ → ghi vào `{paths.qc_dir}/{UC-ID}/DOC_GAPS.md`
|
|
59
|
+
(loại CONTRADICTORY / AMBIGUOUS, cột "Ảnh hưởng" trỏ BR-xx).
|
|
@@ -52,9 +52,13 @@ Thể hiện luồng dạng bước tuần tự hoặc sơ đồ text:
|
|
|
52
52
|
|
|
53
53
|
## Output
|
|
54
54
|
|
|
55
|
+
Ghi vào **mục Data Flow** của `{paths.qc_dir}/{UC-ID}/REQUIREMENT_ANALYSIS.md`
|
|
56
|
+
(KHÔNG tạo file riêng — qc-analyze chỉ trả 2 file: `REQUIREMENT_ANALYSIS.md` + `DOC_GAPS.md`):
|
|
57
|
+
|
|
55
58
|
- Sơ đồ/list luồng dữ liệu cho mỗi kịch bản chính.
|
|
56
59
|
- Danh sách integration point + state change + failure point.
|
|
57
|
-
- Chặng nào luồng/hành vi chưa rõ (vd lỗi xử lý ra sao, retry, partial commit) →
|
|
58
|
-
ghi vào `DOC_GAPS.md` (loại MISSING / OPEN QUESTION).
|
|
59
60
|
- Gợi ý loại test cần cho từng điểm (gui-feature / integration / e2e) khi sang qa-designer.
|
|
60
61
|
- Dữ liệu/trạng thái cần chuẩn bị & cleanup → đầu vào fixture cho qa-runner.
|
|
62
|
+
|
|
63
|
+
Chặng nào luồng/hành vi chưa rõ (vd lỗi xử lý ra sao, retry, partial commit) →
|
|
64
|
+
ghi vào `{paths.qc_dir}/{UC-ID}/DOC_GAPS.md` (loại MISSING / OPEN QUESTION).
|
|
@@ -46,12 +46,16 @@ F. GIẢ ĐỊNH & CÂU HỎI MỞ: điều suy ra được vs điều cần dev
|
|
|
46
46
|
|
|
47
47
|
## Output
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
⚠️ `/qc-analyze` chỉ ghi **ĐÚNG 2 FILE** cho mỗi UC, đặt trong thư mục QC **lộ ra ngoài**
|
|
50
|
+
`{paths.qc_dir}/{UC-ID}/` (mặc định `docs/{UC-ID}/` — KHÔNG để trong `.agent/` ẩn):
|
|
51
|
+
`REQUIREMENT_ANALYSIS.md` + `DOC_GAPS.md`. KHÔNG tách mỗi bước phân tích thành file riêng.
|
|
52
|
+
|
|
53
|
+
Phần spec-breakdown là **mục đầu tiên** của `REQUIREMENT_ANALYSIS.md`:
|
|
50
54
|
- Bảng chức năng + input/output/constraint
|
|
51
55
|
- Sơ đồ/list luồng chính & phụ
|
|
52
56
|
- Danh sách giả định và câu hỏi mở (đánh dấu rõ điều CHƯA chắc)
|
|
53
57
|
|
|
54
|
-
Đồng thời ghi mọi khoảng trống phát hiện vào `
|
|
55
|
-
(theo
|
|
58
|
+
Đồng thời ghi mọi khoảng trống phát hiện vào `{paths.qc_dir}/{UC-ID}/DOC_GAPS.md`
|
|
59
|
+
(theo `{paths.qc_skills_dir}/qa-analyst/DOC_GAPS.template.md`), mỗi gap có ID `GAP-xx`.
|
|
56
60
|
|
|
57
61
|
Kết thúc bằng gợi ý: feature đã đủ rõ để chuyển sang `qa-planner` (phân tích rủi ro) chưa.
|
|
@@ -37,5 +37,5 @@ Mỗi journey → 1 TC bám Format; Expected = chuỗi verify point; chuẩn b
|
|
|
37
37
|
**Journey phụ thuộc gap vẫn viết + 🚫 Block: GAP-xx**, định tuyến ghi "dự kiến theo BR". Trace BR.
|
|
38
38
|
|
|
39
39
|
## Output
|
|
40
|
-
File TC e2e (hoặc nhóm E2E trong file feature) trong `
|
|
40
|
+
File TC e2e (hoặc nhóm E2E trong file feature) trong `{paths.qc_dir}/{UC-ID}/test-cases/`.
|
|
41
41
|
In bảng `E2E-ID | Journey | Pri | Trace | Block` + bảng TC block. Bàn giao `qa-reviewer`.
|