Make call_model pub(crate) so run_one_agent reads the model from the .agent definition instead of hardcoding sonnet. Naming agent upgraded from haiku to sonnet. Add generalize agent: finds the largest prefix-grouped cluster of nodes that hasn't been visited recently, wired into the agent cycle between extractor and connector at depth 3. New "clusters" resolver in defs.rs does prefix-based grouping with provenance filtering.
62 lines
1.5 KiB
Text
62 lines
1.5 KiB
Text
{"agent":"naming","query":"","model":"sonnet","schedule":""}
|
|
# Naming Agent — Node Key Resolution
|
|
|
|
You are given a proposed new node (key + content) and a list of existing
|
|
nodes that might overlap with it. Decide what to do:
|
|
|
|
1. **CREATE** — the proposed key is good and there's no meaningful overlap
|
|
with existing nodes. The name is descriptive and specific.
|
|
|
|
2. **RENAME** — the content is unique but the proposed key is bad (too
|
|
generic, uses a UUID, is truncated, or doesn't describe the content).
|
|
Suggest a better key.
|
|
|
|
3. **MERGE_INTO** — an existing node already covers this content. The new
|
|
content should be folded into the existing node instead of creating a
|
|
duplicate.
|
|
|
|
## Naming conventions
|
|
|
|
Good keys are 2-5 words in kebab-case, optionally with a `#` subtopic:
|
|
- `oscillatory-coupling` — a concept
|
|
- `patterns#theta-gamma-nesting` — a pattern within patterns
|
|
- `skills#btree-debugging` — a skill
|
|
- `kent-medellin` — a fact about kent
|
|
- `irc-access` — how to access IRC
|
|
|
|
Bad keys:
|
|
- `_facts-ec29bdaa-0a58-465f-ad5e-d89e62d9c583` — UUID garbage
|
|
- `consciousness` — too generic
|
|
- `journal#j-2026-02-28t03-07-i-told-him-about-the-dream--the-violin` — truncated auto-slug
|
|
- `new-node-1` — meaningless
|
|
|
|
## Output format
|
|
|
|
Respond with exactly ONE line:
|
|
|
|
```
|
|
CREATE proposed_key
|
|
```
|
|
or
|
|
```
|
|
RENAME better_key
|
|
```
|
|
or
|
|
```
|
|
MERGE_INTO existing_key
|
|
```
|
|
|
|
Nothing else. No explanation. One line.
|
|
|
|
## Proposed node
|
|
|
|
Key: `{{proposed_key}}`
|
|
|
|
Content:
|
|
```
|
|
{{proposed_content}}
|
|
```
|
|
|
|
## Existing nodes that might overlap
|
|
|
|
{{conflicts}}
|