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
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
# Dev Plan: `dp-e{EEE}-s{SSS}-{description}`
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
TEAMSPEC 4.0 DEV PLAN TEMPLATE
|
|
5
|
+
|
|
6
|
+
Dev Plans document the implementation approach for a Story.
|
|
7
|
+
|
|
8
|
+
NAMING PATTERN: dp-e{EEE}-s{SSS}-{description}.md
|
|
9
|
+
EXAMPLE: dp-e001-s042-oauth-implementation.md
|
|
10
|
+
|
|
11
|
+
RULES:
|
|
12
|
+
- Must link to Story (via filename pattern matching s-e{EEE}-{SSS})
|
|
13
|
+
- Created by DEV before implementation starts
|
|
14
|
+
- Required before story moves to In Progress
|
|
15
|
+
|
|
16
|
+
TEAMSPEC RULES ENFORCED:
|
|
17
|
+
- TS-DEVPLAN-001: Dev plan required before implementation
|
|
18
|
+
-->
|
|
19
|
+
|
|
20
|
+
> **Template Version**: 4.0
|
|
21
|
+
> **Last Updated**: 2026-01-11
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
**Document Owner:** DEV (Developer)
|
|
26
|
+
**Artifact Type:** Execution (Implementation Plan)
|
|
27
|
+
**Lifecycle:** Sprint-bound, archived after story completion
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Metadata
|
|
32
|
+
|
|
33
|
+
| Field | Value |
|
|
34
|
+
|-------|-------|
|
|
35
|
+
| **Dev Plan ID** | dp-e{EEE}-s{SSS} |
|
|
36
|
+
| **Story** | [s-e{EEE}-{SSS}](../stories/in-progress/s-e{EEE}-{SSS}-*.md) |
|
|
37
|
+
| **Epic** | epic-{PRX}-{NNN} |
|
|
38
|
+
| **Product** | {product-id} ({PRX}) |
|
|
39
|
+
| **Author** | [DEV Name] |
|
|
40
|
+
| **Created** | YYYY-MM-DD |
|
|
41
|
+
| **Status** | Draft / Approved / In Progress / Complete |
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Linked Story
|
|
46
|
+
|
|
47
|
+
> **MANDATORY**: Link to the Story this plan implements.
|
|
48
|
+
|
|
49
|
+
| Story ID | Title | Feature-Increment |
|
|
50
|
+
|----------|-------|-------------------|
|
|
51
|
+
| [s-e{EEE}-{SSS}](../stories/in-progress/s-e{EEE}-{SSS}-*.md) | [Story Title] | [fi-{PRX}-{NNN}](../feature-increments/fi-{PRX}-{NNN}-*.md) |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 1. Implementation Approach
|
|
56
|
+
|
|
57
|
+
_High-level approach to implementing the story._
|
|
58
|
+
|
|
59
|
+
### 1.1 Strategy
|
|
60
|
+
|
|
61
|
+
[Describe the overall implementation strategy]
|
|
62
|
+
|
|
63
|
+
### 1.2 Key Components
|
|
64
|
+
|
|
65
|
+
| Component | Change Type | Description |
|
|
66
|
+
|-----------|-------------|-------------|
|
|
67
|
+
| [Component 1] | New / Modified | [Brief description] |
|
|
68
|
+
| [Component 2] | New / Modified | [Brief description] |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 2. Technical Design
|
|
73
|
+
|
|
74
|
+
### 2.1 Files to Create/Modify
|
|
75
|
+
|
|
76
|
+
| File Path | Action | Purpose |
|
|
77
|
+
|-----------|--------|---------|
|
|
78
|
+
| `src/path/file.ts` | Create / Modify | [Purpose] |
|
|
79
|
+
|
|
80
|
+
### 2.2 Dependencies
|
|
81
|
+
|
|
82
|
+
| Dependency | Type | Status |
|
|
83
|
+
|------------|------|--------|
|
|
84
|
+
| [Library/Service] | New / Existing | Approved / Pending |
|
|
85
|
+
|
|
86
|
+
### 2.3 API Changes
|
|
87
|
+
|
|
88
|
+
_If applicable, document any API changes._
|
|
89
|
+
|
|
90
|
+
| Endpoint | Method | Change |
|
|
91
|
+
|----------|--------|--------|
|
|
92
|
+
| `/api/endpoint` | POST | New / Modified |
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 3. Testing Strategy
|
|
97
|
+
|
|
98
|
+
### 3.1 Unit Tests
|
|
99
|
+
|
|
100
|
+
- [ ] [Test case 1]
|
|
101
|
+
- [ ] [Test case 2]
|
|
102
|
+
|
|
103
|
+
### 3.2 Integration Tests
|
|
104
|
+
|
|
105
|
+
- [ ] [Integration test 1]
|
|
106
|
+
|
|
107
|
+
### 3.3 Manual Testing
|
|
108
|
+
|
|
109
|
+
- [ ] [Manual test scenario]
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## 4. Risks & Mitigations
|
|
114
|
+
|
|
115
|
+
| Risk | Probability | Impact | Mitigation |
|
|
116
|
+
|------|-------------|--------|------------|
|
|
117
|
+
| [Risk 1] | Low/Med/High | Low/Med/High | [Mitigation plan] |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## 5. Acceptance Criteria Mapping
|
|
122
|
+
|
|
123
|
+
> Map each AC from the Story to implementation details.
|
|
124
|
+
|
|
125
|
+
| AC # | Acceptance Criteria | Implementation Notes |
|
|
126
|
+
|------|---------------------|---------------------|
|
|
127
|
+
| 1 | [AC from Story] | [How it will be implemented] |
|
|
128
|
+
| 2 | [AC from Story] | [How it will be implemented] |
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 6. Checklist
|
|
133
|
+
|
|
134
|
+
### Pre-Implementation
|
|
135
|
+
|
|
136
|
+
- [ ] Story requirements understood
|
|
137
|
+
- [ ] Feature-Increment AS-IS/TO-BE reviewed
|
|
138
|
+
- [ ] Technical approach approved
|
|
139
|
+
- [ ] Dependencies identified
|
|
140
|
+
|
|
141
|
+
### Implementation
|
|
142
|
+
|
|
143
|
+
- [ ] Code implemented
|
|
144
|
+
- [ ] Unit tests written
|
|
145
|
+
- [ ] Code reviewed
|
|
146
|
+
- [ ] Tests passing
|
|
147
|
+
|
|
148
|
+
### Post-Implementation
|
|
149
|
+
|
|
150
|
+
- [ ] Integration tests passing
|
|
151
|
+
- [ ] Documentation updated (if needed)
|
|
152
|
+
- [ ] Ready for QA verification
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Change Log
|
|
157
|
+
|
|
158
|
+
| Date | Author | Change |
|
|
159
|
+
|------|--------|--------|
|
|
160
|
+
| YYYY-MM-DD | @author | Initial plan |
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Linter Rules Enforced
|
|
165
|
+
|
|
166
|
+
| Rule | Description |
|
|
167
|
+
|------|-------------|
|
|
168
|
+
| TS-DEVPLAN-001 | Dev plan required before implementation |
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# Epic: `epic-PRX-XXX-description`
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
⚠️ TEAMSPEC 4.0 EPIC TEMPLATE
|
|
5
|
+
|
|
6
|
+
This Epic groups related Feature-Increments for delivery.
|
|
7
|
+
|
|
8
|
+
RULES:
|
|
9
|
+
- Must link to at least one Feature-Increment (fi-PRX-XXX)
|
|
10
|
+
- Must define TO-BE/Business Value section
|
|
11
|
+
- Stories belong to Epics via filename (s-eXXX-YYY)
|
|
12
|
+
|
|
13
|
+
TEAMSPEC RULES ENFORCED:
|
|
14
|
+
- TS-EPIC-001: Epic must link to Feature-Increments
|
|
15
|
+
- TS-EPIC-002: Epic must define TO-BE state
|
|
16
|
+
- TS-EPIC-003: Epic ID must be unique
|
|
17
|
+
-->
|
|
18
|
+
|
|
19
|
+
> **Template Version**: 4.0
|
|
20
|
+
> **Last Updated**: 2026-01-10
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Metadata
|
|
25
|
+
|
|
26
|
+
| Field | Value |
|
|
27
|
+
|-------|-------|
|
|
28
|
+
| **Epic ID** | epic-{PRX}-{NNN} |
|
|
29
|
+
| **Status** | Draft / Proposed / Approved / In Progress / Done |
|
|
30
|
+
| **Product** | {product-id} ({PRX}) |
|
|
31
|
+
| **Owner** | FA (Functional Analyst) |
|
|
32
|
+
| **Created** | YYYY-MM-DD |
|
|
33
|
+
|
|
34
|
+
**Document Owner:** FA (Functional Analyst)
|
|
35
|
+
**Artifact Type:** Execution (Groups Feature-Increments)
|
|
36
|
+
**Lifecycle:** Project-bound, archived after completion
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Epic Summary
|
|
41
|
+
|
|
42
|
+
_One to three sentences describing the epic's purpose and value._
|
|
43
|
+
|
|
44
|
+
**As a** [Persona/Stakeholder],
|
|
45
|
+
**I want** [High-level capability],
|
|
46
|
+
**So that** [Business value/outcome].
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Linked Product
|
|
51
|
+
|
|
52
|
+
> ⚠️ **MANDATORY**: Link to the target product.
|
|
53
|
+
|
|
54
|
+
| Product ID | PRX | Product Name |
|
|
55
|
+
|------------|-----|--------------|
|
|
56
|
+
| [product-id](../../products/product-id/product.yml) | PRX | [Product Name] |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Feature-Increments
|
|
61
|
+
|
|
62
|
+
> ⚠️ **MANDATORY**: At least one Feature-Increment must be linked.
|
|
63
|
+
> **TEAMSPEC RULE:** TS-EPIC-001 - Feature-Increment link required
|
|
64
|
+
|
|
65
|
+
| FI ID | Description | Status |
|
|
66
|
+
|-------|-------------|--------|
|
|
67
|
+
| [fi-PRX-001](../feature-increments/fi-PRX-001-description.md) | [Brief description] | Draft |
|
|
68
|
+
| [fi-PRX-002](../feature-increments/fi-PRX-002-description.md) | [Brief description] | Draft |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## TO-BE / Business Value
|
|
73
|
+
|
|
74
|
+
> ⚠️ **MANDATORY**: Define the target state or business value.
|
|
75
|
+
> **TEAMSPEC RULE:** TS-EPIC-002 - TO-BE section required
|
|
76
|
+
|
|
77
|
+
### Value Proposition
|
|
78
|
+
|
|
79
|
+
_What value does completing this Epic deliver?_
|
|
80
|
+
|
|
81
|
+
- **User Impact**: [How does this improve user experience?]
|
|
82
|
+
- **Business Impact**: [Revenue, efficiency, compliance, etc.]
|
|
83
|
+
- **Success Metrics**: [How do we measure success?]
|
|
84
|
+
|
|
85
|
+
### Target State
|
|
86
|
+
|
|
87
|
+
_Describe the expected state after this Epic is completed._
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Scope
|
|
92
|
+
|
|
93
|
+
### In Scope
|
|
94
|
+
|
|
95
|
+
- [ ] [Capability/Change 1]
|
|
96
|
+
- [ ] [Capability/Change 2]
|
|
97
|
+
- [ ] [Capability/Change 3]
|
|
98
|
+
|
|
99
|
+
### Out of Scope
|
|
100
|
+
|
|
101
|
+
- [ ] [Excluded capability 1]
|
|
102
|
+
- [ ] [Excluded capability 2]
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Stories
|
|
107
|
+
|
|
108
|
+
_Stories belonging to this Epic follow the naming pattern `s-eXXX-YYY-description.md`._
|
|
109
|
+
|
|
110
|
+
| Story ID | Description | Status | Sprint |
|
|
111
|
+
|----------|-------------|--------|--------|
|
|
112
|
+
| [s-eXXX-001](../stories/backlog/s-eXXX-001-description.md) | [Brief description] | Backlog | — |
|
|
113
|
+
| [s-eXXX-002](../stories/backlog/s-eXXX-002-description.md) | [Brief description] | Backlog | — |
|
|
114
|
+
|
|
115
|
+
**Total Stories:** X
|
|
116
|
+
**Completed:** X
|
|
117
|
+
**Remaining:** X
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Dependencies
|
|
122
|
+
|
|
123
|
+
### Depends On
|
|
124
|
+
|
|
125
|
+
_Other Epics or Features this Epic depends on._
|
|
126
|
+
|
|
127
|
+
| Dependency | Type | Status | Impact |
|
|
128
|
+
|------------|------|--------|--------|
|
|
129
|
+
| [epic-PRX-XXX](../epics/epic-PRX-XXX-description.md) | Blocks | Done | Must complete first |
|
|
130
|
+
| [f-PRX-XXX](../../products/product-id/features/f-PRX-XXX-description.md) | Requires | Active | Feature must exist |
|
|
131
|
+
|
|
132
|
+
### Blocked By
|
|
133
|
+
|
|
134
|
+
_External blockers or waiting items._
|
|
135
|
+
|
|
136
|
+
- [ ] [Blocker 1]
|
|
137
|
+
- [ ] [Blocker 2]
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Risks & Assumptions
|
|
142
|
+
|
|
143
|
+
### Risks
|
|
144
|
+
|
|
145
|
+
| Risk | Probability | Impact | Mitigation |
|
|
146
|
+
|------|-------------|--------|------------|
|
|
147
|
+
| [Risk 1] | High/Medium/Low | High/Medium/Low | [Mitigation plan] |
|
|
148
|
+
|
|
149
|
+
### Assumptions
|
|
150
|
+
|
|
151
|
+
- [Assumption 1]
|
|
152
|
+
- [Assumption 2]
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Technical Considerations
|
|
157
|
+
|
|
158
|
+
_High-level technical approach (SA input)._
|
|
159
|
+
|
|
160
|
+
- **Architecture Impact**: [Description]
|
|
161
|
+
- **Related TAI**: [tai-PRX-XXX if applicable]
|
|
162
|
+
- **Performance Considerations**: [Description]
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Acceptance Criteria
|
|
167
|
+
|
|
168
|
+
_Epic-level acceptance criteria (rolled up from stories)._
|
|
169
|
+
|
|
170
|
+
- [ ] All linked stories marked as Done
|
|
171
|
+
- [ ] Feature Canon updated via `ts:po sync`
|
|
172
|
+
- [ ] UAT completed and signed off
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Timeline
|
|
177
|
+
|
|
178
|
+
| Milestone | Target Date | Status |
|
|
179
|
+
|-----------|-------------|--------|
|
|
180
|
+
| Epic Approved | YYYY-MM-DD | [ ] |
|
|
181
|
+
| All Stories Refined | YYYY-MM-DD | [ ] |
|
|
182
|
+
| Development Start | YYYY-MM-DD | [ ] |
|
|
183
|
+
| Development Complete | YYYY-MM-DD | [ ] |
|
|
184
|
+
| UAT Sign-off | YYYY-MM-DD | [ ] |
|
|
185
|
+
| Canon Synced | YYYY-MM-DD | [ ] |
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Change Log
|
|
190
|
+
|
|
191
|
+
| Date | Author | Change |
|
|
192
|
+
|------|--------|--------|
|
|
193
|
+
| YYYY-MM-DD | @author | Initial draft |
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Linter Rules Enforced
|
|
198
|
+
|
|
199
|
+
| Rule | Description | Status |
|
|
200
|
+
|------|-------------|--------|
|
|
201
|
+
| TS-EPIC-001 | Feature-Increment link required | Checked on save |
|
|
202
|
+
| TS-EPIC-002 | TO-BE section required | Checked on save |
|
|
203
|
+
| TS-EPIC-003 | Epic ID must be unique | Checked on save |
|
|
204
|
+
| TS-NAMING-EPIC | Naming convention check | Checked on save |
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# Feature Increment: `<fi-PRX-XXX-description>`
|
|
2
|
+
|
|
3
|
+
> **ID:** fi-PRX-XXX
|
|
4
|
+
> **Product:** `<product-id>` (PRX)
|
|
5
|
+
> **Target Feature:** `<f-PRX-XXX-feature-name>`
|
|
6
|
+
> **Epic:** `<epic-PRX-XXX>` _(link when assigned)_
|
|
7
|
+
> **Status:** draft | proposed | approved | implemented | synced
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Overview
|
|
12
|
+
|
|
13
|
+
_Brief description of what this increment changes._
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 2. AS-IS (Current State)
|
|
18
|
+
|
|
19
|
+
> _Auto-populated from Product Feature. DO NOT EDIT unless correcting errors._
|
|
20
|
+
|
|
21
|
+
### 2.1 Current Behavior
|
|
22
|
+
|
|
23
|
+
_Copy relevant sections from the Product Feature Canon._
|
|
24
|
+
|
|
25
|
+
### 2.2 Current Limitations
|
|
26
|
+
|
|
27
|
+
_What can't the current system do that this increment addresses?_
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 3. TO-BE (Proposed State)
|
|
32
|
+
|
|
33
|
+
### 3.1 New/Changed Behavior
|
|
34
|
+
|
|
35
|
+
_Describe what the feature WILL do after this increment is implemented._
|
|
36
|
+
|
|
37
|
+
### 3.2 Acceptance Criteria
|
|
38
|
+
|
|
39
|
+
- [ ] AC-1: _Testable criterion_
|
|
40
|
+
- [ ] AC-2: _Testable criterion_
|
|
41
|
+
- [ ] AC-3: _Testable criterion_
|
|
42
|
+
|
|
43
|
+
### 3.3 Out of Scope
|
|
44
|
+
|
|
45
|
+
_Explicitly state what this increment does NOT include._
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 4. Impact Analysis
|
|
50
|
+
|
|
51
|
+
### 4.1 Affected Features
|
|
52
|
+
|
|
53
|
+
| Feature | Impact Type | Description |
|
|
54
|
+
|---------|-------------|-------------|
|
|
55
|
+
| f-PRX-XXX | Modified | _What changes_ |
|
|
56
|
+
| f-PRX-YYY | Referenced | _No change, just dependency_ |
|
|
57
|
+
|
|
58
|
+
### 4.2 Dependencies
|
|
59
|
+
|
|
60
|
+
_Other increments or features this depends on._
|
|
61
|
+
|
|
62
|
+
### 4.3 Risks
|
|
63
|
+
|
|
64
|
+
_What could go wrong? How will we mitigate?_
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 5. Implementation Notes
|
|
69
|
+
|
|
70
|
+
### 5.1 Technical Considerations
|
|
71
|
+
|
|
72
|
+
_High-level technical approach (SA input)._
|
|
73
|
+
|
|
74
|
+
### 5.2 Testing Strategy
|
|
75
|
+
|
|
76
|
+
_How will this be validated? (QA input)_
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Change Log
|
|
81
|
+
|
|
82
|
+
| Date | Author | Change |
|
|
83
|
+
|------|--------|--------|
|
|
84
|
+
| YYYY-MM-DD | @author | Initial draft |
|
|
@@ -1,24 +1,34 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Feature: `f-{PRX}-{NNN}-{description}`
|
|
2
2
|
|
|
3
|
-
<!--
|
|
3
|
+
<!--
|
|
4
4
|
⚠️ FEATURE CANON RULES
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
This Feature file is the SOURCE OF TRUTH for system behavior.
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
RULES:
|
|
9
9
|
1. Implementation-agnostic (describe WHAT, not HOW)
|
|
10
10
|
2. No technical implementation details
|
|
11
|
-
3. Business rules use BR-
|
|
11
|
+
3. Business rules use BR-{PRX}-NNN format
|
|
12
12
|
4. Change Log is append-only
|
|
13
|
-
|
|
13
|
+
5. Feature ID uses product prefix (PRX)
|
|
14
|
+
|
|
15
|
+
NAMING PATTERN: f-{PRX}-{NNN}-{description}.md
|
|
16
|
+
EXAMPLE: f-ACME-001-user-login.md
|
|
17
|
+
|
|
14
18
|
TEAMSPEC RULES ENFORCED:
|
|
15
19
|
- TS-FEAT-001: Feature must have unique ID
|
|
16
20
|
- TS-FEAT-002: All required sections must be present
|
|
17
21
|
- TS-FEAT-003: Feature ID must be unique
|
|
18
22
|
-->
|
|
19
23
|
|
|
20
|
-
> **Template Version**:
|
|
21
|
-
> **Last Updated**: 2026-01-
|
|
24
|
+
> **Template Version**: 4.0
|
|
25
|
+
> **Last Updated**: 2026-01-11
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
**Document Owner:** FA (Functional Analyst)
|
|
30
|
+
**Artifact Type:** Feature (Product Canon)
|
|
31
|
+
**Lifecycle:** Permanent, updated via Canon Sync after deployment
|
|
22
32
|
|
|
23
33
|
---
|
|
24
34
|
|
|
@@ -26,15 +36,16 @@
|
|
|
26
36
|
|
|
27
37
|
| Field | Value |
|
|
28
38
|
|-------|-------|
|
|
29
|
-
| **Feature ID** |
|
|
39
|
+
| **Feature ID** | f-{PRX}-{NNN} |
|
|
40
|
+
| **Product** | {product-id} ({PRX}) |
|
|
30
41
|
| **Status** | Planned / Active / Deprecated / Retired |
|
|
31
|
-
| **Owner** |
|
|
42
|
+
| **Owner** | FA (Functional Analyst) |
|
|
32
43
|
| **Created** | YYYY-MM-DD |
|
|
33
44
|
| **Last Updated** | YYYY-MM-DD |
|
|
34
45
|
|
|
35
|
-
**
|
|
36
|
-
- **BA
|
|
37
|
-
- **FA owns:** Current Behavior, Business Rules, Edge Cases
|
|
46
|
+
**Section Ownership:**
|
|
47
|
+
- **BA provides:** Purpose, Business Value, Scope (In/Out) via Business Analysis
|
|
48
|
+
- **FA owns:** Current Behavior, Business Rules, Edge Cases, all updates
|
|
38
49
|
|
|
39
50
|
---
|
|
40
51
|
|
|
@@ -50,12 +61,12 @@
|
|
|
50
61
|
| Scope (Out) | [ ] | What's excluded |
|
|
51
62
|
| Actors/Personas | [ ] | Who uses it |
|
|
52
63
|
| Current Behavior | [ ] | Primary behavior (authoritative) |
|
|
53
|
-
| Business Rules | [ ] | BR-
|
|
64
|
+
| Business Rules | [ ] | BR-{PRX}-NNN format |
|
|
54
65
|
| Edge Cases | [ ] | Known exceptions |
|
|
55
66
|
| Non-Goals | [ ] | Explicitly excluded capabilities |
|
|
56
|
-
| Change Log | [ ] |
|
|
67
|
+
| Change Log | [ ] | Feature-Increment references |
|
|
57
68
|
|
|
58
|
-
> ⚠️ Feature cannot be referenced by
|
|
69
|
+
> ⚠️ Feature cannot be referenced by Feature-Increments until all sections are complete.
|
|
59
70
|
|
|
60
71
|
---
|
|
61
72
|
|
|
@@ -65,7 +76,7 @@ _Business decisions that shaped this feature's scope, behavior, or priority._
|
|
|
65
76
|
|
|
66
77
|
| Decision ID | Summary | Impact on This Feature |
|
|
67
78
|
|-------------|---------|------------------------|
|
|
68
|
-
| [
|
|
79
|
+
| [dec-{PRX}-{NNN}](../decisions/dec-{PRX}-{NNN}-*.md) | [One-line decision summary] | [Scoped in / Scoped out / Behavior changed / Priority set] |
|
|
69
80
|
|
|
70
81
|
---
|
|
71
82
|
|
|
@@ -165,8 +176,8 @@ _Logic that governs this feature's behavior._
|
|
|
165
176
|
|
|
166
177
|
| Rule ID | Rule Description | Applies When |
|
|
167
178
|
|---------|------------------|--------------|
|
|
168
|
-
| BR-
|
|
169
|
-
| BR-
|
|
179
|
+
| BR-{PRX}-001 | [Rule description] | [Context] |
|
|
180
|
+
| BR-{PRX}-002 | [Rule description] | [Context] |
|
|
170
181
|
|
|
171
182
|
---
|
|
172
183
|
|
|
@@ -220,7 +231,7 @@ _Features that interact with or depend on this one._
|
|
|
220
231
|
|
|
221
232
|
| Feature ID | Relationship |
|
|
222
233
|
|------------|--------------|
|
|
223
|
-
| [
|
|
234
|
+
| [f-{PRX}-{NNN}](../features/f-{PRX}-{NNN}-*.md) | [Depends on / Extends / Conflicts with] |
|
|
224
235
|
|
|
225
236
|
---
|
|
226
237
|
|
|
@@ -231,21 +242,23 @@ _Features that interact with or depend on this one._
|
|
|
231
242
|
> ⚠️ **APPEND-ONLY**: Never delete entries. This is the audit trail.
|
|
232
243
|
> Every completed story that adds/changes behavior MUST be logged here.
|
|
233
244
|
|
|
234
|
-
| Date |
|
|
235
|
-
|
|
236
|
-
| YYYY-MM-DD | — | Initial feature creation | [
|
|
237
|
-
| YYYY-MM-DD |
|
|
245
|
+
| Date | Source | Change Summary | Author |
|
|
246
|
+
|------|--------|----------------|--------|
|
|
247
|
+
| YYYY-MM-DD | — | Initial feature creation | [FA Name] |
|
|
248
|
+
| YYYY-MM-DD | fi-{PRX}-{NNN} | [Description of change synced from FI] | [FA Name] |
|
|
238
249
|
|
|
239
250
|
---
|
|
240
251
|
|
|
241
|
-
##
|
|
252
|
+
## Feature-Increment Ledger
|
|
242
253
|
|
|
243
|
-
> All
|
|
254
|
+
> All Feature-Increments that have modified this feature (via Canon Sync):
|
|
244
255
|
|
|
245
|
-
|
|
256
|
+
| FI ID | Project | Sync Date | Summary |
|
|
257
|
+
|-------|---------|-----------|---------|
|
|
258
|
+
| [fi-{PRX}-{NNN}](../../projects/{project-id}/feature-increments/fi-{PRX}-{NNN}-*.md) | {project-id} | YYYY-MM-DD | [Change summary] |
|
|
246
259
|
|
|
247
|
-
**Last
|
|
248
|
-
**Last
|
|
260
|
+
**Last FI:** fi-{PRX}-{NNN}
|
|
261
|
+
**Last Sync:** YYYY-MM-DD
|
|
249
262
|
|
|
250
263
|
---
|
|
251
264
|
|
|
@@ -263,7 +276,7 @@ _Links to code, APIs, or technical documentation. Maintained by DEV._
|
|
|
263
276
|
|
|
264
277
|
| Rule | Description |
|
|
265
278
|
|------|-------------|
|
|
266
|
-
| TS-FEAT-001 | Feature file must exist before
|
|
279
|
+
| TS-FEAT-001 | Feature file must exist before Feature-Increments can reference it |
|
|
267
280
|
| TS-FEAT-002 | All required sections must be present |
|
|
268
|
-
| TS-FEAT-003 | Feature ID must be unique |
|
|
269
|
-
| TS-
|
|
281
|
+
| TS-FEAT-003 | Feature ID must be unique within product |
|
|
282
|
+
| TS-NAMING-FEAT | Feature naming must follow f-{PRX}-{NNN}-{description}.md pattern |
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Feature Increments Index
|
|
2
|
+
|
|
3
|
+
> **Project:** `<project-id>`
|
|
4
|
+
> **Target Products:** _List products this project modifies_
|
|
5
|
+
|
|
6
|
+
## Overview
|
|
7
|
+
|
|
8
|
+
Feature Increments (FI) describe **TO-BE** changes to Product Features.
|
|
9
|
+
They are NOT the source of truth — the Product Canon is.
|
|
10
|
+
|
|
11
|
+
When this project deploys and Canon is synced, these increments become part of the Product Canon.
|
|
12
|
+
|
|
13
|
+
## Increment Registry
|
|
14
|
+
|
|
15
|
+
| ID | Product | Feature | Status | Epic | Description |
|
|
16
|
+
|----|---------|---------|--------|------|-------------|
|
|
17
|
+
| _(none yet)_ | | | | | |
|
|
18
|
+
|
|
19
|
+
## Increment Statuses
|
|
20
|
+
|
|
21
|
+
| Status | Meaning |
|
|
22
|
+
|--------|---------|
|
|
23
|
+
| `draft` | Being written, not yet reviewed |
|
|
24
|
+
| `proposed` | Ready for review |
|
|
25
|
+
| `approved` | Accepted, ready for implementation |
|
|
26
|
+
| `implemented` | Stories completed, ready for deployment |
|
|
27
|
+
| `synced` | Deployed and merged to Product Canon |
|
|
28
|
+
|
|
29
|
+
## ID Convention
|
|
30
|
+
|
|
31
|
+
Feature Increment IDs inherit the Product Prefix:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
fi-PRX-XXX-description.md
|
|
35
|
+
│ │ │
|
|
36
|
+
│ │ └── Sequential number (001, 002, ...)
|
|
37
|
+
│ └────── Product Prefix (3-4 uppercase chars)
|
|
38
|
+
└────────── Feature Increment prefix
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Example:** `fi-DIT-001-initiative-tracking.md` for DnD Initiative Tracker product
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Creating Feature Increments
|
|
46
|
+
|
|
47
|
+
Use Copilot: `ts:fa feature-increment <product-id> <feature-id>`
|
|
48
|
+
|
|
49
|
+
This command:
|
|
50
|
+
1. Loads the AS-IS from the Product Feature
|
|
51
|
+
2. Creates a new FI with TO-BE section to fill
|
|
52
|
+
3. Registers it in this index
|
|
53
|
+
4. Links the project to the product (if not already linked)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Product Configuration Template
|
|
2
|
+
# TeamSpec 4.0 - Product/Project Operating Model
|
|
3
|
+
#
|
|
4
|
+
# Usage: Copy this template to products/<product-id>/product.yml
|
|
5
|
+
# Replace placeholders marked with <...>
|
|
6
|
+
|
|
7
|
+
product:
|
|
8
|
+
# Unique slug identifier (lowercase, hyphens)
|
|
9
|
+
id: "<product-id>"
|
|
10
|
+
|
|
11
|
+
# Human-readable name
|
|
12
|
+
name: "<Product Name>"
|
|
13
|
+
|
|
14
|
+
# 3-4 uppercase character unique prefix
|
|
15
|
+
# Used in all artifact naming: f-PRX-001, ba-PRX-001, etc.
|
|
16
|
+
prefix: "<PRX>"
|
|
17
|
+
|
|
18
|
+
# Product description (AS-IS state)
|
|
19
|
+
description: |
|
|
20
|
+
# TODO: Describe what this product IS (current state)
|
|
21
|
+
# - What problem does it solve?
|
|
22
|
+
# - Who are the users?
|
|
23
|
+
# - What are the key capabilities?
|
|
24
|
+
|
|
25
|
+
# Product lifecycle status
|
|
26
|
+
status: active # Options: active, deprecated, archived
|
|
27
|
+
|
|
28
|
+
# List of projects currently modifying this product
|
|
29
|
+
# Automatically managed by TeamSpec when creating feature-increments
|
|
30
|
+
active_projects: []
|
|
31
|
+
|
|
32
|
+
# Optional: Product metadata
|
|
33
|
+
metadata:
|
|
34
|
+
# Product owner
|
|
35
|
+
owner: "<name or team>"
|
|
36
|
+
|
|
37
|
+
# Creation date
|
|
38
|
+
created: "<YYYY-MM-DD>"
|
|
39
|
+
|
|
40
|
+
# Domain/category
|
|
41
|
+
domain: "<domain>"
|
|
42
|
+
|
|
43
|
+
# Related products (for cross-references)
|
|
44
|
+
related_products: []
|