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.
- package/LICENSE +21 -0
- package/README.md +252 -0
- package/bin/teamspec-init.js +10 -0
- package/extensions/teamspec-0.1.0.vsix +0 -0
- package/lib/cli.js +1174 -0
- package/lib/extension-installer.js +236 -0
- package/lib/linter.js +1184 -0
- package/lib/prompt-generator.js +409 -0
- package/package.json +51 -0
- package/teamspec-core/agents/AGENT_BA.md +486 -0
- package/teamspec-core/agents/AGENT_BOOTSTRAP.md +447 -0
- package/teamspec-core/agents/AGENT_DES.md +623 -0
- package/teamspec-core/agents/AGENT_DEV.md +611 -0
- package/teamspec-core/agents/AGENT_FA.md +736 -0
- package/teamspec-core/agents/AGENT_FEEDBACK.md +202 -0
- package/teamspec-core/agents/AGENT_FIX.md +380 -0
- package/teamspec-core/agents/AGENT_QA.md +756 -0
- package/teamspec-core/agents/AGENT_SA.md +581 -0
- package/teamspec-core/agents/AGENT_SM.md +771 -0
- package/teamspec-core/agents/README.md +383 -0
- package/teamspec-core/context/_schema.yml +222 -0
- package/teamspec-core/copilot-instructions.md +356 -0
- package/teamspec-core/definitions/definition-of-done.md +129 -0
- package/teamspec-core/definitions/definition-of-ready.md +104 -0
- package/teamspec-core/profiles/enterprise.yml +127 -0
- package/teamspec-core/profiles/platform-team.yml +104 -0
- package/teamspec-core/profiles/regulated.yml +97 -0
- package/teamspec-core/profiles/startup.yml +85 -0
- package/teamspec-core/teamspec.yml +69 -0
- package/teamspec-core/templates/README.md +211 -0
- package/teamspec-core/templates/active-sprint-template.md +98 -0
- package/teamspec-core/templates/adr-template.md +194 -0
- package/teamspec-core/templates/bug-report-template.md +188 -0
- package/teamspec-core/templates/business-analysis-template.md +164 -0
- package/teamspec-core/templates/decision-log-template.md +216 -0
- package/teamspec-core/templates/feature-template.md +269 -0
- package/teamspec-core/templates/functional-spec-template.md +161 -0
- package/teamspec-core/templates/refinement-notes-template.md +133 -0
- package/teamspec-core/templates/sprint-goal-template.md +129 -0
- package/teamspec-core/templates/sprint-template.md +175 -0
- package/teamspec-core/templates/sprints-index-template.md +67 -0
- package/teamspec-core/templates/story-template.md +244 -0
- package/teamspec-core/templates/storymap-template.md +204 -0
- package/teamspec-core/templates/testcases-template.md +147 -0
- package/teamspec-core/templates/uat-pack-template.md +161 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# DEC-XXX: [Decision Title]
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
⚠️ DECISION LOG RULES
|
|
5
|
+
|
|
6
|
+
Business decisions must be logged and linked to affected features.
|
|
7
|
+
|
|
8
|
+
RULES:
|
|
9
|
+
1. Decisions must link to at least one feature
|
|
10
|
+
2. BA owns business decisions
|
|
11
|
+
3. Decisions that affect scope require feature review
|
|
12
|
+
4. Cross-feature decisions require SA acknowledgment
|
|
13
|
+
|
|
14
|
+
TEAMSPEC RULES ENFORCED:
|
|
15
|
+
- TS-DEC-001: Decision must link to features
|
|
16
|
+
-->
|
|
17
|
+
|
|
18
|
+
> **Template Version**: 2.0
|
|
19
|
+
> **Last Updated**: 2026-01-07
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
**Document Owner:** BA (Business Analyst)
|
|
24
|
+
**Artifact Type:** Business Decision (Canonical)
|
|
25
|
+
**Lifecycle:** Permanent
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Metadata
|
|
30
|
+
|
|
31
|
+
| Field | Value |
|
|
32
|
+
|-------|-------|
|
|
33
|
+
| **Decision ID** | DEC-XXX |
|
|
34
|
+
| **Date Proposed** | YYYY-MM-DD |
|
|
35
|
+
| **Date Confirmed** | YYYY-MM-DD (or "Pending") |
|
|
36
|
+
| **Decision Owner(s)** | [Stakeholder Name(s)] |
|
|
37
|
+
| **Facilitator** | [BA Name] |
|
|
38
|
+
| **Status** | Proposed / Confirmed / Superseded |
|
|
39
|
+
| **Type** | Reversible / Costly / Irreversible |
|
|
40
|
+
| **Severity** | Minor / Major / Critical |
|
|
41
|
+
| **Scope** | Feature / Cross-Feature / Product |
|
|
42
|
+
| **Superseded By** | [DEC-YYY if applicable] |
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Context
|
|
47
|
+
|
|
48
|
+
_What situation or problem prompted this decision?_
|
|
49
|
+
|
|
50
|
+
[Describe the business situation, trigger event, or problem that requires a decision.]
|
|
51
|
+
|
|
52
|
+
**Background**:
|
|
53
|
+
- [Context point 1]
|
|
54
|
+
- [Context point 2]
|
|
55
|
+
|
|
56
|
+
**Stakeholders Involved**:
|
|
57
|
+
- [Name/Role]
|
|
58
|
+
- [Name/Role]
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Decision
|
|
63
|
+
|
|
64
|
+
_What did we decide? State explicitly and unambiguously._
|
|
65
|
+
|
|
66
|
+
**Decision Statement**:
|
|
67
|
+
|
|
68
|
+
[Clear, action-oriented statement of what was decided.]
|
|
69
|
+
|
|
70
|
+
**In Scope** (as a result of this decision):
|
|
71
|
+
- [ ] [Capability/feature/behavior 1]
|
|
72
|
+
- [ ] [Capability/feature/behavior 2]
|
|
73
|
+
|
|
74
|
+
**Out of Scope** (explicitly excluded):
|
|
75
|
+
- [ ] [What we explicitly chose NOT to do]
|
|
76
|
+
- [ ] [Deferred items]
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Impacted Features
|
|
81
|
+
|
|
82
|
+
<!-- TEAMSPEC RULE: TS-DEC-001 - Decision must link to features -->
|
|
83
|
+
|
|
84
|
+
> ⚠️ At least one feature must be linked.
|
|
85
|
+
> If this decision doesn't impact any feature, it may not need to be logged.
|
|
86
|
+
|
|
87
|
+
| Feature ID | Feature Name | Impact Description |
|
|
88
|
+
|------------|--------------|-------------------|
|
|
89
|
+
| [F-XXX](../features/F-XXX-name.md) | [Feature Name] | [Scoped in / Scoped out / Behavior changed / Priority set] |
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Alternatives Considered
|
|
94
|
+
|
|
95
|
+
### Option 1: [Alternative Name]
|
|
96
|
+
|
|
97
|
+
**Description**: [Brief description]
|
|
98
|
+
|
|
99
|
+
**Pros**:
|
|
100
|
+
- [Pro 1]
|
|
101
|
+
- [Pro 2]
|
|
102
|
+
|
|
103
|
+
**Cons**:
|
|
104
|
+
- [Con 1]
|
|
105
|
+
- [Con 2]
|
|
106
|
+
|
|
107
|
+
**Why Rejected**: [Reason]
|
|
108
|
+
|
|
109
|
+
### Option 2: [Alternative Name]
|
|
110
|
+
|
|
111
|
+
**Description**: [Brief description]
|
|
112
|
+
|
|
113
|
+
**Pros**:
|
|
114
|
+
- [Pro 1]
|
|
115
|
+
|
|
116
|
+
**Cons**:
|
|
117
|
+
- [Con 1]
|
|
118
|
+
|
|
119
|
+
**Why Rejected**: [Reason]
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Consequences
|
|
124
|
+
|
|
125
|
+
### Positive Consequences
|
|
126
|
+
- [Benefit 1]
|
|
127
|
+
- [Benefit 2]
|
|
128
|
+
|
|
129
|
+
### Negative Consequences (Trade-offs)
|
|
130
|
+
- [Trade-off 1]
|
|
131
|
+
- [Trade-off 2]
|
|
132
|
+
|
|
133
|
+
### Risks
|
|
134
|
+
|
|
135
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
136
|
+
|------|------------|--------|------------|
|
|
137
|
+
| [Risk 1] | Low/Med/High | Low/Med/High | [Mitigation] |
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Reversal Cost
|
|
142
|
+
|
|
143
|
+
_What would it cost to reverse this decision later?_
|
|
144
|
+
|
|
145
|
+
**Effort**: [Time estimate]
|
|
146
|
+
**Cost**: [Financial or resource cost]
|
|
147
|
+
**Risk**: [Technical debt, user impact]
|
|
148
|
+
|
|
149
|
+
**Reversal Difficulty**: Low / Medium / High / Irreversible
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Architecture Acknowledgment
|
|
154
|
+
|
|
155
|
+
> **Required if**: Type = `Irreversible` OR Scope = `Cross-Feature` / `Product`
|
|
156
|
+
|
|
157
|
+
| Field | Value |
|
|
158
|
+
|-------|-------|
|
|
159
|
+
| **Acknowledged By** | [SA Name] |
|
|
160
|
+
| **Date** | YYYY-MM-DD |
|
|
161
|
+
| **Assessment** | No Impact / Requires ADR / Approved |
|
|
162
|
+
| **ADR Reference** | [ADR-XXX](../adr/ADR-XXX-*.md) (if required) |
|
|
163
|
+
|
|
164
|
+
**Architecture Notes**:
|
|
165
|
+
[SA assessment of technical implications]
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Confirmation Record
|
|
170
|
+
|
|
171
|
+
_Stakeholder confirmation that decision is accurate and approved._
|
|
172
|
+
|
|
173
|
+
| Stakeholder | Role | Confirmed? | Date | Notes |
|
|
174
|
+
|-------------|------|------------|------|-------|
|
|
175
|
+
| [Name] | [Role] | ✅ / ⏳ / ❌ | YYYY-MM-DD | |
|
|
176
|
+
|
|
177
|
+
**Confirmation Method**: [Email / Meeting / Async]
|
|
178
|
+
**Review Window**: [X days from Date Proposed]
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## References
|
|
183
|
+
|
|
184
|
+
### Business Analysis
|
|
185
|
+
|
|
186
|
+
| Document | Link | Relevant Section |
|
|
187
|
+
|----------|------|------------------|
|
|
188
|
+
| [BA Title] | [Link] | [Section] |
|
|
189
|
+
|
|
190
|
+
### Related Stories (if applicable)
|
|
191
|
+
|
|
192
|
+
| Story ID | Story Title | Relationship |
|
|
193
|
+
|----------|-------------|--------------|
|
|
194
|
+
| [S-XXX](../stories/*/S-XXX-*.md) | [Title] | Created from this decision |
|
|
195
|
+
|
|
196
|
+
### Related Decisions
|
|
197
|
+
|
|
198
|
+
| Decision ID | Relationship |
|
|
199
|
+
|-------------|--------------|
|
|
200
|
+
| [DEC-YYY] | Depends on / Superseded by / Related to |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## Change Log
|
|
205
|
+
|
|
206
|
+
| Date | Change | Author |
|
|
207
|
+
|------|--------|--------|
|
|
208
|
+
| YYYY-MM-DD | Initial decision recorded | [Name] |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Linter Rules Enforced
|
|
213
|
+
|
|
214
|
+
| Rule | Description |
|
|
215
|
+
|------|-------------|
|
|
216
|
+
| TS-DEC-001 | Decision must link to at least one feature |
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
# F-XXX: [Feature Name]
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
⚠️ FEATURE CANON RULES
|
|
5
|
+
|
|
6
|
+
This Feature file is the SOURCE OF TRUTH for system behavior.
|
|
7
|
+
|
|
8
|
+
RULES:
|
|
9
|
+
1. Implementation-agnostic (describe WHAT, not HOW)
|
|
10
|
+
2. No technical implementation details
|
|
11
|
+
3. Business rules use BR-XXX format
|
|
12
|
+
4. Change Log is append-only
|
|
13
|
+
|
|
14
|
+
TEAMSPEC RULES ENFORCED:
|
|
15
|
+
- TS-FEAT-001: Feature must have unique ID
|
|
16
|
+
- TS-FEAT-002: All required sections must be present
|
|
17
|
+
- TS-FEAT-003: Feature ID must be unique
|
|
18
|
+
-->
|
|
19
|
+
|
|
20
|
+
> **Template Version**: 2.0
|
|
21
|
+
> **Last Updated**: 2026-01-07
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Metadata
|
|
26
|
+
|
|
27
|
+
| Field | Value |
|
|
28
|
+
|-------|-------|
|
|
29
|
+
| **Feature ID** | F-XXX |
|
|
30
|
+
| **Status** | Planned / Active / Deprecated / Retired |
|
|
31
|
+
| **Owner** | [BA creates, FA maintains behavior] |
|
|
32
|
+
| **Created** | YYYY-MM-DD |
|
|
33
|
+
| **Last Updated** | YYYY-MM-DD |
|
|
34
|
+
|
|
35
|
+
**Document Ownership:**
|
|
36
|
+
- **BA owns:** Purpose, Business Value, Scope (In/Out)
|
|
37
|
+
- **FA owns:** Current Behavior, Business Rules, Edge Cases
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Section Checklist
|
|
42
|
+
|
|
43
|
+
<!-- TEAMSPEC RULE: TS-FEAT-002 - All sections required -->
|
|
44
|
+
|
|
45
|
+
| Section | Status | Notes |
|
|
46
|
+
|---------|--------|-------|
|
|
47
|
+
| Purpose | [ ] | Why this feature exists |
|
|
48
|
+
| Business Value | [ ] | Impact and success metrics |
|
|
49
|
+
| Scope (In) | [ ] | What's included |
|
|
50
|
+
| Scope (Out) | [ ] | What's excluded |
|
|
51
|
+
| Actors/Personas | [ ] | Who uses it |
|
|
52
|
+
| Current Behavior | [ ] | Primary behavior (authoritative) |
|
|
53
|
+
| Business Rules | [ ] | BR-XXX format |
|
|
54
|
+
| Edge Cases | [ ] | Known exceptions |
|
|
55
|
+
| Non-Goals | [ ] | Explicitly excluded capabilities |
|
|
56
|
+
| Change Log | [ ] | Story references |
|
|
57
|
+
|
|
58
|
+
> ⚠️ Feature cannot be referenced by stories until all sections are complete.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Governing Decisions
|
|
63
|
+
|
|
64
|
+
_Business decisions that shaped this feature's scope, behavior, or priority._
|
|
65
|
+
|
|
66
|
+
| Decision ID | Summary | Impact on This Feature |
|
|
67
|
+
|-------------|---------|------------------------|
|
|
68
|
+
| [DEC-XXX](../decisions/DEC-XXX-*.md) | [One-line decision summary] | [Scoped in / Scoped out / Behavior changed / Priority set] |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Purpose
|
|
73
|
+
|
|
74
|
+
> **Owner:** BA (Business Analyst)
|
|
75
|
+
|
|
76
|
+
_One to three sentences describing what this feature enables users to do._
|
|
77
|
+
|
|
78
|
+
[What capability does this provide? What user need does it address?]
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Business Value
|
|
83
|
+
|
|
84
|
+
> **Owner:** BA (Business Analyst)
|
|
85
|
+
|
|
86
|
+
_Why this feature matters to the business._
|
|
87
|
+
|
|
88
|
+
- **User Impact**: [How does this improve user experience?]
|
|
89
|
+
- **Business Impact**: [Revenue, efficiency, compliance, etc.]
|
|
90
|
+
- **Success Metrics**: [How do we measure success?]
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## In Scope
|
|
95
|
+
|
|
96
|
+
> **Owner:** BA (Business Analyst)
|
|
97
|
+
|
|
98
|
+
_Explicit boundaries of what this feature includes._
|
|
99
|
+
|
|
100
|
+
- [ ] [Capability 1]
|
|
101
|
+
- [ ] [Capability 2]
|
|
102
|
+
- [ ] [Capability 3]
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Out of Scope
|
|
107
|
+
|
|
108
|
+
> **Owner:** BA (Business Analyst)
|
|
109
|
+
|
|
110
|
+
_Explicit boundaries of what this feature does NOT include. Prevents scope creep._
|
|
111
|
+
|
|
112
|
+
- [ ] [Excluded capability 1]
|
|
113
|
+
- [ ] [Excluded capability 2]
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Actors / Personas
|
|
118
|
+
|
|
119
|
+
> **Owner:** BA (Business Analyst)
|
|
120
|
+
|
|
121
|
+
_Who uses this feature and what are their goals._
|
|
122
|
+
|
|
123
|
+
| Persona | Description | Primary Goals |
|
|
124
|
+
|---------|-------------|---------------|
|
|
125
|
+
| [Persona 1] | [Brief description] | [What they want to achieve] |
|
|
126
|
+
| [Persona 2] | [Brief description] | [What they want to achieve] |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Current Behavior
|
|
131
|
+
|
|
132
|
+
> **Owner:** FA (Functional Analyst)
|
|
133
|
+
>
|
|
134
|
+
> ⚠️ **AUTHORITATIVE SECTION**: This describes what the system does TODAY.
|
|
135
|
+
> Update this section whenever a story changes observable behavior.
|
|
136
|
+
|
|
137
|
+
### [Behavior Area 1]
|
|
138
|
+
|
|
139
|
+
[Describe current system behavior in precise, testable terms.]
|
|
140
|
+
|
|
141
|
+
### [Behavior Area 2]
|
|
142
|
+
|
|
143
|
+
[Describe current system behavior.]
|
|
144
|
+
|
|
145
|
+
### User Flows
|
|
146
|
+
|
|
147
|
+
1. User does X
|
|
148
|
+
2. System responds with Y
|
|
149
|
+
3. User sees Z
|
|
150
|
+
|
|
151
|
+
### Edge Cases & Error Handling
|
|
152
|
+
|
|
153
|
+
| Condition | System Response |
|
|
154
|
+
|-----------|-----------------|
|
|
155
|
+
| [Edge case 1] | [Response] |
|
|
156
|
+
| [Error condition] | [Error handling] |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## Business Rules
|
|
161
|
+
|
|
162
|
+
> **Owner:** FA (Functional Analyst)
|
|
163
|
+
|
|
164
|
+
_Logic that governs this feature's behavior._
|
|
165
|
+
|
|
166
|
+
| Rule ID | Rule Description | Applies When |
|
|
167
|
+
|---------|------------------|--------------|
|
|
168
|
+
| BR-XXX-001 | [Rule description] | [Context] |
|
|
169
|
+
| BR-XXX-002 | [Rule description] | [Context] |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Roles & Permissions
|
|
174
|
+
|
|
175
|
+
_Who can do what within this feature._
|
|
176
|
+
|
|
177
|
+
| Role | Permissions |
|
|
178
|
+
|------|-------------|
|
|
179
|
+
| [Role 1] | [Can do X, Y, Z] |
|
|
180
|
+
| [Role 2] | [Can do A, B] |
|
|
181
|
+
| [Role 3] | [View only] |
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Non-Functional Notes
|
|
186
|
+
|
|
187
|
+
_Performance, security, accessibility, and other quality requirements._
|
|
188
|
+
|
|
189
|
+
- **Performance**: [Response time expectations, throughput]
|
|
190
|
+
- **Security**: [Authentication, authorization, data protection]
|
|
191
|
+
- **Accessibility**: [WCAG level, specific requirements]
|
|
192
|
+
- **Availability**: [Uptime requirements]
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Non-Goals
|
|
197
|
+
|
|
198
|
+
> **Owner:** BA (Business Analyst)
|
|
199
|
+
|
|
200
|
+
_Capabilities explicitly NOT included in this feature. Different from Out of Scope—these are things that might seem related but are deliberately excluded._
|
|
201
|
+
|
|
202
|
+
- [Non-goal 1]: [Why excluded]
|
|
203
|
+
- [Non-goal 2]: [Why excluded]
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Open Questions
|
|
208
|
+
|
|
209
|
+
_Unresolved questions that need stakeholder input. Track at feature level, not story level._
|
|
210
|
+
|
|
211
|
+
| ID | Question | Owner | Status | Resolution |
|
|
212
|
+
|----|----------|-------|--------|------------|
|
|
213
|
+
| Q-001 | [Question] | [Name] | Open / Resolved | [Answer if resolved] |
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Related Features
|
|
218
|
+
|
|
219
|
+
_Features that interact with or depend on this one._
|
|
220
|
+
|
|
221
|
+
| Feature ID | Relationship |
|
|
222
|
+
|------------|--------------|
|
|
223
|
+
| [F-XXX] | [Depends on / Extends / Conflicts with] |
|
|
224
|
+
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
## Change Log
|
|
228
|
+
|
|
229
|
+
<!-- TEAMSPEC RULE: TS-DOD-001 - Stories must be referenced here -->
|
|
230
|
+
|
|
231
|
+
> ⚠️ **APPEND-ONLY**: Never delete entries. This is the audit trail.
|
|
232
|
+
> Every completed story that adds/changes behavior MUST be logged here.
|
|
233
|
+
|
|
234
|
+
| Date | Story ID | Change Summary | Author |
|
|
235
|
+
|------|----------|----------------|--------|
|
|
236
|
+
| YYYY-MM-DD | — | Initial feature creation | [BA Name] |
|
|
237
|
+
| YYYY-MM-DD | S-XXX | [Description of change] | [FA Name] |
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Story Ledger Reference
|
|
242
|
+
|
|
243
|
+
> All stories that have modified this feature:
|
|
244
|
+
|
|
245
|
+
See [story-ledger.md](./story-ledger.md) for the complete history.
|
|
246
|
+
|
|
247
|
+
**Last Story:** S-XXX
|
|
248
|
+
**Last Update:** YYYY-MM-DD
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Implementation References
|
|
253
|
+
|
|
254
|
+
_Links to code, APIs, or technical documentation. Maintained by DEV._
|
|
255
|
+
|
|
256
|
+
- **Primary Service**: [Link or path]
|
|
257
|
+
- **API Documentation**: [Link]
|
|
258
|
+
- **Database Schema**: [Link or reference]
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Linter Rules Enforced
|
|
263
|
+
|
|
264
|
+
| Rule | Description |
|
|
265
|
+
|------|-------------|
|
|
266
|
+
| TS-FEAT-001 | Feature file must exist before stories can reference it |
|
|
267
|
+
| TS-FEAT-002 | All required sections must be present |
|
|
268
|
+
| TS-FEAT-003 | Feature ID must be unique |
|
|
269
|
+
| TS-DOD-001 | Change Log must be updated when stories complete |
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
# Functional Specification: [Feature Name]
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
ℹ️ THIS IS A TRANSITIONAL DOCUMENT
|
|
5
|
+
|
|
6
|
+
This Functional Specification bridges Business Analysis and Feature Canon.
|
|
7
|
+
|
|
8
|
+
LIFECYCLE:
|
|
9
|
+
1. Created during functional elaboration
|
|
10
|
+
2. Used to refine Feature Canon
|
|
11
|
+
3. RETIRED after Feature Canon stabilizes
|
|
12
|
+
|
|
13
|
+
Once the Feature Canon (F-XXX.md) is complete and stable,
|
|
14
|
+
this document should be archived and marked as superseded.
|
|
15
|
+
-->
|
|
16
|
+
|
|
17
|
+
> **Template Version**: 2.0
|
|
18
|
+
> **Last Updated**: 2026-01-07
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
**Document Owner:** FA (Functional Analyst)
|
|
23
|
+
**Artifact Type:** Transitional (Working Document)
|
|
24
|
+
**Lifecycle:** Retired after Feature Canon stabilizes
|
|
25
|
+
|
|
26
|
+
| Metadata | Details |
|
|
27
|
+
| :--- | :--- |
|
|
28
|
+
| **Source BA Doc** | [Link to BA Doc] |
|
|
29
|
+
| **Owner** | [FA Name] |
|
|
30
|
+
| **Tech Lead** | [Arch/Dev Name] |
|
|
31
|
+
| **Created** | YYYY-MM-DD |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Target Feature Canon
|
|
36
|
+
|
|
37
|
+
> ⚠️ This spec elaborates behavior for the Feature Canon below.
|
|
38
|
+
> The Feature Canon is the authoritative source.
|
|
39
|
+
> This spec is a working document during elaboration only.
|
|
40
|
+
|
|
41
|
+
| Feature ID | Feature Name | Link |
|
|
42
|
+
|------------|--------------|------|
|
|
43
|
+
| [F-XXX](../features/F-XXX-name.md) | [Feature Name] | |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 1. Feature Overview
|
|
48
|
+
|
|
49
|
+
> Summary for Developers - Read this first!
|
|
50
|
+
|
|
51
|
+
- **Building**: [What]
|
|
52
|
+
- **Key Constraints**: [Hard rules]
|
|
53
|
+
- **Risks**: [Top technical risks]
|
|
54
|
+
|
|
55
|
+
> **Reference the Feature Canon** for full behavioral context before developing.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 2. Functional Requirements
|
|
60
|
+
|
|
61
|
+
### FR-01: [Requirement Name]
|
|
62
|
+
|
|
63
|
+
- **Description**: Detailed behavior.
|
|
64
|
+
- **Alignment**: Maps to Feature Canon section [F-XXX: Current Behavior > ...]
|
|
65
|
+
- **Validation**:
|
|
66
|
+
- [Rule 1]
|
|
67
|
+
- [Rule 2]
|
|
68
|
+
- **Error States**:
|
|
69
|
+
- If [Condition], show "Error Message".
|
|
70
|
+
|
|
71
|
+
### FR-02: [Requirement Name]
|
|
72
|
+
|
|
73
|
+
...
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 3. User Interface (UI/UX)
|
|
78
|
+
|
|
79
|
+
- **Screen 1**: [Link to Figma] - Description of logic.
|
|
80
|
+
- **Screen 2**: ...
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 4. Role-Based Access
|
|
85
|
+
|
|
86
|
+
| Role | View | Edit | Delete |
|
|
87
|
+
| :--- | :---: | :---: | :---: |
|
|
88
|
+
| Admin | ✓ | ✓ | ✓ |
|
|
89
|
+
| Viewer | ✓ | — | — |
|
|
90
|
+
|
|
91
|
+
> Note: These roles and permissions will be documented in the Feature Canon.
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 5. Data Interactions
|
|
96
|
+
|
|
97
|
+
- **Inputs**: [Form fields]
|
|
98
|
+
- **Outputs**: [Display fields]
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 6. Story Slicing Strategy
|
|
103
|
+
|
|
104
|
+
> Suggested breakdown of work. Stories will be created by FA referencing this spec.
|
|
105
|
+
|
|
106
|
+
| Story | Scope | Feature Impact |
|
|
107
|
+
|-------|-------|----------------|
|
|
108
|
+
| Story 1 | [Core Slice] | Adds Behavior |
|
|
109
|
+
| Story 2 | [Edge Case] | Adds Behavior |
|
|
110
|
+
| Story 3 | [Refinement] | Changes Behavior |
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Authoritative Source Rule
|
|
115
|
+
|
|
116
|
+
> ⚠️ This Functional Specification is a **transitional planning document**.
|
|
117
|
+
>
|
|
118
|
+
> Once stories are implemented:
|
|
119
|
+
> - **Feature Canon** is the authoritative reference
|
|
120
|
+
> - Stories become historical records
|
|
121
|
+
> - This spec may become stale
|
|
122
|
+
>
|
|
123
|
+
> **If you discover a discrepancy** between this spec and the Feature Canon:
|
|
124
|
+
> - Check Feature file's Change Log to understand what changed
|
|
125
|
+
> - If behavior is wrong, file a bug
|
|
126
|
+
> - If Feature Canon is stale, run `ts:fa sync`
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Document Retirement
|
|
131
|
+
|
|
132
|
+
> This document should be retired when:
|
|
133
|
+
|
|
134
|
+
- [ ] Feature Canon (F-XXX) is complete
|
|
135
|
+
- [ ] All business rules transferred to Feature Canon
|
|
136
|
+
- [ ] All edge cases documented in Feature Canon
|
|
137
|
+
- [ ] Stakeholder validation complete
|
|
138
|
+
- [ ] Feature Canon is source of truth
|
|
139
|
+
|
|
140
|
+
**Retirement Status:** [ ] Active / [ ] Superseded
|
|
141
|
+
**Superseded By:** [F-XXX](../features/F-XXX-name.md)
|
|
142
|
+
**Retirement Date:** ________________
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Transition Checklist
|
|
147
|
+
|
|
148
|
+
Before retiring this document:
|
|
149
|
+
|
|
150
|
+
| Item | Status | Notes |
|
|
151
|
+
|------|--------|-------|
|
|
152
|
+
| Purpose section in Feature Canon | [ ] | |
|
|
153
|
+
| Business Value in Feature Canon | [ ] | |
|
|
154
|
+
| Scope (In/Out) in Feature Canon | [ ] | |
|
|
155
|
+
| Current Behavior in Feature Canon | [ ] | |
|
|
156
|
+
| Business Rules (BR-XXX) in Feature Canon | [ ] | |
|
|
157
|
+
| Edge Cases in Feature Canon | [ ] | |
|
|
158
|
+
| Roles & Permissions in Feature Canon | [ ] | |
|
|
159
|
+
|
|
160
|
+
**Transition Verified By:** ________________
|
|
161
|
+
**Date:** ________________
|