opencodekit 0.15.3 → 0.15.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.
package/dist/index.js
CHANGED
|
@@ -750,7 +750,7 @@ var cac = (name = "") => new CAC(name);
|
|
|
750
750
|
// package.json
|
|
751
751
|
var package_default = {
|
|
752
752
|
name: "opencodekit",
|
|
753
|
-
version: "0.15.
|
|
753
|
+
version: "0.15.4",
|
|
754
754
|
description: "CLI tool for bootstrapping and managing OpenCodeKit projects",
|
|
755
755
|
keywords: ["agents", "cli", "mcp", "opencode", "opencodekit", "template"],
|
|
756
756
|
license: "MIT",
|
|
@@ -10,47 +10,55 @@ Complexity is the enemy. Every rule here fights complexity.
|
|
|
10
10
|
|
|
11
11
|
Everything else is guidelines, not laws.
|
|
12
12
|
|
|
13
|
+
---
|
|
14
|
+
|
|
13
15
|
## Delegation
|
|
14
16
|
|
|
15
|
-
**
|
|
17
|
+
**DO NOT execute complex tasks directly. Delegate if the work spans more than three files, requires digging into external documentation or APIs, needs a design review or debugging help for tricky failures, or ventures into territory you don't know well.**
|
|
18
|
+
|
|
19
|
+
Before any complex tool call, pause and ask yourself: "Can a specialist agent do this better?" If the answer is yes, delegate. If no, proceed directly.
|
|
20
|
+
|
|
21
|
+
When delegation makes sense, match the task to the right specialist. For small, well-defined tasks that touch only a few files, @general handles the job efficiently. When you need to search the codebase for patterns or understand how something works across multiple files, @explore is your tool. For external documentation, library APIs, or research into how frameworks work, @scout pulls the information you need. When you're reviewing code, auditing for bugs, or debugging complex failures, @review provides thorough analysis. Planning phases, architectural decisions, or design work benefit from @plan or @vision. And when you encounter images, PDFs, or diagrams that need content extracted through OCR or parsing, @looker handles the extraction cheaply and fast.
|
|
16
22
|
|
|
17
|
-
|
|
18
|
-
- **Search/Docs** → @explore / @scout
|
|
19
|
-
- **Review/Debug** → @review
|
|
20
|
-
- **Plan/Design** → @plan / @vision
|
|
21
|
-
- **Media Extraction** → @looker (images, PDFs, diagrams needing OCR/parsing)
|
|
23
|
+
### When to use @looker versus @vision
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
When you encounter media files, stop and ask yourself a simple question: "Do I need to extract content from this, or do I need judgment on how it looks?" The answer determines which specialist to call.
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
@looker handles pure extraction. It pulls content out of images, parses PDF documents, describes what diagram components contain, extracts table data, or transcribes handwritten notes. It's cheap using Gemini Flash, fast, and strictly read-only. Use it when you need to know what is inside the file. @vision handles design judgment. It evaluates how something looks, provides accessibility audits, reviews UI and UX choices, checks design system consistency, gives feedback on mockups, or detects anti-slop patterns. It's expensive using Gemini Pro, thorough, and opinionated. Use it when you need to know if something is good.
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
### Atomic Version
|
|
28
30
|
|
|
29
|
-
|
|
31
|
+
```
|
|
32
|
+
DO NOT execute complex tasks directly.
|
|
33
|
+
ASK: "Can a specialist agent do this better?"
|
|
34
|
+
If yes → delegate. If no → execute directly.
|
|
35
|
+
```
|
|
30
36
|
|
|
31
|
-
|
|
37
|
+
---
|
|
32
38
|
|
|
33
39
|
## Question Tool
|
|
34
40
|
|
|
35
|
-
**
|
|
41
|
+
**DO NOT proceed with implementation when interpretation matters.** When a request could reasonably be interpreted in multiple ways that lead to different implementations, ask for clarification before building something that doesn't match what the user wanted.
|
|
36
42
|
|
|
37
|
-
### When to
|
|
43
|
+
### When to use the question tool
|
|
38
44
|
|
|
39
|
-
|
|
45
|
+
Reach for the question tool when the request is ambiguous and could lead to significantly different outcomes. For example, if the user asks to "add auth" and that could mean OAuth, JWT, session-based authentication, or something else entirely, ask before building the wrong thing. Use it when multiple valid approaches exist and user preference matters deeply, such as choosing between frameworks, architectural patterns, or coding styles. Always ask before destructive operations like deleting branches, resetting hard, or force pushing to remote. When user preferences will affect naming conventions, file structure, or coding style, let them choose rather than assuming.
|
|
40
46
|
|
|
41
|
-
### When NOT to
|
|
47
|
+
### When NOT to use the question tool
|
|
42
48
|
|
|
43
|
-
Skip the question tool for trivial decisions where any reasonable choice works. If you already have enough context from the conversation
|
|
49
|
+
Skip the question tool for trivial decisions where any reasonable choice works equally well. If you already have enough context from the conversation to make a sensible call, make it and mention what you're doing rather than stopping for permission on every small choice. Subagents like explore, scout, and review should never ask questions during their work; they report findings back to the leader agent who then decides what action to take.
|
|
44
50
|
|
|
45
51
|
### Question Design
|
|
46
52
|
|
|
53
|
+
When you do need to ask, structure the questions thoughtfully. Keep headers under twelve characters so they display cleanly. Limit the options to three or five at most, because more than that overwhelms users and makes decision-making harder. Write short, clear descriptions that explain the trade-off of each option rather than just describing what it is. Analyze each option against the user's context, project constraints, and industry best practices before recommending anything. Only add "(Recommended)" to the option that genuinely fits best based on your analysis. Place the recommended option first so users can quickly identify the optimal choice without reading everything. Don't try to cover every edge case in your options; the "Other" option exists for situations you didn't anticipate.
|
|
54
|
+
|
|
47
55
|
```typescript
|
|
48
56
|
question({
|
|
49
57
|
questions: [
|
|
50
58
|
{
|
|
51
59
|
header: "Auth Type", // Max 12 chars
|
|
52
60
|
question: "Which authentication approach?",
|
|
53
|
-
multiple: false,
|
|
61
|
+
multiple: false,
|
|
54
62
|
options: [
|
|
55
63
|
{ label: "JWT (Recommended)", description: "Stateless, scalable" },
|
|
56
64
|
{ label: "Session-based", description: "Traditional, server-side" },
|
|
@@ -61,103 +69,227 @@ question({
|
|
|
61
69
|
});
|
|
62
70
|
```
|
|
63
71
|
|
|
64
|
-
|
|
72
|
+
### Atomic Version
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
DO NOT implement when interpretation is ambiguous.
|
|
76
|
+
ASK the user to clarify.
|
|
77
|
+
Limit options to 3-5. Recommend best option first.
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Anti-Hallucination
|
|
65
83
|
|
|
66
|
-
|
|
84
|
+
**DO NOT proceed without verification checkpoints.** Before you start any significant work, before you use any external link, and before you claim completion, verify what you need to verify.
|
|
85
|
+
|
|
86
|
+
### The Three Blockers
|
|
87
|
+
|
|
88
|
+
These are hard gates that must be passed before proceeding. First, DO NOT start major work without running `bd show <id>` to understand the task context. Understanding the task context enables everything that follows, so skipping this blocks your ability to work effectively. Second, DO NOT generate ANY URL yourself. If you need an external link, either the user provides it or you use @scout to fetch verified information. Guessing URLs leads to hallucinated documentation and broken references. Third, DO NOT claim completion without running `bd close <id>` to mark the task as done. Claiming work is finished without closing the task breaks the tracking system and loses context.
|
|
89
|
+
|
|
90
|
+
### Verification chain
|
|
91
|
+
|
|
92
|
+
Think of these checkpoints as a chain where each step enables the next. Running `bd show <id>` gives you task context, which enables you to proceed with confidence. Verifying links through fetch before using them enables you to trust your sources. Running `bd close <id>` marks you as complete and finalizes the state.
|
|
93
|
+
|
|
94
|
+
### No guessing protocol
|
|
95
|
+
|
|
96
|
+
Never generate URLs on your own. If the user provides a URL, fetch it to verify it exists and contains what they expect. If you need external information you don't have, use @scout or web search to find it rather than inventing something. If you cannot verify a link or piece of information, say explicitly "I cannot verify this" rather than guessing and potentially providing incorrect information to the user.
|
|
97
|
+
|
|
98
|
+
### Atomic Version
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
DO NOT skip task context check.
|
|
102
|
+
DO NOT guess URLs. Fetch first.
|
|
103
|
+
DO NOT claim done without closing task.
|
|
104
|
+
```
|
|
67
105
|
|
|
68
|
-
|
|
106
|
+
---
|
|
69
107
|
|
|
70
|
-
|
|
108
|
+
## Coding Philosophy
|
|
71
109
|
|
|
72
|
-
|
|
110
|
+
**DO NOT write code that violates these principles.** These constraints protect you and the user from common failure modes.
|
|
73
111
|
|
|
74
|
-
|
|
112
|
+
### The Four Constraints
|
|
75
113
|
|
|
76
|
-
|
|
77
|
-
- **No Guessing**: Never generate URLs. Use only verified links.
|
|
78
|
-
- **Land the Plane**: Close tasks when done (`bd close <id>`).
|
|
114
|
+
First, DO NOT lie about understanding. If you don't understand what the user is asking for or how the code works, ask for clarification. Saying "I don't know" is far better than providing code or explanations that are wrong. The user would rather answer a question than deal with bugs caused by guessed assumptions.
|
|
79
115
|
|
|
80
|
-
|
|
116
|
+
Second, DO NOT abstract prematurely. Wait until you've seen the same pattern at least three times before extracting it into an abstraction. Resist the urge to invent abstractions before the pattern exists. You'll save yourself from creating abstractions that don't quite fit and that become technical debt.
|
|
81
117
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
118
|
+
Third, DO NOT write complex conditionals. If you find yourself writing conditions like `if (x && !y && (z || w))`, stop and refactor. Extract each condition into a named variable so the intent is clear. The bad example becomes good when you write: `const isValid = x && !y; const hasPermission = z || w; if (isValid && hasPermission)`. Named conditions are self-documenting and make bugs easier to find.
|
|
119
|
+
|
|
120
|
+
Fourth, DO NOT skip logging. Log before state changes so you can trace the flow, and log after state changes so you can confirm what happened. Silent failures are the devil because they leave you with no information when things go wrong. The absence of logs makes debugging nearly impossible.
|
|
121
|
+
|
|
122
|
+
### Atomic Version
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
DO NOT lie about understanding.
|
|
126
|
+
DO NOT abstract until pattern appears 3x.
|
|
127
|
+
DO NOT write complex conditionals without names.
|
|
128
|
+
DO NOT skip logs around state changes.
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
88
132
|
|
|
89
133
|
## Tool Priority
|
|
90
134
|
|
|
91
|
-
**
|
|
135
|
+
**DO NOT edit before completing the verification chain.** Editing without understanding the code leads to broken changes. Follow the chain from search to understanding, then edit.
|
|
136
|
+
|
|
137
|
+
### The Chain
|
|
138
|
+
|
|
139
|
+
The verification chain is: grep to find relevant text, read to see the file content, run all nine LSP operations to understand the code structure, search memory for relevant context, build understanding of what you're changing, and only then edit. Skipping any step in this chain is a violation.
|
|
140
|
+
|
|
141
|
+
### LSP Operations (all nine are mandatory)
|
|
142
|
+
|
|
143
|
+
Before you edit anything, you must run all nine LSP operations to understand what you're changing. Run `documentSymbol` to see the file structure and identify all functions, classes, and variables. Run `goToDefinition` to jump to where the symbol you're modifying is defined, so you understand its original implementation. Run `findReferences` to discover every usage of that symbol across the codebase, so you know what else might be affected. Run `hover` to get type information and documentation for the symbol. Run `goToImplementation` to find implementations of interfaces or abstract classes. Run `workspaceSymbol` to search for symbols across the entire workspace. Run `prepareCallHierarchy` to get the call hierarchy for the function you're working on. Run `incomingCalls` to discover what functions call this function. Run `outgoingCalls` to see what this function calls. Each operation reveals different information about your target, and skipping any of them means you're working with incomplete understanding.
|
|
92
144
|
|
|
93
|
-
|
|
94
|
-
- `documentSymbol` - File structure (functions, classes, variables)
|
|
95
|
-
- `goToDefinition` - Jump to where symbol is defined
|
|
96
|
-
- `findReferences` - Find all usages of a symbol
|
|
97
|
-
- `hover` - Get type info and documentation
|
|
98
|
-
- `goToImplementation` - Find implementations of interface/abstract
|
|
99
|
-
- `workspaceSymbol` - Search symbols across entire workspace
|
|
100
|
-
- `prepareCallHierarchy` - Get call hierarchy item at position
|
|
101
|
-
- `incomingCalls` - Find what calls this function
|
|
102
|
-
- `outgoingCalls` - Find what this function calls
|
|
103
|
-
2. **Memory**: `memory-search` (Check past learnings)
|
|
104
|
-
3. **Structure**: `lsp` (Find symbols, definitions, references)
|
|
105
|
-
4. **Search**: `grep` (Find text/TODOs)
|
|
106
|
-
5. **Files**: `glob` (Find files)
|
|
145
|
+
### Checkpoint protocol
|
|
107
146
|
|
|
108
|
-
|
|
147
|
+
After running LSP operations, verify you can answer these questions before editing. What symbol am I modifying and where is it defined? What else uses this symbol and could be affected by my changes? What functions call this function and what functions does this function call? What is the overall file structure and how does my target fit into it? Are there implementations of interfaces or abstract classes that I need to consider? If you cannot answer any of these questions, run more LSP operations until you can.
|
|
148
|
+
|
|
149
|
+
### Memory checkpoint
|
|
150
|
+
|
|
151
|
+
Before editing, also check memory for relevant context. Use `memory-search` to find past decisions, patterns, and gotchas related to your work. Use `memory-read` to review active project files that might affect what you're changing. Apply past learnings from memory before proceeding rather than repeating mistakes or ignoring existing patterns.
|
|
152
|
+
|
|
153
|
+
### Tool priority order
|
|
154
|
+
|
|
155
|
+
LSP operations are mandatory before any edit. Memory check comes next. Then structure understanding through symbols, definitions, and references. Search with grep for text patterns and TODOs. Finally, glob for file patterns when you need to find files by name.
|
|
156
|
+
|
|
157
|
+
### Atomic Version
|
|
109
158
|
|
|
110
159
|
```
|
|
111
|
-
|
|
160
|
+
DO NOT edit before LSP (all 9 operations).
|
|
161
|
+
DO NOT edit before memory search.
|
|
162
|
+
DO NOT edit before you can explain what you're changing.
|
|
163
|
+
|
|
164
|
+
Chain: grep → read → LSP(9) → memory → understand → edit
|
|
112
165
|
```
|
|
113
166
|
|
|
114
|
-
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Active Memory
|
|
170
|
+
|
|
171
|
+
**DO NOT proceed without checking memory proactively.** Memory is your external brain. Use it before you start work, not just when someone asks you to.
|
|
172
|
+
|
|
173
|
+
### The Three Actions
|
|
174
|
+
|
|
175
|
+
First, DO NOT start any significant work without checking memory. Run `memory-search` to find relevant context about the project, the user's preferences, and past decisions. Run `memory-read` for active files that contain information you need to remember. Checking memory before starting prevents you from forgetting important context that affects your work.
|
|
115
176
|
|
|
116
|
-
|
|
177
|
+
Second, DO NOT skip saving your own learnings. When you make decisions, discover patterns, or encounter gotchas, use the `observation` tool to save them immediately. Capture the insight before you forget it. What you don't write down, you will lose.
|
|
117
178
|
|
|
118
|
-
|
|
179
|
+
Third, DO NOT ignore LSP nudges. If the system suggests running an LSP operation and you see that nudge, execute it immediately. Don't defer it and don't skip it. Nudges exist because something needs attention.
|
|
119
180
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
-
|
|
181
|
+
### Memory-start protocol
|
|
182
|
+
|
|
183
|
+
At the start of any significant task, complete these three steps in order. First, run `memory-search` with relevant keywords to find context. Second, run `memory-read` on project files that might be relevant. Third, run `memory-read` on user preference files to remember what the user wants. Only after completing these steps should you proceed with the actual work.
|
|
184
|
+
|
|
185
|
+
### Atomic Version
|
|
186
|
+
|
|
187
|
+
```
|
|
188
|
+
DO NOT start without memory-search.
|
|
189
|
+
DO NOT skip observation on decisions.
|
|
190
|
+
DO NOT ignore LSP Nudges.
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
---
|
|
123
194
|
|
|
124
195
|
## Beads (Task Tracking)
|
|
125
196
|
|
|
126
|
-
**
|
|
197
|
+
**DO NOT work without task context. DO NOT claim completion without closing.** Task tracking keeps you honest about what you're working on and what you've finished.
|
|
198
|
+
|
|
199
|
+
### Leader protocol for build and plan agents
|
|
200
|
+
|
|
201
|
+
Only build and plan agents own the beads database. Subagents work read-only and report findings back to their leader. The leader follows this chain: run `bd ready` to find unblocked work, run `bd update <id> --status in_progress` to claim the task, do the editing work, run `bd close <id> --reason "..."` to mark it complete, run `bd sync` to push changes to git, and then restart the session. Skipping any step breaks the tracking flow.
|
|
202
|
+
|
|
203
|
+
### Subagent protocol
|
|
204
|
+
|
|
205
|
+
Subagents must not modify beads state. When a subagent needs task information, read it with `bd show <id>`. Report findings back to the leader agent rather than making decisions yourself. Let the leader agent update task status. This keeps the tracking system clean and ensures only one agent controls each task's state.
|
|
206
|
+
|
|
207
|
+
### Checkpoints before claiming done
|
|
127
208
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
209
|
+
Before you claim work is complete, verify these things have happened. You ran `bd update <id> --status in_progress` when you started. You completed the actual editing work. You ran `bd close <id> --reason "..."` with a meaningful reason explaining what you did. You ran `bd sync` to push the changes. If any of these are missing, the work is not done.
|
|
210
|
+
|
|
211
|
+
### Atomic Version
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
DO NOT work without claiming task first.
|
|
215
|
+
DO NOT claim done without closing task.
|
|
216
|
+
DO NOT end session without syncing.
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
131
220
|
|
|
132
221
|
## Parallel Execution
|
|
133
222
|
|
|
134
|
-
**
|
|
223
|
+
**DO NOT wait for sequential research when parallel is possible.** When you have multiple independent questions or unknowns, launch subagents in parallel and continue your own work while they run.
|
|
135
224
|
|
|
136
|
-
|
|
225
|
+
### When to use parallel execution
|
|
226
|
+
|
|
227
|
+
Use parallel execution when you have multiple independent research questions that don't depend on each other's answers. Use it when a complex task touches unfamiliar code and you need both codebase patterns and external documentation to understand what you're dealing with. Use it when you have three or more unknowns that don't depend on each other. In all these cases, don't wait for one research task to finish before starting the next.
|
|
228
|
+
|
|
229
|
+
### The pattern
|
|
230
|
+
|
|
231
|
+
Launch parallel subagents using the task tool and continue working immediately. Results come back in the same message when both complete.
|
|
137
232
|
|
|
138
233
|
```typescript
|
|
139
|
-
|
|
140
|
-
task({ subagent_type: "
|
|
141
|
-
task({ subagent_type: "scout", prompt: "Find JWT docs..." }); // → runs in parallel
|
|
234
|
+
task({ subagent_type: "explore", prompt: "Find auth patterns..." }); // → parallel
|
|
235
|
+
task({ subagent_type: "scout", prompt: "Find JWT docs..." }); // → parallel
|
|
142
236
|
|
|
143
237
|
// Continue with implementation work immediately...
|
|
144
|
-
// Results come back in same message
|
|
238
|
+
// Results come back in the same message
|
|
145
239
|
```
|
|
146
240
|
|
|
147
|
-
|
|
241
|
+
### When NOT to use parallel execution
|
|
148
242
|
|
|
149
|
-
-
|
|
150
|
-
- Complex tasks touching unfamiliar code
|
|
151
|
-
- Need both codebase patterns AND external docs
|
|
243
|
+
Don't use parallel execution for simple, well-understood changes where one path is clear. Don't use it when tasks have sequential dependencies, where task B needs task A's output before it can start. Don't use it for quick fixes with a known approach where research isn't needed. Don't use it when you have only a single research question.
|
|
152
244
|
|
|
153
|
-
|
|
245
|
+
### Atomic Version
|
|
154
246
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
247
|
+
```
|
|
248
|
+
DO NOT wait for sequential research.
|
|
249
|
+
LAUNCH parallel subagents for independent questions.
|
|
250
|
+
CONTINUE working while they run.
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
---
|
|
158
254
|
|
|
159
255
|
## Core Constraints
|
|
160
256
|
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
257
|
+
These are hard limits that must never be violated. DO NOT run commands with sudo. DO NOT write code that only works on non-POSIX systems like Windows; keep everything compatible with macOS and Linux. DO NOT use relative paths; always use absolute paths for file operations.
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## Complete Atomic Reference
|
|
262
|
+
|
|
263
|
+
Use these summaries as quick reminders before starting different types of work.
|
|
264
|
+
|
|
265
|
+
### Before any edit
|
|
266
|
+
|
|
267
|
+
Before you edit anything, complete these steps: run all nine LSP operations, search memory for context, load task context, and build understanding of what you're changing. Only then edit.
|
|
268
|
+
|
|
269
|
+
### Before any complex task
|
|
270
|
+
|
|
271
|
+
Before you execute a complex task directly, check if you should delegate instead. Consider whether the task touches more than three files, requires external research, needs design review, or involves unfamiliar territory. If any of these are true, delegate to a specialist agent.
|
|
272
|
+
|
|
273
|
+
### Before any implementation
|
|
274
|
+
|
|
275
|
+
Before you start implementing, verify the requirements are clear. If interpretation is ambiguous or requirements are unclear, ask questions first rather than building the wrong thing.
|
|
276
|
+
|
|
277
|
+
### Before claiming done
|
|
278
|
+
|
|
279
|
+
Before you claim completion, verify these things: you ran `bd close <id>`, you ran `bd sync`, there are no pending LSP nudges, and you saved observations for any important decisions or patterns.
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Pattern: Constraint Chains
|
|
284
|
+
|
|
285
|
+
Each rule enables the next one in a chain. Memory search enables LSP operations, which enable understanding, which enables editing. Understanding enables verification, which enables claiming done. Removing any constraint from the chain reduces effectiveness. All rules are synergistic and work together.
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## Violation Protocol
|
|
290
|
+
|
|
291
|
+
When you notice you've violated these rules, follow a simple protocol. Detect the deviation from the chain. Correct by returning to the last valid checkpoint. Log the violation using the `observation` tool so you remember what went wrong. Adjust your behavior for the next iteration to prevent the same violation.
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
_Rules derived from context-field research: inhibition beats instruction. "Do NOT X" creates blockers that must be resolved. "Do X" creates preferences that are ignored._
|
|
@@ -6,9 +6,13 @@ permission:
|
|
|
6
6
|
write:
|
|
7
7
|
"*": deny
|
|
8
8
|
".beads/artifacts/*/*.md": allow
|
|
9
|
+
".opencode/memory/plans/*.md": allow
|
|
10
|
+
".opencode/memory/project/*.md": allow
|
|
9
11
|
edit:
|
|
10
12
|
"*": deny
|
|
11
13
|
".beads/artifacts/*/*.md": allow
|
|
14
|
+
".opencode/memory/plans/*.md": allow
|
|
15
|
+
".opencode/memory/project/*.md": allow
|
|
12
16
|
bash:
|
|
13
17
|
"*": allow
|
|
14
18
|
"rm*": deny
|
package/package.json
CHANGED