@comfanion/workflow 4.1.2 → 4.3.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 (46) hide show
  1. package/README.md +1 -2
  2. package/bin/cli.js +2 -4
  3. package/package.json +1 -1
  4. package/src/build-info.json +1 -1
  5. package/src/opencode/ARCHITECTURE.md +7 -6
  6. package/src/opencode/FLOW.yaml +10 -10
  7. package/src/opencode/agents/coder.md +82 -0
  8. package/src/opencode/agents/dev.md +10 -0
  9. package/src/opencode/commands/architecture.md +1 -1
  10. package/src/opencode/commands/prd.md +1 -1
  11. package/src/opencode/config.yaml +1 -1
  12. package/src/opencode/skills/adr-writing/SKILL.md +122 -159
  13. package/src/opencode/skills/adr-writing/template.md +130 -0
  14. package/src/opencode/skills/architecture-design/SKILL.md +113 -107
  15. package/src/opencode/skills/architecture-design/template.md +212 -0
  16. package/src/opencode/skills/architecture-validation/SKILL.md +1 -1
  17. package/src/opencode/skills/changelog/template.md +23 -0
  18. package/src/opencode/skills/epic-writing/SKILL.md +116 -264
  19. package/src/opencode/skills/epic-writing/template.md +119 -0
  20. package/src/opencode/skills/prd-validation/SKILL.md +1 -1
  21. package/src/opencode/skills/prd-writing/SKILL.md +79 -43
  22. package/src/opencode/skills/prd-writing/template.md +147 -0
  23. package/src/opencode/skills/requirements-gathering/SKILL.md +128 -78
  24. package/src/opencode/skills/requirements-gathering/template.md +156 -0
  25. package/src/opencode/skills/story-writing/SKILL.md +106 -464
  26. package/src/opencode/skills/story-writing/template.md +214 -0
  27. package/src/opencode/skills/unit-writing/SKILL.md +185 -0
  28. package/src/opencode/skills/unit-writing/template.md +136 -0
  29. package/src/repo-structure/docs/README.md +5 -5
  30. package/src/repo-structure/docs/requirements/README.md +1 -1
  31. package/src/opencode/templates/CHANGELOG.md +0 -82
  32. package/src/opencode/templates/adr-template.md +0 -115
  33. package/src/opencode/templates/architecture-template.md +0 -362
  34. package/src/opencode/templates/epic-template.md +0 -166
  35. package/src/opencode/templates/prd-template.md +0 -479
  36. package/src/opencode/templates/requirements-template.md +0 -132
  37. package/src/opencode/templates/story-template.md +0 -182
  38. /package/src/opencode/{templates/prd-acceptance-criteria-template.md → skills/acceptance-criteria/template.md} +0 -0
  39. /package/src/opencode/{templates/change-proposal-template.md → skills/archiving/template-change-proposal.md} +0 -0
  40. /package/src/opencode/{templates/git-workflow-template.md → skills/coding-standards/template-git.md} +0 -0
  41. /package/src/opencode/{templates/testing-standards-template.md → skills/coding-standards/template-testing.md} +0 -0
  42. /package/src/opencode/{templates/jira-cache-template.yaml → skills/jira-integration/template-cache.yaml} +0 -0
  43. /package/src/opencode/{templates/module-index-template.md → skills/module-documentation/template.md} +0 -0
  44. /package/src/opencode/{templates/sprint-status-template.yaml → skills/sprint-planning/template.yaml} +0 -0
  45. /package/src/opencode/{templates/integration-tests-template.md → skills/test-design/template-integration.md} +0 -0
  46. /package/src/opencode/{templates/module-test-cases-template.md → skills/test-design/template-module.md} +0 -0
package/README.md CHANGED
@@ -96,8 +96,7 @@ npx @comfanion/workflow config
96
96
  ├── config.yaml # Your configuration
97
97
  ├── FLOW.yaml # Workflow definition (v3.0)
98
98
  ├── agents/ # Agent personas
99
- ├── skills/ # Knowledge modules (25+)
100
- ├── templates/ # Document templates
99
+ ├── skills/ # Knowledge modules with templates (25+)
101
100
  ├── workflows/ # Workflow instructions
102
101
  ├── checklists/ # Validation checklists
103
102
  └── commands/ # Slash commands
package/bin/cli.js CHANGED
@@ -259,7 +259,7 @@ program
259
259
  // Create CHANGELOG.md if not exists
260
260
  const changelogPath = path.join(process.cwd(), 'CHANGELOG.md');
261
261
  if (!await fs.pathExists(changelogPath)) {
262
- const changelogTemplate = path.join(targetDir, 'templates/CHANGELOG.md');
262
+ const changelogTemplate = path.join(targetDir, 'skills/changelog/template.md');
263
263
  if (await fs.pathExists(changelogTemplate)) {
264
264
  await fs.copy(changelogTemplate, changelogPath);
265
265
  }
@@ -274,8 +274,7 @@ program
274
274
  ├── config.yaml # Your configuration
275
275
  ├── FLOW.yaml # Workflow definition
276
276
  ├── agents/ # Agent personas (analyst, pm, architect, sm, dev)
277
- ├── skills/ # Knowledge modules
278
- ├── templates/ # Document templates
277
+ ├── skills/ # Knowledge modules (with templates)
279
278
  ├── workflows/ # Workflow instructions
280
279
  └── checklists/ # Validation checklists
281
280
 
@@ -400,7 +399,6 @@ program
400
399
  { name: 'FLOW.yaml', path: '.opencode/FLOW.yaml', required: true },
401
400
  { name: 'agents/', path: '.opencode/agents', required: true },
402
401
  { name: 'skills/', path: '.opencode/skills', required: true },
403
- { name: 'templates/', path: '.opencode/templates', required: true },
404
402
  { name: 'docs/', path: 'docs', required: true },
405
403
  { name: 'docs/sprint-artifacts/', path: 'docs/sprint-artifacts', required: true },
406
404
  { name: 'docs/requirements/', path: 'docs/requirements', required: true },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comfanion/workflow",
3
- "version": "4.1.2",
3
+ "version": "4.3.0",
4
4
  "description": "Initialize OpenCode Workflow system for AI-assisted development",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "3.0.0",
3
- "buildDate": "2026-01-23T17:53:50.018Z",
3
+ "buildDate": "2026-01-23T20:59:12.140Z",
4
4
  "files": [
5
5
  "config.yaml",
6
6
  "FLOW.yaml",
@@ -186,12 +186,13 @@ prd-writing:
186
186
  │ └── integration-testing/
187
187
  │ └── SKILL.md
188
188
 
189
- └── templates/ # Referenced by skills
190
- ├── requirements-template.md
191
- ├── prd-template.md
192
- ├── architecture-template.md
193
- ├── epic-template.md
194
- ├── story-template.md
189
+ └── skills/ # Skills with co-located templates
190
+ ├── prd-writing/
191
+ ├── SKILL.md
192
+ │ └── template.md
193
+ ├── architecture-design/
194
+ ├── SKILL.md
195
+ │ └── template.md
195
196
  └── ...
196
197
  ```
197
198
 
@@ -99,7 +99,7 @@ pipeline:
99
99
  qa:
100
100
  artifact: docs/prd-acceptance-criteria.md
101
101
  description: Acceptance criteria for all FRs
102
- template: templates/prd-acceptance-criteria-template.md
102
+ template: skills/acceptance-criteria/template.md
103
103
  mandatory: true
104
104
  next: coding-standards
105
105
 
@@ -143,7 +143,7 @@ pipeline:
143
143
  qa:
144
144
  artifact: docs/architecture-integration-tests.md
145
145
  description: Integration test specifications
146
- template: templates/integration-tests-template.md
146
+ template: skills/test-design/template-integration.md
147
147
  mandatory: true
148
148
  next: module-docs
149
149
 
@@ -777,41 +777,41 @@ commands:
777
777
  artifacts:
778
778
  requirements:
779
779
  path: docs/requirements/requirements.md
780
- template: templates/requirements-template.md
780
+ template: skills/requirements-gathering/template.md
781
781
 
782
782
  prd:
783
783
  path: docs/prd.md
784
- template: templates/prd-template.md
784
+ template: skills/prd-writing/template.md
785
785
 
786
786
  prd-qa:
787
787
  path: docs/prd-acceptance-criteria.md
788
- template: templates/prd-acceptance-criteria-template.md
788
+ template: skills/acceptance-criteria/template.md
789
789
  mandatory: true
790
790
 
791
791
  architecture:
792
792
  path: docs/architecture.md
793
- template: templates/architecture-template.md
793
+ template: skills/architecture-design/template.md
794
794
 
795
795
  architecture-qa:
796
796
  path: docs/architecture-integration-tests.md
797
- template: templates/integration-tests-template.md
797
+ template: skills/test-design/template-integration.md
798
798
  mandatory: true
799
799
 
800
800
  epic:
801
801
  path: docs/sprint-artifacts/*/epic-*.md
802
- template: templates/epic-template.md
802
+ template: skills/epic-writing/template.md
803
803
  naming: "epic-{NN}-{module}-{description}.md"
804
804
  id_format: "{MODULE}-E{NN}"
805
805
 
806
806
  story:
807
807
  path: docs/sprint-artifacts/*/stories/story-*.md
808
- template: templates/story-template.md
808
+ template: skills/story-writing/template.md
809
809
  naming: "story-{EPIC}-{NN}-{description}.md"
810
810
  id_format: "{MODULE}-S{EPIC}-{NN}"
811
811
 
812
812
  sprint-status:
813
813
  path: docs/sprint-artifacts/sprint-status.yaml
814
- template: templates/sprint-status-template.yaml
814
+ template: skills/sprint-planning/template.yaml
815
815
  format: yaml
816
816
 
817
817
  # =============================================================================
@@ -0,0 +1,82 @@
1
+ ---
2
+ description: "Fast Coder - Use for: quick implementation tasks, writing code, fixing bugs. Uses claude-haiku for speed."
3
+ mode: subagent
4
+ model: anthropic/claude-haiku-4-20250514
5
+ temperature: 0.1
6
+ tools:
7
+ write: true
8
+ edit: true
9
+ bash: true
10
+ glob: true
11
+ grep: true
12
+ read: true
13
+ permission:
14
+ bash:
15
+ "*": allow
16
+ ---
17
+
18
+ <agent id="coder" name="Swift" title="Fast Coder" icon="⚡">
19
+
20
+ <activation>
21
+ <step n="1">Receive task from parent agent or user</step>
22
+ <step n="2">Read relevant files mentioned in task</step>
23
+ <step n="3">Implement solution following project patterns</step>
24
+ <step n="4">Run tests if applicable</step>
25
+ <step n="5">Report completion</step>
26
+ </activation>
27
+
28
+ <persona>
29
+ <role>Fast Implementation Specialist</role>
30
+ <identity>Quick executor for well-defined coding tasks. No planning, no questions - just code.</identity>
31
+ <communication_style>Minimal. Shows code, reports results. No explanations unless errors.</communication_style>
32
+ <principles>
33
+ - Execute task as specified, no improvisation
34
+ - Follow existing code patterns in project
35
+ - Write minimal code that solves the problem
36
+ - Report errors immediately if blocked
37
+ </principles>
38
+ </persona>
39
+
40
+ <rules>
41
+ <r>DO NOT ask clarifying questions - execute or fail</r>
42
+ <r>DO NOT refactor beyond task scope</r>
43
+ <r>DO NOT add features not requested</r>
44
+ <r>Follow existing patterns from AGENTS.md / CLAUDE.md</r>
45
+ <r>If task is unclear, report what's missing and stop</r>
46
+ </rules>
47
+
48
+ <when-to-use>
49
+ - Simple file creation/modification
50
+ - Bug fixes with clear reproduction
51
+ - Code following existing patterns
52
+ - Test writing for existing code
53
+ - Repetitive tasks across multiple files
54
+ </when-to-use>
55
+
56
+ <when-not-to-use>
57
+ - Architecture decisions (→ @architect)
58
+ - Complex multi-step features (→ @dev)
59
+ - Requirements unclear (→ @pm)
60
+ - New patterns needed (→ @dev)
61
+ </when-not-to-use>
62
+
63
+ </agent>
64
+
65
+ ## Quick Reference
66
+
67
+ **Model:** claude-haiku (fast, cheap)
68
+
69
+ **What I Do:**
70
+ - Quick code implementation
71
+ - Bug fixes
72
+ - Test writing
73
+ - File operations
74
+ - Pattern replication
75
+
76
+ **What I Don't Do:**
77
+ - Planning or architecture
78
+ - Clarifying questions
79
+ - Scope expansion
80
+ - Complex decisions
81
+
82
+ **Invoke:** `@coder <task>` or let @dev delegate to me
@@ -69,6 +69,16 @@ permission:
69
69
  <skill name="test-design">Test structure, coverage requirements</skill>
70
70
  </skills>
71
71
 
72
+ <subagents>
73
+ <subagent name="coder" when="Delegate simple, well-defined tasks for faster execution">
74
+ - Simple file creation/modification
75
+ - Bug fixes with clear steps
76
+ - Test writing for existing code
77
+ - Repetitive tasks across files
78
+ - Code following existing patterns
79
+ </subagent>
80
+ </subagents>
81
+
72
82
  <red-green-refactor>
73
83
  <red>Write FAILING tests first for the task functionality</red>
74
84
  <green>Implement MINIMAL code to make tests pass</green>
@@ -61,7 +61,7 @@ $ARGUMENTS
61
61
  After architecture is complete, create QA artifact:
62
62
  `docs/architecture-integration-tests.md`
63
63
 
64
- Use template: `@.opencode/templates/integration-tests-template.md`
64
+ Use template: `@.opencode/skills/test-design/template-integration.md`
65
65
 
66
66
  ## Next Step
67
67
 
@@ -56,7 +56,7 @@ Save to: `docs/prd.md`
56
56
  After PRD is complete, create QA artifact:
57
57
  `docs/prd-acceptance-criteria.md`
58
58
 
59
- Use template: `@.opencode/templates/prd-acceptance-criteria-template.md`
59
+ Use template: `@.opencode/skills/acceptance-criteria/template.md`
60
60
 
61
61
  ## Next Step
62
62
 
@@ -6,7 +6,7 @@
6
6
  # PROJECT CONFIGURATION
7
7
  # =============================================================================
8
8
  project_name: "ai-wf"
9
- version: "4.1.2"
9
+ version: "4.1.3"
10
10
 
11
11
  # =============================================================================
12
12
  # USER CONFIGURATION
@@ -5,7 +5,7 @@ license: MIT
5
5
  compatibility: opencode
6
6
  metadata:
7
7
  domain: software-architecture
8
- artifacts: docs/architecture/adr/
8
+ artifacts: docs/architecture/adr/*.md
9
9
  ---
10
10
 
11
11
  # ADR Writing Skill
@@ -15,227 +15,190 @@ metadata:
15
15
  Use this skill when you need to:
16
16
  - Document a significant architectural decision
17
17
  - Record the rationale behind a technical choice
18
- - Track decision history over time
19
- - Communicate decisions to the team
18
+ - Create a reference for future developers
19
+ - Track decision evolution over time
20
20
 
21
- ## When to Write an ADR
21
+ ## Template
22
22
 
23
- Write an ADR when:
24
- - Choosing between multiple valid approaches
25
- - Making a decision that affects multiple modules
26
- - Selecting a technology or framework
27
- - Defining a pattern to follow consistently
28
- - Making a trade-off between quality attributes
23
+ Use template at: `@.opencode/skills/adr-writing/template.md`
29
24
 
30
- ## ADR Template
25
+ ## ADR Structure (v2)
31
26
 
32
- ```markdown
33
- # ADR-NNN: [Decision Title]
34
-
35
- **Status:** Proposed | Accepted | Deprecated | Superseded by ADR-XXX
36
- **Date:** YYYY-MM-DD
37
- **Deciders:** [Names of people involved]
38
- **Technical Story:** [Link to epic/story if applicable]
39
-
40
- ## Context
41
-
42
- [Describe the situation that led to this decision. What is the problem?
43
- What forces are at play? What constraints exist?]
44
-
45
- ## Decision
27
+ ### 1. Header
46
28
 
47
- [State the decision clearly. What are we going to do?]
29
+ ```yaml
30
+ id: ADR-{{N}}
31
+ status: proposed | accepted | deprecated | superseded
32
+ date: {{date}}
33
+ deciders: [{{names}}]
34
+ supersedes: ADR-{{X}} # if applicable
35
+ ```
48
36
 
49
- ## Consequences
37
+ ### 2. Context
50
38
 
51
- ### Positive
52
- - [Benefit 1]
53
- - [Benefit 2]
39
+ Prose explaining:
40
+ - The situation and problem
41
+ - What decision is needed
42
+ - Why it's needed now
54
43
 
55
- ### Negative
56
- - [Drawback 1]
57
- - [Drawback 2]
44
+ With **Forces:** (tensions/tradeoffs) and **Constraints:**
58
45
 
59
- ### Neutral
60
- - [Side effect that is neither good nor bad]
46
+ ```markdown
47
+ ## Context
61
48
 
62
- ## Alternatives Considered
49
+ We need to choose the primary database for the Task module.
63
50
 
64
- ### Alternative 1: [Name]
65
- [Brief description]
66
- - **Pros:** [advantages]
67
- - **Cons:** [disadvantages]
68
- - **Rejected because:** [reason]
51
+ We need to decide now because development starts next sprint.
69
52
 
70
- ### Alternative 2: [Name]
71
- [Brief description]
72
- - **Pros:** [advantages]
73
- - **Cons:** [disadvantages]
74
- - **Rejected because:** [reason]
53
+ **Forces:**
54
+ - Need ACID transactions — pushes toward relational
55
+ - Team expertise is SQL — reduces risk
75
56
 
76
- ## References
57
+ **Constraints:**
58
+ - Must run on existing K8s cluster
59
+ ```
77
60
 
78
- - [Link to relevant documentation]
79
- - [Link to research or benchmarks]
61
+ ### 3. Decision
80
62
 
81
- ## Notes
63
+ Bold statement + brief explanation:
82
64
 
83
- [Any additional context, caveats, or follow-up actions]
84
- ```
65
+ ```markdown
66
+ ## Decision
85
67
 
86
- ## Naming Convention
68
+ **We will use PostgreSQL as the primary database.**
87
69
 
70
+ This means all Task module data will be stored in PostgreSQL with JSONB for flexible attributes.
88
71
  ```
89
- ADR-NNN-short-description.md
90
72
 
91
- Examples:
92
- - ADR-001-use-postgresql.md
93
- - ADR-002-event-driven-integration.md
94
- - ADR-003-modular-monolith-architecture.md
95
- ```
73
+ ### 4. Options Considered
96
74
 
97
- ## Status Lifecycle
75
+ For each option:
76
+ - Brief description
77
+ - Pros/Cons table
78
+ - Mark chosen with ✓
98
79
 
99
- ```
100
- Proposed Accepted → (Deprecated | Superseded)
101
- ```
80
+ ```markdown
81
+ ### Option 1: MongoDB
102
82
 
103
- - **Proposed:** Under discussion
104
- - **Accepted:** Decision made and in effect
105
- - **Deprecated:** No longer relevant (system changed)
106
- - **Superseded:** Replaced by a newer ADR
83
+ Document database with flexible schema.
107
84
 
108
- ## Good ADR Examples
85
+ | Pros | Cons |
86
+ |------|------|
87
+ | Flexible schema | No ACID across documents |
109
88
 
110
- ### Example: Database Choice
89
+ ### Option 2: PostgreSQL ✓ CHOSEN
111
90
 
112
- ```markdown
113
- # ADR-001: Use PostgreSQL as Primary Database
91
+ Relational database with JSON support.
114
92
 
115
- **Status:** Accepted
116
- **Date:** 2026-01-15
117
- **Deciders:** Tech Lead, Architect
93
+ | Pros | Cons |
94
+ |------|------|
95
+ | ACID transactions | Schema migrations needed |
96
+ | Team expertise | |
118
97
 
119
- ## Context
120
-
121
- We need a primary database for the marketplace system.
122
- Requirements:
123
- - ACID transactions for orders
124
- - Complex queries for product search
125
- - JSON support for flexible attributes
126
- - Proven reliability at scale
98
+ **Why chosen:** ACID critical for assignments. Team expertise reduces risk.
99
+ ```
127
100
 
128
- ## Decision
101
+ ### 5. Consequences
129
102
 
130
- Use PostgreSQL 17+ with AWS RDS.
103
+ Grouped by type:
104
+ - Positive (✓)
105
+ - Negative (✗)
106
+ - Risks (⚠)
131
107
 
108
+ ```markdown
132
109
  ## Consequences
133
110
 
134
111
  ### Positive
135
- - Strong ACID guarantees
136
- - Excellent JSON/JSONB support
137
- - GIN indexes for full-text search
138
- - Team expertise exists
112
+ - Single deploy = simple CI/CD
113
+ - Team already knows PostgreSQL
139
114
 
140
115
  ### Negative
141
- - Requires careful schema design
142
- - Scaling writes is harder than NoSQL
143
- - AWS RDS costs
116
+ - Must manage migrations carefully
144
117
 
145
- ## Alternatives Considered
118
+ ### Risks
119
+ - Schema evolution — mitigated by versioned migrations
120
+ ```
146
121
 
147
- ### MySQL
148
- - Pros: Simpler, cheaper
149
- - Cons: Weaker JSON support, fewer features
150
- - Rejected: JSON operations are critical for us
122
+ ### 6. Implementation Notes (optional)
151
123
 
152
- ### MongoDB
153
- - Pros: Flexible schema, easy scaling
154
- - Cons: No ACID across documents, eventual consistency
155
- - Rejected: Need strong consistency for orders
156
- ```
124
+ Specific guidance for implementing the decision.
157
125
 
158
- ### Example: Integration Pattern
126
+ ### 7. References
159
127
 
160
128
  ```markdown
161
- # ADR-002: Event-Driven Integration Between Modules
129
+ Architecture: `docs/architecture.md`
130
+ → Related ADR: → ADR: `ADR-002`
131
+ → Affected Units: → Unit: `Task`
132
+ ```
162
133
 
163
- **Status:** Accepted
164
- **Date:** 2026-01-16
165
- **Deciders:** Architect, Tech Lead
134
+ ## Reference Format
166
135
 
167
- ## Context
136
+ Always use `→` prefix:
168
137
 
169
- Modules need to communicate. Options:
170
- 1. Direct API calls (synchronous)
171
- 2. Event-driven (asynchronous)
172
- 3. Shared database (anti-pattern)
138
+ ```markdown
139
+ ADR: `ADR-001`
140
+ Unit: `Task`
141
+ Architecture: `docs/architecture.md`
142
+ ```
173
143
 
174
- ## Decision
144
+ ## When to Write ADR
175
145
 
176
- Use Kafka for event-driven integration between modules.
177
- Modules publish domain events, others subscribe.
146
+ | Situation | Write ADR? |
147
+ |-----------|-----------|
148
+ | Database choice | Yes |
149
+ | Framework choice | Yes |
150
+ | Architecture pattern | Yes |
151
+ | API design decision | Yes |
152
+ | Library choice | Maybe (if significant) |
153
+ | Code style decision | No (use coding-standards) |
178
154
 
179
- ## Consequences
155
+ ## ADR Lifecycle
180
156
 
181
- ### Positive
182
- - Loose coupling between modules
183
- - Better scalability
184
- - Natural audit trail
185
- - Resilient to failures
186
-
187
- ### Negative
188
- - Eventual consistency complexity
189
- - Need idempotent consumers
190
- - Additional infrastructure (Kafka)
191
- - Harder to debug
157
+ ```
158
+ proposed ──► accepted ──► deprecated
159
+
160
+ └──► superseded (by new ADR)
161
+ ```
192
162
 
193
- ## Alternatives Considered
163
+ When superseding:
164
+ 1. Create new ADR
165
+ 2. Add `supersedes: ADR-XXX` to new ADR
166
+ 3. Update old ADR status to `superseded`
167
+ 4. Add `superseded_by: ADR-YYY` to old ADR
194
168
 
195
- ### Direct HTTP Calls
196
- - Rejected: Creates tight coupling, cascading failures
197
- ```
169
+ ## Naming Conventions
198
170
 
199
- ## Directory Structure
171
+ ### File Names
200
172
 
201
173
  ```
202
- docs/architecture/adr/
203
- ├── ADR-001-use-postgresql.md
204
- ├── ADR-002-event-driven-integration.md
205
- ├── ADR-003-modular-monolith.md
206
- ├── ADR-004-hexagonal-architecture.md
207
- └── README.md # Index of all ADRs
174
+ ADR-[NNN]-[short-title].md
175
+
176
+ Examples:
177
+ - ADR-001-postgresql-database.md
178
+ - ADR-002-hexagonal-architecture.md
208
179
  ```
209
180
 
210
- ## ADR Index (README.md)
181
+ ### IDs
211
182
 
212
- ```markdown
213
- # Architecture Decision Records
214
-
215
- | ADR | Title | Status | Date |
216
- |-----|-------|--------|------|
217
- | [ADR-001](ADR-001-use-postgresql.md) | Use PostgreSQL | Accepted | 2026-01-15 |
218
- | [ADR-002](ADR-002-event-driven-integration.md) | Event-driven integration | Accepted | 2026-01-16 |
219
- | [ADR-003](ADR-003-modular-monolith.md) | Modular monolith | Accepted | 2026-01-17 |
220
- ```
183
+ Sequential: `ADR-001`, `ADR-002`, ...
221
184
 
222
- ## Quality Checklist
185
+ ## Validation Checklist
223
186
 
224
- Before finalizing ADR:
225
187
  - [ ] Context explains the problem clearly
226
- - [ ] Decision is stated unambiguously
227
- - [ ] Consequences include both positive and negative
228
- - [ ] At least 2 alternatives were considered
229
- - [ ] Alternatives explain why they were rejected
230
- - [ ] Status is set correctly
231
- - [ ] Date and deciders are recorded
188
+ - [ ] Forces describe tensions/tradeoffs
189
+ - [ ] Decision is a clear statement
190
+ - [ ] At least 2 options were considered
191
+ - [ ] Chosen option is marked
192
+ - [ ] Rationale explains why chosen
193
+ - [ ] Consequences include positives AND negatives
194
+ - [ ] Uses `→` reference format
195
+ - [ ] Links to affected units
232
196
 
233
197
  ## Output
234
198
 
235
- Save to: `docs/architecture/adr/ADR-NNN-description.md`
236
- Update: `docs/architecture/adr/README.md` (index)
199
+ Save to: `docs/architecture/adr/ADR-[NNN]-[title].md`
237
200
 
238
201
  ## Related Skills
239
202
 
240
- - `architecture-design` - For overall architecture
241
- - `architecture-validation` - For validating ADRs exist
203
+ - `architecture-design` - Creates ADRs for decisions
204
+ - `unit-writing` - ADRs affect units