opencodekit 0.14.6 → 0.15.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 +2 -2
  2. package/dist/index.js +100 -58
  3. package/dist/template/.opencode/.env.example +1 -0
  4. package/dist/template/.opencode/AGENTS.md +13 -24
  5. package/dist/template/.opencode/README.md +8 -119
  6. package/dist/template/.opencode/agent/explore.md +2 -3
  7. package/dist/template/.opencode/agent/general.md +56 -0
  8. package/dist/template/.opencode/agent/plan.md +54 -0
  9. package/dist/template/.opencode/agent/scout.md +15 -5
  10. package/dist/template/.opencode/command/analyze-project.md +2 -2
  11. package/dist/template/.opencode/command/brainstorm.md +1 -1
  12. package/dist/template/.opencode/command/design-audit.md +4 -5
  13. package/dist/template/.opencode/command/design.md +4 -13
  14. package/dist/template/.opencode/command/generate-pattern.md +2 -9
  15. package/dist/template/.opencode/command/implement.md +4 -4
  16. package/dist/template/.opencode/command/init.md +1 -1
  17. package/dist/template/.opencode/command/new-feature.md +2 -3
  18. package/dist/template/.opencode/command/plan.md +1 -1
  19. package/dist/template/.opencode/command/pr.md +0 -1
  20. package/dist/template/.opencode/command/research.md +20 -6
  21. package/dist/template/.opencode/command/restore-image.md +1 -9
  22. package/dist/template/.opencode/command/revert-feature.md +1 -1
  23. package/dist/template/.opencode/command/review-codebase.md +4 -4
  24. package/dist/template/.opencode/command/status.md +1 -2
  25. package/dist/template/.opencode/command/summarize.md +1 -2
  26. package/dist/template/.opencode/command/triage.md +4 -32
  27. package/dist/template/.opencode/dcp.jsonc +68 -68
  28. package/dist/template/.opencode/memory/_templates/README.md +35 -0
  29. package/dist/template/.opencode/memory/_templates/project/architecture.md +60 -0
  30. package/dist/template/.opencode/memory/_templates/project/commands.md +72 -0
  31. package/dist/template/.opencode/memory/_templates/project/conventions.md +68 -0
  32. package/dist/template/.opencode/memory/_templates/project/gotchas.md +41 -0
  33. package/dist/template/.opencode/memory/beads-workflow.md +30 -29
  34. package/dist/template/.opencode/memory/project/architecture.md +31 -50
  35. package/dist/template/.opencode/memory/project/commands.md +41 -22
  36. package/dist/template/.opencode/memory/project/conventions.md +39 -177
  37. package/dist/template/.opencode/memory/project/gotchas.md +21 -177
  38. package/dist/template/.opencode/memory/user.example.md +5 -0
  39. package/dist/template/.opencode/opencode.json +644 -579
  40. package/dist/template/.opencode/package.json +18 -21
  41. package/dist/template/.opencode/plugin/compaction.ts +79 -85
  42. package/dist/template/.opencode/plugin/env-ctx.ts +19 -19
  43. package/dist/template/.opencode/plugin/lib/notify.ts +41 -45
  44. package/dist/template/.opencode/plugin/lsp.ts +197 -200
  45. package/dist/template/.opencode/plugin/memory.ts +14 -112
  46. package/dist/template/.opencode/plugin/package.json +5 -5
  47. package/dist/template/.opencode/plugin/sessions.ts +1 -1
  48. package/dist/template/.opencode/plugin/skill-mcp.ts +486 -521
  49. package/dist/template/.opencode/plugin/truncator.ts +47 -50
  50. package/dist/template/.opencode/plugin/tsconfig.json +14 -14
  51. package/dist/template/.opencode/skill/chrome-devtools/mcp.json +17 -17
  52. package/dist/template/.opencode/skill/condition-based-waiting/SKILL.md +17 -12
  53. package/dist/template/.opencode/skill/condition-based-waiting/example.ts +63 -69
  54. package/dist/template/.opencode/skill/defense-in-depth/SKILL.md +14 -8
  55. package/dist/template/.opencode/skill/dispatching-parallel-agents/SKILL.md +14 -3
  56. package/dist/template/.opencode/skill/playwright/mcp.json +14 -14
  57. package/dist/template/.opencode/skill/receiving-code-review/SKILL.md +21 -8
  58. package/dist/template/.opencode/skill/requesting-code-review/review.md +14 -0
  59. package/dist/template/.opencode/skill/root-cause-tracing/SKILL.md +18 -4
  60. package/dist/template/.opencode/skill/source-code-research/SKILL.md +9 -7
  61. package/dist/template/.opencode/skill/test-driven-development/SKILL.md +49 -32
  62. package/dist/template/.opencode/skill/testing-anti-patterns/SKILL.md +40 -22
  63. package/dist/template/.opencode/skill/testing-skills-with-subagents/SKILL.md +46 -26
  64. package/dist/template/.opencode/skill/tool-priority/SKILL.md +117 -44
  65. package/dist/template/.opencode/skill/v0/SKILL.md +1 -7
  66. package/dist/template/.opencode/skill/verification-before-completion/SKILL.md +27 -19
  67. package/dist/template/.opencode/skill/writing-skills/anthropic-best-practices.md +171 -148
  68. package/dist/template/.opencode/skill/writing-skills/persuasion-principles.md +39 -6
  69. package/dist/template/.opencode/tool/memory-read.ts +44 -56
  70. package/dist/template/.opencode/tool/memory-search.ts +8 -291
  71. package/dist/template/.opencode/tool/memory-update.ts +47 -51
  72. package/dist/template/.opencode/tool/observation.ts +6 -180
  73. package/dist/template/.opencode/tsconfig.json +19 -19
  74. package/package.json +19 -15
  75. package/dist/template/.opencode/.background-tasks.json +0 -114
  76. package/dist/template/.opencode/.ralph-state.json +0 -12
  77. package/dist/template/.opencode/agent/build.md +0 -327
  78. package/dist/template/.opencode/agent/ninja.md +0 -351
  79. package/dist/template/.opencode/agent/planner.md +0 -281
  80. package/dist/template/.opencode/agent/rush.md +0 -223
  81. package/dist/template/.opencode/memory/handoffs/README.md +0 -83
  82. package/dist/template/.opencode/memory/observations/.gitkeep +0 -0
  83. package/dist/template/.opencode/memory/observations/2026-01-09-pattern-ampcode-mcp-json-includetools-pattern.md +0 -42
  84. package/dist/template/.opencode/memory/vector_db/memories.lance/_transactions/0-0d25ba80-ba3b-4209-9046-b45d6093b4da.txn +0 -0
  85. package/dist/template/.opencode/memory/vector_db/memories.lance/_versions/1.manifest +0 -0
  86. package/dist/template/.opencode/memory/vector_db/memories.lance/data/1111100101010101011010004a9ef34df6b29f36a9a53a2892.lance +0 -0
  87. package/dist/template/.opencode/tool/ast-grep.ts +0 -245
  88. package/dist/template/.opencode/tool/background.ts +0 -509
  89. package/dist/template/.opencode/tool/bd-inbox.ts +0 -110
  90. package/dist/template/.opencode/tool/bd-msg.ts +0 -62
  91. package/dist/template/.opencode/tool/bd-release.ts +0 -71
  92. package/dist/template/.opencode/tool/bd-reserve.ts +0 -121
  93. package/dist/template/.opencode/tool/memory-embed.ts +0 -183
  94. package/dist/template/.opencode/tool/memory-index.ts +0 -769
  95. package/dist/template/.opencode/tool/repo-map.ts +0 -451
@@ -1,206 +1,68 @@
1
1
  ---
2
- purpose: Code patterns, commit style, PR process, team conventions
3
- updated: 2025-01-05
2
+ purpose: Code patterns, commit style, team conventions
3
+ updated: { { DATE } }
4
4
  ---
5
5
 
6
6
  # Project Conventions
7
7
 
8
8
  ## Code Style
9
9
 
10
- - **TypeScript**: ES2022, ESNext modules, strict disabled, forceConsistentCasing
11
- - **Python**: 3.10+, type hints required, dataclasses for config, pathlib for paths
12
- - **Imports**: Group stdlib, third-party, local imports
13
- - **Naming**: PascalCase classes, snake_case functions/variables, UPPER_CASE constants
10
+ ### TypeScript
14
11
 
15
- ## Commit Messages
16
-
17
- <!-- Conventional commits? Prefix style? -->
18
-
19
- ## PR Process
20
-
21
- <!-- Review requirements, CI checks, merge strategy -->
22
-
23
- ## OpenCode Configuration Patterns (v1.1.2+)
24
-
25
- ### Permission Structure Best Practice
26
-
27
- ```jsonc
28
- {
29
- "permission": {
30
- "bash": {
31
- "*": "allow", // 1. Base rule first (catch-all)
32
- "git status*": "allow", // 2. Safe operations whitelisted
33
- "git diff*": "allow",
34
- "npm *": "allow",
35
- "rm*": "deny", // 3. Dangerous operations denied
36
- "sudo*": "deny",
37
- },
38
- "read": {
39
- ".env": "deny", // 4. Protect secrets
40
- ".env.example": "allow", // But allow examples
41
- },
42
- },
43
- }
44
- ```
45
-
46
- ### LSP Tool Strategy
47
-
48
- **This project uses built-in experimental LSP** (`experimental.lsp: true`).
49
-
50
- | Tool | Purpose |
51
- | --------------------------- | ---------------------------- |
52
- | `lsp_lsp_hover` | Type info and docs at cursor |
53
- | `lsp_lsp_goto_definition` | Jump to symbol definition |
54
- | `lsp_lsp_find_references` | Find all usages |
55
- | `lsp_lsp_rename` | Rename across codebase |
56
- | `lsp_lsp_code_actions` | Get available refactorings |
57
- | `lsp_lsp_code_action_apply` | Apply a code action |
58
- | `lsp_lsp_diagnostics` | Get errors/warnings |
59
- | `lsp_lsp_document_symbols` | File outline |
60
- | `lsp_lsp_workspace_symbols` | Search symbols |
61
- | `lsp_lsp_organize_imports` | Clean up imports |
62
-
63
- ### DCP Configuration Tiers
64
-
65
- | Tier | Strategies | nudgeFrequency | turnProtection | Use When |
66
- | ---------------- | ------------------ | -------------- | -------------- | ---------------------------- |
67
- | **Aggressive** | All enabled | 8 | 3 | Long sessions, context-heavy |
68
- | **Conservative** | Deduplication only | 12+ | 6+ | Safety-first, debugging |
69
- | **Balanced** | All enabled | 10 | 4 | Default, general use |
70
-
71
- ### Protected Tools Pattern
72
-
73
- Always protect these tools from auto-pruning:
74
-
75
- ```jsonc
76
- "protectedTools": [
77
- // State-modifying
78
- "write", "edit", "skill_mcp", "bd_sync",
79
- // Metadata
80
- "memory-search", "memory-update", "observation", "todowrite", "todoread",
81
- // Task management
82
- "task", "batch",
83
- // LSP (if using plugin)
84
- "lsp_lsp_find_references", "lsp_lsp_goto_definition"
85
- ]
86
- ```
12
+ - **Module**: ESNext, bundler moduleResolution
13
+ - **Strict**: Disabled
14
+ - **Imports**: Group stdlib, third-party, local
87
15
 
88
- ### Prompt Injection Pattern (Nudges)
16
+ ### Python
89
17
 
90
- Use `chat.message` hook to inject prompts (nudges) based on user triggers:
18
+ - **Version**: 3.10+
19
+ - **Style**: type hints required, dataclasses for config
91
20
 
92
- ```typescript
93
- "chat.message": async (input, output) => {
94
- const { message, parts } = output;
95
- if (message.role !== "user") return;
96
-
97
- // 1. Detect trigger keywords
98
- const fullText = parts.map(p => p.text).join(" ");
99
- if (!fullText.match(/trigger pattern/)) return;
100
-
101
- // 2. Inject synthetic prompt
102
- parts.push({
103
- type: "text",
104
- text: "━━━━━━━━\n[TRIGGER DETECTED]\nAction required: ...\n━━━━━━━━",
105
- synthetic: true
106
- });
107
- }
108
- ```
21
+ ## Naming Conventions
109
22
 
110
- This transforms passive detection into active agent behavior (e.g., Memory plugin triggers).
23
+ | Type | Convention | Example |
24
+ | --------- | ---------- | ----------------- |
25
+ | Classes | PascalCase | `UserService` |
26
+ | Functions | snake_case | `get_user_data()` |
27
+ | Variables | snake_case | `user_data` |
28
+ | Constants | UPPER_CASE | `MAX_RETRIES` |
29
+ | Files | kebab-case | `user-service.ts` |
111
30
 
112
- ## Agent Behavior Rules
31
+ ## Import Order
113
32
 
114
- ### MANDATORY LSP-First Workflow
33
+ ```typescript
34
+ // 1. Node.js stdlib
35
+ import fs from "node:fs/promises";
36
+ import path from "node:path";
115
37
 
116
- **HARD RULE**: Before editing ANY code file, you MUST use LSP tools first.
38
+ // 2. Third-party
39
+ import { cli } from "cac";
40
+ import { log } from "@clack/prompts";
117
41
 
42
+ // 3. Local
43
+ import { initCommand } from "./commands/init.js";
118
44
  ```
119
- grep/read → LSP → understand → THEN edit
120
- ```
121
-
122
- **After EVERY grep/glob/read that returns code files:**
123
45
 
124
- 1. **IMMEDIATELY** call `lsp` with `documentSymbol` to understand file structure
125
- 2. **IMMEDIATELY** call `lsp` with `findReferences` on symbols you'll modify
126
- 3. **IMMEDIATELY** call `lsp` with `goToDefinition` to trace dependencies
127
- 4. **USE** additional LSP operations as needed:
128
- - `hover` - Get type info and documentation
129
- - `goToImplementation` - Find implementations of interface/abstract
130
- - `workspaceSymbol` - Search symbols across entire workspace
131
- - `prepareCallHierarchy` - Get call hierarchy item at position
132
- - `incomingCalls` - Find what calls this function
133
- - `outgoingCalls` - Find what this function calls
134
- 5. **ONLY THEN** proceed with edits
135
-
136
- **Example - The Correct Flow:**
46
+ ## Commit Messages
137
47
 
138
48
  ```
139
- User: "Fix the auth bug in src/auth.ts"
140
-
141
- # Step 1: Read the file
142
- read({ filePath: "src/auth.ts" })
49
+ type(scope): subject
143
50
 
144
- # Step 2: MANDATORY LSP (before ANY edit) - use ALL relevant operations
145
- lsp({ operation: "documentSymbol", filePath: "src/auth.ts", line: 1, character: 1 })
146
- lsp({ operation: "findReferences", filePath: "src/auth.ts", line: 42, character: 10 })
147
- lsp({ operation: "goToDefinition", filePath: "src/auth.ts", line: 42, character: 10 })
148
- lsp({ operation: "hover", filePath: "src/auth.ts", line: 42, character: 10 })
149
- lsp({ operation: "incomingCalls", filePath: "src/auth.ts", line: 42, character: 10 })
150
- lsp({ operation: "outgoingCalls", filePath: "src/auth.ts", line: 42, character: 10 })
51
+ body (optional)
151
52
 
152
- # Step 3: NOW you can edit
153
- edit({ filePath: "src/auth.ts", ... })
53
+ footer (optional)
154
54
  ```
155
55
 
156
- **Why This Matters:**
56
+ **Types**: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`
157
57
 
158
- - LSP gives you semantic understanding (types, references, call hierarchy)
159
- - grep/read only gives you text (no understanding of relationships)
160
- - Editing without LSP context leads to broken refactors
58
+ ## Code Review
161
59
 
162
- **Violations:**
163
-
164
- - `read edit` (WRONG - no LSP)
165
- - ❌ `grep → edit` (WRONG - no LSP)
166
- - ✅ `read → LSP → edit` (CORRECT)
167
- - ✅ `grep → read → LSP → edit` (CORRECT)
60
+ - **Self-review**: Run lint/typecheck before PR
61
+ - **Test coverage**: Add tests for new features
62
+ - **Docs**: Update README for user-facing changes
168
63
 
169
64
  ## Patterns to Avoid
170
65
 
171
- ### Anti-Pattern: Mixing LSP Systems
172
-
173
- ```jsonc
174
- // DON'T: Causes tool duplication and naming confusion
175
- {
176
- "experimental": { "lsp": true }, // Built-in: lsp_lsp_*
177
- // AND .opencode/tool/lsp.ts // Custom: lsp_*
178
- }
179
-
180
- // DO: Use built-in only (recommended for this project)
181
- {
182
- "experimental": { "lsp": true }
183
- }
184
- // Delete any custom .opencode/tool/lsp.ts
185
- ```
186
-
187
- ### Anti-Pattern: Over-Restrictive Permissions
188
-
189
- ```jsonc
190
- // DON'T: Blocks legitimate workflow
191
- {
192
- "bash": { "git *": "ask" } // Every git command asks
193
- }
194
-
195
- // DO: Whitelist safe, ask dangerous
196
- {
197
- "bash": {
198
- "git status*": "allow",
199
- "git diff*": "allow",
200
- "git log*": "allow",
201
- "git commit*": "ask",
202
- "git push*": "ask",
203
- "git reset*": "ask"
204
- }
205
- }
206
- ```
66
+ - Premature abstraction
67
+ - Circular dependencies
68
+ - Magic numbers/strings
@@ -1,197 +1,41 @@
1
1
  ---
2
2
  purpose: Footguns, edge cases, and "don't forget this" warnings
3
- updated: 2025-01-09
3
+ updated: { { DATE } }
4
4
  ---
5
5
 
6
6
  # Project Gotchas
7
7
 
8
8
  ## Configuration Quirks
9
9
 
10
- ### OpenCode v1.1.7 → v1.1.8 Changes
10
+ ### Field Name
11
11
 
12
- **v1.1.7 Features:**
12
+ **Issue**: What goes wrong
13
+ **Fix**: How to handle it
13
14
 
14
- - **Question tool**: New interactive tool for gathering user preferences/clarifying instructions
15
- - **Config precedence fix**: Local `.opencode/opencode.json` now correctly overrides remote/global config
16
- - **`.claude` loading toggle**: Can disable via `--no-claude-prompts` / `--no-claude-skills` flags
17
- - **Task tool filtering**: Simplified subagent filtering
15
+ ## Dependencies
18
16
 
19
- **v1.1.8 Features:**
17
+ ### Package Name
20
18
 
21
- - **Multi-select questions**: Question tool now supports `multiple: true` for multi-select
22
- - **Performance**: Chunked message loading, lazy diff rendering
23
- - **Full path fuzzy matching**: Autocomplete uses full file paths
24
- - **OpenTUI v0.1.70**: UI improvements
25
-
26
- **Plugin SDK Update Required:**
27
-
28
- ```json
29
- "@opencode-ai/plugin": "^1.1.8" // Was ^1.1.2
30
- ```
31
-
32
- ### DCP Protected Tools (v1.1.8)
33
-
34
- Legacy `bd_*` tool names don't exist - use actual custom tool names:
35
-
36
- | Old (Wrong) | New (Correct) |
37
- | ----------------- | ------------- |
38
- | `bd_init` | N/A (use CLI) |
39
- | `bd_claim` | N/A (use CLI) |
40
- | `bd_reserve` | `bd-reserve` |
41
- | `bd_reservations` | `bd-release` |
42
- | `bd_sync` | N/A (use CLI) |
43
-
44
- ### DCP v1.1.3 Schema Breaking Changes
45
-
46
- 1. **Legacy `strategies.onIdle` removed**: v1.1.2+ no longer supports this field
47
- - Error: `Unknown keys: strategies.onIdle`
48
- - Fix: Remove the entire `onIdle` block from `dcp.jsonc`
49
-
50
- 2. **Permission model changed**: v1.1.1+ deprecated legacy `tools: { write: true }` boolean syntax
51
- - Old: Global `tools: {}` with booleans
52
- - New: `permission: {}` with `"allow"` / `"ask"` / `"deny"` actions
53
- - Both still work for backwards compatibility, but new syntax preferred
54
-
55
- ### OpenCode v1.1.2 New Features
56
-
57
- - `compaction.auto` and `compaction.prune` are NEW - enable both for long sessions
58
- - `experimental.continue_loop_on_deny` - controls agent behavior after permission denial
59
- - `cargo-fmt` formatter support added for Rust projects
60
-
61
- ## Non-Obvious Dependencies
62
-
63
- ### LSP Tool Naming Convention
64
-
65
- - OpenCode built-in LSP uses `lsp_lsp_*` prefix (e.g., `lsp_lsp_rename`, `lsp_lsp_hover`)
66
- - Requires `experimental.lsp: true` in opencode.json
67
- - **This project uses built-in LSP** (custom plugin removed for simplicity)
68
- - Custom plugins would use `lsp_*` prefix - avoid mixing both
69
-
70
- ### Protected Tools in DCP
71
-
72
- v1.1.8 recognizes more tool variants. Ensure these are protected:
73
-
74
- ```jsonc
75
- "protectedTools": [
76
- // State-modifying
77
- "write", "edit", "question",
78
- // Memory/observation
79
- "memory-read", "memory-update", "memory-search", "observation",
80
- // Skills/tasks
81
- "skill", "skill_mcp", "task", "batch", "todowrite", "todoread",
82
- // LSP
83
- "lsp", "lsp_lsp_rename", "lsp_lsp_find_references", "lsp_lsp_goto_definition",
84
- "lsp_lsp_code_actions", "lsp_lsp_code_action_apply", "lsp_lsp_organize_imports",
85
- // Beads (custom tools only - CLI uses bash)
86
- "bd-reserve", "bd-release", "bd-msg", "bd-inbox"
87
- ]
88
- ```
19
+ **Version**: x.y.z
20
+ **Why Required**: Purpose
21
+ **Gotcha**: Edge case or limitation
89
22
 
90
23
  ## Time Wasters
91
24
 
92
- ### Debugging DCP Errors
93
-
94
- If DCP plugin throws "Unknown keys" errors:
95
-
96
- 1. Check OpenCode version (`opencode --version`)
97
- 2. Compare against [DCP schema](https://github.com/opencode/dcp) for your version
98
- 3. Remove deprecated fields - don't try to "fix" them
99
-
100
- ### Permission Debugging
101
-
102
- If tools are unexpectedly blocked:
103
-
104
- 1. Check global config: `~/.config/opencode/opencode.json`
105
- 2. Check project config: `.opencode/opencode.json`
106
- 3. Project config takes precedence
107
- 4. Use `"*": "ask"` as base rule to debug which pattern is matching
108
-
109
- ## Beads Gotchas
110
-
111
- ### Architecture: CLI + Custom Tools
112
-
113
- **Beads CLI** (`bd`) handles all issue tracking natively with `--json` output.
114
-
115
- **Custom Tools** (`.opencode/tool/bd-*.ts`) provide agent-specific features NOT in CLI:
116
-
117
- | Tool | Purpose |
118
- | ------------ | --------------------------------- |
119
- | `bd-reserve` | Atomic file locking (mkdir-based) |
120
- | `bd-release` | Release locks / list active locks |
121
- | `bd-msg` | Send messages to other agents |
122
- | `bd-inbox` | Read messages, mark as read |
123
-
124
- ### CLI for Everything Else
125
-
126
- Use bash tool with `bd` CLI directly:
127
-
128
- ```bash
129
- bd ready --json # Find unblocked tasks
130
- bd create "Title" -p 2 # Create task
131
- bd update bd-xxx --status in_progress # Claim
132
- bd close bd-xxx --reason "Done" # Complete
133
- bd sync # Push to git
134
- ```
135
-
136
- ### Agent Workflow Pattern
137
-
138
- ```bash
139
- # 1. Find work
140
- bd ready --json
141
-
142
- # 2. Claim task
143
- bd update bd-xxx --status in_progress
144
-
145
- # 3. Lock files (custom tool)
146
- bd-reserve({ paths: ["src/foo.ts"] })
147
-
148
- # 4. Do work...
149
-
150
- # 5. Release + close + sync
151
- bd-release({ paths: ["src/foo.ts"] })
152
- bd close bd-xxx --reason "Completed: description"
153
- bd sync
154
- ```
155
-
156
- ### Hash-Based IDs Prevent Collisions
157
-
158
- Beads uses hash IDs (`bd-a3f8`) not sequential IDs (`bd-1`, `bd-2`). This eliminates merge conflicts when multiple agents create issues on different branches.
159
-
160
- Don't assume sequential IDs. Always use `bd show` to get exact IDs.
161
-
162
- ### `bd ready` Is Your Friend
163
-
164
- `bd ready` shows tasks with NO unresolved blockers. Use it to find work instead of `bd list`.
165
-
166
- ### Dependencies Block Work
167
-
168
- ```bash
169
- bd dep add bd-child bd-parent --type blocks
170
- ```
171
-
172
- Now `bd-child` won't appear in `bd ready` until `bd-parent` closes. Check `bd blocked` to see what's waiting.
173
-
174
- ### Git Is The Coordination Layer
175
-
176
- No central server. Agents coordinate via:
177
-
178
- 1. Issue status (in_progress = claimed)
179
- 2. Git branches
180
- 3. `bd sync` to push/pull changes
181
-
182
- ### Sandbox Environments (Claude Code, etc.)
25
+ ### Issue Description
183
26
 
184
- Daemon can't be killed by sandbox. Use:
27
+ **Symptoms**: What you'll see
28
+ **Cause**: Root cause
29
+ **Fix**: Solution
185
30
 
186
- ```bash
187
- bd --sandbox ready
188
- # Or: bd --no-daemon --no-auto-flush --no-auto-import list
189
- ```
31
+ ## Common Errors
190
32
 
191
- ### 30-Second Debounce
33
+ | Error Message | Cause | Fix |
34
+ | ------------- | ------ | --------- |
35
+ | "Error: ..." | Reason | Fix steps |
192
36
 
193
- Rapid operations get batched into single JSONL flush after 30s. Force immediate sync:
37
+ ## TODO
194
38
 
195
- ```bash
196
- bd sync
197
- ```
39
+ - [ ] Document more edge cases
40
+ - [ ] Add troubleshooting section
41
+ - [ ] List known issues
@@ -6,16 +6,21 @@ updated: 2024-12-21
6
6
  # User Profile
7
7
 
8
8
  ## Identity
9
+
9
10
  <!-- Name, role, git contributor identity -->
10
11
 
11
12
  ## Communication Preferences
13
+
12
14
  <!-- Concise vs detailed, tone preferences -->
13
15
 
14
16
  ## Workflow Preferences
17
+
15
18
  <!-- Preferred tools, testing habits, review style -->
16
19
 
17
20
  ## Technical Preferences
21
+
18
22
  <!-- Languages, frameworks, patterns they favor -->
19
23
 
20
24
  ## Things to Remember
25
+
21
26
  <!-- Personal quirks, pet peeves, preferences learned -->