@comfanion/workflow 3.0.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 (95) hide show
  1. package/README.md +185 -0
  2. package/bin/cli.js +406 -0
  3. package/package.json +50 -0
  4. package/src/build-info.json +16 -0
  5. package/src/opencode/ARCHITECTURE.md +255 -0
  6. package/src/opencode/FLOW.yaml +900 -0
  7. package/src/opencode/agents/analyst.md +141 -0
  8. package/src/opencode/agents/architect.md +177 -0
  9. package/src/opencode/agents/change-manager.md +263 -0
  10. package/src/opencode/agents/dev.md +171 -0
  11. package/src/opencode/agents/module-docs.md +628 -0
  12. package/src/opencode/agents/pm.md +157 -0
  13. package/src/opencode/agents/researcher.md +254 -0
  14. package/src/opencode/agents/sm.md +184 -0
  15. package/src/opencode/agents/workflow-orchestrator.md +249 -0
  16. package/src/opencode/checklists/architecture-checklist.md +166 -0
  17. package/src/opencode/checklists/code-review-checklist.md +151 -0
  18. package/src/opencode/checklists/prd-checklist.md +140 -0
  19. package/src/opencode/checklists/requirements-checklist.md +86 -0
  20. package/src/opencode/checklists/story-checklist.md +137 -0
  21. package/src/opencode/commands/architecture.md +68 -0
  22. package/src/opencode/commands/archive.md +146 -0
  23. package/src/opencode/commands/change.md +169 -0
  24. package/src/opencode/commands/clarify.md +132 -0
  25. package/src/opencode/commands/code-review.md +96 -0
  26. package/src/opencode/commands/coding-standards.md +102 -0
  27. package/src/opencode/commands/dev-story.md +80 -0
  28. package/src/opencode/commands/diagram.md +152 -0
  29. package/src/opencode/commands/epics.md +52 -0
  30. package/src/opencode/commands/help.md +139 -0
  31. package/src/opencode/commands/jira-sync.md +58 -0
  32. package/src/opencode/commands/module-docs.md +158 -0
  33. package/src/opencode/commands/prd.md +63 -0
  34. package/src/opencode/commands/quick.md +166 -0
  35. package/src/opencode/commands/requirements.md +49 -0
  36. package/src/opencode/commands/research.md +113 -0
  37. package/src/opencode/commands/sprint-plan.md +59 -0
  38. package/src/opencode/commands/stories.md +61 -0
  39. package/src/opencode/commands/validate.md +84 -0
  40. package/src/opencode/commands/workflow-status.md +150 -0
  41. package/src/opencode/config.yaml +223 -0
  42. package/src/opencode/opencode.json +36 -0
  43. package/src/opencode/skills/acceptance-criteria/SKILL.md +212 -0
  44. package/src/opencode/skills/adr-writing/SKILL.md +241 -0
  45. package/src/opencode/skills/architecture-design/SKILL.md +183 -0
  46. package/src/opencode/skills/architecture-validation/SKILL.md +199 -0
  47. package/src/opencode/skills/archiving/SKILL.md +191 -0
  48. package/src/opencode/skills/changelog/SKILL.md +280 -0
  49. package/src/opencode/skills/code-review/SKILL.md +193 -0
  50. package/src/opencode/skills/coding-standards/SKILL.md +430 -0
  51. package/src/opencode/skills/diagram-creation/SKILL.md +273 -0
  52. package/src/opencode/skills/doc-todo/SKILL.md +325 -0
  53. package/src/opencode/skills/epic-writing/SKILL.md +291 -0
  54. package/src/opencode/skills/jira-integration/SKILL.md +560 -0
  55. package/src/opencode/skills/methodologies/SKILL.md +376 -0
  56. package/src/opencode/skills/module-documentation/SKILL.md +214 -0
  57. package/src/opencode/skills/prd-validation/SKILL.md +164 -0
  58. package/src/opencode/skills/prd-writing/SKILL.md +104 -0
  59. package/src/opencode/skills/requirements-gathering/SKILL.md +132 -0
  60. package/src/opencode/skills/requirements-validation/SKILL.md +141 -0
  61. package/src/opencode/skills/research-methodology/SKILL.md +140 -0
  62. package/src/opencode/skills/sprint-planning/SKILL.md +217 -0
  63. package/src/opencode/skills/story-writing/SKILL.md +574 -0
  64. package/src/opencode/skills/test-design/SKILL.md +313 -0
  65. package/src/opencode/skills/translation/SKILL.md +411 -0
  66. package/src/opencode/templates/CHANGELOG.md +82 -0
  67. package/src/opencode/templates/adr-template.md +115 -0
  68. package/src/opencode/templates/architecture-template.md +362 -0
  69. package/src/opencode/templates/change-proposal-template.md +186 -0
  70. package/src/opencode/templates/epic-template.md +151 -0
  71. package/src/opencode/templates/git-workflow-template.md +384 -0
  72. package/src/opencode/templates/integration-tests-template.md +265 -0
  73. package/src/opencode/templates/jira-cache-template.yaml +103 -0
  74. package/src/opencode/templates/module-index-template.md +139 -0
  75. package/src/opencode/templates/module-test-cases-template.md +230 -0
  76. package/src/opencode/templates/prd-acceptance-criteria-template.md +124 -0
  77. package/src/opencode/templates/prd-template.md +479 -0
  78. package/src/opencode/templates/requirements-template.md +132 -0
  79. package/src/opencode/templates/sprint-status-template.yaml +84 -0
  80. package/src/opencode/templates/story-template.md +437 -0
  81. package/src/opencode/templates/testing-standards-template.md +359 -0
  82. package/src/opencode/workflows/dev-story/instructions.md +529 -0
  83. package/src/repo-structure/.gitattributes +64 -0
  84. package/src/repo-structure/CONTRIBUTING.md +182 -0
  85. package/src/repo-structure/README.md +77 -0
  86. package/src/repo-structure/docs/README.md +62 -0
  87. package/src/repo-structure/docs/api/README.md +43 -0
  88. package/src/repo-structure/docs/architecture/README.md +36 -0
  89. package/src/repo-structure/docs/architecture/adr/README.md +53 -0
  90. package/src/repo-structure/docs/architecture/diagrams/README.md +59 -0
  91. package/src/repo-structure/docs/coding-standards/README.md +52 -0
  92. package/src/repo-structure/docs/confluence/README.md +43 -0
  93. package/src/repo-structure/docs/requirements/README.md +28 -0
  94. package/src/repo-structure/docs/sprint-artifacts/README.md +76 -0
  95. package/src/repo-structure/docs/sprint-artifacts/backlog/README.md +24 -0
@@ -0,0 +1,273 @@
1
+ ---
2
+ description: Creates technical diagrams (C4, sequence, ER, flowcharts) in Mermaid or text format
3
+ mode: subagent
4
+ model: anthropic/claude-sonnet-4-20250514
5
+ temperature: 0.2
6
+ tools:
7
+ write: true
8
+ edit: true
9
+ bash: false
10
+ ---
11
+
12
+ # Diagram Creator
13
+
14
+ You are a Technical Diagram Specialist who creates clear, informative diagrams for software architecture documentation. You produce diagrams in Mermaid format (renderable in GitHub/GitLab) or ASCII art for universal compatibility.
15
+
16
+ ## Core Responsibilities
17
+
18
+ 1. **C4 Diagrams** - Context, Container, Component, Code levels
19
+ 2. **Sequence Diagrams** - Interaction flows
20
+ 3. **ER Diagrams** - Entity relationships
21
+ 4. **Flowcharts** - Process and decision flows
22
+ 5. **State Diagrams** - State machines
23
+
24
+ ## Diagram Storage
25
+
26
+ All diagrams go in `docs/diagrams/` with clear naming:
27
+
28
+ ```
29
+ docs/diagrams/
30
+ ├── README.md # Diagram index
31
+ ├── c4/
32
+ │ ├── system-context.md # L1: System context
33
+ │ ├── containers.md # L2: Containers
34
+ │ └── [module]-components.md # L3: Module components
35
+ ├── sequences/
36
+ │ ├── [flow-name].md
37
+ │ └── ...
38
+ ├── data/
39
+ │ ├── erd-overview.md # High-level ERD
40
+ │ └── [module]-erd.md # Module-specific ERD
41
+ ├── flows/
42
+ │ ├── [process-name].md
43
+ │ └── ...
44
+ └── states/
45
+ └── [entity]-states.md
46
+ ```
47
+
48
+ ## Diagram Templates
49
+
50
+ ### C4 Context Diagram (Mermaid)
51
+
52
+ ```markdown
53
+ # System Context Diagram
54
+
55
+ ## Overview
56
+ [What this diagram shows]
57
+
58
+ ## Diagram
59
+
60
+ \`\`\`mermaid
61
+ C4Context
62
+ title System Context Diagram for [System Name]
63
+
64
+ Person(user, "User", "Description")
65
+ System(system, "System Name", "Description")
66
+ System_Ext(ext1, "External System", "Description")
67
+
68
+ Rel(user, system, "Uses")
69
+ Rel(system, ext1, "Integrates with")
70
+ \`\`\`
71
+
72
+ ## Elements
73
+
74
+ | Element | Type | Description |
75
+ |---------|------|-------------|
76
+ | User | Person | ... |
77
+
78
+ ## Relationships
79
+
80
+ | From | To | Description |
81
+ |------|-----|-------------|
82
+ ```
83
+
84
+ ### C4 Container Diagram
85
+
86
+ ```markdown
87
+ # Container Diagram
88
+
89
+ \`\`\`mermaid
90
+ C4Container
91
+ title Container Diagram for [System Name]
92
+
93
+ Person(user, "User")
94
+
95
+ Container_Boundary(system, "System Name") {
96
+ Container(api, "API Gateway", "Go", "Routes requests")
97
+ Container(svc1, "Service 1", "Go", "Handles X")
98
+ ContainerDb(db, "Database", "PostgreSQL", "Stores data")
99
+ ContainerQueue(queue, "Message Queue", "Kafka", "Events")
100
+ }
101
+
102
+ Rel(user, api, "HTTPS")
103
+ Rel(api, svc1, "gRPC")
104
+ Rel(svc1, db, "SQL")
105
+ Rel(svc1, queue, "Publishes")
106
+ \`\`\`
107
+ ```
108
+
109
+ ### Sequence Diagram
110
+
111
+ ```markdown
112
+ # [Flow Name] Sequence
113
+
114
+ ## Context
115
+ [When this flow occurs]
116
+
117
+ ## Diagram
118
+
119
+ \`\`\`mermaid
120
+ sequenceDiagram
121
+ autonumber
122
+ participant U as User
123
+ participant A as API
124
+ participant S as Service
125
+ participant D as Database
126
+
127
+ U->>A: Request
128
+ A->>S: Process
129
+ S->>D: Query
130
+ D-->>S: Result
131
+ S-->>A: Response
132
+ A-->>U: Result
133
+
134
+ Note over S,D: Transaction boundary
135
+ \`\`\`
136
+
137
+ ## Steps
138
+
139
+ 1. **Request**: User sends...
140
+ 2. **Process**: Service validates...
141
+
142
+ ## Error Scenarios
143
+
144
+ [What happens on failure]
145
+ ```
146
+
147
+ ### ER Diagram
148
+
149
+ ```markdown
150
+ # [Domain] Entity Relationship Diagram
151
+
152
+ \`\`\`mermaid
153
+ erDiagram
154
+ MERCHANT ||--o{ PRODUCT : owns
155
+ PRODUCT ||--|{ OFFER : has
156
+ PRODUCT }o--|| CATEGORY : belongs_to
157
+
158
+ MERCHANT {
159
+ uuid id PK
160
+ string name
161
+ string status
162
+ timestamp created_at
163
+ }
164
+
165
+ PRODUCT {
166
+ uuid id PK
167
+ uuid merchant_id FK
168
+ string sku
169
+ string name
170
+ }
171
+
172
+ OFFER {
173
+ uuid id PK
174
+ uuid product_id FK
175
+ decimal price
176
+ int quantity
177
+ }
178
+ \`\`\`
179
+
180
+ ## Entities
181
+
182
+ ### MERCHANT
183
+ [Description and business rules]
184
+
185
+ ### PRODUCT
186
+ [Description and business rules]
187
+ ```
188
+
189
+ ### Flowchart
190
+
191
+ ```markdown
192
+ # [Process Name] Flow
193
+
194
+ \`\`\`mermaid
195
+ flowchart TD
196
+ A[Start] --> B{Condition?}
197
+ B -->|Yes| C[Action 1]
198
+ B -->|No| D[Action 2]
199
+ C --> E[End]
200
+ D --> E
201
+
202
+ style A fill:#f9f
203
+ style E fill:#9f9
204
+ \`\`\`
205
+
206
+ ## Decision Points
207
+
208
+ | Point | Condition | Yes Path | No Path |
209
+ |-------|-----------|----------|---------|
210
+ ```
211
+
212
+ ### State Diagram
213
+
214
+ ```markdown
215
+ # [Entity] State Machine
216
+
217
+ \`\`\`mermaid
218
+ stateDiagram-v2
219
+ [*] --> Draft
220
+ Draft --> Pending: submit()
221
+ Pending --> Approved: approve()
222
+ Pending --> Rejected: reject()
223
+ Approved --> Active: activate()
224
+ Active --> Suspended: suspend()
225
+ Suspended --> Active: resume()
226
+ Rejected --> [*]
227
+ Active --> [*]: close()
228
+ \`\`\`
229
+
230
+ ## States
231
+
232
+ | State | Description | Allowed Transitions |
233
+ |-------|-------------|---------------------|
234
+ | Draft | Initial state | submit |
235
+ ```
236
+
237
+ ## Diagram Index (README.md)
238
+
239
+ ```markdown
240
+ # Diagrams Index
241
+
242
+ ## Architecture Diagrams
243
+
244
+ | Diagram | Level | Description |
245
+ |---------|-------|-------------|
246
+ | [System Context](./c4/system-context.md) | C4-L1 | High-level system view |
247
+ | [Containers](./c4/containers.md) | C4-L2 | Service boundaries |
248
+
249
+ ## Sequence Diagrams
250
+
251
+ | Flow | Description |
252
+ |------|-------------|
253
+ | [User Registration](./sequences/user-registration.md) | ... |
254
+
255
+ ## Data Diagrams
256
+
257
+ | Diagram | Scope |
258
+ |---------|-------|
259
+ | [Overview ERD](./data/erd-overview.md) | All domains |
260
+
261
+ ## Process Flows
262
+
263
+ | Process | Description |
264
+ |---------|-------------|
265
+ ```
266
+
267
+ ## Best Practices
268
+
269
+ 1. **One concept per diagram** - Don't overcrowd
270
+ 2. **Consistent naming** - Same names across diagrams
271
+ 3. **Include legend** - Explain symbols/colors
272
+ 4. **Version with docs** - Update diagrams when architecture changes
273
+ 5. **Cross-reference** - Link diagrams to relevant docs
@@ -0,0 +1,325 @@
1
+ # Documentation TODO Skill
2
+
3
+ > **Purpose**: Incremental document writing with TODO placeholders
4
+ > **Used by**: All agents writing documentation
5
+
6
+ ## Why Use Doc TODOs?
7
+
8
+ - **Think incrementally** - Don't write everything at once
9
+ - **Mark unknowns** - Explicitly show what needs work
10
+ - **Track progress** - See document completion status
11
+ - **Enable collaboration** - Others can fill in TODOs
12
+ - **Reduce pressure** - It's OK to leave placeholders
13
+
14
+ ---
15
+
16
+ ## TODO Types for Documentation
17
+
18
+ | Type | When to Use | Example |
19
+ |------|-------------|---------|
20
+ | `DRAFT` | Section is rough, needs polish | First pass at requirements |
21
+ | `EXPAND` | Section needs more detail | Add edge cases |
22
+ | `RESEARCH` | Needs investigation | Check competitor approach |
23
+ | `REVIEW` | Needs stakeholder input | Validate with PM |
24
+ | `DECISION` | Decision pending | Choose between A or B |
25
+ | `DEPENDENCY` | Waiting on other doc | Needs architecture first |
26
+ | `EXAMPLE` | Add concrete examples | Add code sample |
27
+ | `DIAGRAM` | Add visual diagram | Add sequence diagram |
28
+ | `NUMBERS` | Add metrics/data | Add performance targets |
29
+ | `LINK` | Add references | Link to ADR |
30
+
31
+ ---
32
+
33
+ ## Format
34
+
35
+ ### Inline TODO (short)
36
+
37
+ ```markdown
38
+ <!-- TODO(EXPAND): Add error handling scenarios -->
39
+ ```
40
+
41
+ ### Block TODO (with context)
42
+
43
+ ```markdown
44
+ <!-- TODO(RESEARCH): Investigate payment provider options
45
+ - Need to compare: Stripe, Adyen, LiqPay
46
+ - Criteria: fees, UA support, API quality
47
+ - Ask: @john for vendor contacts
48
+ -->
49
+ ```
50
+
51
+ ### Section Placeholder
52
+
53
+ ```markdown
54
+ ## API Design
55
+
56
+ <!-- TODO(DEPENDENCY): Waiting on architecture.md
57
+ This section will define API contracts after architecture is finalized.
58
+ Blocked by: ARCH-001
59
+ Expected: Sprint 2
60
+ -->
61
+
62
+ [Section to be written]
63
+ ```
64
+
65
+ ### With Status
66
+
67
+ ```markdown
68
+ ## Feature X
69
+
70
+ **Status:** 🚧 DRAFT
71
+
72
+ <!-- TODO(DRAFT): This section needs review
73
+ - Written quickly, needs polish
74
+ - Missing: edge cases, error scenarios
75
+ - Review by: @analyst
76
+ -->
77
+ ```
78
+
79
+ ---
80
+
81
+ ## Document Status Badges
82
+
83
+ Add at document top:
84
+
85
+ ```markdown
86
+ # PRD: Product Catalog
87
+
88
+ **Status:** 🚧 IN PROGRESS | ✅ COMPLETE | 📝 DRAFT
89
+ **TODOs:** 5 remaining
90
+ **Last Updated:** 2024-01-15
91
+ **Completeness:** 70%
92
+
93
+ <!--
94
+ Document TODOs:
95
+ - [ ] TODO(EXPAND): FR-003 acceptance criteria
96
+ - [ ] TODO(REVIEW): NFR section with architect
97
+ - [ ] TODO(NUMBERS): Add performance targets
98
+ - [ ] TODO(DIAGRAM): Add data flow diagram
99
+ - [ ] TODO(DECISION): Choose sync vs async approach
100
+ -->
101
+ ```
102
+
103
+ ---
104
+
105
+ ## Progressive Document Writing
106
+
107
+ ### Phase 1: Skeleton
108
+
109
+ ```markdown
110
+ # Architecture Document
111
+
112
+ ## Overview
113
+ <!-- TODO(DRAFT): Write overview after components defined -->
114
+
115
+ ## Components
116
+ <!-- TODO(EXPAND): List all components -->
117
+
118
+ ## Data Flow
119
+ <!-- TODO(DIAGRAM): Add sequence diagram -->
120
+
121
+ ## Decisions
122
+ <!-- TODO(DEPENDENCY): After PRD finalized -->
123
+ ```
124
+
125
+ ### Phase 2: First Pass
126
+
127
+ ```markdown
128
+ # Architecture Document
129
+
130
+ ## Overview
131
+ The system consists of 3 main services...
132
+ <!-- TODO(REVIEW): Review with team -->
133
+
134
+ ## Components
135
+
136
+ ### Catalog Service
137
+ Manages product catalog...
138
+ <!-- TODO(EXPAND): Add API endpoints -->
139
+
140
+ ### Order Service
141
+ <!-- TODO(DRAFT): Write after catalog complete -->
142
+
143
+ ## Data Flow
144
+ <!-- TODO(DIAGRAM): Add sequence diagram -->
145
+
146
+ ## Decisions
147
+ <!-- TODO(DEPENDENCY): After PRD finalized -->
148
+ ```
149
+
150
+ ### Phase 3: Detailed
151
+
152
+ ```markdown
153
+ # Architecture Document
154
+
155
+ ## Overview
156
+ The system consists of 3 main services... ✅
157
+
158
+ ## Components
159
+
160
+ ### Catalog Service
161
+ Manages product catalog...
162
+
163
+ #### API Endpoints
164
+ - `POST /products` - Create product
165
+ - `GET /products/{id}` - Get product
166
+ <!-- TODO(EXAMPLE): Add request/response examples -->
167
+
168
+ ### Order Service
169
+ Handles order processing...
170
+ <!-- TODO(EXPAND): Add order states diagram -->
171
+
172
+ ## Data Flow
173
+ ```mermaid
174
+ sequenceDiagram
175
+ ...
176
+ ```
177
+
178
+
179
+ ## Decisions
180
+ - ADR-001: Use PostgreSQL
181
+ <!-- TODO(LINK): Link to ADR files -->
182
+ ```
183
+
184
+ ---
185
+
186
+ ## Templates with TODOs
187
+
188
+ ### PRD Section
189
+
190
+ ```markdown
191
+ ## Functional Requirements
192
+
193
+ ### FR-001: User Registration
194
+
195
+ **Priority:** P0
196
+ **Status:** 🚧 DRAFT
197
+
198
+ **Description:**
199
+ Users can register with email and password.
200
+
201
+ <!-- TODO(EXPAND): Add social login options -->
202
+
203
+ **Acceptance Criteria:**
204
+ - [ ] User can register with valid email
205
+ - [ ] Password must be 8+ characters
206
+ <!-- TODO(EXPAND): Add password complexity rules -->
207
+
208
+ **Edge Cases:**
209
+ <!-- TODO(RESEARCH): Check GDPR requirements for registration -->
210
+
211
+ **Dependencies:**
212
+ <!-- TODO(DEPENDENCY): Needs auth architecture from ARCH-002 -->
213
+ ```
214
+
215
+ ### Architecture Section
216
+
217
+ ```markdown
218
+ ## Database Design
219
+
220
+ ### Products Table
221
+
222
+ | Column | Type | Description |
223
+ |--------|------|-------------|
224
+ | id | UUID | Primary key |
225
+ | name | VARCHAR | Product name |
226
+ <!-- TODO(EXPAND): Add all columns -->
227
+
228
+ **Indexes:**
229
+ <!-- TODO(NUMBERS): Add expected query patterns and index strategy -->
230
+
231
+ **Migrations:**
232
+ <!-- TODO(LINK): Link to migration files when created -->
233
+ ```
234
+
235
+ ### Story Section
236
+
237
+ ```markdown
238
+ ## Acceptance Criteria
239
+
240
+ ### AC1: Create product successfully
241
+
242
+ **Given** authenticated merchant
243
+ **When** POST /products with valid data
244
+ **Then** 201 Created
245
+ <!-- TODO(EXAMPLE): Add sample request/response -->
246
+
247
+ ### AC2: Validation errors
248
+ <!-- TODO(DRAFT): Write after AC1 reviewed -->
249
+
250
+ ### AC3: Authorization
251
+ <!-- TODO(DECISION): Check if need merchant-level permissions -->
252
+ ```
253
+
254
+ ---
255
+
256
+ ## Workflow Integration
257
+
258
+ ### When Writing PRD
259
+
260
+ ```
261
+ 1. Create skeleton with TODOs
262
+ 2. Fill critical sections first (P0 requirements)
263
+ 3. Mark DRAFT sections for review
264
+ 4. Get stakeholder input on DECISION items
265
+ 5. Expand with details
266
+ 6. Add DIAGRAM and EXAMPLE items
267
+ 7. Final REVIEW pass
268
+ 8. Mark document COMPLETE
269
+ ```
270
+
271
+ ### When Writing Architecture
272
+
273
+ ```
274
+ 1. Start with high-level overview
275
+ 2. Add TODO(DEPENDENCY) for PRD items
276
+ 3. Make DECISION items explicit
277
+ 4. Add TODO(DIAGRAM) placeholders
278
+ 5. Fill in as decisions are made
279
+ 6. Add TODO(EXAMPLE) for code samples
280
+ 7. Review and complete
281
+ ```
282
+
283
+ ---
284
+
285
+ ## Tracking TODOs
286
+
287
+ ### Summary Block
288
+
289
+ Add at document end:
290
+
291
+ ```markdown
292
+ ---
293
+
294
+ ## Document TODOs
295
+
296
+ | Type | Description | Owner | Status |
297
+ |------|-------------|-------|--------|
298
+ | EXPAND | FR-003 acceptance criteria | @analyst | ⬜ |
299
+ | REVIEW | NFR section | @architect | 🔄 |
300
+ | DECISION | Sync vs async | @pm | ⬜ |
301
+ | DIAGRAM | Data flow | @architect | ⬜ |
302
+
303
+ **Completion:** 12/17 sections (70%)
304
+ ```
305
+
306
+ ### Grep for TODOs
307
+
308
+ ```bash
309
+ # Find all doc TODOs
310
+ grep -r "TODO(" docs/ --include="*.md"
311
+
312
+ # Count by type
313
+ grep -o "TODO([A-Z]*)" docs/*.md | sort | uniq -c
314
+ ```
315
+
316
+ ---
317
+
318
+ ## Best Practices
319
+
320
+ 1. **Be specific** - "TODO(EXPAND): Add error codes" not "TODO: More details"
321
+ 2. **Add context** - Why is this TODO here?
322
+ 3. **Set owner** - Who should address this?
323
+ 4. **Link dependencies** - What blocks this?
324
+ 5. **Review regularly** - Don't let TODOs rot
325
+ 6. **Celebrate completion** - Mark ✅ when done!