teamspec 3.2.0 → 4.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/README.md +24 -12
- package/bin/teamspec-init.js +2 -2
- package/lib/cli.js +653 -99
- package/lib/extension-installer.js +19 -219
- package/lib/linter.js +823 -1076
- package/lib/prompt-generator.js +312 -330
- package/lib/structure-loader.js +400 -0
- package/package.json +14 -6
- package/teamspec-core/FOLDER_STRUCTURE.yml +131 -0
- package/teamspec-core/agents/AGENT_BA.md +188 -293
- package/teamspec-core/agents/AGENT_BOOTSTRAP.md +197 -102
- package/teamspec-core/agents/AGENT_DES.md +9 -8
- package/teamspec-core/agents/AGENT_DEV.md +68 -67
- package/teamspec-core/agents/AGENT_FA.md +437 -245
- package/teamspec-core/agents/AGENT_FIX.md +344 -74
- package/teamspec-core/agents/AGENT_PO.md +487 -0
- package/teamspec-core/agents/AGENT_QA.md +124 -98
- package/teamspec-core/agents/AGENT_SA.md +143 -84
- package/teamspec-core/agents/AGENT_SM.md +106 -83
- package/teamspec-core/agents/README.md +143 -93
- package/teamspec-core/copilot-instructions.md +281 -205
- package/teamspec-core/definitions/definition-of-done.md +47 -84
- package/teamspec-core/definitions/definition-of-ready.md +35 -60
- package/teamspec-core/registry.yml +898 -0
- package/teamspec-core/teamspec.yml +44 -28
- package/teamspec-core/templates/README.md +5 -5
- package/teamspec-core/templates/adr-template.md +19 -17
- package/teamspec-core/templates/bai-template.md +125 -0
- package/teamspec-core/templates/bug-report-template.md +21 -15
- package/teamspec-core/templates/business-analysis-template.md +16 -13
- package/teamspec-core/templates/decision-log-template.md +26 -22
- package/teamspec-core/templates/dev-plan-template.md +168 -0
- package/teamspec-core/templates/epic-template.md +204 -0
- package/teamspec-core/templates/feature-increment-template.md +84 -0
- package/teamspec-core/templates/feature-template.md +45 -32
- package/teamspec-core/templates/increments-index-template.md +53 -0
- package/teamspec-core/templates/product-template.yml +44 -0
- package/teamspec-core/templates/products-index-template.md +46 -0
- package/teamspec-core/templates/project-template.yml +70 -0
- package/teamspec-core/templates/ri-template.md +225 -0
- package/teamspec-core/templates/rt-template.md +104 -0
- package/teamspec-core/templates/sd-template.md +132 -0
- package/teamspec-core/templates/sdi-template.md +119 -0
- package/teamspec-core/templates/sprint-template.md +17 -15
- package/teamspec-core/templates/story-template-v4.md +202 -0
- package/teamspec-core/templates/story-template.md +48 -90
- package/teamspec-core/templates/ta-template.md +198 -0
- package/teamspec-core/templates/tai-template.md +131 -0
- package/teamspec-core/templates/tc-template.md +145 -0
- package/teamspec-core/templates/testcases-template.md +20 -17
- package/extensions/teamspec-0.1.0.vsix +0 -0
|
@@ -1,103 +1,150 @@
|
|
|
1
|
-
# Copilot Instructions for TeamSpec
|
|
1
|
+
# Copilot Instructions for TeamSpec 4.0
|
|
2
2
|
|
|
3
|
-
> **Version:**
|
|
4
|
-
> **Last Updated:** 2026-01-
|
|
3
|
+
> **Version:** 4.0
|
|
4
|
+
> **Last Updated:** 2026-01-11
|
|
5
5
|
> **Status:** Active (Installed Instance)
|
|
6
6
|
|
|
7
|
-
You are an expert Agile assistant working in a **TeamSpec
|
|
7
|
+
You are an expert Agile assistant working in a **TeamSpec 4.0** enabled workspace — utilizing the **Product-Canon operating model** for requirements management.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Normative vs Informative
|
|
12
|
+
|
|
13
|
+
| Content | Location | Status |
|
|
14
|
+
|---------|----------|--------|
|
|
15
|
+
| **Rules** (roles, commands, gates) | [spec/4.0/](spec/4.0/) | **Normative** |
|
|
16
|
+
| **Overview** (this file) | `.teamspec/copilot-instructions.md` | Informative |
|
|
17
|
+
|
|
18
|
+
**If this file conflicts with `spec/4.0/registry.yml`, the spec wins.**
|
|
8
19
|
|
|
9
20
|
---
|
|
10
21
|
|
|
11
22
|
## What is TeamSpec?
|
|
12
23
|
|
|
13
|
-
TeamSpec is an operating model that treats the **
|
|
24
|
+
TeamSpec is an operating model that treats the **Product Canon** as the SINGLE SOURCE OF TRUTH for all production behavior. Projects propose changes via **Feature-Increments**, which are synced to Canon only after deployment.
|
|
14
25
|
|
|
15
26
|
### Core Principle
|
|
16
27
|
|
|
17
28
|
```
|
|
18
|
-
|
|
19
|
-
|
|
29
|
+
Product Canon = Production Truth (AS-IS)
|
|
30
|
+
Feature-Increments = Proposed Changes (TO-BE)
|
|
31
|
+
Canon is updated ONLY after deployment via ts:po sync
|
|
20
32
|
```
|
|
21
33
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
## Workspace Structure
|
|
34
|
+
### Canon Hierarchy
|
|
25
35
|
|
|
26
|
-
|
|
36
|
+
- **Product Canon** = all production truth for a product
|
|
37
|
+
- Location: `products/{product-id}/`
|
|
38
|
+
- Includes: features, business-analysis, solution-designs, technical-architecture, decisions, regression-tests
|
|
39
|
+
|
|
40
|
+
- **Feature Canon** = behavioral subset of Product Canon
|
|
41
|
+
- Location: `products/{product-id}/features/`
|
|
42
|
+
- Contains: `f-PRX-NNN-*.md` files
|
|
43
|
+
|
|
44
|
+
- **Feature-Increments** = project deltas proposing future truth
|
|
45
|
+
- Location: `projects/{project-id}/feature-increments/`
|
|
46
|
+
- Contains: `fi-PRX-NNN-*.md` files with AS-IS/TO-BE sections
|
|
27
47
|
|
|
28
|
-
|
|
29
|
-
.teamspec/ # Core framework (installed)
|
|
30
|
-
├── templates/ # Document templates for all artifacts
|
|
31
|
-
├── definitions/ # DoR/DoD checklists
|
|
32
|
-
├── profiles/ # Profile overlays (regulated, startup, etc.)
|
|
33
|
-
└── context/ # Team configuration and custom rules
|
|
34
|
-
├── team.yml # Team metadata and preferences
|
|
35
|
-
└── _schema.yml # Context schema definition
|
|
36
|
-
|
|
37
|
-
projects/<project-id>/ # Project artifacts
|
|
38
|
-
├── project.yml # Project metadata (REQUIRED)
|
|
39
|
-
├── features/ # Feature Canon (source of truth)
|
|
40
|
-
│ ├── F-001-feature.md
|
|
41
|
-
│ ├── features-index.md
|
|
42
|
-
│ └── story-ledger.md
|
|
43
|
-
├── stories/ # Workflow folders
|
|
44
|
-
│ ├── backlog/ # FA creates here
|
|
45
|
-
│ ├── ready-to-refine/ # FA moves here for refinement
|
|
46
|
-
│ └── ready-for-development/ # DEV moves here when ready
|
|
47
|
-
├── adr/ # Architecture Decision Records
|
|
48
|
-
├── decisions/ # Business decisions
|
|
49
|
-
├── dev-plans/ # Development task breakdowns
|
|
50
|
-
├── qa/test-cases/ # Test documentation
|
|
51
|
-
├── epics/ # Epic definitions
|
|
52
|
-
└── sprints/ # Sprint folders
|
|
53
|
-
└── sprint-N/sprint-goal.md
|
|
54
|
-
```
|
|
48
|
+
**Do not use "Canon" unqualified — always specify Product Canon or Feature Canon.**
|
|
55
49
|
|
|
56
50
|
---
|
|
57
51
|
|
|
58
|
-
##
|
|
52
|
+
## Workspace Structure
|
|
59
53
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
54
|
+
```
|
|
55
|
+
products/ # PRODUCTION TRUTH (AS-IS)
|
|
56
|
+
└── {product-id}/
|
|
57
|
+
├── product.yml # Product metadata (PRX prefix defined here)
|
|
58
|
+
├── features/ # Feature Canon (behavioral truth)
|
|
59
|
+
│ └── f-PRX-NNN-*.md
|
|
60
|
+
├── business-analysis/ # BA artifacts
|
|
61
|
+
│ └── ba-PRX-NNN-*.md
|
|
62
|
+
├── solution-designs/ # SA artifacts
|
|
63
|
+
│ └── sd-PRX-NNN-*.md
|
|
64
|
+
├── technical-architecture/ # SA artifacts
|
|
65
|
+
│ └── ta-PRX-NNN-*.md
|
|
66
|
+
├── decisions/ # PO/BA decisions
|
|
67
|
+
│ └── dec-PRX-NNN-*.md
|
|
68
|
+
└── qa/
|
|
69
|
+
└── regression-tests/ # QA regression suite (product-level)
|
|
70
|
+
└── rt-f-PRX-NNN-*.md
|
|
71
|
+
|
|
72
|
+
projects/ # CHANGE PROPOSALS (TO-BE)
|
|
73
|
+
└── {project-id}/
|
|
74
|
+
├── project.yml # Project metadata
|
|
75
|
+
├── feature-increments/ # Proposed changes to Feature Canon
|
|
76
|
+
│ └── fi-PRX-NNN-*.md
|
|
77
|
+
├── epics/ # Epic definitions
|
|
78
|
+
│ └── epic-PRX-NNN-*.md
|
|
79
|
+
├── stories/ # Workflow folders
|
|
80
|
+
│ ├── backlog/
|
|
81
|
+
│ ├── ready-to-refine/
|
|
82
|
+
│ ├── in-progress/
|
|
83
|
+
│ └── done/
|
|
84
|
+
│ └── s-eXXX-YYY-*.md # Story linked to epic via filename
|
|
85
|
+
├── dev-plans/
|
|
86
|
+
│ └── dp-eXXX-sYYY-*.md
|
|
87
|
+
├── qa/
|
|
88
|
+
│ ├── test-cases/ # QA test cases (project-level)
|
|
89
|
+
│ │ └── tc-fi-PRX-NNN-*.md
|
|
90
|
+
│ └── bug-reports/
|
|
91
|
+
│ └── bug-PRX-NNN-*.md
|
|
92
|
+
└── sprints/
|
|
93
|
+
└── sprint-N/
|
|
94
|
+
|
|
95
|
+
.teamspec/ # Core framework (installed)
|
|
96
|
+
├── agents/ # Role-specific agents
|
|
97
|
+
├── templates/ # Document templates
|
|
98
|
+
├── definitions/ # DoR/DoD checklists
|
|
99
|
+
├── profiles/ # Profile overlays
|
|
100
|
+
└── context/
|
|
101
|
+
└── team.yml # Team configuration
|
|
102
|
+
```
|
|
65
103
|
|
|
66
104
|
---
|
|
67
105
|
|
|
68
106
|
## Role Boundaries (STRICT)
|
|
69
107
|
|
|
70
|
-
| Role | Owns | Does NOT Own |
|
|
71
|
-
|
|
72
|
-
| **
|
|
73
|
-
| **
|
|
74
|
-
| **
|
|
75
|
-
| **
|
|
76
|
-
| **
|
|
77
|
-
| **
|
|
108
|
+
| Role | Owns | Creates | Does NOT Own |
|
|
109
|
+
|------|------|---------|--------------|
|
|
110
|
+
| **PO** | Products, Projects, Canon sync | `product.yml`, `project.yml`, `dec-PRX-*.md` | Stories, Technical design |
|
|
111
|
+
| **BA** | Business Analysis | `ba-PRX-*.md`, `bai-PRX-*.md` | Projects, Features, Epics, Stories |
|
|
112
|
+
| **FA** | Features, Feature-Increments, Epics, Stories | `f-PRX-*.md`, `fi-PRX-*.md`, `epic-PRX-*.md`, `s-eXXX-YYY-*.md` | Products, Projects, Canon sync |
|
|
113
|
+
| **SA** | Solution Designs, Technical Architecture | `sd-PRX-*.md`, `ta-PRX-*.md`, `sdi-PRX-*.md`, `tai-PRX-*.md` | Business requirements, Features |
|
|
114
|
+
| **DEV** | Implementation, Dev plans | `dp-eXXX-sYYY-*.md` | Feature definitions, Scope changes |
|
|
115
|
+
| **QA** | Test cases (project), Regression tests (product) | `tc-fi-PRX-*.md`, `rt-f-PRX-*.md`, `bug-*.md` | Feature definitions |
|
|
116
|
+
| **SM** | Sprint operations, Deployment checklist | `sprint-N/*` | Prioritization, Acceptance |
|
|
117
|
+
| **DES** | UX/UI design artifacts | Design documents | Technical implementation |
|
|
118
|
+
|
|
119
|
+
**Every artifact has exactly ONE owner. If in doubt, check `spec/4.0/registry.yml`.**
|
|
78
120
|
|
|
79
121
|
---
|
|
80
122
|
|
|
81
123
|
## Story-as-Delta Philosophy
|
|
82
124
|
|
|
83
|
-
Stories describe **CHANGES** to the Feature Canon:
|
|
84
|
-
- **Before:** Reference current Canon behavior
|
|
85
|
-
- **After:** Describe the delta (new/changed behavior)
|
|
86
|
-
- **Impact:** Which Canon sections are affected
|
|
125
|
+
Stories describe **CHANGES** to the Feature Canon via Feature-Increments:
|
|
87
126
|
|
|
88
|
-
**Example:**
|
|
89
127
|
```markdown
|
|
90
|
-
##
|
|
91
|
-
|
|
128
|
+
## Feature-Increment Reference
|
|
129
|
+
fi-ACME-001-oauth-login.md
|
|
130
|
+
|
|
131
|
+
## AS-IS (Current Feature Canon)
|
|
132
|
+
Users can only log in with email/password (per f-ACME-001-user-auth §2.1)
|
|
92
133
|
|
|
93
|
-
##
|
|
94
|
-
Users can also log in with Google OAuth
|
|
134
|
+
## TO-BE (Proposed Change)
|
|
135
|
+
Users can also log in with Google OAuth
|
|
136
|
+
|
|
137
|
+
## Acceptance Criteria
|
|
138
|
+
- [ ] Google OAuth button appears on login page
|
|
139
|
+
- [ ] OAuth flow completes successfully
|
|
140
|
+
- [ ] User profile populated from Google data
|
|
95
141
|
|
|
96
142
|
## Impact
|
|
97
|
-
-
|
|
98
|
-
- F-001-authentication: Modified section 3.1 "Security Rules" to include OAuth tokens
|
|
143
|
+
- f-ACME-001-user-auth: New section 2.3 "OAuth Login Flow"
|
|
99
144
|
```
|
|
100
145
|
|
|
146
|
+
**The Feature-Increment's TO-BE section becomes Feature Canon after deployment + sync.**
|
|
147
|
+
|
|
101
148
|
---
|
|
102
149
|
|
|
103
150
|
## Agent System
|
|
@@ -107,6 +154,7 @@ TeamSpec uses **role-specific agents** located in `.teamspec/agents/`:
|
|
|
107
154
|
| Agent | File | Purpose |
|
|
108
155
|
|-------|------|---------|
|
|
109
156
|
| Bootstrap | `AGENT_BOOTSTRAP.md` | Core rules inherited by all agents |
|
|
157
|
+
| PO | `AGENT_PO.md` | Product ownership tasks |
|
|
110
158
|
| BA | `AGENT_BA.md` | Business Analysis tasks |
|
|
111
159
|
| FA | `AGENT_FA.md` | Functional Analysis tasks |
|
|
112
160
|
| SA | `AGENT_SA.md` | Solution Architecture tasks |
|
|
@@ -118,7 +166,6 @@ TeamSpec uses **role-specific agents** located in `.teamspec/agents/`:
|
|
|
118
166
|
|
|
119
167
|
### Using Agents
|
|
120
168
|
|
|
121
|
-
To invoke an agent's capabilities:
|
|
122
169
|
```
|
|
123
170
|
ts:agent <role> # Load role-specific agent
|
|
124
171
|
ts:agent fix # Run linter fix agent
|
|
@@ -131,89 +178,55 @@ ts:agent fix # Run linter fix agent
|
|
|
131
178
|
### CLI Commands (Terminal)
|
|
132
179
|
|
|
133
180
|
```bash
|
|
134
|
-
teamspec lint # Lint all projects against TeamSpec rules
|
|
181
|
+
teamspec lint # Lint all products/projects against TeamSpec rules
|
|
135
182
|
teamspec lint --project X # Lint specific project
|
|
136
183
|
teamspec update # Update TeamSpec core files
|
|
137
184
|
```
|
|
138
185
|
|
|
139
186
|
### Copilot Commands (Chat)
|
|
140
187
|
|
|
141
|
-
####
|
|
142
|
-
- `ts:
|
|
143
|
-
- `ts:
|
|
144
|
-
- `ts:
|
|
145
|
-
- `ts:
|
|
146
|
-
- `ts:agent sm` → Load SM agent from `.teamspec/agents/AGENT_SM.md`
|
|
147
|
-
- `ts:agent sa` → Load SA agent from `.teamspec/agents/AGENT_SA.md`
|
|
148
|
-
- `ts:agent fix` → Load FIX agent, auto-fix lint errors
|
|
188
|
+
#### PO Commands (Product Owner)
|
|
189
|
+
- `ts:po product` → Create new product with PRX prefix
|
|
190
|
+
- `ts:po project` → Create new project targeting a product
|
|
191
|
+
- `ts:po sync` → Sync Feature-Increments to Product Canon (POST-DEPLOY ONLY)
|
|
192
|
+
- `ts:po status` → Product/project status overview
|
|
149
193
|
|
|
150
194
|
#### BA Commands (Business Analysis)
|
|
151
|
-
- `ts:ba
|
|
152
|
-
- `ts:ba
|
|
153
|
-
- `ts:ba
|
|
154
|
-
- `ts:ba decision` → Log business decision
|
|
155
|
-
- `ts:ba analysis` → Create business analysis document (process documentation)
|
|
195
|
+
- `ts:ba analysis` → Create business analysis document
|
|
196
|
+
- `ts:ba ba-increment` → Create BA increment in project
|
|
197
|
+
- `ts:ba review` → Review artifacts for business intent
|
|
156
198
|
|
|
157
199
|
#### FA Commands (Functional Analysis)
|
|
158
|
-
- `ts:fa
|
|
159
|
-
- `ts:fa
|
|
160
|
-
- `ts:fa
|
|
161
|
-
- `ts:fa
|
|
200
|
+
- `ts:fa feature` → Create feature in Product Canon
|
|
201
|
+
- `ts:fa feature-increment` → Create feature-increment in project
|
|
202
|
+
- `ts:fa epic` → Create epic in project
|
|
203
|
+
- `ts:fa story` → Create story linked to epic
|
|
204
|
+
- `ts:fa sync-proposal` → Prepare sync proposal for PO
|
|
205
|
+
|
|
206
|
+
#### SA Commands (Solution Architecture)
|
|
207
|
+
- `ts:sa sd` → Create solution design
|
|
208
|
+
- `ts:sa ta` → Create technical architecture
|
|
209
|
+
- `ts:sa sd-increment` → Create SD increment in project
|
|
210
|
+
- `ts:sa ta-increment` → Create TA increment in project
|
|
211
|
+
- `ts:sa review` → Review technical approach
|
|
162
212
|
|
|
163
213
|
#### DEV Commands (Development)
|
|
164
214
|
- `ts:dev plan` → Create dev plan for story
|
|
165
215
|
- `ts:dev implement` → Execute implementation
|
|
166
|
-
- `ts:dev ready` → Move story to ready-for-development
|
|
167
216
|
|
|
168
217
|
#### QA Commands (Quality Assurance)
|
|
169
|
-
- `ts:qa test` →
|
|
170
|
-
- `ts:qa
|
|
171
|
-
- `ts:qa
|
|
218
|
+
- `ts:qa test` → Create test cases for Feature-Increment
|
|
219
|
+
- `ts:qa regression` → Update product regression tests
|
|
220
|
+
- `ts:qa verify` → Validate DoD compliance
|
|
172
221
|
|
|
173
222
|
#### SM Commands (Scrum Master)
|
|
174
|
-
- `ts:sm sprint
|
|
175
|
-
- `ts:sm
|
|
176
|
-
- `ts:sm sprint close` → Close sprint with metrics
|
|
223
|
+
- `ts:sm sprint` → Create/manage sprint
|
|
224
|
+
- `ts:sm deploy-checklist` → Run deployment readiness checklist
|
|
177
225
|
|
|
178
226
|
#### Universal Commands
|
|
179
|
-
- `ts:
|
|
180
|
-
- `ts:
|
|
181
|
-
- `ts:
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## Linting Rules
|
|
186
|
-
|
|
187
|
-
The TeamSpec linter enforces these rule categories:
|
|
188
|
-
|
|
189
|
-
| Category | Rules | Severity |
|
|
190
|
-
|----------|-------|----------|
|
|
191
|
-
| **TS-PROJ** | Project registration, project.yml metadata | ERROR |
|
|
192
|
-
| **TS-FEAT** | Feature file existence, required sections, unique IDs | ERROR |
|
|
193
|
-
| **TS-STORY** | Feature links, delta format, AC, DoR | ERROR |
|
|
194
|
-
| **TS-ADR** | ADR requirements, feature linking | ERROR |
|
|
195
|
-
| **TS-DEVPLAN** | Dev plan existence for sprint stories | ERROR |
|
|
196
|
-
| **TS-DOD** | Canon sync when behavior changes | BLOCKER |
|
|
197
|
-
| **TS-NAMING** | File naming conventions | WARNING |
|
|
198
|
-
|
|
199
|
-
### Running the Linter
|
|
200
|
-
|
|
201
|
-
```bash
|
|
202
|
-
# From any TeamSpec-enabled workspace:
|
|
203
|
-
teamspec lint
|
|
204
|
-
|
|
205
|
-
# For specific project:
|
|
206
|
-
teamspec lint --project acme-webshop
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
### Auto-Fixing Lint Errors
|
|
210
|
-
|
|
211
|
-
Use the FIX agent to automatically resolve lint errors:
|
|
212
|
-
```
|
|
213
|
-
ts:agent fix
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
Or manually follow the rules in `.teamspec/agents/AGENT_FIX.md`.
|
|
227
|
+
- `ts:lint` → Run linter
|
|
228
|
+
- `ts:fix` → Auto-fix lint errors
|
|
229
|
+
- `ts:agent <role>` → Load role-specific agent
|
|
217
230
|
|
|
218
231
|
---
|
|
219
232
|
|
|
@@ -221,12 +234,20 @@ Or manually follow the rules in `.teamspec/agents/AGENT_FIX.md`.
|
|
|
221
234
|
|
|
222
235
|
| Artifact | Pattern | Example |
|
|
223
236
|
|----------|---------|---------|
|
|
224
|
-
| Feature | `
|
|
225
|
-
|
|
|
226
|
-
|
|
|
227
|
-
|
|
|
228
|
-
| Dev Plan | `
|
|
229
|
-
|
|
|
237
|
+
| Feature | `f-{PRX}-{NNN}-{description}.md` | `f-ACME-001-user-auth.md` |
|
|
238
|
+
| Feature-Increment | `fi-{PRX}-{NNN}-{description}.md` | `fi-ACME-001-oauth-login.md` |
|
|
239
|
+
| Epic | `epic-{PRX}-{NNN}-{description}.md` | `epic-ACME-001-auth-overhaul.md` |
|
|
240
|
+
| Story | `s-e{EEE}-{SSS}-{description}.md` | `s-e001-042-add-google-oauth.md` |
|
|
241
|
+
| Dev Plan | `dp-e{EEE}-s{SSS}-{description}.md` | `dp-e001-s042-oauth-impl.md` |
|
|
242
|
+
| Test Case (project) | `tc-fi-{PRX}-{NNN}-{description}.md` | `tc-fi-ACME-001-oauth-tests.md` |
|
|
243
|
+
| Regression Test (product) | `rt-f-{PRX}-{NNN}-{description}.md` | `rt-f-ACME-001-auth-regression.md` |
|
|
244
|
+
| Business Analysis | `ba-{PRX}-{NNN}-{description}.md` | `ba-ACME-001-checkout-flow.md` |
|
|
245
|
+
| Solution Design | `sd-{PRX}-{NNN}-{description}.md` | `sd-ACME-001-oauth-design.md` |
|
|
246
|
+
| Technical Architecture | `ta-{PRX}-{NNN}-{description}.md` | `ta-ACME-001-api-architecture.md` |
|
|
247
|
+
|
|
248
|
+
**PRX** = 3-4 character uppercase product prefix (immutable after creation)
|
|
249
|
+
**NNN** = Sequential number within artifact type
|
|
250
|
+
**EEE** = Epic number, **SSS** = Story sequence within epic
|
|
230
251
|
|
|
231
252
|
---
|
|
232
253
|
|
|
@@ -234,123 +255,178 @@ Or manually follow the rules in `.teamspec/agents/AGENT_FIX.md`.
|
|
|
234
255
|
|
|
235
256
|
### Definition of Ready (DoR)
|
|
236
257
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
258
|
+
**Owner:** FA | **Verifier:** SM
|
|
259
|
+
|
|
260
|
+
Before a story enters `in-progress/`:
|
|
261
|
+
- [ ] Story linked to Epic via filename (`s-eXXX-YYY-*.md`)
|
|
262
|
+
- [ ] Feature-Increment exists with AS-IS/TO-BE sections
|
|
240
263
|
- [ ] Acceptance Criteria are testable
|
|
241
264
|
- [ ] No TBD/placeholder content
|
|
242
265
|
- [ ] Estimate assigned
|
|
243
266
|
|
|
244
267
|
### Definition of Done (DoD)
|
|
245
268
|
|
|
246
|
-
|
|
247
|
-
|
|
269
|
+
**Owner:** FA | **Verifier:** QA
|
|
270
|
+
|
|
271
|
+
Before a story moves to `done/`:
|
|
272
|
+
- [ ] All AC verified by QA
|
|
248
273
|
- [ ] Code reviewed and merged
|
|
249
274
|
- [ ] Tests passing
|
|
250
|
-
- [ ]
|
|
251
|
-
- [ ]
|
|
275
|
+
- [ ] Feature-Increment TO-BE section complete
|
|
276
|
+
- [ ] Ready for deployment
|
|
277
|
+
|
|
278
|
+
### Deployment Gate
|
|
279
|
+
|
|
280
|
+
**Owner:** SM | **Approver:** PO | **Verifier:** QA
|
|
281
|
+
|
|
282
|
+
Before `ts:po sync`:
|
|
283
|
+
- [ ] All sprint stories in terminal state (Done/Deferred/Out-of-Scope)
|
|
284
|
+
- [ ] All Feature-Increments reviewed
|
|
285
|
+
- [ ] QA sign-off obtained
|
|
286
|
+
- [ ] **Regression coverage confirmed** (rt-f-* updated OR "no impact" recorded)
|
|
287
|
+
- [ ] Code deployed to production
|
|
288
|
+
- [ ] Smoke tests passed
|
|
289
|
+
|
|
290
|
+
### Canon Sync Gate
|
|
291
|
+
|
|
292
|
+
**Owner:** PO
|
|
293
|
+
|
|
294
|
+
**Precondition:** Deployment gate passed
|
|
295
|
+
**Action:** `ts:po sync`
|
|
296
|
+
**Effect:** Feature-Increment TO-BE merged into Product Feature Canon
|
|
297
|
+
**Timing:** POST-DEPLOY ONLY
|
|
252
298
|
|
|
253
299
|
---
|
|
254
300
|
|
|
255
|
-
##
|
|
301
|
+
## QA Two-Layer Model
|
|
256
302
|
|
|
257
|
-
|
|
303
|
+
QA maintains test artifacts at two levels:
|
|
258
304
|
|
|
259
|
-
|
|
260
|
-
- `
|
|
261
|
-
-
|
|
262
|
-
- `
|
|
263
|
-
- `sprint-goal-template.md` → Sprint goals
|
|
264
|
-
- `testcases-template.md` → Test cases
|
|
265
|
-
- `bug-report-template.md` → Bug reports
|
|
266
|
-
- `business-analysis-template.md` → Business analysis documents
|
|
305
|
+
### Project Level (Feature-Increment Coverage)
|
|
306
|
+
- **Location:** `projects/{id}/qa/test-cases/tc-fi-PRX-NNN-*.md`
|
|
307
|
+
- **Purpose:** Validate Feature-Increment during project
|
|
308
|
+
- **Targets:** `fi-PRX-NNN` (specific Feature-Increment)
|
|
267
309
|
|
|
268
|
-
###
|
|
310
|
+
### Product Level (Regression Suite)
|
|
311
|
+
- **Location:** `products/{id}/qa/regression-tests/rt-f-PRX-NNN-*.md`
|
|
312
|
+
- **Purpose:** Long-term regression testing
|
|
313
|
+
- **Targets:** `f-PRX-NNN` (Feature in Canon)
|
|
269
314
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
315
|
+
### Promotion Rule
|
|
316
|
+
|
|
317
|
+
At deployment gate, QA must confirm regression coverage is updated:
|
|
318
|
+
- For each `fi-PRX-NNN` delivered, either:
|
|
319
|
+
- Update/create `rt-f-PRX-NNN-*` regression docs, or
|
|
320
|
+
- Record "no regression impact" explicitly in deployment checklist
|
|
276
321
|
|
|
277
322
|
---
|
|
278
323
|
|
|
279
|
-
##
|
|
324
|
+
## Canon Update Lifecycle
|
|
280
325
|
|
|
281
|
-
|
|
326
|
+
1. **During project:** Feature-Increments describe AS-IS (current) and TO-BE (proposed)
|
|
327
|
+
2. **Story completion:** FA marks stories Done after QA verification
|
|
328
|
+
3. **Deployment:** Code deployed to production
|
|
329
|
+
4. **Post-deploy sync:** PO runs `ts:po sync` to merge FI TO-BE into Product Canon
|
|
330
|
+
5. **Regression update:** QA confirms regression test coverage (rt-f-* files)
|
|
282
331
|
|
|
283
|
-
|
|
284
|
-
2. **No Placeholders**: Never leave TBD/TODO unless explicitly asked
|
|
285
|
-
3. **Markdown Strict**: Output properly formatted Markdown
|
|
286
|
-
4. **Feature Canon Reference**: Always link behavior to Feature Canon
|
|
287
|
-
5. **Role Awareness**: Ask which role the user is acting as if unclear
|
|
288
|
-
6. **Delta Format**: Stories MUST describe changes (before/after/impact)
|
|
289
|
-
7. **Unique IDs**: Ensure all artifacts have unique sequential IDs
|
|
332
|
+
**Canon is NEVER updated before deployment.**
|
|
290
333
|
|
|
291
334
|
---
|
|
292
335
|
|
|
293
|
-
##
|
|
336
|
+
## Linting Rules
|
|
294
337
|
|
|
295
|
-
|
|
338
|
+
| Category | Rules | Severity |
|
|
339
|
+
|----------|-------|----------|
|
|
340
|
+
| **TS-PROD** | Product registration, product.yml, PRX uniqueness | ERROR |
|
|
341
|
+
| **TS-PROJ** | Project registration, project.yml, target_products | ERROR |
|
|
342
|
+
| **TS-FI** | Feature-Increment format, AS-IS/TO-BE sections | ERROR |
|
|
343
|
+
| **TS-STORY** | Epic link via filename, delta format, AC | ERROR |
|
|
344
|
+
| **TS-QA** | Test case existence for ready FIs, regression coverage | WARNING |
|
|
345
|
+
| **TS-NAMING** | File naming conventions | WARNING |
|
|
296
346
|
|
|
297
|
-
```
|
|
298
|
-
#
|
|
299
|
-
|
|
347
|
+
```bash
|
|
348
|
+
teamspec lint # Lint entire workspace
|
|
349
|
+
teamspec lint --project my-project # Lint specific project
|
|
300
350
|
```
|
|
301
351
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## Templates
|
|
355
|
+
|
|
356
|
+
All document templates are available in `.teamspec/templates/`:
|
|
357
|
+
|
|
358
|
+
| Template | Used By | Command |
|
|
359
|
+
|----------|---------|---------|
|
|
360
|
+
| `feature-template.md` | FA | `ts:fa feature` |
|
|
361
|
+
| `feature-increment-template.md` | FA | `ts:fa feature-increment` |
|
|
362
|
+
| `story-template.md` | FA | `ts:fa story` |
|
|
363
|
+
| `epic-template.md` | FA | `ts:fa epic` |
|
|
364
|
+
| `business-analysis-template.md` | BA | `ts:ba analysis` |
|
|
365
|
+
| `sd-template.md` | SA | `ts:sa sd` |
|
|
366
|
+
| `ta-template.md` | SA | `ts:sa ta` |
|
|
367
|
+
| `testcases-template.md` | QA | `ts:qa test` |
|
|
368
|
+
| `regression-template.md` | QA | `ts:qa regression` |
|
|
369
|
+
| `sprint-template.md` | SM | `ts:sm sprint` |
|
|
370
|
+
|
|
371
|
+
---
|
|
308
372
|
|
|
309
|
-
|
|
373
|
+
## Output Guidelines
|
|
374
|
+
|
|
375
|
+
When assisting with TeamSpec:
|
|
376
|
+
|
|
377
|
+
1. **Template First**: Always use templates from `.teamspec/templates/`
|
|
378
|
+
2. **No Placeholders**: Never leave TBD/TODO unless explicitly asked
|
|
379
|
+
3. **Markdown Strict**: Output properly formatted Markdown
|
|
380
|
+
4. **Canon Reference**: Always link stories to Feature-Increments, FIs to Features
|
|
381
|
+
5. **Role Awareness**: Ask which role the user is acting as if unclear
|
|
382
|
+
6. **Delta Format**: Feature-Increments MUST have AS-IS/TO-BE sections
|
|
383
|
+
7. **Unique IDs**: Ensure all artifacts have unique sequential IDs
|
|
384
|
+
8. **PRX Consistency**: Use the product's assigned prefix everywhere
|
|
310
385
|
|
|
311
386
|
---
|
|
312
387
|
|
|
313
388
|
## Common Workflows
|
|
314
389
|
|
|
315
|
-
### Creating a New
|
|
316
|
-
1.
|
|
317
|
-
2.
|
|
318
|
-
3.
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
###
|
|
335
|
-
1.
|
|
336
|
-
2.
|
|
337
|
-
3.
|
|
338
|
-
4.
|
|
390
|
+
### Creating a New Product
|
|
391
|
+
1. PO runs `ts:po product` to create product structure
|
|
392
|
+
2. PRX prefix is assigned and locked
|
|
393
|
+
3. FA creates initial features in `products/{id}/features/`
|
|
394
|
+
|
|
395
|
+
### Creating a New Project
|
|
396
|
+
1. PO runs `ts:po project` targeting a product
|
|
397
|
+
2. FA creates Feature-Increments describing proposed changes
|
|
398
|
+
3. FA creates Epics to organize work
|
|
399
|
+
4. FA creates Stories linked to Epics
|
|
400
|
+
|
|
401
|
+
### Working on a Story
|
|
402
|
+
1. FA creates story in `stories/backlog/` with `s-eXXX-YYY-*.md` naming
|
|
403
|
+
2. Story references Feature-Increment with AS-IS/TO-BE
|
|
404
|
+
3. SM verifies DoR, story moves to `in-progress/`
|
|
405
|
+
4. DEV creates dev plan, implements
|
|
406
|
+
5. QA creates test cases (`tc-fi-*`), verifies AC
|
|
407
|
+
6. FA marks Done, story moves to `done/`
|
|
408
|
+
|
|
409
|
+
### Deploying and Syncing
|
|
410
|
+
1. SM runs `ts:sm deploy-checklist` — verifies all gates
|
|
411
|
+
2. Code is deployed to production
|
|
412
|
+
3. QA verifies smoke tests, confirms regression coverage
|
|
413
|
+
4. PO runs `ts:po sync` — FI TO-BE becomes Feature Canon
|
|
414
|
+
5. Project can be archived or continued
|
|
339
415
|
|
|
340
416
|
---
|
|
341
417
|
|
|
342
418
|
## Getting Help
|
|
343
419
|
|
|
420
|
+
- View spec: `cat spec/4.0/index.md`
|
|
344
421
|
- View all templates: `ls .teamspec/templates/`
|
|
345
422
|
- View agent prompts: `ls .teamspec/agents/`
|
|
346
423
|
- Check definitions: `cat .teamspec/definitions/definition-of-ready.md`
|
|
347
424
|
- Run linter: `teamspec lint`
|
|
348
|
-
- Update core files: `teamspec update`
|
|
349
425
|
|
|
350
426
|
---
|
|
351
427
|
|
|
352
428
|
## Version Information
|
|
353
429
|
|
|
354
|
-
This workspace is using **TeamSpec
|
|
430
|
+
This workspace is using **TeamSpec 4.0** (Product-Canon Operating Model).
|
|
355
431
|
|
|
356
|
-
For
|
|
432
|
+
For the authoritative specification, see `spec/4.0/registry.yml`.
|