@torus-engineering/tas-kit 1.13.0 → 2.1.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/_platform/claude-code/settings.json +58 -46
- package/.tas/_platform/hooks/code-quality.js +127 -127
- package/.tas/_platform/hooks/session-end.js +111 -111
- package/.tas/agents/architect.md +53 -53
- package/.tas/agents/aws-reviewer.md +71 -71
- package/.tas/agents/build-resolver.md +89 -59
- package/.tas/agents/code-explorer.md +63 -63
- package/.tas/agents/csharp-reviewer.md +62 -62
- package/.tas/agents/database-reviewer.md +73 -73
- package/.tas/agents/doc-updater.md +68 -66
- package/.tas/agents/python-reviewer.md +67 -67
- package/.tas/agents/security-reviewer.md +79 -79
- package/.tas/agents/software-engineer.md +53 -0
- package/.tas/agents/typescript-reviewer.md +65 -65
- package/.tas/commands/ado-create.md +33 -28
- package/.tas/commands/ado-delete.md +26 -22
- package/.tas/commands/ado-get.md +24 -20
- package/.tas/commands/ado-status.md +22 -18
- package/.tas/commands/ado-update.md +31 -27
- package/.tas/commands/tas-adr.md +37 -33
- package/.tas/commands/tas-apitest-plan.md +177 -173
- package/.tas/commands/tas-apitest.md +147 -143
- package/.tas/commands/tas-brainstorm.md +23 -19
- package/.tas/commands/tas-brd.md +50 -0
- package/.tas/commands/tas-bug.md +127 -113
- package/.tas/commands/tas-checklist.md +180 -0
- package/.tas/commands/tas-debug.md +103 -0
- package/.tas/commands/tas-design.md +41 -37
- package/.tas/commands/tas-dev.md +225 -125
- package/.tas/commands/tas-e2e-mobile.md +146 -155
- package/.tas/commands/tas-e2e-web.md +150 -163
- package/.tas/commands/tas-e2e.md +289 -102
- package/.tas/commands/tas-feature.md +181 -47
- package/.tas/commands/tas-fix.md +72 -51
- package/.tas/commands/tas-functest-mobile.md +138 -144
- package/.tas/commands/tas-functest-web.md +176 -192
- package/.tas/commands/tas-functest.md +225 -76
- package/.tas/commands/tas-init.md +22 -17
- package/.tas/commands/tas-master-plan.md +300 -0
- package/.tas/commands/tas-orchestrate.md +159 -0
- package/.tas/commands/tas-plan.md +152 -117
- package/.tas/commands/tas-prd.md +57 -37
- package/.tas/commands/tas-review-pr.md +174 -0
- package/.tas/commands/tas-review.md +115 -113
- package/.tas/commands/tas-sad.md +47 -43
- package/.tas/commands/tas-security.md +91 -87
- package/.tas/commands/tas-spec.md +54 -50
- package/.tas/commands/tas-status.md +25 -16
- package/.tas/project-status-example.yaml +3 -1
- package/.tas/rules/ado-integration.md +67 -65
- package/.tas/rules/common/api-design.md +517 -517
- package/.tas/rules/common/build-debug-loop.md +233 -0
- package/.tas/rules/common/code-review.md +4 -0
- package/.tas/rules/common/feature-done.md +42 -0
- package/.tas/rules/common/post-implementation-review.md +4 -0
- package/.tas/rules/common/project-status.md +33 -16
- package/.tas/rules/common/sad-impact.md +81 -0
- package/.tas/rules/common/tdd.md +104 -89
- package/.tas/rules/csharp/api-testing.md +2 -2
- package/.tas/rules/csharp/torus-core-framework.md +128 -0
- package/.tas/tas-example.yaml +9 -32
- package/.tas/templates/AGENTS.md +13 -0
- package/.tas/templates/API-Test-Spec.md +5 -4
- package/.tas/templates/BRD.md +133 -0
- package/.tas/templates/Bug.md +15 -0
- package/.tas/templates/E2E-Execution-Report.md +8 -8
- package/.tas/templates/E2E-Mobile-Spec.md +6 -8
- package/.tas/templates/E2E-Report.md +2 -2
- package/.tas/templates/E2E-Scenario.md +22 -22
- package/.tas/templates/E2E-Test-Spec.md +274 -0
- package/.tas/templates/E2E-Web-Spec.md +4 -4
- package/.tas/templates/Feature-Technical-Part.md +69 -0
- package/.tas/templates/Feature-Technical-Stack.md +74 -0
- package/.tas/templates/Feature-Technical.md +329 -0
- package/.tas/templates/Feature.md +50 -26
- package/.tas/templates/Func-Test-Script.md +29 -56
- package/.tas/templates/Func-Test-Spec.md +144 -142
- package/.tas/templates/PRD.md +173 -142
- package/.tas/templates/TestChecklist.md +96 -0
- package/.tas/templates/torus-dotnet-bootstrap.md +223 -0
- package/.tas/tools/tas-ado-readme.md +24 -27
- package/.tas/tools/tas-ado.py +328 -25
- package/.tas/tools/tas-github.py +339 -0
- package/README.md +142 -57
- package/bin/cli.js +90 -90
- package/lib/adapters/antigravity.js +131 -131
- package/lib/adapters/claude-code.js +71 -35
- package/lib/adapters/codex.js +157 -157
- package/lib/adapters/cursor.js +80 -80
- package/lib/adapters/index.js +20 -20
- package/lib/adapters/utils.js +81 -81
- package/lib/deleted-files.json +7 -0
- package/lib/install.js +546 -543
- package/package.json +2 -2
- package/.tas/README.md +0 -334
- package/.tas/commands/tas-epic.md +0 -35
- package/.tas/commands/tas-story.md +0 -91
- package/.tas/rules/common/story-done.md +0 -30
- package/.tas/templates/Epic.md +0 -46
- package/.tas/templates/Story.md +0 -90
package/README.md
CHANGED
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
# TAS Kit
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
TAS Kit - Turbo Agentic SDLC toolkit for modern AI-first software teams.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## Purpose
|
|
8
8
|
|
|
9
9
|
TAS Kit helps software development teams:
|
|
10
|
-
- **Standardize SDLC process** with clear artifacts (PRD, SAD, ADR,
|
|
10
|
+
- **Standardize SDLC process** with clear artifacts (PRD, SAD, ADR, Feature, Feature-Technical)
|
|
11
11
|
- **Optimize token usage** through Context Layer — invest in design phase, save in code phase
|
|
12
12
|
- **Support multiple workflows**: from solo developer to full team with PE/SE/DSE roles
|
|
13
13
|
- **Automate** with Hybrid and Autonomous agents operating 24/7
|
|
14
14
|
|
|
15
|
+
> **Kit v3 — Feature-only flow:** Epic and User Story were removed. Feature is now the single TAS work unit — one complete business flow that may span multiple stacks (`app` | `web` | `service` | `integration`). Per-stack technical breakdown lives in `Feature-{NNN}-Technical.md`. See [Migration](#migration-from-v1v2-epicstory-flow) at the bottom.
|
|
16
|
+
|
|
15
17
|
---
|
|
16
18
|
|
|
17
19
|
## Design Philosophy
|
|
18
20
|
|
|
19
21
|
### Spec-Driven Development
|
|
20
|
-
All code starts from spec.
|
|
22
|
+
All code starts from spec. Each Feature owns a paired `Feature-{NNN}.md` (business AC) and `Feature-{NNN}-Technical.md` (global: Context Diagram, Data Flow, API Spec, ERD; per-stack: Logic Flow, File Changes, Config, Unit Tests, Tasks). Each implementation session only needs to read CLAUDE.md + the two Feature files — no need to reload PRD/SAD/ADR.
|
|
21
23
|
|
|
22
24
|
### Human-Led, AI-Powered
|
|
23
25
|
- **Human-led**: Architecture decisions, design approval, code review
|
|
@@ -34,7 +36,7 @@ All code starts from spec. Story.md is "context digest" that has absorbed all in
|
|
|
34
36
|
|
|
35
37
|
### Role-Based & Template-Driven
|
|
36
38
|
- 3 roles: PE (Product Engineer), SE (Software Engineer), DSE (DevOps Engineer)
|
|
37
|
-
- Separate templates for PRD, SAD, ADR,
|
|
39
|
+
- Separate templates for PRD, SAD, ADR, Feature, Feature-Technical per team standards
|
|
38
40
|
- Flow configurable via `tas.yaml` file
|
|
39
41
|
|
|
40
42
|
### Azure DevOps Compatible
|
|
@@ -48,10 +50,13 @@ All code starts from spec. Story.md is "context digest" that has absorbed all in
|
|
|
48
50
|
:::mermaid
|
|
49
51
|
graph TD
|
|
50
52
|
subgraph Phase1["Phase 1: Discovery"]
|
|
53
|
+
BRD["/tas-brd"]
|
|
51
54
|
PRD["/tas-prd"]
|
|
52
55
|
SAD["/tas-sad"]
|
|
53
56
|
ADR["/tas-adr"]
|
|
54
57
|
DESIGN["/tas-design"]
|
|
58
|
+
BRD -->|Product Engineer| BRD_ARTIFACT["BRD.md"]
|
|
59
|
+
BRD_ARTIFACT -->|Product Engineer| PRD
|
|
55
60
|
PRD -->|Product Engineer| PRD_ARTIFACT["PRD.md"]
|
|
56
61
|
PRD_ARTIFACT -->|Software Engineer| SAD
|
|
57
62
|
PRD_ARTIFACT -->|Software Engineer| ADR
|
|
@@ -62,22 +67,25 @@ graph TD
|
|
|
62
67
|
end
|
|
63
68
|
|
|
64
69
|
subgraph Phase2["Phase 2: Planning"]
|
|
65
|
-
EPIC["/tas-epic"]
|
|
66
70
|
FEATURE["/tas-feature"]
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
EPIC_ARTIFACT -->|Product Engineer| FEATURE
|
|
71
|
+
PLAN["/tas-plan"]
|
|
72
|
+
MASTERPLAN["/tas-master-plan"]
|
|
73
|
+
PRD_ARTIFACT -->|Product Engineer| FEATURE
|
|
71
74
|
FEATURE --> FEATURE_ARTIFACT["Feature-XXX/"]
|
|
72
|
-
SAD_ARTIFACT -->
|
|
75
|
+
SAD_ARTIFACT --> PLAN
|
|
73
76
|
DESIGN_ARTIFACT --> FEATURE
|
|
74
|
-
FEATURE_ARTIFACT -->|
|
|
75
|
-
|
|
77
|
+
FEATURE_ARTIFACT -->|Software Engineer| PLAN
|
|
78
|
+
PLAN --> TECH_ARTIFACT["Feature-XXX-Technical.md"]
|
|
79
|
+
PRD_ARTIFACT -->|Tech Lead| MASTERPLAN
|
|
80
|
+
SAD_ARTIFACT --> MASTERPLAN
|
|
81
|
+
FEATURE_ARTIFACT -->|All Features created| MASTERPLAN
|
|
82
|
+
MASTERPLAN --> MP_ARTIFACT["docs/master-plan.md"]
|
|
76
83
|
end
|
|
77
84
|
|
|
78
85
|
subgraph Phase3["Phase 3: Implementation"]
|
|
79
|
-
|
|
86
|
+
ORCHESTRATE["/tas-orchestrate"]
|
|
80
87
|
DEV["/tas-dev"]
|
|
88
|
+
DEBUG["/tas-debug"]
|
|
81
89
|
FIX["/tas-fix"]
|
|
82
90
|
APItest["/tas-apitest"]
|
|
83
91
|
E2E["/tas-e2e"]
|
|
@@ -86,18 +94,22 @@ graph TD
|
|
|
86
94
|
E2E_WEB["/tas-e2e-web"]
|
|
87
95
|
E2E_MOBILE["/tas-e2e-mobile"]
|
|
88
96
|
BUG["/tas-bug"]
|
|
89
|
-
|
|
97
|
+
REVIEWPR["/tas-review-pr"]
|
|
90
98
|
FUNctest["/tas-functest"]
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
DEV --> CODE
|
|
99
|
+
MP_ARTIFACT -->|Autonomous| ORCHESTRATE
|
|
100
|
+
TECH_ARTIFACT -->|Hybrid| DEV
|
|
101
|
+
ORCHESTRATE --> CODE["Source Code"]
|
|
102
|
+
DEV --> CODE
|
|
103
|
+
CODE -->|Build fails| DEBUG
|
|
104
|
+
DEBUG --> CODE
|
|
95
105
|
CODE -->|Bug found| FIX
|
|
96
106
|
FIX --> CODE
|
|
97
|
-
CODE -->|
|
|
98
|
-
|
|
99
|
-
|
|
107
|
+
CODE -->|PR created| REVIEWPR
|
|
108
|
+
REVIEWPR --> REVIEW_ARTIFACT["PR Comments + Vote"]
|
|
109
|
+
TECH_ARTIFACT -->|Software Engineer| APItest
|
|
100
110
|
APItest --> APITEST_ARTIFACT["API Testing Script"]
|
|
111
|
+
FEATURE_ARTIFACT -->|Product Engineer| FUNctest
|
|
112
|
+
FUNctest --> FUNCTEST_ARTIFACT["Func-Test-Spec.md"]
|
|
101
113
|
FUNCTEST_ARTIFACT -->|Product Engineer| E2E
|
|
102
114
|
E2E --> E2E_ARTIFACT["E2E Test Scenarios"]
|
|
103
115
|
FUNCTEST_ARTIFACT -->|Software Engineer| FUNCTEST_WEB
|
|
@@ -110,8 +122,6 @@ graph TD
|
|
|
110
122
|
E2E_MOBILE --> E2E_MOBILE_ARTIFACT["E2E Mobile Test Script"]
|
|
111
123
|
CODE -->|Bug found| BUG
|
|
112
124
|
BUG --> BUG_ARTIFACT["Bug Report"]
|
|
113
|
-
FEATURE_ARTIFACT -->|Product Engineer| FUNctest
|
|
114
|
-
FUNctest --> FUNCTEST_ARTIFACT["Functional-Testing-Spec-FeatureXXX.md"]
|
|
115
125
|
end
|
|
116
126
|
|
|
117
127
|
subgraph Phase4["Phase 4: Quality & Deploy"]
|
|
@@ -131,13 +141,17 @@ graph TD
|
|
|
131
141
|
|
|
132
142
|
STATUS["/tas-status"] -.->|Track| PRD_ARTIFACT
|
|
133
143
|
STATUS -.->|Track| SAD_ARTIFACT
|
|
134
|
-
STATUS -.->|Track|
|
|
144
|
+
STATUS -.->|Track| FEATURE_ARTIFACT
|
|
145
|
+
STATUS -.->|Track| TECH_ARTIFACT
|
|
135
146
|
STATUS -.->|Track| DEPLOY
|
|
136
147
|
|
|
148
|
+
style BRD_ARTIFACT fill:#e1f5ff
|
|
137
149
|
style PRD_ARTIFACT fill:#e1f5ff
|
|
138
150
|
style SAD_ARTIFACT fill:#fff4e1
|
|
139
151
|
style DESIGN_ARTIFACT fill:#f3e5f5
|
|
140
|
-
style
|
|
152
|
+
style FEATURE_ARTIFACT fill:#e8f5e9
|
|
153
|
+
style TECH_ARTIFACT fill:#e8f5e9
|
|
154
|
+
style MP_ARTIFACT fill:#e8f5e9
|
|
141
155
|
style CODE fill:#f3e5f5
|
|
142
156
|
style TEST_REPORT fill:#c8e6c9
|
|
143
157
|
style DEPLOY fill:#c8e6c9
|
|
@@ -147,29 +161,35 @@ graph TD
|
|
|
147
161
|
|
|
148
162
|
| Phase | Role | Commands | Artifacts |
|
|
149
163
|
|-------|------|----------|-----------|
|
|
150
|
-
| **Phase 1: Discovery** | PE, SE | `/tas-prd`, `/tas-sad`, `/tas-adr`, `/tas-design` | PRD.md, SAD.md, ADR-XXX.md, design-spec.md |
|
|
151
|
-
| **Phase 2: Planning** | SE | `/tas-
|
|
152
|
-
| **Phase 3: Implementation** | PE, SE, AI | `/tas-
|
|
164
|
+
| **Phase 1: Discovery** | PE, SE | `/tas-brd`, `/tas-prd`, `/tas-sad`, `/tas-adr`, `/tas-design` | BRD.md, PRD.md, SAD.md, ADR-XXX.md, design-spec.md |
|
|
165
|
+
| **Phase 2: Planning** | PE, SE | `/tas-feature`, `/tas-plan`, `/tas-functest`, `/tas-master-plan` | Feature-XXX/, Feature-XXX-Technical.md, Func-Test-Spec.md, docs/master-plan.md |
|
|
166
|
+
| **Phase 3: Implementation** | PE, SE, AI | `/tas-orchestrate`, `/tas-dev`, `/tas-debug`, `/tas-fix`, `/tas-apitest`, `/tas-e2e`, `/tas-functest-web`, `/tas-functest-mobile`, `/tas-e2e-web`, `/tas-e2e-mobile`, `/tas-bug`, `/tas-review-pr` | Source Code, API Testing Script, E2E Test Scenarios, Functional Test Scripts, Bug Report, PR Review Comments |
|
|
153
167
|
| **Phase 4: Quality & Deploy** | PE, DSE | `/tas-security`, Pipeline/CLI | Security Report, Test Report, Production |
|
|
154
168
|
|
|
155
169
|
### Phase Details
|
|
156
170
|
|
|
157
171
|
#### Phase 1: Discovery
|
|
158
|
-
- **PE**: Create
|
|
172
|
+
- **PE**: Create BRD with `/tas-brd` — business problem, KPIs, stakeholders, scope first
|
|
173
|
+
- **PE**: Create PRD with `/tas-prd` (consumes BRD.md), create design-spec with `/tas-design`
|
|
159
174
|
- **SE**: Create SAD with `/tas-sad`, create ADR with `/tas-adr`
|
|
160
175
|
|
|
161
176
|
#### Phase 2: Planning
|
|
162
|
-
- **PE**:
|
|
177
|
+
- **PE**: Create Feature with `/tas-feature` — one Feature per business requirement (may span multiple stacks), AC in Given/When/Then
|
|
178
|
+
- **SE**: Generate `Feature-XXX-Technical.md` with `/tas-plan` — global sections (Context Diagram, Data Flow, API Spec, ERD) + per-stack sections (Logic Flow, File Changes, Config, Unit Tests, Tasks)
|
|
179
|
+
- **PE/SE**: Create Func-Test-Spec with `/tas-functest`
|
|
180
|
+
- **Tech Lead**: After all Features are created, run `/tas-master-plan` — reads PRD FR list + SAD, scans Feature files to resolve dependencies, generates `docs/master-plan.md` with detailed strategy + machine-readable execution tracks
|
|
163
181
|
|
|
164
182
|
#### Phase 3: Implementation
|
|
165
|
-
- **
|
|
166
|
-
- **SE**:
|
|
167
|
-
- **
|
|
183
|
+
- **AI (Autonomous)**: Run `/tas-orchestrate` — executes master plan by spawning `software-engineer` agents per Feature in track order; supports resume and 24/7 unattended mode
|
|
184
|
+
- **SE (Hybrid)**: Implement with `/tas-dev` (consumes Feature + Feature-Technical), fix with `/tas-fix`
|
|
185
|
+
- **SE (Autonomous)**: `/tas-dev --autonomous=true` or set `autonomy_mode: full` in `tas.yaml` — auto-runs `/tas-plan` if no Technical file exists, implements without interruption, auto-marks Done when review passes; use for Features with clear scope where SE trusts full AI execution
|
|
186
|
+
- **SE**: When build/runtime errors occur, run `/tas-debug` — full build-debug loop until resolved
|
|
168
187
|
- **SE**: Create API Testing Script with `/tas-apitest`
|
|
169
|
-
- **PE**: Create E2E Test Scenarios with `/tas-e2e`
|
|
188
|
+
- **PE**: Create E2E Test Scenarios with `/tas-e2e` (chains multiple Features into a flow)
|
|
170
189
|
- **SE**: Create Functional Test Scripts with `/tas-functest-web`, `/tas-functest-mobile`
|
|
171
190
|
- **PE**: Create E2E Test Scripts with `/tas-e2e-web`, `/tas-e2e-mobile`
|
|
172
191
|
- **PE**: Create Bug Report with `/tas-bug`
|
|
192
|
+
- **SE**: Review PR with `/tas-review-pr` — auto-detects ADO/GitHub, posts inline comments + approve/request-changes vote
|
|
173
193
|
|
|
174
194
|
#### Phase 4: Quality & Deploy
|
|
175
195
|
- **DSE**: Security Review with `/tas-security`
|
|
@@ -250,14 +270,13 @@ artifacts:
|
|
|
250
270
|
status: Approved
|
|
251
271
|
version: "1.0"
|
|
252
272
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
status: In Progress
|
|
273
|
+
features:
|
|
274
|
+
Feature-001:
|
|
275
|
+
path: docs/features/PROJ-Feature-001-checkout/
|
|
276
|
+
title: "Checkout flow"
|
|
277
|
+
stack: web
|
|
278
|
+
status: In Development
|
|
279
|
+
plan_status: completed
|
|
261
280
|
```
|
|
262
281
|
|
|
263
282
|
### .env
|
|
@@ -276,12 +295,12 @@ AZURE_DEVOPS_PROJECT=your_project
|
|
|
276
295
|
|
|
277
296
|
```
|
|
278
297
|
.claude/
|
|
279
|
-
commands/
|
|
280
|
-
skills/
|
|
281
|
-
agents/
|
|
298
|
+
commands/ slash commands (/tas-*, /ado-*)
|
|
299
|
+
skills/ auto-invoked skills
|
|
300
|
+
agents/ specialized subagents
|
|
282
301
|
.tas/
|
|
283
|
-
templates/ Markdown templates (PRD, SAD, ADR,
|
|
284
|
-
rules/ Coding standards + workflow rules (code-review,
|
|
302
|
+
templates/ Markdown templates (PRD, SAD, ADR, Feature, Feature-Technical, Bug...)
|
|
303
|
+
rules/ Coding standards + workflow rules (code-review, feature-done, security...)
|
|
285
304
|
tools/ ADO integration script (tas-ado.py)
|
|
286
305
|
CLAUDE.md Project context template (edit this for your project)
|
|
287
306
|
tas.yaml Flow configuration template (edit this for your project)
|
|
@@ -296,18 +315,20 @@ tas.yaml Flow configuration template (edit this for your project)
|
|
|
296
315
|
|---------|-------------|------|
|
|
297
316
|
| `/tas-init` | Initialize TAS for new project | All |
|
|
298
317
|
| `/tas-status` | Display current project status | All |
|
|
299
|
-
| `/tas-
|
|
318
|
+
| `/tas-brd` | Create/update Business Requirements Document (problem, KPIs, stakeholders, scope) | PE |
|
|
319
|
+
| `/tas-prd` | Create/update Product Requirements Document (consumes BRD.md) | PE |
|
|
300
320
|
| `/tas-sad` | Create/update Solution Architecture Document | SE |
|
|
301
321
|
| `/tas-adr` | Create Architecture Decision Record | SE |
|
|
302
322
|
| `/tas-design` | Create Design Specification | SE |
|
|
303
|
-
| `/tas-
|
|
304
|
-
| `/tas-
|
|
305
|
-
| `/tas-
|
|
306
|
-
| `/tas-
|
|
323
|
+
| `/tas-feature` | Create/update Feature (single TAS work unit, per stack) | PE |
|
|
324
|
+
| `/tas-plan` | Generate `Feature-XXX-Technical.md` (Context, Logic, Data, ERD, Files, Config) | SE |
|
|
325
|
+
| `/tas-functest` | Create Functional Test Spec (anchored on AC) | SE |
|
|
326
|
+
| `/tas-master-plan` | Read PRD + SAD + Feature files → generate `docs/master-plan.md` (strategy + execution tracks) | Tech Lead |
|
|
307
327
|
| `/tas-spec` | Lightweight spec (solo / prototype) | SE |
|
|
308
|
-
| `/tas-
|
|
309
|
-
| `/tas-dev` | Implement
|
|
310
|
-
| `/tas-
|
|
328
|
+
| `/tas-orchestrate` | Execute master plan — spawn agents per Feature autonomously, supports resume | AI |
|
|
329
|
+
| `/tas-dev` | Implement Feature per Technical Plan. `--autonomous=true` or `autonomy_mode: full` in `tas.yaml` → auto-plan + implement + review end-to-end | AI |
|
|
330
|
+
| `/tas-debug` | Debug and resolve build/runtime/functional errors — full build-debug loop | SE |
|
|
331
|
+
| `/tas-fix` | Quick fix without full Feature flow | SE |
|
|
311
332
|
| `/tas-apitest` | Create API Testing Script automatically | SE |
|
|
312
333
|
| `/tas-e2e` | Create E2E Test Scenarios | PE |
|
|
313
334
|
| `/tas-functest-web` | Create Functional Test Script for Web | SE |
|
|
@@ -316,6 +337,7 @@ tas.yaml Flow configuration template (edit this for your project)
|
|
|
316
337
|
| `/tas-e2e-mobile` | Create E2E Test Script for Mobile | PE |
|
|
317
338
|
| `/tas-bug` | Create Bug Report | PE |
|
|
318
339
|
| `/tas-review` | Code Review with checklist | SE |
|
|
340
|
+
| `/tas-review-pr` | Review PR — fetch diff, run agents, post inline comments + vote (ADO/GitHub) | SE |
|
|
319
341
|
| `/tas-brainstorm` | Brainstorm solutions | All |
|
|
320
342
|
| `/tas-security` | Security Review | DSE |
|
|
321
343
|
| `/ado-*` | Azure DevOps integration | All |
|
|
@@ -329,6 +351,69 @@ tas.yaml Flow configuration template (edit this for your project)
|
|
|
329
351
|
|
|
330
352
|
---
|
|
331
353
|
|
|
332
|
-
##
|
|
354
|
+
## Migration from v1/v2 (Epic/Story flow)
|
|
355
|
+
|
|
356
|
+
Kit v3 drops Epic and User Story. The single TAS work unit is Feature.
|
|
357
|
+
|
|
358
|
+
**What was removed:**
|
|
359
|
+
- Slash commands: `/tas-epic`, `/tas-story`
|
|
360
|
+
- Templates: `Epic.md`, `Story.md`
|
|
361
|
+
- Rule: `story-done.md` (replaced by `feature-done.md`)
|
|
362
|
+
- Nested `epics.{ID}.features.{ID}.stories.{ID}` schema in `project-status.yaml` (now flat `features.{ID}` map)
|
|
363
|
+
- ADO `epic` and `story` types in `/ado-*` commands and `tas-ado.py` (legacy work items pulled via `/ado-get` are saved as local `feature-*.md`)
|
|
364
|
+
|
|
365
|
+
**What was added:**
|
|
366
|
+
- New template `Feature-Technical.md` — generated by `/tas-plan` next to Feature file (`Feature-{NNN}-{slug}-Technical.md`). Has global sections (Context Diagram, Data Flow, API Spec, ERD) + per-stack sections (Logic Flow, File Changes, Config, Unit Tests, Tasks — one section per stack the Feature touches).
|
|
367
|
+
- Test ID convention anchored on AC: `{PROJECT}_F{FEATURE}_AC{N}_{TYPE}_{NUMBER}_{MODIFIER}`
|
|
368
|
+
- E2E ID drops Epic segment: `{PROJECT}_E2E_{NNN}_{MODIFIER}` (single-stack) or `{PROJECT}_XSTACK_E2E_{NNN}_{MODIFIER}` (cross-stack)
|
|
369
|
+
|
|
370
|
+
**How to migrate an existing project (manual, ~30 min for ~20 Features):**
|
|
371
|
+
1. Move directories: `docs/epics/{*}/Feature-{NNN}-{slug}/` → `docs/features/{CODE}-Feature-{NNN}-{slug}/`. Re-number Features globally if you want a flat sequence.
|
|
372
|
+
2. For each Feature directory:
|
|
373
|
+
- Pick the existing Feature .md as the new business spec; delete the parent Epic .md.
|
|
374
|
+
- Convert AC from checkbox style to Given/When/Then.
|
|
375
|
+
- If Stories had Technical Plan content inline, lift it into a new `Feature-{NNN}-Technical.md` using `.tas/templates/Feature-Technical.md` (fill only the stack sections that apply). Then delete the Story files.
|
|
376
|
+
3. Rewrite `project-status.yaml`: drop `epics:` block, build a flat `features:` map (see `.tas/project-status-example.yaml`).
|
|
377
|
+
4. Rename test IDs: `{PROJ}_E{EPIC}_F{FEAT}_S{STORY}_*` → `{PROJ}_F{FEAT}_AC{N}_*` (regex find/replace per file).
|
|
378
|
+
5. On ADO: there's no API change required — TAS Features map to ADO `Feature` work items directly. Keep existing Epic/Story items as-is or close them; new TAS work uses `/ado-create feature ...` only.
|
|
379
|
+
|
|
380
|
+
> No automated `tas-migrate` command is shipped — the migration is mechanical and per-project. Run `/tas-status` after to verify.
|
|
381
|
+
|
|
382
|
+
---
|
|
333
383
|
|
|
334
|
-
|
|
384
|
+
## Changelog
|
|
385
|
+
|
|
386
|
+
### v2.1.0 — BRD, Master Plan, Orchestrate, Debug, Review PR
|
|
387
|
+
|
|
388
|
+
> **⚠️ Breaking change — Feature-first workflow**
|
|
389
|
+
>
|
|
390
|
+
> All work units are **Features**, stored under `docs/features/`. Every SE must start from a Feature file — no ad-hoc coding sessions.
|
|
391
|
+
>
|
|
392
|
+
> **Existing ADO User Stories pulled via `/ado-get`:** you can run `/tas-plan` + `/tas-dev` on those work items as-is — they behave as Features. No migration needed for in-flight work.
|
|
393
|
+
>
|
|
394
|
+
> **New tickets:** always create as Features with `/tas-feature` (or `/tas-master-plan` for full project planning) before running `/tas-plan` and `/tas-dev`. Do not create stories or epics — Feature is the only TAS work unit.
|
|
395
|
+
|
|
396
|
+
- Add `/tas-brd` — PE creates Business Requirements Document (business problem, KPIs, stakeholders, scope/constraints) before PRD; `/tas-prd` consumes BRD.md for tighter business-to-product alignment
|
|
397
|
+
- Add `/tas-master-plan` — Tech Lead command that reads PRD FR list + SAD + Feature files, resolves dependencies, and generates `docs/master-plan.md` with detailed construction strategy and machine-readable execution tracks (YAML embedded)
|
|
398
|
+
- Add `/tas-orchestrate` — executes master plan by spawning `software-engineer` agents per Feature in stage/track order; supports resume and fully autonomous 24/7 mode
|
|
399
|
+
- `/tas-dev` gains autonomous mode: `--autonomous=true` flag or `autonomy_mode: full` in `tas.yaml` — auto-invokes `/tas-plan` when no Technical file exists, implements without interruption, auto-marks Done if review passes with no Critical/High findings; audit trail written to Feature `## Autonomous Decisions Log`
|
|
400
|
+
- Add `/tas-debug` — runs full build-debug loops to resolve build/runtime/functional errors; complements `/tas-fix` for post-implementation failures
|
|
401
|
+
- Add `/tas-review-pr` — auto-detects ADO or GitHub, fetches PR diff, runs parallel review agents, posts inline comments with approve/request-changes vote
|
|
402
|
+
|
|
403
|
+
### v2.0.0 — Feature-only flow + Feature-Technical template
|
|
404
|
+
- Remove Epic and User Story. Feature is the only TAS work unit — one complete business flow, may span multiple stacks.
|
|
405
|
+
- Add `Feature-Technical.md` template generated by `/tas-plan` — global sections (Context Diagram, Data Flow, API Spec, ERD, Affect to SAD?, Architecture Decisions) + per-stack sections (Logic Flow, File Changes, Config, Unit Test Cases, Tasks) — fill only stacks the Feature touches.
|
|
406
|
+
- `/tas-feature` infers stacks automatically from PRD + SAD — no manual stack annotation required.
|
|
407
|
+
- Test ID convention: `{PROJECT}_F{FEATURE}_AC{N}_{TYPE}_{NUMBER}_{MODIFIER}` to anchor tests on business AC.
|
|
408
|
+
- Updated project-status.yaml tracking to include Feature-Technical plan_status (pending/completed).
|
|
409
|
+
- E2E ID simplified: `{PROJECT}_E2E_{NNN}_{MODIFIER}` (single-stack) or `{PROJECT}_XSTACK_E2E_{NNN}_{MODIFIER}` (cross-stack).
|
|
410
|
+
|
|
411
|
+
### v1.14.0
|
|
412
|
+
- Support 4 Agentic Coding Platforms: Claude Code, Cursor, Codex, Antigravity
|
|
413
|
+
- Compress kit size — refactor commands, skills, rules to only include what's truly necessary
|
|
414
|
+
- Remove legacy agent and skill files
|
|
415
|
+
|
|
416
|
+
### v1.11.x
|
|
417
|
+
- Drop Claude Code branding from kit artifacts
|
|
418
|
+
- Set real Azure DevOps project_id in config
|
|
419
|
+
- Translate all documentation to English
|
package/bin/cli.js
CHANGED
|
@@ -1,91 +1,91 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { install, update } from '../lib/install.js';
|
|
3
|
-
|
|
4
|
-
const args = process.argv.slice(2);
|
|
5
|
-
const command = args[0];
|
|
6
|
-
|
|
7
|
-
function printHelp() {
|
|
8
|
-
console.log(`
|
|
9
|
-
tas-kit — Turbo Agentic SDLC Kit installer
|
|
10
|
-
|
|
11
|
-
Usage:
|
|
12
|
-
npx @torus-engineering/tas-kit <command> [options]
|
|
13
|
-
|
|
14
|
-
Commands:
|
|
15
|
-
install Copy TAS Kit files into a project (first-time setup)
|
|
16
|
-
update Overwrite .tas/ and platform directories with the latest kit version
|
|
17
|
-
(preserves CLAUDE.md, tas.yaml, .env.example)
|
|
18
|
-
|
|
19
|
-
Options:
|
|
20
|
-
--directory <path> Target directory (default: current working directory)
|
|
21
|
-
--yes, -y Skip confirmation prompts
|
|
22
|
-
--platform <id,...> Platform(s) to install: claude-code, cursor, codex, antigravity
|
|
23
|
-
Comma-separated for multiple (default: interactive prompt)
|
|
24
|
-
--security-hook <mode> Pre-commit hook mode: husky | native | none
|
|
25
|
-
--help, -h Show this help message
|
|
26
|
-
|
|
27
|
-
Platforms:
|
|
28
|
-
claude-code Claude Code CLI (default)
|
|
29
|
-
cursor Cursor IDE
|
|
30
|
-
codex OpenAI Codex CLI
|
|
31
|
-
antigravity Google Antigravity IDE
|
|
32
|
-
|
|
33
|
-
Examples:
|
|
34
|
-
npx @torus-engineering/tas-kit install
|
|
35
|
-
npx @torus-engineering/tas-kit install --platform claude-code,cursor
|
|
36
|
-
npx @torus-engineering/tas-kit install --platform codex --yes
|
|
37
|
-
npx @torus-engineering/tas-kit install --yes --security-hook=husky
|
|
38
|
-
npx @torus-engineering/tas-kit update
|
|
39
|
-
npx @torus-engineering/tas-kit update --platform cursor
|
|
40
|
-
`.trim());
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (!command || command === '--help' || command === '-h') {
|
|
44
|
-
printHelp();
|
|
45
|
-
process.exit(0);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if (command !== 'install' && command !== 'update') {
|
|
49
|
-
console.error(`Unknown command: "${command}"\n`);
|
|
50
|
-
printHelp();
|
|
51
|
-
process.exit(1);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
const VALID_PLATFORMS = ['claude-code', 'cursor', 'codex', 'antigravity'];
|
|
55
|
-
const opts = { directory: process.cwd(), yes: false, securityHook: null, platforms: [] };
|
|
56
|
-
|
|
57
|
-
for (let i = 1; i < args.length; i++) {
|
|
58
|
-
const a = args[i];
|
|
59
|
-
if ((a === '--directory' || a === '-d') && args[i + 1]) {
|
|
60
|
-
opts.directory = args[++i];
|
|
61
|
-
} else if (a === '--yes' || a === '-y') {
|
|
62
|
-
opts.yes = true;
|
|
63
|
-
} else if (a.startsWith('--security-hook=')) {
|
|
64
|
-
opts.securityHook = a.slice('--security-hook='.length).toLowerCase();
|
|
65
|
-
} else if (a === '--security-hook' && args[i + 1]) {
|
|
66
|
-
opts.securityHook = args[++i].toLowerCase();
|
|
67
|
-
} else if (a.startsWith('--platform=')) {
|
|
68
|
-
opts.platforms = a.slice('--platform='.length).split(',').map(s => s.trim().toLowerCase());
|
|
69
|
-
} else if (a === '--platform' && args[i + 1]) {
|
|
70
|
-
opts.platforms = args[++i].split(',').map(s => s.trim().toLowerCase());
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
if (opts.securityHook && !['husky', 'native', 'none'].includes(opts.securityHook)) {
|
|
75
|
-
console.error(`Invalid --security-hook value: "${opts.securityHook}"`);
|
|
76
|
-
console.error(`Expected one of: husky, native, none`);
|
|
77
|
-
process.exit(1);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
const invalidPlatforms = opts.platforms.filter(p => !VALID_PLATFORMS.includes(p));
|
|
81
|
-
if (invalidPlatforms.length > 0) {
|
|
82
|
-
console.error(`Invalid platform(s): ${invalidPlatforms.join(', ')}`);
|
|
83
|
-
console.error(`Valid platforms: ${VALID_PLATFORMS.join(', ')}`);
|
|
84
|
-
process.exit(1);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
const runner = command === 'update' ? update : install;
|
|
88
|
-
runner(opts).catch((err) => {
|
|
89
|
-
console.error(`\n${command === 'update' ? 'Update' : 'Install'} failed:`, err.message);
|
|
90
|
-
process.exit(1);
|
|
91
|
-
});
|
|
2
|
+
import { install, update } from '../lib/install.js';
|
|
3
|
+
|
|
4
|
+
const args = process.argv.slice(2);
|
|
5
|
+
const command = args[0];
|
|
6
|
+
|
|
7
|
+
function printHelp() {
|
|
8
|
+
console.log(`
|
|
9
|
+
tas-kit — Turbo Agentic SDLC Kit installer
|
|
10
|
+
|
|
11
|
+
Usage:
|
|
12
|
+
npx @torus-engineering/tas-kit <command> [options]
|
|
13
|
+
|
|
14
|
+
Commands:
|
|
15
|
+
install Copy TAS Kit files into a project (first-time setup)
|
|
16
|
+
update Overwrite .tas/ and platform directories with the latest kit version
|
|
17
|
+
(preserves CLAUDE.md, tas.yaml, .env.example)
|
|
18
|
+
|
|
19
|
+
Options:
|
|
20
|
+
--directory <path> Target directory (default: current working directory)
|
|
21
|
+
--yes, -y Skip confirmation prompts
|
|
22
|
+
--platform <id,...> Platform(s) to install: claude-code, cursor, codex, antigravity
|
|
23
|
+
Comma-separated for multiple (default: interactive prompt)
|
|
24
|
+
--security-hook <mode> Pre-commit hook mode: husky | native | none
|
|
25
|
+
--help, -h Show this help message
|
|
26
|
+
|
|
27
|
+
Platforms:
|
|
28
|
+
claude-code Claude Code CLI (default)
|
|
29
|
+
cursor Cursor IDE
|
|
30
|
+
codex OpenAI Codex CLI
|
|
31
|
+
antigravity Google Antigravity IDE
|
|
32
|
+
|
|
33
|
+
Examples:
|
|
34
|
+
npx @torus-engineering/tas-kit install
|
|
35
|
+
npx @torus-engineering/tas-kit install --platform claude-code,cursor
|
|
36
|
+
npx @torus-engineering/tas-kit install --platform codex --yes
|
|
37
|
+
npx @torus-engineering/tas-kit install --yes --security-hook=husky
|
|
38
|
+
npx @torus-engineering/tas-kit update
|
|
39
|
+
npx @torus-engineering/tas-kit update --platform cursor
|
|
40
|
+
`.trim());
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (!command || command === '--help' || command === '-h') {
|
|
44
|
+
printHelp();
|
|
45
|
+
process.exit(0);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
if (command !== 'install' && command !== 'update') {
|
|
49
|
+
console.error(`Unknown command: "${command}"\n`);
|
|
50
|
+
printHelp();
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const VALID_PLATFORMS = ['claude-code', 'cursor', 'codex', 'antigravity'];
|
|
55
|
+
const opts = { directory: process.cwd(), yes: false, securityHook: null, platforms: [] };
|
|
56
|
+
|
|
57
|
+
for (let i = 1; i < args.length; i++) {
|
|
58
|
+
const a = args[i];
|
|
59
|
+
if ((a === '--directory' || a === '-d') && args[i + 1]) {
|
|
60
|
+
opts.directory = args[++i];
|
|
61
|
+
} else if (a === '--yes' || a === '-y') {
|
|
62
|
+
opts.yes = true;
|
|
63
|
+
} else if (a.startsWith('--security-hook=')) {
|
|
64
|
+
opts.securityHook = a.slice('--security-hook='.length).toLowerCase();
|
|
65
|
+
} else if (a === '--security-hook' && args[i + 1]) {
|
|
66
|
+
opts.securityHook = args[++i].toLowerCase();
|
|
67
|
+
} else if (a.startsWith('--platform=')) {
|
|
68
|
+
opts.platforms = a.slice('--platform='.length).split(',').map(s => s.trim().toLowerCase());
|
|
69
|
+
} else if (a === '--platform' && args[i + 1]) {
|
|
70
|
+
opts.platforms = args[++i].split(',').map(s => s.trim().toLowerCase());
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
if (opts.securityHook && !['husky', 'native', 'none'].includes(opts.securityHook)) {
|
|
75
|
+
console.error(`Invalid --security-hook value: "${opts.securityHook}"`);
|
|
76
|
+
console.error(`Expected one of: husky, native, none`);
|
|
77
|
+
process.exit(1);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const invalidPlatforms = opts.platforms.filter(p => !VALID_PLATFORMS.includes(p));
|
|
81
|
+
if (invalidPlatforms.length > 0) {
|
|
82
|
+
console.error(`Invalid platform(s): ${invalidPlatforms.join(', ')}`);
|
|
83
|
+
console.error(`Valid platforms: ${VALID_PLATFORMS.join(', ')}`);
|
|
84
|
+
process.exit(1);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const runner = command === 'update' ? update : install;
|
|
88
|
+
runner(opts).catch((err) => {
|
|
89
|
+
console.error(`\n${command === 'update' ? 'Update' : 'Install'} failed:`, err.message);
|
|
90
|
+
process.exit(1);
|
|
91
|
+
});
|