@educa-corp/sdd-framework 0.4.2 → 0.5.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/bin/self-check.js +124 -6
- package/bin/trace-schema.json +1199 -692
- package/commands/debug.md +3 -2
- package/commands/define-product.md +3 -2
- package/commands/dev-gen-test.md +37 -9
- package/commands/dev-run-test.md +37 -9
- package/commands/dev-smoke-test.md +3 -2
- package/commands/extend-prd.md +907 -0
- package/commands/extend-prd.tmpl +270 -0
- package/commands/fix-bug.md +37 -9
- package/commands/generate-architecture.md +3 -2
- package/commands/generate-bdd.md +56 -13
- package/commands/generate-bdd.tmpl +18 -3
- package/commands/generate-code.md +73 -16
- package/commands/generate-code.tmpl +36 -7
- package/commands/generate-design-spec.md +3 -2
- package/commands/generate-prd.md +28 -2
- package/commands/generate-prd.tmpl +25 -0
- package/commands/generate-spec-manifest.md +3 -2
- package/commands/generate-tech-docs.md +3 -2
- package/commands/learn.md +3 -2
- package/commands/map-testids.md +3 -2
- package/commands/propose-scenario.md +55 -3
- package/commands/propose-scenario.tmpl +52 -1
- package/commands/qc-analyze.md +3 -2
- package/commands/qc-design-test.md +4 -2
- package/commands/qc-design-test.tmpl +1 -0
- package/commands/qc-plan.md +3 -2
- package/commands/qc-report.md +3 -2
- package/commands/qc-review.md +3 -2
- package/commands/qc-run-test.md +50 -10
- package/commands/qc-run-test.tmpl +13 -1
- package/commands/refine-prd.md +3 -2
- package/commands/report-bug.md +3 -2
- package/commands/review-code.md +7 -5
- package/commands/review-code.tmpl +4 -3
- package/commands/review-context.md +6 -4
- package/commands/review-context.tmpl +3 -2
- package/commands/review-tech-docs.md +3 -2
- package/commands/setup-ai-first.md +3 -2
- package/commands/sync.md +40 -16
- package/commands/sync.tmpl +37 -14
- package/commands/update-framework.md +3 -2
- package/commands/validate-traces.md +318 -33
- package/commands/validate-traces.tmpl +315 -31
- package/core/FRAMEWORK_VERSION +1 -1
- package/core/commands/debug.md +3 -2
- package/core/commands/define-product.md +3 -2
- package/core/commands/dev-gen-test.md +37 -9
- package/core/commands/dev-run-test.md +37 -9
- package/core/commands/dev-smoke-test.md +3 -2
- package/core/commands/extend-prd.md +907 -0
- package/core/commands/fix-bug.md +37 -9
- package/core/commands/generate-architecture.md +3 -2
- package/core/commands/generate-bdd.md +56 -13
- package/core/commands/generate-code.md +73 -16
- package/core/commands/generate-design-spec.md +3 -2
- package/core/commands/generate-prd.md +28 -2
- package/core/commands/generate-spec-manifest.md +3 -2
- package/core/commands/generate-tech-docs.md +3 -2
- package/core/commands/learn.md +3 -2
- package/core/commands/map-testids.md +3 -2
- package/core/commands/propose-scenario.md +55 -3
- package/core/commands/qc-analyze.md +3 -2
- package/core/commands/qc-design-test.md +4 -2
- package/core/commands/qc-plan.md +3 -2
- package/core/commands/qc-report.md +3 -2
- package/core/commands/qc-review.md +3 -2
- package/core/commands/qc-run-test.md +50 -10
- package/core/commands/refine-prd.md +3 -2
- package/core/commands/report-bug.md +3 -2
- package/core/commands/review-code.md +7 -5
- package/core/commands/review-context.md +6 -4
- package/core/commands/review-tech-docs.md +3 -2
- package/core/commands/setup-ai-first.md +3 -2
- package/core/commands/sync.md +40 -16
- package/core/commands/update-framework.md +3 -2
- package/core/commands/validate-traces.md +318 -33
- package/core/rules/workflow.md +18 -0
- package/core/steps/report-footer.md +3 -2
- package/core/steps/trace-mirror.md +34 -7
- package/core/templates/feature.template +1 -1
- package/docs/01-getting-started/installation.md +18 -1
- package/docs/01-getting-started/what-is-sdd.md +4 -2
- package/docs/02-concepts/architecture.md +27 -3
- package/docs/02-concepts/pipeline-steps/02-specification.md +39 -3
- package/docs/02-concepts/pipeline-steps/04-bdd.md +24 -2
- package/docs/02-concepts/pipeline-steps/05-tech-docs.md +18 -1
- package/docs/02-concepts/pipeline-steps/06-code.md +35 -4
- package/docs/02-concepts/pipeline-steps/09-validate-traces.md +137 -12
- package/docs/02-concepts/pipeline-steps/10-feedback-loop.md +59 -3
- package/docs/02-concepts/roles-and-hitl.md +1 -1
- package/docs/02-concepts/traceability.md +126 -117
- package/docs/03-guides/developer.md +20 -4
- package/docs/03-guides/product-owner.md +72 -68
- package/docs/03-guides/tester-qa.md +81 -70
- package/docs/04-reference/commands.md +134 -105
- package/docs/04-reference/configuration.md +146 -94
- package/docs/04-reference/trace-schema.md +26 -9
- package/docs/explain/02-generate-prd.md +80 -78
- package/docs/explain/02b-extend-prd.md +125 -0
- package/docs/explain/03-refine-prd.md +86 -86
- package/docs/explain/04-review-context.md +18 -1
- package/docs/explain/06-generate-bdd.md +23 -0
- package/docs/explain/08-review-tech-docs.md +20 -5
- package/docs/explain/10-review-code.md +36 -2
- package/docs/explain/19-qc-run-test.md +87 -67
- package/docs/explain/21-validate-traces.md +74 -68
- package/docs/explain/23-fix-bug.md +19 -3
- package/docs/explain/26-propose-scenario.md +70 -63
- package/docs/explain/README.md +135 -134
- package/package.json +50 -50
- package/rules/workflow.md +18 -0
- package/steps/report-footer.md +3 -2
- package/steps/trace-mirror.md +34 -7
- package/templates/feature.template +1 -1
|
@@ -950,10 +950,34 @@ Giữ nguyên mọi cột khác (gồm `dev_selftest_at`, do `/dev-run-test` s
|
|
|
950
950
|
---
|
|
951
951
|
|
|
952
952
|
## Refresh Panel Mirror
|
|
953
|
-
# Làm mới panel mirror của Living Docs *(local
|
|
953
|
+
# Làm mới panel mirror của Living Docs *(local)*
|
|
954
954
|
|
|
955
|
-
|
|
956
|
-
|
|
955
|
+
> **Hai vị trí, HAI TÊN KHÁC NHAU — đọc trước khi sửa gì ở đây.**
|
|
956
|
+
>
|
|
957
|
+
> | Đường dẫn | Vai trò | Git |
|
|
958
|
+
> |---|---|---|
|
|
959
|
+
> | `{paths.trace_dir}` (`.trace/` hoặc `{spec_source}/.trace/`) | **AUTHORITATIVE** — TSV + `trace-history.jsonl`. Không regenerate được. | **PHẢI commit** |
|
|
960
|
+
> | `./.trace-mirror/` ở gốc workspace hiện tại | **MIRROR** — bản sao tiện cho panel VS Code. Sinh lại được bất cứ lúc nào. | **Luôn gitignore** |
|
|
961
|
+
>
|
|
962
|
+
> Trước v0.4.3 cả hai đều tên `.trace`, nên một luật gitignore theo tên có thể **xoá sạch sổ gốc**
|
|
963
|
+
> khi dev mở thẳng spec repo làm workspace (lúc đó hai path bằng nhau). Hai tên khác nhau làm
|
|
964
|
+
> luật git đọc được bằng mắt và **không còn ca nhập nhằng nào**: `.trace-mirror/` không bao giờ
|
|
965
|
+
> commit, `.trace/` không bao giờ gitignore.
|
|
966
|
+
|
|
967
|
+
## Khi nào CÓ mirror
|
|
968
|
+
|
|
969
|
+
Mirror chỉ tồn tại khi **`{paths.trace_dir}` nằm NGOÀI workspace hiện tại** — panel đọc từ workspace đang mở nên cần một bản sao ở đây.
|
|
970
|
+
|
|
971
|
+
| Tình huống | `{paths.trace_dir}` | Có mirror? |
|
|
972
|
+
|---|---|---|
|
|
973
|
+
| Single-service | `./.trace` — **trong** workspace | ❌ Không. Panel đọc thẳng `.trace/trace-report.json`. Bỏ qua cả file này. |
|
|
974
|
+
| Dev mở thẳng **spec repo** | `./.trace` — **trong** workspace | ❌ Không. Như trên. |
|
|
975
|
+
| Umbrella + `spec_source`, dev đứng ở umbrella hoặc service submodule | `{spec_source}/.trace` — **ngoài** workspace | ✅ Có |
|
|
976
|
+
| Umbrella legacy (không `spec_source`) | `.trace` theo từng service | ✅ Có |
|
|
977
|
+
|
|
978
|
+
Quy tắc một dòng: **phân giải `panel_mirror = ./.trace-mirror` ở gốc workspace hiện tại; nếu `{paths.trace_dir}` đã nằm trong workspace này thì bỏ qua toàn bộ bước mirror.**
|
|
979
|
+
|
|
980
|
+
---
|
|
957
981
|
|
|
958
982
|
Sau khi cập nhật TSV authoritative tại `{paths.trace_dir}`:
|
|
959
983
|
|
|
@@ -961,11 +985,14 @@ Sau khi cập nhật TSV authoritative tại `{paths.trace_dir}`:
|
|
|
961
985
|
`{paths.trace_dir}` phân giải về `{spec_source}/.trace` — vị trí authoritative duy nhất.
|
|
962
986
|
Lệnh này chạy từ `service_root`, nên thao tác ghi là **liên-repo vào spec submodule**;
|
|
963
987
|
commit/push spec submodule cho lần cập nhật trace (giống như `feedback/`).
|
|
964
|
-
|
|
965
|
-
|
|
988
|
+
|
|
989
|
+
1. Phân giải `panel_mirror = ./.trace-mirror` tại **gốc workspace hiện tại**.
|
|
990
|
+
2. Nếu `{paths.trace_dir}` **không** nằm trong workspace hiện tại, copy mỗi
|
|
966
991
|
`{UC-ID}-{platform}.tsv` vừa cập nhật → `{panel_mirror}/{UC-ID}-{platform}.tsv` (tạo thư mục; ghi đè).
|
|
967
|
-
Không namespace theo service — chỉ có một bộ trace; service sở hữu được mang
|
|
968
|
-
|
|
992
|
+
Không namespace theo service — chỉ có một bộ trace; service sở hữu được mang ở
|
|
993
|
+
**cột `service` (cột 23)** của chính từng row, do `/generate-bdd` ghi từ `@trace.service`.
|
|
994
|
+
3. **KHÔNG copy `trace-history.jsonl`.** Nó là dữ liệu tích luỹ, không phải thứ sinh lại được —
|
|
995
|
+
nhân bản nó ra một thư mục gitignore là tạo hai lịch sử lệch nhau rồi mất bản thật.
|
|
969
996
|
|
|
970
997
|
**Legacy (không có `spec_source` — trace theo service):**
|
|
971
998
|
Copy mỗi `{UC-ID}-{platform}.tsv` vừa cập nhật → `{panel_mirror}/{service-name}/{UC-ID}-{platform}.tsv`
|
|
@@ -1018,7 +1045,7 @@ Tìm lệnh hiện tại trong bảng phase dưới đây và đánh dấu **pha
|
|
|
1018
1045
|
| Phase | Commands |
|
|
1019
1046
|
|-------|----------|
|
|
1020
1047
|
| Discovery | `/define-product` |
|
|
1021
|
-
| PRD | `/generate-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
1048
|
+
| PRD | `/generate-prd` · `/extend-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
1022
1049
|
| Design Spec | `/generate-design-spec` |
|
|
1023
1050
|
| BDD | `/generate-bdd` · `/review-context` (BDD) |
|
|
1024
1051
|
| Tech Design | `/generate-tech-docs` · `/map-testids` · `/review-tech-docs` |
|
|
@@ -1043,6 +1070,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
|
|
|
1043
1070
|
| /setup-ai-first | `/define-product` để bắt đầu feature đầu tiên |
|
|
1044
1071
|
| /define-product | `/generate-prd {product-definition-file}` |
|
|
1045
1072
|
| /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
|
|
1073
|
+
| /extend-prd | `/refine-prd {prd-file}` (soi phần vừa thêm) rồi `/review-context {prd-file}` → PO duyệt → `/generate-bdd` **chỉ cho UC MỚI**; UC cũ dùng `/validate-traces --realign-prd-version {UC-ID}` |
|
|
1046
1074
|
| /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
|
|
1047
1075
|
| /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` (→ design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX → sửa PRD (giữ draft) |
|
|
1048
1076
|
| /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
|
|
@@ -1068,7 +1096,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
|
|
|
1068
1096
|
| /fix-bug | `/dev-run-test {UC-ID}` (dev_selftest vừa reset về not_run) → tạo PR; nếu fix một `{BUG-ID}` → QC chạy `/qc-run-test {UC-ID}` để verify + đóng bug |
|
|
1069
1097
|
| /debug | `/fix-bug {ticket-id}` nếu cần sửa |
|
|
1070
1098
|
| /report-bug | Gửi cho dev (`/fix-bug {BUG-ID}`); nếu thiếu coverage → `/propose-scenario {UC-ID}` |
|
|
1071
|
-
| /propose-scenario |
|
|
1099
|
+
| /propose-scenario | **Case A** (thiếu scenario cho AC có sẵn) → báo PO/Dev review trong `feedback/bdd-proposals/`; `/generate-bdd` tự chèn khi `Status: accepted`. **Case B** (requirement mới) → `feedback/prd-change-requests/` — PO phải đưa vào PRD trước, KHÔNG tự vào BDD được; `/validate-traces` nhắc lại kèm số ngày chờ chừng nào `Status: Open` |
|
|
1072
1100
|
| /learn | Tiếp tục làm việc — lesson áp dụng ở lệnh kế tiếp |
|
|
1073
1101
|
| /sync | `/validate-traces` để xem độ phủ đầy đủ; xử lý mọi `📥 tester feedback` được nêu |
|
|
1074
1102
|
| /update-framework | Review `git diff .agent/`, commit; `/sync` để đồng bộ nội dung dự án |
|
|
@@ -677,10 +677,34 @@ trực giao với `status` (OK/GAP/DRIFT/UNTRACKED/ORPHANED): `status` theo dõi
|
|
|
677
677
|
theo dõi *kết quả chạy* gần nhất của dev.
|
|
678
678
|
|
|
679
679
|
## Refresh Panel Mirror
|
|
680
|
-
# Làm mới panel mirror của Living Docs *(local
|
|
680
|
+
# Làm mới panel mirror của Living Docs *(local)*
|
|
681
681
|
|
|
682
|
-
|
|
683
|
-
|
|
682
|
+
> **Hai vị trí, HAI TÊN KHÁC NHAU — đọc trước khi sửa gì ở đây.**
|
|
683
|
+
>
|
|
684
|
+
> | Đường dẫn | Vai trò | Git |
|
|
685
|
+
> |---|---|---|
|
|
686
|
+
> | `{paths.trace_dir}` (`.trace/` hoặc `{spec_source}/.trace/`) | **AUTHORITATIVE** — TSV + `trace-history.jsonl`. Không regenerate được. | **PHẢI commit** |
|
|
687
|
+
> | `./.trace-mirror/` ở gốc workspace hiện tại | **MIRROR** — bản sao tiện cho panel VS Code. Sinh lại được bất cứ lúc nào. | **Luôn gitignore** |
|
|
688
|
+
>
|
|
689
|
+
> Trước v0.4.3 cả hai đều tên `.trace`, nên một luật gitignore theo tên có thể **xoá sạch sổ gốc**
|
|
690
|
+
> khi dev mở thẳng spec repo làm workspace (lúc đó hai path bằng nhau). Hai tên khác nhau làm
|
|
691
|
+
> luật git đọc được bằng mắt và **không còn ca nhập nhằng nào**: `.trace-mirror/` không bao giờ
|
|
692
|
+
> commit, `.trace/` không bao giờ gitignore.
|
|
693
|
+
|
|
694
|
+
## Khi nào CÓ mirror
|
|
695
|
+
|
|
696
|
+
Mirror chỉ tồn tại khi **`{paths.trace_dir}` nằm NGOÀI workspace hiện tại** — panel đọc từ workspace đang mở nên cần một bản sao ở đây.
|
|
697
|
+
|
|
698
|
+
| Tình huống | `{paths.trace_dir}` | Có mirror? |
|
|
699
|
+
|---|---|---|
|
|
700
|
+
| Single-service | `./.trace` — **trong** workspace | ❌ Không. Panel đọc thẳng `.trace/trace-report.json`. Bỏ qua cả file này. |
|
|
701
|
+
| Dev mở thẳng **spec repo** | `./.trace` — **trong** workspace | ❌ Không. Như trên. |
|
|
702
|
+
| Umbrella + `spec_source`, dev đứng ở umbrella hoặc service submodule | `{spec_source}/.trace` — **ngoài** workspace | ✅ Có |
|
|
703
|
+
| Umbrella legacy (không `spec_source`) | `.trace` theo từng service | ✅ Có |
|
|
704
|
+
|
|
705
|
+
Quy tắc một dòng: **phân giải `panel_mirror = ./.trace-mirror` ở gốc workspace hiện tại; nếu `{paths.trace_dir}` đã nằm trong workspace này thì bỏ qua toàn bộ bước mirror.**
|
|
706
|
+
|
|
707
|
+
---
|
|
684
708
|
|
|
685
709
|
Sau khi cập nhật TSV authoritative tại `{paths.trace_dir}`:
|
|
686
710
|
|
|
@@ -688,11 +712,14 @@ Sau khi cập nhật TSV authoritative tại `{paths.trace_dir}`:
|
|
|
688
712
|
`{paths.trace_dir}` phân giải về `{spec_source}/.trace` — vị trí authoritative duy nhất.
|
|
689
713
|
Lệnh này chạy từ `service_root`, nên thao tác ghi là **liên-repo vào spec submodule**;
|
|
690
714
|
commit/push spec submodule cho lần cập nhật trace (giống như `feedback/`).
|
|
691
|
-
|
|
692
|
-
|
|
715
|
+
|
|
716
|
+
1. Phân giải `panel_mirror = ./.trace-mirror` tại **gốc workspace hiện tại**.
|
|
717
|
+
2. Nếu `{paths.trace_dir}` **không** nằm trong workspace hiện tại, copy mỗi
|
|
693
718
|
`{UC-ID}-{platform}.tsv` vừa cập nhật → `{panel_mirror}/{UC-ID}-{platform}.tsv` (tạo thư mục; ghi đè).
|
|
694
|
-
Không namespace theo service — chỉ có một bộ trace; service sở hữu được mang
|
|
695
|
-
|
|
719
|
+
Không namespace theo service — chỉ có một bộ trace; service sở hữu được mang ở
|
|
720
|
+
**cột `service` (cột 23)** của chính từng row, do `/generate-bdd` ghi từ `@trace.service`.
|
|
721
|
+
3. **KHÔNG copy `trace-history.jsonl`.** Nó là dữ liệu tích luỹ, không phải thứ sinh lại được —
|
|
722
|
+
nhân bản nó ra một thư mục gitignore là tạo hai lịch sử lệch nhau rồi mất bản thật.
|
|
696
723
|
|
|
697
724
|
**Legacy (không có `spec_source` — trace theo service):**
|
|
698
725
|
Copy mỗi `{UC-ID}-{platform}.tsv` vừa cập nhật → `{panel_mirror}/{service-name}/{UC-ID}-{platform}.tsv`
|
|
@@ -743,7 +770,7 @@ Tìm lệnh hiện tại trong bảng phase dưới đây và đánh dấu **pha
|
|
|
743
770
|
| Phase | Commands |
|
|
744
771
|
|-------|----------|
|
|
745
772
|
| Discovery | `/define-product` |
|
|
746
|
-
| PRD | `/generate-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
773
|
+
| PRD | `/generate-prd` · `/extend-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
747
774
|
| Design Spec | `/generate-design-spec` |
|
|
748
775
|
| BDD | `/generate-bdd` · `/review-context` (BDD) |
|
|
749
776
|
| Tech Design | `/generate-tech-docs` · `/map-testids` · `/review-tech-docs` |
|
|
@@ -768,6 +795,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
|
|
|
768
795
|
| /setup-ai-first | `/define-product` để bắt đầu feature đầu tiên |
|
|
769
796
|
| /define-product | `/generate-prd {product-definition-file}` |
|
|
770
797
|
| /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
|
|
798
|
+
| /extend-prd | `/refine-prd {prd-file}` (soi phần vừa thêm) rồi `/review-context {prd-file}` → PO duyệt → `/generate-bdd` **chỉ cho UC MỚI**; UC cũ dùng `/validate-traces --realign-prd-version {UC-ID}` |
|
|
771
799
|
| /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
|
|
772
800
|
| /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` (→ design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX → sửa PRD (giữ draft) |
|
|
773
801
|
| /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
|
|
@@ -793,7 +821,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
|
|
|
793
821
|
| /fix-bug | `/dev-run-test {UC-ID}` (dev_selftest vừa reset về not_run) → tạo PR; nếu fix một `{BUG-ID}` → QC chạy `/qc-run-test {UC-ID}` để verify + đóng bug |
|
|
794
822
|
| /debug | `/fix-bug {ticket-id}` nếu cần sửa |
|
|
795
823
|
| /report-bug | Gửi cho dev (`/fix-bug {BUG-ID}`); nếu thiếu coverage → `/propose-scenario {UC-ID}` |
|
|
796
|
-
| /propose-scenario |
|
|
824
|
+
| /propose-scenario | **Case A** (thiếu scenario cho AC có sẵn) → báo PO/Dev review trong `feedback/bdd-proposals/`; `/generate-bdd` tự chèn khi `Status: accepted`. **Case B** (requirement mới) → `feedback/prd-change-requests/` — PO phải đưa vào PRD trước, KHÔNG tự vào BDD được; `/validate-traces` nhắc lại kèm số ngày chờ chừng nào `Status: Open` |
|
|
797
825
|
| /learn | Tiếp tục làm việc — lesson áp dụng ở lệnh kế tiếp |
|
|
798
826
|
| /sync | `/validate-traces` để xem độ phủ đầy đủ; xử lý mọi `📥 tester feedback` được nêu |
|
|
799
827
|
| /update-framework | Review `git diff .agent/`, commit; `/sync` để đồng bộ nội dung dự án |
|
|
@@ -716,7 +716,7 @@ Tìm lệnh hiện tại trong bảng phase dưới đây và đánh dấu **pha
|
|
|
716
716
|
| Phase | Commands |
|
|
717
717
|
|-------|----------|
|
|
718
718
|
| Discovery | `/define-product` |
|
|
719
|
-
| PRD | `/generate-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
719
|
+
| PRD | `/generate-prd` · `/extend-prd` · `/refine-prd` · `/review-context` (PRD) |
|
|
720
720
|
| Design Spec | `/generate-design-spec` |
|
|
721
721
|
| BDD | `/generate-bdd` · `/review-context` (BDD) |
|
|
722
722
|
| Tech Design | `/generate-tech-docs` · `/map-testids` · `/review-tech-docs` |
|
|
@@ -741,6 +741,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
|
|
|
741
741
|
| /setup-ai-first | `/define-product` để bắt đầu feature đầu tiên |
|
|
742
742
|
| /define-product | `/generate-prd {product-definition-file}` |
|
|
743
743
|
| /generate-prd | `/refine-prd {prd-file}` rồi `/review-context {prd-file}` |
|
|
744
|
+
| /extend-prd | `/refine-prd {prd-file}` (soi phần vừa thêm) rồi `/review-context {prd-file}` → PO duyệt → `/generate-bdd` **chỉ cho UC MỚI**; UC cũ dùng `/validate-traces --realign-prd-version {UC-ID}` |
|
|
744
745
|
| /refine-prd | Mở Review Board → cập nhật PRD → `/review-context {prd-file}` |
|
|
745
746
|
| /review-context (PRD) | Khi 0 critical → PO đặt `Status: approved`, rồi FE/App: `/generate-design-spec {prd-file}` (→ design sign-off → BDD); BE: `/generate-bdd {prd-file}`. Còn critical/NEEDS_FIX → sửa PRD (giữ draft) |
|
|
746
747
|
| /generate-design-spec | Designer review → xác nhận link Figma → PO + Designer sign-off → `/generate-bdd {prd-file}` |
|
|
@@ -766,7 +767,7 @@ Gợi ý lệnh kế tiếp hợp lý theo phase của workflow:
|
|
|
766
767
|
| /fix-bug | `/dev-run-test {UC-ID}` (dev_selftest vừa reset về not_run) → tạo PR; nếu fix một `{BUG-ID}` → QC chạy `/qc-run-test {UC-ID}` để verify + đóng bug |
|
|
767
768
|
| /debug | `/fix-bug {ticket-id}` nếu cần sửa |
|
|
768
769
|
| /report-bug | Gửi cho dev (`/fix-bug {BUG-ID}`); nếu thiếu coverage → `/propose-scenario {UC-ID}` |
|
|
769
|
-
| /propose-scenario |
|
|
770
|
+
| /propose-scenario | **Case A** (thiếu scenario cho AC có sẵn) → báo PO/Dev review trong `feedback/bdd-proposals/`; `/generate-bdd` tự chèn khi `Status: accepted`. **Case B** (requirement mới) → `feedback/prd-change-requests/` — PO phải đưa vào PRD trước, KHÔNG tự vào BDD được; `/validate-traces` nhắc lại kèm số ngày chờ chừng nào `Status: Open` |
|
|
770
771
|
| /learn | Tiếp tục làm việc — lesson áp dụng ở lệnh kế tiếp |
|
|
771
772
|
| /sync | `/validate-traces` để xem độ phủ đầy đủ; xử lý mọi `📥 tester feedback` được nêu |
|
|
772
773
|
| /update-framework | Review `git diff .agent/`, commit; `/sync` để đồng bộ nội dung dự án |
|