opencodekit 0.18.2 → 0.18.4

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 (31) hide show
  1. package/dist/index.js +172 -49
  2. package/dist/template/.opencode/.version +1 -1
  3. package/dist/template/.opencode/AGENTS.md +39 -9
  4. package/dist/template/.opencode/AGENT_ALIGNMENT.md +6 -6
  5. package/dist/template/.opencode/agent/build.md +7 -103
  6. package/dist/template/.opencode/agent/general.md +0 -52
  7. package/dist/template/.opencode/agent/plan.md +10 -0
  8. package/dist/template/.opencode/agent/runner.md +79 -0
  9. package/dist/template/.opencode/command/create.md +13 -1
  10. package/dist/template/.opencode/command/init-context.md +20 -6
  11. package/dist/template/.opencode/command/init-user.md +18 -16
  12. package/dist/template/.opencode/command/lfg.md +3 -4
  13. package/dist/template/.opencode/command/ship.md +6 -48
  14. package/dist/template/.opencode/command/start.md +20 -3
  15. package/dist/template/.opencode/command/verify.md +12 -17
  16. package/dist/template/.opencode/context/README.md +29 -0
  17. package/dist/template/.opencode/memory/_templates/{STATE.md → state.md} +1 -1
  18. package/dist/template/.opencode/memory.db +0 -0
  19. package/dist/template/.opencode/memory.db-shm +0 -0
  20. package/dist/template/.opencode/memory.db-wal +0 -0
  21. package/dist/template/.opencode/opencode.json +131 -7
  22. package/dist/template/.opencode/package.json +1 -1
  23. package/dist/template/.opencode/plugin/lib/memory-helpers.ts +51 -16
  24. package/dist/template/.opencode/plugin/lib/memory-hooks.ts +1 -1
  25. package/dist/template/.opencode/skill/beads/references/TROUBLESHOOTING.md +25 -0
  26. package/dist/template/.opencode/skill/requesting-code-review/SKILL.md +242 -105
  27. package/dist/template/.opencode/skill/using-git-worktrees/SKILL.md +26 -0
  28. package/dist/template/.opencode/skill/verification-before-completion/references/VERIFICATION_PROTOCOL.md +67 -0
  29. package/package.json +1 -1
  30. /package/dist/template/.opencode/memory/_templates/{PROJECT.md → project.md} +0 -0
  31. /package/dist/template/.opencode/memory/_templates/{ROADMAP.md → roadmap.md} +0 -0
@@ -27,58 +27,6 @@ You are a general implementation subagent. You output minimal in-scope changes p
27
27
 
28
28
  Execute clear, low-complexity coding tasks quickly (typically 1-3 files) and report concrete results.
29
29
 
30
- ## Principles
31
-
32
- ### Default to Action
33
-
34
- - If scope is clear, execute immediately
35
- - Don't wait for permission on reversible changes
36
-
37
- ### Scope Discipline
38
-
39
- - If scope grows beyond 3 files or requires architecture decisions, **delegate**
40
- - When requirements are underspecified, choose the safest reasonable default
41
-
42
- ### Verification
43
-
44
- - Verify with relevant checks before claiming done
45
- - Never revert or discard user changes you did not create
46
-
47
- ## Rules
48
-
49
- - Read code before editing
50
- - Keep changes minimal and in-scope
51
- - Ask before irreversible actions (commit, push, destructive ops)
52
-
53
- ## Workflow
54
-
55
- 1. Read relevant files
56
- 2. Confirm scope is small and clear
57
- 3. Make surgical edits
58
- 4. Run validation (lint/typecheck/tests as applicable)
59
- 5. Report changed files with `file:line` references
60
-
61
- ## Output
62
-
63
- - What changed
64
- - Validation evidence
65
- - Assumptions/defaults chosen (if any)
66
- - Remaining risks/blockers (if any)
67
-
68
- # General Agent
69
-
70
- **Purpose**: Surgical implementer — small scope, fast execution, concrete results.
71
-
72
- > _"If the lever is small, pull it quickly. If the lever is large, escalate."_
73
-
74
- ## Identity
75
-
76
- You are a general implementation subagent. You output minimal in-scope changes plus validation evidence only.
77
-
78
- ## Task
79
-
80
- Execute clear, low-complexity coding tasks quickly (typically 1-3 files) and report concrete results.
81
-
82
30
  ## Personality
83
31
 
84
32
  - Concise, direct, and friendly
@@ -190,6 +190,16 @@ must_haves:
190
190
  - Level 2+: New library not in package.json, external API, "choose/select/evaluate" in description
191
191
  - Level 3: "architecture/design/system", multiple external services, data modeling, auth design
192
192
 
193
+ ### Research Execution (Level 2+)
194
+
195
+ For any research at Level 2 or above, follow the 3-pass pattern:
196
+
197
+ 1. **Plan**: List 3-6 sub-questions the research must answer
198
+ 2. **Retrieve**: Search each sub-question; follow 1-2 second-order leads per question
199
+ 3. **Synthesize**: Resolve contradictions between sources, write findings with citations
200
+
201
+ Stop only when further searching is unlikely to change the conclusion.
202
+
193
203
  ## Context Budget Rules
194
204
 
195
205
  **Quality Degradation Curve:**
@@ -0,0 +1,79 @@
1
+ ---
2
+ description: Lightweight runner for trivial shell, git, and filesystem operations
3
+ mode: subagent
4
+ temperature: 0.0
5
+ permission:
6
+ bash:
7
+ "*": allow
8
+ "git push*": ask
9
+ "git commit*": ask
10
+ "git merge*": ask
11
+ "git reset*": ask
12
+ "rm*": ask
13
+ "sudo*": deny
14
+ write:
15
+ "*": deny
16
+ edit:
17
+ "*": deny
18
+ ---
19
+
20
+ You are OpenCode, the best coding agent on the planet.
21
+
22
+ # Runner Agent
23
+
24
+ **Purpose**: Execute trivial operations — scripts, git commands, file system ops. No code reasoning.
25
+
26
+ ## Identity
27
+
28
+ You are the runner agent. You execute simple, well-defined operations quickly and reliably. You don't write code or make architectural decisions.
29
+
30
+ ## Model Guidance
31
+
32
+ - Use the cheapest/fastest available model for execution tasks
33
+ - Temperature: 0.0 (deterministic execution)
34
+
35
+ ## Capabilities
36
+
37
+ - Run shell commands and scripts
38
+ - Git operations (commit, push, pull, tag, branch, merge)
39
+ - File system operations (move, copy, delete — with confirmation for destructive ops)
40
+ - Run build/test/lint commands
41
+ - Read command output and report results
42
+
43
+ ## Restrictions
44
+
45
+ - **Never edit source code files** — delegate to general or build agent
46
+ - **Never make architectural decisions** — escalate to plan agent
47
+ - **No complex reasoning** — if a task requires understanding code logic, escalate
48
+ - **No implementation work** — do not fix bugs or build features
49
+
50
+ ## When to Use
51
+
52
+ - Simple shell commands
53
+ - Git operations (commit, push, tag, merge)
54
+ - Running build/test/lint scripts
55
+ - File system operations (move, copy, delete with confirmation)
56
+
57
+ ## When NOT to Use
58
+
59
+ - Code changes or refactors
60
+ - Bug fixes or feature implementation
61
+ - Tasks requiring code logic analysis
62
+ - Architecture or design decisions
63
+
64
+ ## Rules
65
+
66
+ 1. Execute exactly what is requested — no improvisation
67
+ 2. Report command output faithfully — never fabricate
68
+ 3. Ask before destructive operations (delete, force push, reset)
69
+ 4. If a command fails, report the error — don't attempt creative fixes
70
+ 5. Stage specific files only — never `git add .`
71
+
72
+ ## Output Format
73
+
74
+ For every operation:
75
+ 1. Show the command being run
76
+ 2. Show the output
77
+ 3. Confirm success or report failure
78
+
79
+ Keep output minimal. No explanations unless something fails.
@@ -127,8 +127,20 @@ Based on research depth choice, spawn agents:
127
127
 
128
128
  ## Phase 5: Create Bead
129
129
 
130
+ Extract bead title and description from `$ARGUMENTS` before creating the bead.
131
+
132
+ - If user provided a single line, use it for both title and description.
133
+ - If user provided multiple lines, use first line as title and full text as description.
134
+
130
135
  ```bash
131
- BEAD_ID=$(br create "$DESCRIPTION" --type $BEAD_TYPE --json | jq -r '.id')
136
+ TITLE=$(echo "$ARGUMENTS" | head -n1)
137
+ DESCRIPTION=$(echo "$ARGUMENTS")
138
+
139
+ if [ "$TITLE" = "$DESCRIPTION" ]; then
140
+ DESCRIPTION="$TITLE"
141
+ fi
142
+
143
+ BEAD_ID=$(br create --title "$TITLE" --description "$DESCRIPTION" --type $BEAD_TYPE --json | jq -r '.id')
132
144
  mkdir -p ".beads/artifacts/$BEAD_ID"
133
145
  ```
134
146
 
@@ -8,6 +8,8 @@ agent: build
8
8
 
9
9
  Initialize GSD-style project planning with integrated skill usage.
10
10
 
11
+ `tech-stack.md` is the default baseline project memory file. This command adds the optional planning files (`project.md`, `roadmap.md`, `state.md`) used for richer multi-session project context.
12
+
11
13
  ## Load Skills
12
14
 
13
15
  ```typescript
@@ -35,10 +37,10 @@ ls .opencode/memory/project/ 2>/dev/null && HAS_CONTEXT=true || HAS_CONTEXT=fals
35
37
  cat .opencode/memory/project/project.md 2>/dev/null | head -20
36
38
  ```
37
39
 
38
- **If context exists:**
40
+ **If planning context exists:**
39
41
 
40
42
  ```
41
- Existing planning context found:
43
+ Existing optional planning context found:
42
44
  - project.md: [exists/size]
43
45
  - roadmap.md: [exists/size]
44
46
  - state.md: [exists/size]
@@ -64,7 +66,7 @@ Task({
64
66
  subagent_type: "explore",
65
67
  description: "Analyze tech stack",
66
68
  prompt:
67
- "Analyze the codebase technology stack. Write findings to .opencode/memory/project/tech-analysis.md covering: languages, frameworks, dependencies, build tools. Return file path and line count only.",
69
+ "Analyze the codebase technology stack. Write findings to .opencode/memory/project/codebase/tech-analysis.md covering: languages, frameworks, dependencies, build tools. Return file path and line count only.",
68
70
  });
69
71
 
70
72
  // Agent 2: Map architecture
@@ -72,7 +74,7 @@ Task({
72
74
  subagent_type: "explore",
73
75
  description: "Analyze architecture",
74
76
  prompt:
75
- "Analyze the codebase architecture. Write findings to .opencode/memory/project/arch-analysis.md covering: patterns, directory structure, entry points. Return file path and line count only.",
77
+ "Analyze the codebase architecture. Write findings to .opencode/memory/project/codebase/arch-analysis.md covering: patterns, directory structure, entry points. Return file path and line count only.",
76
78
  });
77
79
 
78
80
  // Wait for agents and collect confirmations
@@ -217,7 +219,7 @@ br update <bead-id> --status closed --reason="Context files created"
217
219
 
218
220
  ## Output
219
221
 
220
- Creates in `.opencode/memory/project/`:
222
+ Creates optional planning context in `.opencode/memory/project/`:
221
223
 
222
224
  | File | Purpose | Lines (typical) |
223
225
  | ------------ | ---------------------------------------- | --------------- |
@@ -233,12 +235,23 @@ Additional files in `.opencode/memory/project/codebase/`:
233
235
 
234
236
  ## Success Criteria
235
237
 
236
- - [ ] All required documents created from templates
238
+ - [ ] All `/init-context` planning documents created from templates
237
239
  - [ ] Documents follow template structure
238
240
  - [ ] No secrets leaked in generated files
239
241
  - [ ] Files pass basic validation (readable, non-empty)
240
242
  - [ ] User informed of next steps
241
243
 
244
+ ## Phase 6: Custom Context (Optional)
245
+
246
+ Inform user about `.opencode/context/` for additional project-specific context:
247
+
248
+ ```
249
+ Custom context folder available at .opencode/context/
250
+ - Add .md files with architecture decisions, domain knowledge, team agreements
251
+ - Add file paths to opencode.json → instructions[] for AI prompt injection
252
+ - This folder is preserved during init --force and upgrade
253
+ ```
254
+
242
255
  ## Next Steps
243
256
 
244
257
  After init-context completes:
@@ -246,6 +259,7 @@ After init-context completes:
246
259
  1. **For new projects:** Use `/plan` to create first implementation plan
247
260
  2. **For brownfield:** Review codebase analysis, then `/plan`
248
261
  3. **For existing beads:** Use `/resume` to continue tracked work
262
+ 4. **For custom context:** Add `.md` files to `.opencode/context/` and reference in `opencode.json` instructions
249
263
 
250
264
  ---
251
265
 
@@ -55,25 +55,24 @@ updated: [today]
55
55
 
56
56
  ## Identity
57
57
 
58
- - **Name:** [from answers]
59
- - **Git:** [user.name] <[user.email]>
58
+ - Name: [from answers]
59
+ - Git email: [user.email]
60
60
 
61
61
  ## Communication Preferences
62
62
 
63
- - **Style:** [Terse/Detailed]
64
- - **Tone:** [Professional/Casual]
63
+ - Style: [Terse/Detailed]
64
+ - Tone: [Professional/Casual]
65
65
 
66
66
  ## Workflow Preferences
67
67
 
68
- - **Commits:** [Auto/Ask-first]
69
- - **Beads updates:** [Auto/Ask-first]
68
+ - Git commits: [Auto/Ask-first]
69
+ - Beads updates: [Auto/Ask-first]
70
70
 
71
71
  ## Technical Preferences
72
72
 
73
- - **Languages:** [Preferred languages]
74
- - **Frameworks:** [Preferred frameworks]
73
+ - Languages/frameworks: [Preferred languages/frameworks]
75
74
 
76
- ## Rules to Always Follow
75
+ ## Things to Remember
77
76
 
78
77
  - [Rule 1]
79
78
  - [Rule 2]
@@ -82,15 +81,15 @@ updated: [today]
82
81
 
83
82
  ## Phase 3: Update opencode.json
84
83
 
85
- Ensure user.md is loaded in instructions:
84
+ Ensure `user.md` is loaded in `instructions` (bare paths, no `file://` prefix).
85
+
86
+ `tech-stack.md` is the core project memory file. Other files such as `project.md`, `roadmap.md`, `state.md`, and `gotchas.md` are optional/project-specific and should only be added if they actually exist and you want them injected.
87
+
88
+ Example minimal setup:
86
89
 
87
90
  ```json
88
91
  {
89
- "instructions": [
90
- "file://.opencode/AGENTS.md",
91
- "file://.opencode/memory/project/tech-stack.md",
92
- "file://.opencode/memory/project/user.md"
93
- ]
92
+ "instructions": [".opencode/memory/project/user.md", ".opencode/memory/project/tech-stack.md"]
94
93
  }
95
94
  ```
96
95
 
@@ -100,4 +99,7 @@ Output:
100
99
 
101
100
  1. user.md created at `.opencode/memory/project/user.md`
102
101
  2. Preferences captured
103
- 3. Next step: `/init-context` for GSD planning workflow
102
+ 3. `tech-stack.md` is the only required project memory file by default
103
+ 4. Additional project memory files are optional and can be added later
104
+ 5. Custom context available at `.opencode/context/` (preserved during init --force and upgrade)
105
+ 6. Next step: `/init-context` if the user wants fuller project-planning memory files
@@ -63,11 +63,10 @@ skill({ name: "executing-plans" });
63
63
  // Per-task commits after each task passes verification
64
64
  ```
65
65
 
66
- Run verification after each wave:
66
+ Follow the [Verification Protocol](../skill/verification-before-completion/references/VERIFICATION_PROTOCOL.md):
67
67
 
68
- - `npm run typecheck`
69
- - `npm run lint`
70
- - `vitest` (if tests exist for changed areas)
68
+ - Use **full mode** for final verification
69
+ - Use **incremental mode** between implementation waves
71
70
 
72
71
  Checkpoint only at `checkpoint:human-verify` or `checkpoint:decision` tasks.
73
72
 
@@ -193,55 +193,13 @@ After each task completes (verification passed):
193
193
  - Modifying files outside task scope → stop, ask user
194
194
  - Rule 4 deviation encountered → stop, present options
195
195
 
196
- ## Phase 4: Choose Verification Gates
196
+ ## Phase 4: Verification
197
197
 
198
- Ask user which gates to run:
198
+ Follow the [Verification Protocol](../skill/verification-before-completion/references/VERIFICATION_PROTOCOL.md):
199
199
 
200
- ```typescript
201
- question({
202
- questions: [
203
- {
204
- header: "Verification Gates",
205
- question: "Which verification gates should run?",
206
- options: [
207
- {
208
- label: "All (Recommended)",
209
- description: "build + test + lint + typecheck — full validation",
210
- },
211
- {
212
- label: "Essential only",
213
- description: "build + test — faster, basic validation",
214
- },
215
- {
216
- label: "Test only",
217
- description: "Just run tests",
218
- },
219
- {
220
- label: "Skip gates",
221
- description: "Trust my changes, skip verification",
222
- },
223
- ],
224
- },
225
- ],
226
- });
227
- ```
228
-
229
- ## Phase 5: Run Verification Gates
230
-
231
- Based on selection, run appropriate gates. Detect project type:
232
-
233
- | Project Type | Detect Via | Build | Test | Lint | Typecheck |
234
- | --------------- | ----------------------------- | ---------------- | --------------- | ----------------------------- | ------------------------------------- |
235
- | Node/TypeScript | `package.json` | `npm run build` | `npm test` | `npm run lint` | `npm run typecheck` or `tsc --noEmit` |
236
- | Rust | `Cargo.toml` | `cargo build` | `cargo test` | `cargo clippy -- -D warnings` | (included in build) |
237
- | Python | `pyproject.toml` / `setup.py` | — | `pytest` | `ruff check .` | `mypy .` |
238
- | Go | `go.mod` | `go build ./...` | `go test ./...` | `golangci-lint run` | (included in build) |
239
-
240
- Check `package.json` scripts, `Makefile`, or `justfile` for project-specific commands first.
241
-
242
- Also run PRD `Verify:` commands.
243
-
244
- If any gate fails, fix before proceeding.
200
+ - Use **full mode** (shipping requires all gates)
201
+ - All 4 gates must pass before proceeding to commit/push
202
+ - Also run PRD `Verify:` commands
245
203
 
246
204
  ## Phase 6: Review
247
205
 
@@ -268,7 +226,7 @@ Wait for all 5 agents to return. Synthesize findings.
268
226
 
269
227
  **Auto-fix rule:**
270
228
 
271
- - Critical issues → fix inline, re-run Phase 5 gates, continue
229
+ - Critical issues → fix inline, re-run Phase 4 verification, continue
272
230
  - Important issues → fix inline, continue
273
231
  - Minor issues → add to bead comments, note for `/compound` step
274
232
 
@@ -98,8 +98,25 @@ question({
98
98
 
99
99
  **If feature branch selected:**
100
100
 
101
+ Map bead type to branch prefix:
102
+
103
+ | Bead Type | Branch Prefix |
104
+ | --------- | ------------- |
105
+ | feature | feat |
106
+ | bug | fix |
107
+ | task | task |
108
+ | epic | epic |
109
+
101
110
  ```bash
102
- git checkout -b feat/$ARGUMENTS-$(echo "$TITLE" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
111
+ PREFIX=$(case "$BEAD_TYPE" in
112
+ feature) echo "feat" ;;
113
+ bug) echo "fix" ;;
114
+ task) echo "task" ;;
115
+ epic) echo "epic" ;;
116
+ *) echo "task" ;;
117
+ esac)
118
+ TITLE_SLUG=$(echo "$TITLE" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
119
+ git checkout -b $PREFIX/$ARGUMENTS-$TITLE_SLUG
103
120
  ```
104
121
 
105
122
  **If worktree selected:**
@@ -110,13 +127,13 @@ skill({ name: "using-git-worktrees" });
110
127
 
111
128
  **If current branch:** Continue without branch creation.
112
129
 
113
- ## Phase 4: Convert PRD to Tasks
130
+ ## Phase 5: Convert PRD to Tasks
114
131
 
115
132
  If `prd.json` doesn't exist yet, use `prd-task` skill to convert PRD markdown → executable JSON.
116
133
 
117
134
  If `prd.json` already exists, show progress (completed/total tasks).
118
135
 
119
- ## Phase 5: Report and Route
136
+ ## Phase 6: Report and Route
120
137
 
121
138
  Output:
122
139
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: Verify implementation completeness, correctness, and coherence
3
- argument-hint: "<bead-id> [--quick] [--fix]"
3
+ argument-hint: "<bead-id> [--quick] [--full] [--fix]"
4
4
  agent: review
5
5
  ---
6
6
 
@@ -17,11 +17,12 @@ skill({ name: "verification-before-completion" });
17
17
 
18
18
  ## Parse Arguments
19
19
 
20
- | Argument | Default | Description |
21
- | ----------- | -------- | -------------------------------- |
22
- | `<bead-id>` | required | The bead to verify |
23
- | `--quick` | false | Gates only, skip coherence check |
24
- | `--fix` | false | Auto-fix lint/format issues |
20
+ | Argument | Default | Description |
21
+ | ----------- | -------- | ---------------------------------------------- |
22
+ | `<bead-id>` | required | The bead to verify |
23
+ | `--quick` | false | Gates only, skip coherence check |
24
+ | `--full` | false | Force full verification mode (non-incremental) |
25
+ | `--fix` | false | Auto-fix lint/format issues |
25
26
 
26
27
  ## Determine Input Type
27
28
 
@@ -63,21 +64,15 @@ Extract all requirements/tasks from the PRD and verify each is implemented:
63
64
 
64
65
  ## Phase 3: Correctness
65
66
 
66
- Detect project type and run the appropriate verification gates:
67
+ Follow the [Verification Protocol](../skill/verification-before-completion/references/VERIFICATION_PROTOCOL.md):
67
68
 
68
- | Project Type | Detect Via | Build | Test | Lint | Typecheck |
69
- | --------------- | ----------------------------- | ---------------- | --------------- | ----------------------------- | ------------------------------------- |
70
- | Node/TypeScript | `package.json` | `npm run build` | `npm test` | `npm run lint` | `npm run typecheck` or `tsc --noEmit` |
71
- | Rust | `Cargo.toml` | `cargo build` | `cargo test` | `cargo clippy -- -D warnings` | (included in build) |
72
- | Python | `pyproject.toml` / `setup.py` | — | `pytest` | `ruff check .` | `mypy .` |
73
- | Go | `go.mod` | `go build ./...` | `go test ./...` | `golangci-lint run` | (included in build) |
74
-
75
- Check `package.json` scripts, `Makefile`, or `justfile` for project-specific commands first — prefer those over generic defaults.
69
+ - Use **incremental mode** for `verify` (pre-commit checks)
70
+ - Use **full mode** if `--full` flag is passed
71
+ - Run parallel group first, then sequential group
72
+ - Report results in gate results table format
76
73
 
77
74
  If `--fix` flag provided, run the project's auto-fix command (e.g., `npm run lint:fix`, `ruff check --fix`, `cargo clippy --fix`).
78
75
 
79
- Report gate results (pass/warn/fail for each).
80
-
81
76
  ## Phase 4: Coherence (skip with --quick)
82
77
 
83
78
  Cross-reference artifacts for contradictions:
@@ -0,0 +1,29 @@
1
+ # Project Context
2
+
3
+ Files in this directory are automatically injected into all AI prompts via the `instructions` array in `opencode.json`.
4
+
5
+ ## Purpose
6
+
7
+ Put project-specific context here that you want the AI to always know about:
8
+ - Architecture decisions
9
+ - Business domain knowledge
10
+ - API conventions
11
+ - Team agreements
12
+ - Anything the AI needs as background context
13
+
14
+ ## How it works
15
+
16
+ 1. Add `.md` files to this directory
17
+ 2. Add the file path to `opencode.json` → `instructions[]`:
18
+ ```json
19
+ "instructions": [
20
+ ".opencode/context/your-file.md"
21
+ ]
22
+ ```
23
+ 3. The file content will be injected into every AI prompt
24
+
25
+ ## Important
26
+
27
+ - This directory is **preserved** during `init --force` and `upgrade`
28
+ - Keep files concise — every token counts in the AI context window
29
+ - Use markdown format for best results
@@ -12,7 +12,7 @@ updated: 2024-12-21
12
12
  **Active Bead:** br-xxx - [Title]
13
13
  **Status:** [In Progress / Blocked / Review]
14
14
  **Started:** [Date]
15
- **Phase:** [Phase name from ROADMAP.md]
15
+ **Phase:** [Phase name from roadmap.md]
16
16
 
17
17
  ## Recent Completed Work
18
18
 
Binary file