@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.
- package/.claude/commands/ado-create.md +17 -17
- package/.claude/commands/ado-delete.md +11 -11
- package/.claude/commands/ado-get.md +12 -12
- package/.claude/commands/ado-status.md +12 -12
- package/.claude/commands/ado-update.md +15 -15
- package/.claude/commands/tas-adr.md +33 -33
- package/.claude/commands/tas-apitest-plan.md +173 -173
- package/.claude/commands/tas-apitest.md +143 -143
- package/.claude/commands/tas-brainstorm.md +14 -14
- package/.claude/commands/tas-bug.md +113 -113
- package/.claude/commands/tas-design.md +37 -37
- package/.claude/commands/tas-dev.md +128 -128
- package/.claude/commands/tas-e2e-mobile.md +155 -155
- package/.claude/commands/tas-e2e-web.md +163 -163
- package/.claude/commands/tas-e2e.md +102 -102
- package/.claude/commands/tas-epic.md +35 -35
- package/.claude/commands/tas-feature.md +47 -47
- package/.claude/commands/tas-fix.md +51 -51
- package/.claude/commands/tas-functest-mobile.md +144 -144
- package/.claude/commands/tas-functest-web.md +192 -192
- package/.claude/commands/tas-functest.md +76 -76
- package/.claude/commands/tas-init.md +14 -14
- package/.claude/commands/tas-plan.md +198 -200
- package/.claude/commands/tas-prd.md +37 -37
- package/.claude/commands/tas-review.md +111 -111
- package/.claude/commands/tas-sad.md +43 -43
- package/.claude/commands/tas-security.md +87 -81
- package/.claude/commands/tas-spec.md +20 -20
- package/.claude/commands/tas-status.md +13 -13
- package/.claude/commands/tas-story.md +91 -91
- package/.claude/commands/tas-verify.md +51 -51
- package/.claude/rules/common/post-review-agent.md +49 -49
- package/.claude/rules/common/project-status.md +14 -14
- package/.claude/rules/common/stack-detection.md +6 -6
- package/.claude/rules/common/token-logging.md +27 -27
- package/.claude/rules/csharp/api-testing.md +171 -171
- package/.claude/skills/ado-integration/SKILL.md +36 -36
- package/.claude/skills/tas-conventions/SKILL.md +32 -32
- package/.claude/skills/tas-implementation-complete/SKILL.md +100 -99
- package/.claude/skills/tas-tdd/SKILL.md +123 -123
- package/.claude/skills/token-logger/SKILL.md +19 -19
- package/.tas/README.md +266 -1520
- package/.tas/checklists/code-review.md +13 -13
- package/.tas/checklists/security.md +3 -3
- package/.tas/checklists/story-done.md +11 -11
- package/.tas/hooks/README.md +138 -0
- package/.tas/hooks/pre-commit +26 -0
- package/.tas/hooks/security-scan.js +599 -0
- package/.tas/project-status-example.yaml +3 -3
- package/.tas/tas-example.yaml +25 -8
- package/.tas/templates/ADR.md +16 -16
- package/.tas/templates/API-Test-Spec.md +3 -3
- package/.tas/templates/Bug.md +12 -12
- package/.tas/templates/Design-Spec.md +8 -8
- package/.tas/templates/E2E-Execution-Report.md +1 -1
- package/.tas/templates/Epic.md +1 -1
- package/.tas/templates/Feature.md +10 -10
- package/.tas/templates/Func-Test-Spec.md +3 -3
- package/.tas/templates/SAD.md +106 -106
- package/.tas/templates/Security-Report.md +3 -3
- package/.tas/templates/Story.md +9 -9
- package/.tas/tools/tas-ado-readme.md +169 -169
- package/.tas/tools/tas-ado.py +1 -1
- package/CLAUDE-Example.md +37 -58
- package/README.md +294 -42
- package/bin/cli.js +24 -7
- package/lib/install.js +161 -47
- package/package.json +1 -1
|
@@ -1,200 +1,198 @@
|
|
|
1
|
-
# /tas-plan $ARGUMENTS
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
**
|
|
8
|
-
|
|
9
|
-
## Always / Ask / Never
|
|
10
|
-
|
|
11
|
-
| |
|
|
12
|
-
|---|---|
|
|
13
|
-
| **Always** |
|
|
14
|
-
| **Always** |
|
|
15
|
-
| **Always** |
|
|
16
|
-
| **Ask** |
|
|
17
|
-
| **Ask** |
|
|
18
|
-
| **Never** |
|
|
19
|
-
| **Never** |
|
|
20
|
-
| **Never** |
|
|
21
|
-
|
|
22
|
-
##
|
|
23
|
-
|
|
24
|
-
###
|
|
25
|
-
|
|
26
|
-
`$ARGUMENTS`
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
**Check re-plan:**
|
|
34
|
-
> "Story
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
###
|
|
38
|
-
|
|
39
|
-
Launch 2 agents
|
|
40
|
-
|
|
41
|
-
**Agent 1 — `code-explorer`** (
|
|
42
|
-
>
|
|
43
|
-
>
|
|
44
|
-
>
|
|
45
|
-
>
|
|
46
|
-
|
|
47
|
-
**Agent 2 — `architect`** (
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
>
|
|
51
|
-
>
|
|
52
|
-
>
|
|
53
|
-
>
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
###
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
> "
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
###
|
|
65
|
-
|
|
66
|
-
**
|
|
67
|
-
Invoke skill `api-design`
|
|
68
|
-
- URL structure, HTTP methods, status codes
|
|
69
|
-
- Request/response payload shape
|
|
70
|
-
- Pagination, filtering
|
|
71
|
-
- Error response format
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
###
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
**Files
|
|
81
|
-
| File |
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
**
|
|
89
|
-
|
|
90
|
-
**
|
|
91
|
-
|
|
92
|
-
**
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
- [ ] Task
|
|
115
|
-
- [ ] Task
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
- [ ] Task
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
-
|
|
193
|
-
-
|
|
194
|
-
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
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 hours — suggest 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 confirms → continue. If not → stop.
|
|
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-related → skip 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 Step — Token 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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
##
|
|
7
|
-
1.
|
|
8
|
-
2.
|
|
9
|
-
|
|
10
|
-
###
|
|
11
|
-
3.
|
|
12
|
-
4.
|
|
13
|
-
5.
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
6.
|
|
19
|
-
7.
|
|
20
|
-
|
|
21
|
-
###
|
|
22
|
-
3.
|
|
23
|
-
4. $ARGUMENTS
|
|
24
|
-
5.
|
|
25
|
-
6.
|
|
26
|
-
7.
|
|
27
|
-
|
|
28
|
-
##
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
##
|
|
36
|
-
|
|
37
|
-
Invoke skill `token-logger`:
|
|
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`.
|