teamspec 3.2.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.
Files changed (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +252 -0
  3. package/bin/teamspec-init.js +10 -0
  4. package/extensions/teamspec-0.1.0.vsix +0 -0
  5. package/lib/cli.js +1174 -0
  6. package/lib/extension-installer.js +236 -0
  7. package/lib/linter.js +1184 -0
  8. package/lib/prompt-generator.js +409 -0
  9. package/package.json +51 -0
  10. package/teamspec-core/agents/AGENT_BA.md +486 -0
  11. package/teamspec-core/agents/AGENT_BOOTSTRAP.md +447 -0
  12. package/teamspec-core/agents/AGENT_DES.md +623 -0
  13. package/teamspec-core/agents/AGENT_DEV.md +611 -0
  14. package/teamspec-core/agents/AGENT_FA.md +736 -0
  15. package/teamspec-core/agents/AGENT_FEEDBACK.md +202 -0
  16. package/teamspec-core/agents/AGENT_FIX.md +380 -0
  17. package/teamspec-core/agents/AGENT_QA.md +756 -0
  18. package/teamspec-core/agents/AGENT_SA.md +581 -0
  19. package/teamspec-core/agents/AGENT_SM.md +771 -0
  20. package/teamspec-core/agents/README.md +383 -0
  21. package/teamspec-core/context/_schema.yml +222 -0
  22. package/teamspec-core/copilot-instructions.md +356 -0
  23. package/teamspec-core/definitions/definition-of-done.md +129 -0
  24. package/teamspec-core/definitions/definition-of-ready.md +104 -0
  25. package/teamspec-core/profiles/enterprise.yml +127 -0
  26. package/teamspec-core/profiles/platform-team.yml +104 -0
  27. package/teamspec-core/profiles/regulated.yml +97 -0
  28. package/teamspec-core/profiles/startup.yml +85 -0
  29. package/teamspec-core/teamspec.yml +69 -0
  30. package/teamspec-core/templates/README.md +211 -0
  31. package/teamspec-core/templates/active-sprint-template.md +98 -0
  32. package/teamspec-core/templates/adr-template.md +194 -0
  33. package/teamspec-core/templates/bug-report-template.md +188 -0
  34. package/teamspec-core/templates/business-analysis-template.md +164 -0
  35. package/teamspec-core/templates/decision-log-template.md +216 -0
  36. package/teamspec-core/templates/feature-template.md +269 -0
  37. package/teamspec-core/templates/functional-spec-template.md +161 -0
  38. package/teamspec-core/templates/refinement-notes-template.md +133 -0
  39. package/teamspec-core/templates/sprint-goal-template.md +129 -0
  40. package/teamspec-core/templates/sprint-template.md +175 -0
  41. package/teamspec-core/templates/sprints-index-template.md +67 -0
  42. package/teamspec-core/templates/story-template.md +244 -0
  43. package/teamspec-core/templates/storymap-template.md +204 -0
  44. package/teamspec-core/templates/testcases-template.md +147 -0
  45. package/teamspec-core/templates/uat-pack-template.md +161 -0
@@ -0,0 +1,244 @@
1
+ # S-XXX: [Title]
2
+
3
+ <!-- TEAMSPEC RULE: TS-STORY-002 -->
4
+ <!--
5
+ ⚠️ STORIES ARE DELTAS, NOT DOCUMENTATION
6
+
7
+ This story describes a CHANGE to the Feature Canon.
8
+
9
+ DO NOT:
10
+ - Restate full feature behavior
11
+ - Include complete specifications
12
+ - Document end-to-end flows
13
+
14
+ DO:
15
+ - Reference Feature Canon (F-XXX) for current behavior
16
+ - Describe only what changes (Before → After)
17
+ - Link to Feature Canon rules (BR-XXX)
18
+ -->
19
+
20
+ > **Template Version**: 2.0
21
+ > **Last Updated**: 2026-01-07
22
+
23
+ ---
24
+
25
+ ## Metadata
26
+
27
+ | Field | Value |
28
+ |-------|-------|
29
+ | **Story ID** | S-XXX |
30
+ | **Status** | Backlog |
31
+ | **Estimate** | [Points] |
32
+ | **Author** | [FA Name] |
33
+ | **Sprint** | — |
34
+
35
+ **Document Owner:** FA (Functional Analyst)
36
+ **Artifact Type:** Execution (Delta to Feature Canon)
37
+ **Lifecycle:** Sprint-bound, archived after completion
38
+
39
+ > ⚠️ **Stories start in Backlog.** Only the Scrum Master can assign stories to a sprint.
40
+
41
+ ---
42
+
43
+ ## User Story
44
+
45
+ **As a** [Persona],
46
+ **I want** [Action],
47
+ **So that** [Benefit].
48
+
49
+ ---
50
+
51
+ ## Linked Project
52
+
53
+ > ⚠️ **MANDATORY**: Link to the project this story belongs to.
54
+
55
+ | Project ID | Name |
56
+ |------------|------|
57
+ | [PROJECT-ID](../project.yml) | [Project Name] |
58
+
59
+ ---
60
+
61
+ ## Linked Epic
62
+
63
+ > Recommended: Link to the parent epic.
64
+
65
+ | Epic ID | Epic Name |
66
+ |---------|-----------|
67
+ | [EPIC-XXX](../epics/EPIC-XXX.md) | [Epic Name] |
68
+
69
+ ---
70
+
71
+ ## Linked Feature
72
+
73
+ > ⚠️ **MANDATORY**: Every story must link to at least one feature.
74
+ > **TEAMSPEC RULE:** TS-STORY-001 - Feature link required
75
+
76
+ | Feature ID | Feature Name |
77
+ |------------|--------------|
78
+ | [F-XXX](../features/F-XXX-feature-name.md) | [Feature Name] |
79
+
80
+ ---
81
+
82
+ ## Feature Impact
83
+
84
+ > Describe what this story CHANGES relative to current documented behavior.
85
+ > **Do NOT restate full feature behavior here.**
86
+
87
+ <!-- TEAMSPEC RULE: TS-STORY-002 requires Before/After format -->
88
+
89
+ ### Impact Type
90
+
91
+ - [ ] **Adds Behavior** — New capability not currently in the feature
92
+ - [ ] **Changes Behavior** — Modifies existing documented behavior
93
+ - [ ] **Fixes Defect** — Restores behavior to match documentation (no feature update needed)
94
+ - [ ] **Technical Only** — Refactor/performance with no user-observable change
95
+
96
+ ### Before (current behavior)
97
+
98
+ <!--
99
+ Describe the CURRENT behavior as documented in Feature Canon.
100
+ Reference: F-XXX, Section: [section name]
101
+
102
+ Example: "Currently, users must log in with email/password (F-001, Main Flow Step 1)"
103
+ -->
104
+
105
+ **Reference:** F-XXX, Section: [section]
106
+
107
+ [Brief description of current behavior per Feature Canon]
108
+
109
+ ### After (new behavior)
110
+
111
+ <!--
112
+ Describe ONLY what changes.
113
+ This becomes the new behavior in Feature Canon after completion.
114
+
115
+ Example: "Users can also log in with Google OAuth"
116
+ -->
117
+
118
+ [ONLY the delta - what changes]
119
+
120
+ > ⚠️ **FEATURE CANON RULE**
121
+ > If this story adds or changes behavior, the Feature Canon MUST be updated before this story can be marked Done.
122
+ > See: Definition of Done - TS-DOD-001
123
+
124
+ ---
125
+
126
+ ## Sprint Assignment
127
+
128
+ <!-- TEAMSPEC RULE: TS-STORY-004 - Only SM can assign sprint -->
129
+
130
+ **Sprint:** —
131
+ **Assigned By:** ________________
132
+ **Role:** SM
133
+ **Date:** ________________
134
+
135
+ > ⚠️ Only the Scrum Master (SM) can assign this story to a sprint.
136
+
137
+ ---
138
+
139
+ ## Decision References
140
+
141
+ _Business decisions that drove this story's existence or scope._
142
+
143
+ > **When Required**: If this story has "Adds Behavior" or "Changes Behavior" impact, it MUST either:
144
+ >
145
+ > - Reference at least one DEC ID, OR
146
+ > - Explicitly check "No new business decision required" below
147
+
148
+ | Decision ID | Summary | Impact on This Story |
149
+ |-------------|---------|----------------------|
150
+ | [DEC-XXX](../decisions/DEC-XXX-*.md) | [One-line summary] | [Why this story exists / what changed] |
151
+
152
+ - [ ] **No new business decision required** (for stories without scope/behavior decisions)
153
+
154
+ ---
155
+
156
+ ## Acceptance Criteria (AC)
157
+
158
+ > AC must map to Feature Canon behavior. Reference feature business rules where applicable.
159
+
160
+ ### Scenario 1: [Happy Path]
161
+
162
+ - **Given** [Context]
163
+ - **When** [Action]
164
+ - **Then** [Result]
165
+ - **Feature Rule**: [BR-XXX if applicable]
166
+
167
+ ### Scenario 2: [Edge Case]
168
+
169
+ - **Given** ...
170
+ - **When** ...
171
+ - **Then** ...
172
+
173
+ ---
174
+
175
+ ## Technical Notes
176
+
177
+ - **API**: [Endpoint]
178
+ - **DB**: [Table/Schema]
179
+ - **ADR**: [ADR-XXX if applicable]
180
+
181
+ ---
182
+
183
+ ## UX & Copy
184
+
185
+ - [Figma Link]
186
+ - Error Messages: [List specific messages]
187
+
188
+ ---
189
+
190
+ ## FA Acceptance Gate
191
+
192
+ > This story must be reviewed by FA before moving to Ready for Development.
193
+
194
+ | Check | Status | FA Initials |
195
+ |-------|--------|-------------|
196
+ | Story describes delta only | [ ] | |
197
+ | Feature link is correct | [ ] | |
198
+ | ACs reference Feature Canon | [ ] | |
199
+ | No full behavior restatement | [ ] | |
200
+
201
+ **FA Approved:** [ ] Yes
202
+ **FA Name:** ________________
203
+ **Date:** ________________
204
+
205
+ ---
206
+
207
+ ## DoR Checklist (Feature Alignment)
208
+
209
+ - [ ] Linked to one or more Feature IDs
210
+ - [ ] Feature file(s) exist and are current
211
+ - [ ] Story describes DELTA only, not full behavior
212
+ - [ ] Feature impact type is marked
213
+ - [ ] ACs map to feature behavior / business rules
214
+ - [ ] Open questions tracked at feature level (not here)
215
+
216
+ ## DoR Checklist (Standard)
217
+
218
+ - [ ] AC Defined (Gherkin or checklist)
219
+ - [ ] UX Attached (or "No UI required")
220
+ - [ ] Dependencies Clear
221
+ - [ ] Estimated
222
+ - [ ] Small enough for one sprint
223
+
224
+ ## DoD Checklist
225
+
226
+ - [ ] Code Complete
227
+ - [ ] Tests Passed
228
+ - [ ] **Feature Canon updated** (if behavior changed) — TS-DOD-001
229
+ - [ ] Feature Change Log entry added
230
+ - [ ] Story Ledger updated
231
+ - [ ] FA Accepted
232
+
233
+ ---
234
+
235
+ ## Linter Rules Enforced
236
+
237
+ | Rule | Description | Status |
238
+ |------|-------------|--------|
239
+ | TS-STORY-001 | Feature link required | Checked on save |
240
+ | TS-STORY-002 | Delta-only format | Checked on save |
241
+ | TS-STORY-003 | ACs testable | Checked on Ready |
242
+ | TS-STORY-004 | Sprint assignment by SM only | Checked on assignment |
243
+ | TS-STORY-005 | DoR complete | Checked on Ready |
244
+ | TS-DOD-001 | Canon sync | Checked on Done |
@@ -0,0 +1,204 @@
1
+ ---
2
+ epic_id: "[EPIC-ID]"
3
+ epic_name: "[Epic Name]"
4
+ goal: "[One-sentence business goal]"
5
+ personas:
6
+ - "[Persona 1]"
7
+ - "[Persona 2]"
8
+ constraints:
9
+ - "[Constraint 1]"
10
+ - "[Constraint 2]"
11
+ backbone_activities:
12
+ - "[Activity 1]"
13
+ - "[Activity 2]"
14
+ - "[Activity 3]"
15
+ steps:
16
+ "[Activity 1]":
17
+ - "[Step 1.1]"
18
+ - "[Step 1.2]"
19
+ "[Activity 2]":
20
+ - "[Step 2.1]"
21
+ - "[Step 2.2]"
22
+ feature_slices:
23
+ - name: "[Feature Slice 1]"
24
+ priority: "MVP"
25
+ goal: "[What this slice delivers]"
26
+ related_steps:
27
+ - "[Activity: Step]"
28
+ - name: "[Feature Slice 2]"
29
+ priority: "Next"
30
+ goal: "[What this slice delivers]"
31
+ related_steps:
32
+ - "[Activity: Step]"
33
+ story_candidates:
34
+ - title: "[Story 1 title]"
35
+ slice: "[Feature Slice 1]"
36
+ feature_ids: ["F-XXX"]
37
+ notes: "[Implementation notes]"
38
+ risks: "[Known risks]"
39
+ - title: "[Story 2 title]"
40
+ slice: "[Feature Slice 1]"
41
+ feature_ids: ["F-XXX"]
42
+ notes: "[Implementation notes]"
43
+ risks: "[Known risks]"
44
+ ---
45
+
46
+ # Story Map: [Epic Name]
47
+
48
+ <!--
49
+ ⚠️ STORY MAP RULES
50
+
51
+ Story maps help visualize user journeys and slice features.
52
+
53
+ RULES:
54
+ 1. Story candidates must link to Feature IDs
55
+ 2. Features must exist in Canon before stories are created
56
+ 3. This is a planning artifact, not source of truth
57
+ -->
58
+
59
+ > **Template Version**: 2.0
60
+ > **Last Updated**: 2026-01-07
61
+
62
+ ---
63
+
64
+ **Document Owner:** FA (Functional Analyst)
65
+ **Artifact Type:** Planning (Workshop Output)
66
+ **Lifecycle:** Historical after stories created
67
+
68
+ ---
69
+
70
+ **Epic ID**: [EPIC-ID]
71
+ **Created**: YYYY-MM-DD
72
+ **Facilitator**: [Name/Role]
73
+ **Participants**: [BA, FA, ARCH, DEV, QA names]
74
+
75
+ ---
76
+
77
+ ## Epic Overview
78
+
79
+ ### Goal
80
+
81
+ [One-sentence statement of business value]
82
+
83
+ ### Personas
84
+
85
+ | Persona | Description | Key Needs |
86
+ |---------|-------------|-----------|
87
+ | [Persona 1] | [Brief description] | [What they need] |
88
+ | [Persona 2] | [Brief description] | [What they need] |
89
+
90
+ ### Constraints
91
+
92
+ - **Technical**: [Stack, platform, integrations]
93
+ - **Compliance**: [GDPR, SOX, etc.]
94
+ - **Timeline**: [MVP deadline, launch date]
95
+ - **Resources**: [Team size, skills]
96
+
97
+ ### Success Metrics
98
+
99
+ | Metric | Target |
100
+ |--------|--------|
101
+ | [KPI 1] | [Target] |
102
+ | [KPI 2] | [Target] |
103
+
104
+ ---
105
+
106
+ ## Story Map Visualization
107
+
108
+ ### Backbone (Activities)
109
+
110
+ ```
111
+ ┌─────────────┬─────────────┬─────────────┬─────────────┐
112
+ │ Activity 1 │ Activity 2 │ Activity 3 │ Activity 4 │
113
+ └─────────────┴─────────────┴─────────────┴─────────────┘
114
+ ```
115
+
116
+ ---
117
+
118
+ ## User Steps by Activity
119
+
120
+ ### Activity 1: [Activity Name]
121
+
122
+ **User Steps**:
123
+ 1. [Step 1.1]
124
+ 2. [Step 1.2]
125
+ 3. [Step 1.3]
126
+
127
+ **Edge Cases**:
128
+ - [Edge case 1]
129
+ - [Edge case 2]
130
+
131
+ ### Activity 2: [Activity Name]
132
+
133
+ **User Steps**:
134
+ 1. [Step 2.1]
135
+ 2. [Step 2.2]
136
+
137
+ **Edge Cases**:
138
+ - [Edge case 1]
139
+
140
+ ---
141
+
142
+ ## Feature Slices
143
+
144
+ | Slice | Priority | Goal | Features | Stories |
145
+ |-------|----------|------|----------|---------|
146
+ | [Slice 1] | MVP | [What it delivers] | F-XXX | S-001, S-002 |
147
+ | [Slice 2] | Next | [What it delivers] | F-YYY | S-003 |
148
+ | [Slice 3] | Later | [What it delivers] | F-ZZZ | TBD |
149
+
150
+ ---
151
+
152
+ ## Story Candidates
153
+
154
+ > ⚠️ All story candidates must link to Feature IDs.
155
+ > Features must exist in Canon before stories are created.
156
+
157
+ | Title | Slice | Feature(s) | Impact | Notes | Risks |
158
+ |-------|-------|------------|--------|-------|-------|
159
+ | [Story 1] | MVP | F-XXX | Adds | [Notes] | [Risks] |
160
+ | [Story 2] | MVP | F-XXX | Adds | [Notes] | [Risks] |
161
+ | [Story 3] | Next | F-YYY | Adds | [Notes] | [Risks] |
162
+
163
+ ---
164
+
165
+ ## Feature Canon Alignment
166
+
167
+ > Verify features exist before creating stories.
168
+
169
+ | Feature ID | Feature Name | Status | Stories Mapped |
170
+ |------------|--------------|--------|----------------|
171
+ | F-XXX | [Name] | Active / To Create | S-001, S-002 |
172
+ | F-YYY | [Name] | Active / To Create | S-003 |
173
+
174
+ **Features to Create**:
175
+ - [ ] F-XXX: [Feature Name] — Owner: BA
176
+ - [ ] F-YYY: [Feature Name] — Owner: BA
177
+
178
+ ---
179
+
180
+ ## Dependencies
181
+
182
+ ```mermaid
183
+ graph LR
184
+ S1[Story 1] --> S2[Story 2]
185
+ S2 --> S3[Story 3]
186
+ S1 --> S4[Story 4]
187
+ ```
188
+
189
+ ---
190
+
191
+ ## Risks & Mitigations
192
+
193
+ | Risk | Likelihood | Impact | Mitigation |
194
+ |------|------------|--------|------------|
195
+ | [Risk 1] | High/Med/Low | High/Med/Low | [Mitigation] |
196
+
197
+ ---
198
+
199
+ ## Next Steps
200
+
201
+ - [ ] BA to create missing Feature files
202
+ - [ ] FA to create stories from candidates
203
+ - [ ] Link stories to features
204
+ - [ ] Refine stories in backlog
@@ -0,0 +1,147 @@
1
+ # Test Cases: [Feature Name]
2
+
3
+ <!--
4
+ ⚠️ TESTS ARE FEATURE-LEVEL, NOT STORY-LEVEL
5
+
6
+ Test cases validate Feature Canon behavior, not individual stories.
7
+
8
+ RULES:
9
+ 1. Tests reference Feature Canon sections
10
+ 2. Tests are canonical (survive story completion)
11
+ 3. If behavior doesn't match Canon, classify the issue
12
+ 4. Do not create story-specific test cases
13
+
14
+ TEAMSPEC RULES ENFORCED:
15
+ - TS-DOD-002: Tests are feature-level
16
+ - TS-QA-001: Tests must reference Feature Canon
17
+ -->
18
+
19
+ > **Template Version**: 2.0
20
+ > **Last Updated**: 2026-01-07
21
+
22
+ ---
23
+
24
+ **Document Owner:** QA (QA Engineer)
25
+ **Artifact Type:** Canonical (Feature-level)
26
+ **Lifecycle:** Permanent, evolves with Feature Canon
27
+
28
+ ---
29
+
30
+ ## Test Case Reference
31
+
32
+ **Feature:** [F-XXX — Feature Name](../../features/F-XXX-name.md)
33
+ **Test Level:** Feature (not Story)
34
+
35
+ | Metadata | Value |
36
+ | :--- | :--- |
37
+ | **Feature** | [F-XXX](../../features/F-XXX-name.md) – [Feature Name] |
38
+ | **Author** | [QA Name] |
39
+ | **Created** | YYYY-MM-DD |
40
+ | **Last Updated** | YYYY-MM-DD |
41
+
42
+ <!-- TEAMSPEC RULE: TS-DOD-002 - Tests are feature-level -->
43
+
44
+ > ⚠️ Test cases are canonical and feature-level.
45
+ > Do not create story-specific test cases.
46
+ > Test against Feature Canon, not individual stories.
47
+
48
+ ---
49
+
50
+ ## Test Scenarios
51
+
52
+ ### TC-001: [Title]
53
+
54
+ - **Type**: Positive / Negative / Boundary
55
+ - **Feature Reference**: F-XXX: Current Behavior > [Section]
56
+ - **Business Rule**: BR-XXX-001 (if applicable)
57
+ - **Pre-conditions**: [Setup required]
58
+ - **Steps**:
59
+ 1. [Action 1]
60
+ 2. [Action 2]
61
+ - **Expected Result**: [What should happen]
62
+ - **Canon Alignment**: ✓ Matches Feature Canon documented behavior
63
+
64
+ ### TC-002: [Title]
65
+
66
+ - **Type**: Positive / Negative / Boundary
67
+ - **Feature Reference**: F-XXX: Current Behavior > [Section]
68
+ - **Business Rule**: BR-XXX-002 (if applicable)
69
+ - **Pre-conditions**: [Setup required]
70
+ - **Steps**:
71
+ 1. [Action 1]
72
+ 2. [Action 2]
73
+ - **Expected Result**: [What should happen]
74
+ - **Canon Alignment**: ✓ Matches Feature Canon documented behavior
75
+
76
+ ---
77
+
78
+ ## Edge Case Coverage
79
+
80
+ | Edge Case | Feature Canon Section | Test ID | Status |
81
+ |-----------|----------------------|---------|--------|
82
+ | [Edge case 1] | F-XXX: Edge Cases | TC-003 | [ ] |
83
+ | [Edge case 2] | F-XXX: Edge Cases | TC-004 | [ ] |
84
+
85
+ ---
86
+
87
+ ## Business Rule Validation
88
+
89
+ | Rule ID | Rule Description | Test ID | Status |
90
+ |---------|------------------|---------|--------|
91
+ | BR-XXX-001 | [Rule description] | TC-001 | [ ] |
92
+ | BR-XXX-002 | [Rule description] | TC-002 | [ ] |
93
+
94
+ ---
95
+
96
+ ## Feature Alignment Validation
97
+
98
+ Before marking tests as "Complete":
99
+
100
+ - [ ] All tests reference Feature Canon behavior
101
+ - [ ] No tests for undocumented behavior
102
+ - [ ] If behavior doesn't match Feature Canon, flagged for investigation
103
+ - [ ] Feature file is current (no ⚠️ pending updates)
104
+ - [ ] Business rules (BR-XXX) are all tested
105
+
106
+ ---
107
+
108
+ ## Post-Test Documentation Check
109
+
110
+ After testing is complete:
111
+
112
+ - [ ] If behavior matches Feature Canon: ✅ Pass
113
+ - [ ] If behavior doesn't match Feature Canon:
114
+ - [ ] Is Feature Canon wrong? Flag for FA sync.
115
+ - [ ] Is implementation wrong? File bug for DEV.
116
+ - [ ] Is this undocumented behavior? Alert FA immediately.
117
+
118
+ ---
119
+
120
+ ## Test Execution Log
121
+
122
+ | Date | Tester | Environment | Pass | Fail | Blocked | Notes |
123
+ |------|--------|-------------|------|------|---------|-------|
124
+ | YYYY-MM-DD | [Name] | [Env] | {N} | {N} | {N} | |
125
+
126
+ ---
127
+
128
+ ## Sign-Off
129
+
130
+ This test pack is evidence that:
131
+
132
+ 1. ✅ Documented behavior works correctly
133
+ 2. ✅ No undocumented behavior was introduced
134
+ 3. ✅ Feature Canon is accurate and complete
135
+
136
+ **QA Approved:** [ ] Yes
137
+ **QA Name:** ________________
138
+ **Date:** ________________
139
+
140
+ ---
141
+
142
+ ## Linter Rules Enforced
143
+
144
+ | Rule | Description |
145
+ |------|-------------|
146
+ | TS-QA-001 | Tests must reference Feature Canon |
147
+ | TS-DOD-002 | Tests are feature-level, not story-level |