@torus-engineering/tas-kit 1.9.0 → 1.11.1

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.
Files changed (68) hide show
  1. package/.claude/commands/ado-create.md +17 -17
  2. package/.claude/commands/ado-delete.md +11 -11
  3. package/.claude/commands/ado-get.md +12 -12
  4. package/.claude/commands/ado-status.md +12 -12
  5. package/.claude/commands/ado-update.md +15 -15
  6. package/.claude/commands/tas-adr.md +33 -33
  7. package/.claude/commands/tas-apitest-plan.md +173 -173
  8. package/.claude/commands/tas-apitest.md +143 -143
  9. package/.claude/commands/tas-brainstorm.md +14 -14
  10. package/.claude/commands/tas-bug.md +113 -113
  11. package/.claude/commands/tas-design.md +37 -37
  12. package/.claude/commands/tas-dev.md +128 -128
  13. package/.claude/commands/tas-e2e-mobile.md +155 -155
  14. package/.claude/commands/tas-e2e-web.md +163 -163
  15. package/.claude/commands/tas-e2e.md +102 -102
  16. package/.claude/commands/tas-epic.md +35 -35
  17. package/.claude/commands/tas-feature.md +47 -47
  18. package/.claude/commands/tas-fix.md +51 -51
  19. package/.claude/commands/tas-functest-mobile.md +144 -144
  20. package/.claude/commands/tas-functest-web.md +192 -192
  21. package/.claude/commands/tas-functest.md +76 -76
  22. package/.claude/commands/tas-init.md +14 -14
  23. package/.claude/commands/tas-plan.md +198 -200
  24. package/.claude/commands/tas-prd.md +37 -37
  25. package/.claude/commands/tas-review.md +111 -111
  26. package/.claude/commands/tas-sad.md +43 -43
  27. package/.claude/commands/tas-security.md +87 -81
  28. package/.claude/commands/tas-spec.md +20 -20
  29. package/.claude/commands/tas-status.md +13 -13
  30. package/.claude/commands/tas-story.md +91 -91
  31. package/.claude/commands/tas-verify.md +51 -51
  32. package/.claude/rules/common/post-review-agent.md +49 -49
  33. package/.claude/rules/common/project-status.md +14 -14
  34. package/.claude/rules/common/stack-detection.md +6 -6
  35. package/.claude/rules/common/token-logging.md +27 -27
  36. package/.claude/rules/csharp/api-testing.md +171 -171
  37. package/.claude/skills/ado-integration/SKILL.md +36 -36
  38. package/.claude/skills/tas-conventions/SKILL.md +32 -32
  39. package/.claude/skills/tas-implementation-complete/SKILL.md +100 -99
  40. package/.claude/skills/tas-tdd/SKILL.md +123 -123
  41. package/.claude/skills/token-logger/SKILL.md +19 -19
  42. package/.tas/README.md +266 -1520
  43. package/.tas/checklists/code-review.md +13 -13
  44. package/.tas/checklists/security.md +3 -3
  45. package/.tas/checklists/story-done.md +11 -11
  46. package/.tas/hooks/README.md +138 -0
  47. package/.tas/hooks/pre-commit +26 -0
  48. package/.tas/hooks/security-scan.js +599 -0
  49. package/.tas/project-status-example.yaml +3 -3
  50. package/.tas/tas-example.yaml +25 -8
  51. package/.tas/templates/ADR.md +16 -16
  52. package/.tas/templates/API-Test-Spec.md +3 -3
  53. package/.tas/templates/Bug.md +12 -12
  54. package/.tas/templates/Design-Spec.md +8 -8
  55. package/.tas/templates/E2E-Execution-Report.md +1 -1
  56. package/.tas/templates/Epic.md +1 -1
  57. package/.tas/templates/Feature.md +10 -10
  58. package/.tas/templates/Func-Test-Spec.md +3 -3
  59. package/.tas/templates/SAD.md +106 -106
  60. package/.tas/templates/Security-Report.md +3 -3
  61. package/.tas/templates/Story.md +9 -9
  62. package/.tas/tools/tas-ado-readme.md +169 -169
  63. package/.tas/tools/tas-ado.py +1 -1
  64. package/CLAUDE-Example.md +37 -58
  65. package/README.md +294 -42
  66. package/bin/cli.js +24 -7
  67. package/lib/install.js +161 -47
  68. package/package.json +1 -1
@@ -1,200 +1,198 @@
1
- # /tas-plan $ARGUMENTS
2
-
3
- Vai trò: SE - Software Engineer
4
- Cầu nối giữa nghiệp vụ (Story) kỹ thuật (code).
5
- Phân tích Story, lập kế hoạch kỹ thuật, break tasks — trước khi bắt đầu implement.
6
-
7
- **Output bắt buộc:** Technical Plan được ghi vào Story file + `plan_status: completed`.
8
-
9
- ## Always / Ask / Never
10
-
11
- | | Hành động |
12
- |---|---|
13
- | **Always** | Đọc Story file trước khi làm bất cứ điều gì |
14
- | **Always** | Chờ user approve plan trước khi ghi vào Story |
15
- | **Always** | Ghi Technical Plan vào Story file sau khi approved |
16
- | **Ask** | Khi cần tham khảo SAD/ADR — xác nhận với user trước khi đọc |
17
- | **Ask** | Khi Story scope > 8 giờgợi ý tách Story |
18
- | **Never** | Bắt đầu implement command này |
19
- | **Never** | Tự đọc SAD/ADR không hỏi user trước |
20
- | **Never** | Ghi plan vào Story chưa có approval |
21
-
22
- ## Hành động
23
-
24
- ### Bước 1 — Xác định Story
25
-
26
- `$ARGUMENTS` thể là: Story ID (`Story-005`), file path, hoặc tả Story.
27
-
28
- - Nếu Story ID: tìm file qua glob `docs/epics/**/*-Story-{ID}-*.md`
29
- - Nếu file path: đọc trực tiếp
30
- - Nếu tả: hỏi user Story ID/file cụ thể
31
- - Đọc Story file
32
-
33
- **Check re-plan:** Nếu `plan_status: completed` → hỏi user:
34
- > "Story này đã Technical Plan rồi. Bạn muốn lập lại kế hoạch không?"
35
- Nếu user xác nhận tiếp tục. Nếu khôngdừng.
36
-
37
- ### Bước 2 — Parallel Context Gathering
38
-
39
- Launch 2 agents ĐỒNG THỜI:
40
-
41
- **Agent 1 — `code-explorer`** (luôn chạy):
42
- > Khảo sát codebase liên quan đến Story: "{Story title + tóm tắt AC}".
43
- > Tìm: entry points, files khả năng thay đổi, existing patterns, dependencies.
44
- > Đọc tối đa 10 files liên quan nhất.
45
- > Trả về: map ngắn gọn — what exists, what needs to change, potential conflicts.
46
-
47
- **Agent 2 — `architect`** (chỉ chạy khi Story dấu hiệu thay đổi kiến trúc:
48
- thêm service/module mới, thay đổi data flow, tích hợp external system,
49
- thay đổi database schema, thêm mới design pattern):
50
- > Đánh giá architectural implications của Story: "{Story title}".
51
- > Đọc `docs/sad.md` (nếu tồn tại) files trong `docs/adr/`.
52
- > Đọc `.claude/rules/common/patterns.md`.
53
- > Trả về: ADR nào liên quan, patterns cần follow, rủi ro kiến trúc, constraints.
54
-
55
- Chờ TẤT CẢ agents xong, tổng hợp findings.
56
-
57
- ### Bước 3 — Hỏi về SAD/ADR (nếu chưa )
58
-
59
- Sau khi xem findings từ agents, nếu cần tham khảo thêm SAD hoặc ADR cụ thể:
60
- > "Tôi cần đọc thêm [SAD / ADR-XXX] để làm [lý do]. Được không?"
61
-
62
- Chỉ đọc sau khi user xác nhận.
63
-
64
- ### Bước 4 — API Design (nếu Story liên quan đến backend API)
65
-
66
- **Nếu Story dấu hiệu thiết kế API** (thêm endpoint mới, thay đổi API contract, expose service ra ngoài):
67
- Invoke skill `api-design` để thiết kế API Spec trước khi lập plan:
68
- - URL structure, HTTP methods, status codes
69
- - Request/response payload shape
70
- - Pagination, filtering nếu cần
71
- - Error response format
72
-
73
- Gắn API Spec vào section **Technical Plan → API Contract** trong Story.
74
- Nếu Story không liên quan API → bỏ qua bước này.
75
-
76
- ### Bước 5 — Phân tích kỹ thuật
77
-
78
- Dựa trên Story + agent findings, liệt kê rõ:
79
-
80
- **Files sẽ thay đổi:**
81
- | File | Thay đổi | do |
82
- |------|-------------|-------|
83
-
84
- **Files mới cần tạo** (nếu có):
85
- | File | Mục đích |
86
- |------|----------|
87
-
88
- **Database changes** (nếu ): migration, schema changes, seed data
89
-
90
- **Config/Infrastructure changes** (nếu có): env vars, feature flags, dependencies mới
91
-
92
- **Cần cập nhật SAD?** Yes/No + do ngắn gọn
93
-
94
- **Cần tạo ADR mới?** Yes/No + lý do ngắn gọn
95
-
96
- ### Bước 6 Đề xuất approach
97
-
98
- Nếu nhiều cách làm khả thi, liệt kê 2-3 options:
99
- ```
100
- Option A: [mô tả ngắn]
101
- + [ưu điểm]
102
- - [nhược điểm]
103
-
104
- Option B: [mô tả ngắn]
105
- + [ưu điểm]
106
- - [nhược điểm]
107
- ```
108
- Đề xuất option tốt nhất và lý do. Nếu chỉ có 1 cách → trình bày trực tiếp.
109
-
110
- ### Bước 7 Break Tasks
111
-
112
- Breakdown thành tasks theo thứ tự implement. Mỗi task ~1-2 giờ:
113
- ```
114
- - [ ] Task 1: [hành động cụ thể — file nào, thay đổi gì]
115
- - [ ] Task 2: [hành động cụ thể]
116
- - [ ] Task 3: Viết unit tests cho [AC-1, AC-2...]
117
- - [ ] Task 4: [nếu cần] Tạo ADR / cập nhật SAD
118
- ```
119
-
120
- Nếu tổng estimate > 8 giờ gợi ý tách Story trước khi tiếp tục.
121
-
122
- ### Bước 8 Chờ approval
123
-
124
- **DỪNG LẠI.** Hiển thị toàn bộ plan và hỏi:
125
- > "Technical Plan trên OK không? Muốn điều chỉnh gì không?"
126
-
127
- - Nếu user approve Bước 9
128
- - Nếu user có feedback → cập nhật plan, hỏi lại
129
- - KHÔNG ghi vào Story trước khi có approval
130
-
131
- ### Bước 9 Ghi Technical Plan vào Story
132
-
133
- Sau khi approved, cập nhật Story file:
134
-
135
- **1. Thêm section `## Technical Plan`** vào Story (thay thế comment placeholder):
136
-
137
- ```markdown
138
- ## Technical Plan
139
- > **Plan by:** {SE name} | **Date:** {ngày hiện tại}
140
-
141
- ### Approach
142
- {Mô tả ngắn về approach đã chọn và lý do}
143
-
144
- ### Files to Change
145
- | File | Change | Reason |
146
- |------|--------|--------|
147
-
148
- ### Files to Create
149
- | File | Purpose |
150
- |------|---------|
151
-
152
- ### Database Changes
153
- {Nếu không có: "None"}
154
-
155
- ### Config Changes
156
- {Nếu không có: "None"}
157
-
158
- ### Architecture Notes
159
- - SAD update needed: Yes/No
160
- - New ADR needed: Yes/No — {tiêu đề nếu Yes}
161
-
162
- ### Tasks
163
- - [ ] Task 1: ...
164
- - [ ] Task 2: ...
165
- - [ ] Task 3: Viết unit tests
166
- ```
167
-
168
- **2. Cập nhật frontmatter:**
169
- - `plan_status: completed`
170
- - `plan_date: {ngày giờ hiện tại}`
171
-
172
- **3. Cập nhật `project-status.yaml`:**
173
- - `last_updated: {ngày hiện tại}`
174
- - `epics.{EPIC_ID}.features.{FEATURE_ID}.stories.{STORY_ID}.plan_status: completed`
175
-
176
- **4. Nếu cần ADR:** chạy `/tas-adr "{Tiêu đề quyết định}"` ngay sau khi ghi plan xong.
177
-
178
- ### Bước 10 — Thông báo next step
179
- > "Technical Plan đã ghi vào Story. SE có thể bắt đầu implement với `/tas-dev {Story-ID}`."
180
-
181
- ---
182
-
183
- ## Quick Mode (require_plan: false trong tas.yaml)
184
-
185
- Dành cho: solo dev, prototype, spike, hotfix khẩn.
186
-
187
- - `/tas-dev` sẽ KHÔNG bắt buộc chạy `/tas-plan` trước
188
- - `/tas-plan` vẫn có thể chạy tự nguyện khi Story phức tạp
189
- - Trade-off: tốc độ cao hơn, traceability thấp hơn
190
-
191
- ## Nguyên tắc
192
- - Technical Plan sống trong Story file không tạo file plan riêng
193
- - Mỗi task ~1-2 giờ; cả Story ~4-8 giờ
194
- - Nếu estimate > 8 giờ tách Story
195
- - Nếu task ảnh hưởng architecture → suggest ADR
196
- - Giữ plan ngắn gọn, actionable không viết essay
197
-
198
- ## Bước cuối Token Log
199
-
200
- Invoke skill `token-logger`: ghi AI Usage Log vào file Story đang làm việc.
1
+ # /tas-plan $ARGUMENTS
2
+
3
+ Role: SE - Software Engineer
4
+ Bridge between business (Story) and technical (code).
5
+ Analyze Story, create technical plan, break tasks — before implementing.
6
+
7
+ **Required output:** Technical Plan written to Story file + `plan_status: completed`.
8
+
9
+ ## Always / Ask / Never
10
+
11
+ | | Action |
12
+ |---|---|
13
+ | **Always** | Read Story file before doing anything |
14
+ | **Always** | Wait for user to approve plan before writing to Story |
15
+ | **Always** | Write Technical Plan to Story file after approval |
16
+ | **Ask** | When need to reference SAD/ADR — confirm with user before reading |
17
+ | **Ask** | When Story scope > 8 hourssuggest splitting Story |
18
+ | **Never** | Start implementing in this command |
19
+ | **Never** | Read SAD/ADR without asking user first |
20
+ | **Never** | Write plan to Story without approval |
21
+
22
+ ## Actions
23
+
24
+ ### Step 1 — Identify Story
25
+
26
+ `$ARGUMENTS` can be: Story ID (`Story-005`), file path, or Story description.
27
+
28
+ - If Story ID: find file via glob `docs/epics/**/*-Story-{ID}-*.md`
29
+ - If file path: read directly
30
+ - If description: ask user for specific Story ID/file
31
+ - Read Story file
32
+
33
+ **Check re-plan:** If `plan_status: completed` → ask user:
34
+ > "This Story already has a Technical Plan. Do you want to re-plan?"
35
+ If user confirmscontinue. If notstop.
36
+
37
+ ### Step 2 — Parallel Context Gathering
38
+
39
+ Launch 2 agents SIMULTANEOUSLY:
40
+
41
+ **Agent 1 — `code-explorer`** (always run):
42
+ > Survey codebase related to Story: "{Story title + AC summary}".
43
+ > Find: entry points, files likely to change, existing patterns, dependencies.
44
+ > Read max 10 most relevant files.
45
+ > Return: concise map — what exists, what needs to change, potential conflicts.
46
+
47
+ **Agent 2 — `architect`** (only run if Story shows architectural changes:
48
+ new service/module, data flow changes, external system integration,
49
+ database schema changes, new design pattern):
50
+ > Evaluate architectural implications of Story: "{Story title}".
51
+ > Read `docs/sad.md` (if exists) and files in `docs/adr/`.
52
+ > Read `.claude/rules/common/patterns.md`.
53
+ > Return: which ADRs relate, patterns to follow, architectural risks, constraints.
54
+
55
+ Wait for ALL agents to finish, synthesize findings.
56
+
57
+ ### Step 3 — Ask about SAD/ADR (if still unclear)
58
+
59
+ After seeing agent findings, if need to reference specific SAD or ADR:
60
+ > "I need to read [SAD / ADR-XXX] to clarify [reason]. OK?"
61
+
62
+ Only read after user confirms.
63
+
64
+ ### Step 4 — API Design (if Story involves backend API)
65
+
66
+ **If Story shows API design** (new endpoint, API contract change, exposing service):
67
+ Invoke skill `api-design` to design API Spec before planning:
68
+ - URL structure, HTTP methods, status codes
69
+ - Request/response payload shape
70
+ - Pagination, filtering if needed
71
+ - Error response format
72
+
73
+ Attach API Spec to **Technical Plan → API Contract** section in Story.
74
+ If Story not API-relatedskip this step.
75
+
76
+ ### Step 5 — Technical Analysis
77
+
78
+ Based on Story + agent findings, list clearly:
79
+
80
+ **Files to change:**
81
+ | File | What change | Why |
82
+
83
+ **Files to create** (if any):
84
+ | File | Purpose |
85
+
86
+ **Database changes** (if any): migration, schema changes, seed data
87
+
88
+ **Config/Infrastructure changes** (if any): env vars, feature flags, new dependencies
89
+
90
+ **Need to update SAD?** Yes/No + brief reason
91
+
92
+ **Need new ADR?** Yes/No + brief reason
93
+
94
+ ### Step 6 Propose approach
95
+
96
+ If multiple feasible approaches, list 2-3 options:
97
+ ```
98
+ Option A: [short description]
99
+ + [pro]
100
+ - [con]
101
+
102
+ Option B: [short description]
103
+ + [pro]
104
+ - [con]
105
+ ```
106
+ Recommend best option and reason. If only 1 approach → present directly.
107
+
108
+ ### Step 7 Break Tasks
109
+
110
+ Break down into implementation-order tasks. Each task ~1-2 hours:
111
+ ```
112
+ - [ ] Task 1: [specific action which file, what change]
113
+ - [ ] Task 2: [specific action]
114
+ - [ ] Task 3: Write unit tests for [AC-1, AC-2...]
115
+ - [ ] Task 4: [if needed] Create ADR / update SAD
116
+ ```
117
+
118
+ If total estimate > 8 hours → suggest splitting Story before continuing.
119
+
120
+ ### Step 8 Wait for approval
121
+
122
+ **STOP.** Display entire plan and ask:
123
+ > "Does the Technical Plan above look OK? Any adjustments?"
124
+
125
+ - If user approves Step 9
126
+ - If user has feedback → update plan, ask again
127
+ - DO NOT write anything to Story before approval
128
+
129
+ ### Step 9 Write Technical Plan to Story
130
+
131
+ After approval, update Story file:
132
+
133
+ **1. Add section `## Technical Plan`** to Story (replace comment placeholder):
134
+
135
+ ```markdown
136
+ ## Technical Plan
137
+ > **Plan by:** {SE name} | **Date:** {current date}
138
+
139
+ ### Approach
140
+ {Brief description of chosen approach and reason}
141
+
142
+ ### Files to Change
143
+ | File | Change | Reason |
144
+ |------|--------|--------|
145
+
146
+ ### Files to Create
147
+ | File | Purpose |
148
+ |------|---------|
149
+
150
+ ### Database Changes
151
+ {If none: "None"}
152
+
153
+ ### Config Changes
154
+ {If none: "None"}
155
+
156
+ ### Architecture Notes
157
+ - SAD update needed: Yes/No
158
+ - New ADR needed: Yes/No — {title if Yes}
159
+
160
+ ### Tasks
161
+ - [ ] Task 1: ...
162
+ - [ ] Task 2: ...
163
+ - [ ] Task 3: Write unit tests
164
+ ```
165
+
166
+ **2. Update frontmatter:**
167
+ - `plan_status: completed`
168
+ - `plan_date: {current datetime}`
169
+
170
+ **3. Update `project-status.yaml`:**
171
+ - `last_updated: {current date}`
172
+ - `epics.{EPIC_ID}.features.{FEATURE_ID}.stories.{STORY_ID}.plan_status: completed`
173
+
174
+ **4. If ADR needed:** run `/tas-adr "{Decision title}"` immediately after writing plan.
175
+
176
+ ### Step 10 Notify next step
177
+ > "Technical Plan written to Story. SE can start implementing with `/tas-dev {Story-ID}`."
178
+
179
+ ---
180
+
181
+ ## Quick Mode (require_plan: false in tas.yaml)
182
+
183
+ For: solo dev, prototype, spike, urgent hotfix.
184
+
185
+ - `/tas-dev` will NOT require running `/tas-plan` first
186
+ - `/tas-plan` can still be run voluntarily when Story is complex
187
+ - Trade-off: higher speed, lower traceability
188
+
189
+ ## Principles
190
+ - Technical Plan lives in Story file — no separate plan file
191
+ - Each task ~1-2 hours; whole Story ~4-8 hours
192
+ - If estimate > 8 hours split Story
193
+ - If task affects architecture suggest ADR
194
+ - Keep plan concise, actionable don't write essays
195
+
196
+ ## Final StepToken Log
197
+
198
+ Invoke skill `token-logger`: write AI Usage Log to working Story file.
@@ -1,37 +1,37 @@
1
- # /tas-prd $ARGUMENTS
2
-
3
- Vai trò: PE - Product Engineer
4
- Tạo hoặc cập nhật Product Requirements Document.
5
-
6
- ## Hành động
7
- 1. Cần context từ root/tas.yaml để lấy project context
8
- 2. Kiểm tra docs/prd.md đã tồn tại chưa:
9
-
10
- ### Chế độ CREATE (file chưa tồn tại):
11
- 3. Cần context từ .tas/templates/PRD.md
12
- 4. Nếu $ARGUMENTS nội dung, dùng làm input tả sản phẩm
13
- 5. Nếu không $ARGUMENTS, hỏi user:
14
- - Sản phẩm giải quyết vấn đề gì?
15
- - Đối tượng người dùng chính?
16
- - Các tính năng cốt lõi?
17
- - Ràng buộc kỹ thuật/kinh doanh?
18
- 6. Tạo file docs/prd.md theo template
19
- 7. Cập nhật `project-status.yaml` theo `.claude/rules/common/project-status.md` — thêm `artifacts.prd`.
20
-
21
- ### Chế độ UPDATE (file đã tồn tại):
22
- 3. Cần context từ docs/prd.md hiện tại
23
- 4. $ARGUMENTS tả thay đổi. Nếu không có, hỏi user cần cập nhật section nào.
24
- 5. Cập nhật file, giữ nguyên các section không thay đổi
25
- 6. Thêm dòng vào section Changelog cuối file: ngày, tả thay đổi
26
- 7. Cập nhật `project-status.yaml` theo `.claude/rules/common/project-status.md` — cập nhật `artifacts.prd`.
27
-
28
- ## Nguyên tắc
29
- - Viết mức đủ chi tiết để SE thể hiểu thiết kế kiến trúc
30
- - Phân loại requirements theo MoSCoW: Must/Should/Could/Won't
31
- - Mỗi requirement ID duy nhất: FR-001, NFR-001
32
- - Luôn section Non-Goals để giới hạn scope
33
- - đồ Mermaid phải dùng :::mermaid wrapper, KHÔNG dùng ký tự ()
34
-
35
- ## Bước cuối — Token Log
36
-
37
- Invoke skill `token-logger`: ghi AI Usage Log vào `docs/prd.md`.
1
+ # /tas-prd $ARGUMENTS
2
+
3
+ Role: PE - Product Engineer
4
+ Create or update Product Requirements Document.
5
+
6
+ ## Actions
7
+ 1. Need context from root/tas.yaml for project context
8
+ 2. Check if docs/prd.md already exists:
9
+
10
+ ### CREATE mode (file doesn't exist):
11
+ 3. Need context from .tas/templates/PRD.md
12
+ 4. If $ARGUMENTS has content, use as product description input
13
+ 5. If no $ARGUMENTS, ask user:
14
+ - What problem does the product solve?
15
+ - Who are the main users?
16
+ - What are core features?
17
+ - Any technical/business constraints?
18
+ 6. Create file docs/prd.md per template
19
+ 7. Update `project-status.yaml` per `.claude/rules/common/project-status.md` — add `artifacts.prd`.
20
+
21
+ ### UPDATE mode (file exists):
22
+ 3. Need context from current docs/prd.md
23
+ 4. $ARGUMENTS is change description. If not provided, ask user which section to update.
24
+ 5. Update file, keep unchanged sections as-is
25
+ 6. Add line to Changelog section at end: date, change description
26
+ 7. Update `project-status.yaml` per `.claude/rules/common/project-status.md` — update `artifacts.prd`.
27
+
28
+ ## Principles
29
+ - Write at sufficient detail for SE to understand and design architecture
30
+ - Classify requirements by MoSCoW: Must/Should/Could/Won't
31
+ - Each requirement has unique ID: FR-001, NFR-001
32
+ - Always include Non-Goals section to limit scope
33
+ - Mermaid diagrams must use :::mermaid wrapper, NO () characters
34
+
35
+ ## Final Step — Token Log
36
+
37
+ Invoke skill `token-logger`: write AI Usage Log to `docs/prd.md`.