@torus-engineering/tas-kit 1.11.1 → 1.13.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/.tas/README.md +334 -334
- package/{.claude → .tas/_platform/claude-code}/settings.json +0 -12
- package/{.claude → .tas/_platform}/hooks/code-quality.js +1 -1
- package/{.claude → .tas/_platform}/hooks/session-end.js +20 -25
- package/{.claude → .tas}/commands/ado-create.md +5 -4
- package/{.claude → .tas}/commands/ado-delete.md +5 -4
- package/{.claude → .tas}/commands/ado-update.md +5 -4
- package/{.claude → .tas}/commands/tas-adr.md +3 -3
- package/{.claude → .tas}/commands/tas-apitest-plan.md +2 -2
- package/{.claude → .tas}/commands/tas-apitest.md +4 -4
- package/{.claude → .tas}/commands/tas-bug.md +6 -6
- package/{.claude → .tas}/commands/tas-design.md +3 -3
- package/{.claude → .tas}/commands/tas-dev.md +11 -14
- package/{.claude → .tas}/commands/tas-epic.md +3 -3
- package/{.claude → .tas}/commands/tas-feature.md +4 -4
- package/{.claude → .tas}/commands/tas-fix.md +5 -5
- package/{.claude → .tas}/commands/tas-init.md +1 -1
- package/{.claude → .tas}/commands/tas-plan.md +198 -198
- package/{.claude → .tas}/commands/tas-prd.md +3 -3
- package/{.claude → .tas}/commands/tas-review.md +17 -15
- package/{.claude → .tas}/commands/tas-sad.md +3 -3
- package/{.claude → .tas}/commands/tas-security.md +4 -4
- package/{.claude → .tas}/commands/tas-story.md +3 -3
- package/.tas/platforms.json +5 -0
- package/.tas/project-status-example.yaml +17 -17
- package/{.claude/skills/ado-integration/SKILL.md → .tas/rules/ado-integration.md} +5 -15
- package/{.claude/skills/api-design/SKILL.md → .tas/rules/common/api-design.md} +517 -530
- package/{.claude → .tas}/rules/common/code-review.md +30 -6
- package/{.claude/rules/common/post-review-agent.md → .tas/rules/common/post-implementation-review.md} +51 -49
- package/{.claude → .tas}/rules/common/project-status.md +80 -80
- package/{.claude → .tas}/rules/common/stack-detection.md +29 -29
- package/.tas/{checklists → rules/common}/story-done.md +12 -5
- package/{.claude/skills/tas-tdd/SKILL.md → .tas/rules/common/tdd.md} +4 -38
- package/{.claude → .tas}/rules/common/testing.md +3 -8
- package/{.claude → .tas}/rules/common/token-logging.md +36 -27
- package/{.claude → .tas}/rules/csharp/api-testing.md +171 -171
- package/{.claude → .tas}/rules/csharp/coding-style.md +0 -2
- package/{.claude → .tas}/rules/csharp/security.md +10 -0
- package/{.claude → .tas}/rules/python/coding-style.md +0 -2
- package/{.claude → .tas}/rules/typescript/coding-style.md +0 -2
- package/.tas/rules/typescript/patterns.md +142 -0
- package/.tas/rules/typescript/security.md +88 -0
- package/{.claude → .tas}/rules/typescript/testing.md +0 -4
- package/{.claude → .tas}/rules/web/coding-style.md +0 -2
- package/.tas/tas-example.yaml +125 -126
- package/.tas/templates/ADR.md +47 -47
- package/.tas/templates/Bug.md +67 -67
- package/.tas/templates/Design-Spec.md +36 -36
- package/.tas/templates/Epic.md +46 -46
- package/.tas/templates/Feature.md +1 -1
- package/.tas/templates/Security-Report.md +27 -27
- package/.tas/tools/tas-ado-readme.md +169 -169
- package/.tas/tools/tas-ado.py +621 -621
- package/README.md +334 -334
- package/bin/cli.js +91 -73
- package/lib/adapters/antigravity.js +131 -0
- package/lib/adapters/claude-code.js +35 -0
- package/lib/adapters/codex.js +157 -0
- package/lib/adapters/cursor.js +80 -0
- package/lib/adapters/index.js +20 -0
- package/lib/adapters/utils.js +81 -0
- package/lib/deleted-files.json +99 -0
- package/lib/install.js +543 -327
- package/package.json +5 -4
- package/.claude/agents/code-reviewer.md +0 -41
- package/.claude/agents/e2e-runner.md +0 -61
- package/.claude/agents/planner.md +0 -82
- package/.claude/agents/tdd-guide.md +0 -84
- package/.claude/commands/tas-verify.md +0 -51
- package/.claude/rules/typescript/patterns.md +0 -62
- package/.claude/rules/typescript/security.md +0 -28
- package/.claude/settings.local.json +0 -38
- package/.claude/skills/ai-regression-testing/SKILL.md +0 -364
- package/.claude/skills/architecture-decision-records/SKILL.md +0 -184
- package/.claude/skills/benchmark/SKILL.md +0 -98
- package/.claude/skills/browser-qa/SKILL.md +0 -92
- package/.claude/skills/canary-watch/SKILL.md +0 -104
- package/.claude/skills/js-backend-patterns/SKILL.md +0 -603
- package/.claude/skills/tas-conventions/SKILL.md +0 -65
- package/.claude/skills/tas-implementation-complete/SKILL.md +0 -100
- package/.claude/skills/token-logger/SKILL.md +0 -19
- package/.tas/checklists/code-review.md +0 -29
- package/.tas/checklists/security.md +0 -21
- /package/{.claude → .tas}/agents/architect.md +0 -0
- /package/{.claude → .tas}/agents/aws-reviewer.md +0 -0
- /package/{.claude → .tas}/agents/build-resolver.md +0 -0
- /package/{.claude → .tas}/agents/code-explorer.md +0 -0
- /package/{.claude → .tas}/agents/csharp-reviewer.md +0 -0
- /package/{.claude → .tas}/agents/database-reviewer.md +0 -0
- /package/{.claude → .tas}/agents/doc-updater.md +0 -0
- /package/{.claude → .tas}/agents/python-reviewer.md +0 -0
- /package/{.claude → .tas}/agents/security-reviewer.md +0 -0
- /package/{.claude → .tas}/agents/typescript-reviewer.md +0 -0
- /package/{.claude → .tas}/commands/ado-get.md +0 -0
- /package/{.claude → .tas}/commands/ado-status.md +0 -0
- /package/{.claude → .tas}/commands/tas-brainstorm.md +0 -0
- /package/{.claude → .tas}/commands/tas-e2e-mobile.md +0 -0
- /package/{.claude → .tas}/commands/tas-e2e-web.md +0 -0
- /package/{.claude → .tas}/commands/tas-e2e.md +0 -0
- /package/{.claude → .tas}/commands/tas-functest-mobile.md +0 -0
- /package/{.claude → .tas}/commands/tas-functest-web.md +0 -0
- /package/{.claude → .tas}/commands/tas-functest.md +0 -0
- /package/{.claude → .tas}/commands/tas-spec.md +0 -0
- /package/{.claude → .tas}/commands/tas-status.md +0 -0
- /package/{.claude → .tas}/rules/.gitkeep +0 -0
- /package/{.claude → .tas}/rules/common/hooks.md +0 -0
- /package/{.claude → .tas}/rules/common/patterns.md +0 -0
- /package/{.claude → .tas}/rules/common/security.md +0 -0
- /package/{.claude → .tas}/rules/csharp/hooks.md +0 -0
- /package/{.claude → .tas}/rules/csharp/patterns.md +0 -0
- /package/{.claude → .tas}/rules/csharp/testing.md +0 -0
- /package/{.claude → .tas}/rules/python/hooks.md +0 -0
- /package/{.claude → .tas}/rules/python/patterns.md +0 -0
- /package/{.claude → .tas}/rules/python/security.md +0 -0
- /package/{.claude → .tas}/rules/python/testing.md +0 -0
- /package/{.claude → .tas}/rules/typescript/hooks.md +0 -0
- /package/{.claude → .tas}/rules/web/design-quality.md +0 -0
- /package/{.claude → .tas}/rules/web/hooks.md +0 -0
- /package/{.claude → .tas}/rules/web/patterns.md +0 -0
- /package/{.claude → .tas}/rules/web/performance.md +0 -0
- /package/{.claude → .tas}/rules/web/security.md +0 -0
- /package/{.claude → .tas}/rules/web/testing.md +0 -0
- /package/{CLAUDE-Example.md → .tas/templates/AGENTS.md} +0 -0
|
@@ -1,198 +1,198 @@
|
|
|
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 `.
|
|
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
|
-
|
|
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
|
-
|
|
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 `.tas/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
|
+
Read `.tas/rules/common/api-design.md` for REST API conventions, then 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
|
+
Follow `.tas/rules/common/token-logging.md`: write AI Usage Log to working Story file.
|
|
@@ -16,14 +16,14 @@ Create or update Product Requirements Document.
|
|
|
16
16
|
- What are core features?
|
|
17
17
|
- Any technical/business constraints?
|
|
18
18
|
6. Create file docs/prd.md per template
|
|
19
|
-
7. Update `project-status.yaml` per `.
|
|
19
|
+
7. Update `project-status.yaml` per `.tas/rules/common/project-status.md` — add `artifacts.prd`.
|
|
20
20
|
|
|
21
21
|
### UPDATE mode (file exists):
|
|
22
22
|
3. Need context from current docs/prd.md
|
|
23
23
|
4. $ARGUMENTS is change description. If not provided, ask user which section to update.
|
|
24
24
|
5. Update file, keep unchanged sections as-is
|
|
25
25
|
6. Add line to Changelog section at end: date, change description
|
|
26
|
-
7. Update `project-status.yaml` per `.
|
|
26
|
+
7. Update `project-status.yaml` per `.tas/rules/common/project-status.md` — update `artifacts.prd`.
|
|
27
27
|
|
|
28
28
|
## Principles
|
|
29
29
|
- Write at sufficient detail for SE to understand and design architecture
|
|
@@ -34,4 +34,4 @@ Create or update Product Requirements Document.
|
|
|
34
34
|
|
|
35
35
|
## Final Step — Token Log
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
Follow `.tas/rules/common/token-logging.md`: write AI Usage Log to `docs/prd.md`.
|
|
@@ -4,7 +4,7 @@ Review recently changed code or a specific file/PR.
|
|
|
4
4
|
Includes hygiene scan, test run, and parallel multi-agent review.
|
|
5
5
|
|
|
6
6
|
## Stack Detection
|
|
7
|
-
Read `.
|
|
7
|
+
Read `.tas/rules/common/stack-detection.md`.
|
|
8
8
|
|
|
9
9
|
## Actions
|
|
10
10
|
|
|
@@ -32,28 +32,30 @@ Read `.claude/rules/common/stack-detection.md`.
|
|
|
32
32
|
→ If **PASS**: note "Unit Tests: ✓ PASS" in Review Summary.
|
|
33
33
|
→ If cannot detect: note "No test runner detected" and continue.
|
|
34
34
|
|
|
35
|
-
### Step 3 —
|
|
35
|
+
### Step 3 — Review
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
**Inline general review** (main session, always run):
|
|
38
|
+
Read `.tas/rules/common/code-review.md`. Apply review criteria priority order, output format from rule. Story context (CLAUDE.md, SAD, ADRs) already in session — don't re-read.
|
|
38
39
|
|
|
39
|
-
**
|
|
40
|
-
> Review [scope]. Read `.tas/checklists/code-review.md` and `.claude/rules/common/code-review.md`.
|
|
41
|
-
> Focus: naming, architecture alignment, error handling, DRY, function size, nesting depth.
|
|
42
|
-
> Format: findings grouped by Critical / High / Medium / Low, each with file:line and specific fix.
|
|
40
|
+
**Specialized agents** — launch SIMULTANEOUSLY (don't wait for each other):
|
|
43
41
|
|
|
44
|
-
**Agent
|
|
45
|
-
> Security audit [scope]. Read `.
|
|
46
|
-
> If stack identified, also read `.
|
|
42
|
+
**Agent 1 — `security-reviewer`** (always run):
|
|
43
|
+
> Security audit [scope]. Read `.tas/rules/common/security.md`.
|
|
44
|
+
> If stack identified, also read `.tas/rules/[stack]/security.md`.
|
|
47
45
|
> Focus: OWASP Top 10, injection, hardcoded secrets, auth/authz, data exposure.
|
|
48
46
|
> Format: findings grouped by Critical / High / Medium / Low, each with file:line and remediation.
|
|
49
47
|
|
|
50
|
-
**Agent
|
|
48
|
+
**Agent 2 — Language reviewer** (per `lang_agent` from stack detection):
|
|
51
49
|
> Language-specific review [scope].
|
|
52
|
-
> Read `.
|
|
53
|
-
> If stack has React: also read `.
|
|
50
|
+
> Read `.tas/rules/[stack]/coding-style.md`, `.tas/rules/[stack]/patterns.md`, `.tas/rules/[stack]/testing.md`.
|
|
51
|
+
> If stack has React: also read `.tas/rules/web/design-quality.md`, `.tas/rules/web/testing.md`, `.tas/rules/web/performance.md`.
|
|
54
52
|
> Focus: async/await patterns, null handling, type safety, stack-specific anti-patterns.
|
|
55
53
|
> Format: findings by Critical / High / Medium / Low with file:line.
|
|
56
54
|
|
|
55
|
+
**Agent 3 — `database-reviewer`** (only when `db_agent = database-reviewer`, and scope touches schema/migrations/queries):
|
|
56
|
+
> Database review [scope]. Focus: schema correctness, migration safety, missing indexes, N+1 patterns, unsafe queries, data integrity.
|
|
57
|
+
> Format: findings by Critical / High / Medium / Low with file:line.
|
|
58
|
+
|
|
57
59
|
**Agent 4 — `aws-reviewer`** (only when `infra_agent = aws-reviewer`):
|
|
58
60
|
> AWS infrastructure review [scope].
|
|
59
61
|
> Focus: IAM policies, secrets in env/config, S3 permissions, Lambda security.
|
|
@@ -63,7 +65,7 @@ Wait for ALL agents to complete, then synthesize.
|
|
|
63
65
|
|
|
64
66
|
### Step 4 — Synthesize results
|
|
65
67
|
|
|
66
|
-
Combine findings
|
|
68
|
+
Combine inline review findings + agent findings, deduplicate (same file:line → merge), sort by severity:
|
|
67
69
|
|
|
68
70
|
```
|
|
69
71
|
## Review Summary
|
|
@@ -108,4 +110,4 @@ Combine findings from all agents, deduplicate (same file:line from multiple agen
|
|
|
108
110
|
|
|
109
111
|
## Final Step — Token Log
|
|
110
112
|
|
|
111
|
-
|
|
113
|
+
Follow `.tas/rules/common/token-logging.md`: write AI Usage Log to Story file being reviewed (if any).
|
|
@@ -15,7 +15,7 @@ Create or update Solution Architecture Document.
|
|
|
15
15
|
### CREATE mode (file doesn't exist):
|
|
16
16
|
5. Need context from .tas/templates/SAD.md
|
|
17
17
|
6. Create file docs/sad.md per Torus SAD template
|
|
18
|
-
7. Update `project-status.yaml` per `.
|
|
18
|
+
7. Update `project-status.yaml` per `.tas/rules/common/project-status.md` — add `artifacts.sad`.
|
|
19
19
|
|
|
20
20
|
### UPDATE mode (file exists):
|
|
21
21
|
5. Need context from current docs/sad.md
|
|
@@ -23,7 +23,7 @@ Create or update Solution Architecture Document.
|
|
|
23
23
|
7. Update file, keep unchanged sections as-is
|
|
24
24
|
8. Add line to Changelog section at end
|
|
25
25
|
9. If change is important architectural decision, suggest user run /tas-adr
|
|
26
|
-
10. Update `project-status.yaml` per `.
|
|
26
|
+
10. Update `project-status.yaml` per `.tas/rules/common/project-status.md` — update `artifacts.sad`.
|
|
27
27
|
|
|
28
28
|
## Mermaid Rules
|
|
29
29
|
- C4 diagrams MUST use Mermaid flow diagram
|
|
@@ -40,4 +40,4 @@ Create or update Solution Architecture Document.
|
|
|
40
40
|
|
|
41
41
|
## Final Step — Token Log
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
Follow `.tas/rules/common/token-logging.md`: write AI Usage Log to `docs/sad.md`.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Check codebase security, save report to docs/security-report.md.
|
|
4
4
|
|
|
5
5
|
## Stack Detection
|
|
6
|
-
Read `.
|
|
6
|
+
Read `.tas/rules/common/stack-detection.md`.
|
|
7
7
|
|
|
8
8
|
## Actions
|
|
9
9
|
|
|
@@ -15,7 +15,7 @@ Read `.claude/rules/common/stack-detection.md`.
|
|
|
15
15
|
|
|
16
16
|
With `--staged`: get list from `git diff --cached --name-only --diff-filter=ACM` and only review those files. Use same regex patterns as `.tas/hooks/security-scan.js` then supplement with deep review by agents below.
|
|
17
17
|
|
|
18
|
-
Read `.tas/
|
|
18
|
+
Read `.tas/rules/common/security.md` for general checks. If stack identified, also read `.tas/rules/[stack]/security.md` for stack-specific items.
|
|
19
19
|
|
|
20
20
|
### Step 2 — Parallel Security Scan
|
|
21
21
|
|
|
@@ -23,8 +23,8 @@ Launch agents SIMULTANEOUSLY based on stack:
|
|
|
23
23
|
|
|
24
24
|
**Agent 1 — `security-reviewer`** (always run):
|
|
25
25
|
> Security audit [scope].
|
|
26
|
-
> Read `.
|
|
27
|
-
> If stack identified, also read `.
|
|
26
|
+
> Read `.tas/rules/common/security.md`.
|
|
27
|
+
> If stack identified, also read `.tas/rules/[stack]/security.md`.
|
|
28
28
|
> Check OWASP Top 10: injection, broken auth, XSS, IDOR, security misconfiguration,
|
|
29
29
|
> sensitive data exposure, insecure deserialization, vulnerable components, logging/monitoring.
|
|
30
30
|
> Also check: hardcoded secrets, CORS config, anti-forgery tokens, rate limiting.
|
|
@@ -66,7 +66,7 @@ Write all to `## Unit Test Cases` section.
|
|
|
66
66
|
- Frontmatter: `plan_status: pending`, `plan_date:` left empty
|
|
67
67
|
|
|
68
68
|
**Step 7 — Update project-status.yaml**
|
|
69
|
-
Per `.
|
|
69
|
+
Per `.tas/rules/common/project-status.md` — add entry to `epics.{EPIC_ID}.features.{FEATURE_ID}.stories`.
|
|
70
70
|
|
|
71
71
|
**Step 8 — Notify next step**
|
|
72
72
|
> "Story created. Before SE starts coding, run `/tas-plan {Story-ID}` for technical planning."
|
|
@@ -79,7 +79,7 @@ Per `.claude/rules/common/project-status.md` — add entry to `epics.{EPIC_ID}.f
|
|
|
79
79
|
2. Read current Story file
|
|
80
80
|
3. Ask user what needs changing (update AC, change status, add test cases, fix business rule...)
|
|
81
81
|
4. Update file, add entry to Changelog
|
|
82
|
-
5. Update `project-status.yaml` per `.
|
|
82
|
+
5. Update `project-status.yaml` per `.tas/rules/common/project-status.md`.
|
|
83
83
|
|
|
84
84
|
## Principles
|
|
85
85
|
- Story must be small enough to complete in **4-8 hours**; if larger → split into multiple Stories
|
|
@@ -88,4 +88,4 @@ Per `.claude/rules/common/project-status.md` — add entry to `epics.{EPIC_ID}.f
|
|
|
88
88
|
|
|
89
89
|
## Final Step — Token Log
|
|
90
90
|
|
|
91
|
-
|
|
91
|
+
Follow `.tas/rules/common/token-logging.md`: write AI Usage Log to working Story file.
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
# .tas/project-status-example.yaml - Reference template for root/project-status.yaml
|
|
2
|
-
# /tas-init will create root/project-status.yaml from this template.
|
|
3
|
-
# Human can edit manually. Run /tas-init to re-sync if drifted.
|
|
4
|
-
last_updated: ""
|
|
5
|
-
|
|
6
|
-
artifacts:
|
|
7
|
-
prd: {}
|
|
8
|
-
design_spec: {}
|
|
9
|
-
sad: {}
|
|
10
|
-
security_report: {}
|
|
11
|
-
performance_report: {}
|
|
12
|
-
|
|
13
|
-
adrs: {}
|
|
14
|
-
|
|
15
|
-
bugs: {}
|
|
16
|
-
|
|
17
|
-
epics: {}
|
|
1
|
+
# .tas/project-status-example.yaml - Reference template for root/project-status.yaml
|
|
2
|
+
# /tas-init will create root/project-status.yaml from this template.
|
|
3
|
+
# Human can edit manually. Run /tas-init to re-sync if drifted.
|
|
4
|
+
last_updated: ""
|
|
5
|
+
|
|
6
|
+
artifacts:
|
|
7
|
+
prd: {}
|
|
8
|
+
design_spec: {}
|
|
9
|
+
sad: {}
|
|
10
|
+
security_report: {}
|
|
11
|
+
performance_report: {}
|
|
12
|
+
|
|
13
|
+
adrs: {}
|
|
14
|
+
|
|
15
|
+
bugs: {}
|
|
16
|
+
|
|
17
|
+
epics: {}
|
|
@@ -1,22 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Azure DevOps integration. Auto-invoke when user mentions:
|
|
5
|
-
sync ADO, push to board, pull work item, update status on ADO,
|
|
6
|
-
create work item on ADO, or any Azure DevOps related operation.
|
|
7
|
-
allowed-tools: Read, Write, Edit, Bash, Grep
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# ADO Integration Skill
|
|
11
|
-
|
|
12
|
-
Enables bidirectional sync between .md files in repo and work items on Azure DevOps.
|
|
1
|
+
# ADO Integration Rules
|
|
2
|
+
|
|
3
|
+
Bidirectional sync between .md files in repo and work items on Azure DevOps.
|
|
13
4
|
ADO sync is **intentional operation** — not automatic after each file edit.
|
|
14
5
|
|
|
15
|
-
## When to
|
|
6
|
+
## When to Apply
|
|
16
7
|
|
|
17
|
-
- User requests sync, push, pull work item to/from ADO
|
|
18
8
|
- User runs `/ado-create`, `/ado-update`, `/ado-status`, `/ado-get`, `/ado-delete`
|
|
19
|
-
- DO NOT
|
|
9
|
+
- DO NOT apply when: user only edits .md file normally without mentioning ADO
|
|
20
10
|
|
|
21
11
|
## Always / Ask / Never
|
|
22
12
|
|