Agent contracts
Agent playbook
When to read memory
flowchart TD
A[analyze_repository] --> B[start_controlled_change]
B --> C{edit_allowed?}
C -->|no| Z[Stop — queue / blocked / needs_analysis]
C -->|yes|D[get_relevant_memory]
D --> E{contradiction_note\nor stale warnings?}
E -->|yes|F[Surface to user before edit]
E -->|no|G[Edit in declared scope]
G --> H[analyze if profile requires after_run]
H --> I[finish_controlled_change]
I --> J{propose_memory?}
J -->|true + accepted|K[Review memory_candidates\nhuman approve later]
J -->|false|L[Done]
style D fill: #eff6ff
style G fill: #fef9c3
| Moment |
Tool |
Why |
After start, before first edit |
get_relevant_memory(root=abs, scope=… \| intent_id=…) |
Ranked context for declared scope |
| Need one path deep-dive |
query_engineering_memory(mode=for_path, path=…) |
Targeted lookup |
| Need keyword across store |
query_engineering_memory(mode=search, query=…, filters={match_mode:…}) |
FTS discovery |
| Before writing claims in finish |
manage_engineering_memory(action=validate_claims, text=…) |
Catch overclaims vs memory |
| After accepted patch (optional) |
finish(..., propose_memory=true) |
Draft candidates + staleness + coverage delta |
When to write memory
| Situation |
Action |
Notes |
| Stable observation during edit |
record_candidate |
Draft only; cite scope in statement |
| Patch accepted, workflow finish |
propose_memory=true |
Preferred batch proposal |
| Atomic fallback (no finish hook) |
propose_from_receipt |
Same receipt shape as finish |
| System facts changed in repo |
refresh_from_run or ask human for memory init --refresh |
Explicit MCP refresh always available |
| Promote draft to trusted fact |
Not agent — VS Code Memory view or codeclone memory approve --i-know-what-im-doing |
Required for active/verified |
When not to use memory
- To justify touching
do_not_touch paths
- To expand scope beyond declared intent
- To override CodeClone structural findings
- As a substitute for
analyze_repository or get_blast_radius
- To treat
draft / inferred / stale records as established facts