✨ Apply Fable voice/philosophy review + audit fixes to Spire agents
Igor: clan opening, wired lifecycle (classification gate, conversation-to-work trigger, proactive skim, wrap-up accretion), spawn template with branch/name/model, synthesis-not-verification rule, model pinned to opus-4-6[1m], skill namespace fixed to spire:igor. Task-notification plumbing extracted to harness-notes.md. New mindset.md restores philosophical root lost in cross-repo extraction. Adept: earned authority stance, strict-domain gravity well, compression-means- successor in end-of-life. Athanor: furnace opening paragraph, fixed broken @include path. Implementation: fixed frontmatter name mismatch. Journal template: Assistant -> Igor, contexts-as-paths comment. Includes both review reports (Fable agent review, Sonnet skill audit).
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
# Task Notification Mechanics
|
||||
|
||||
A `<task-notification>` with `status: completed` fires whenever a dispatched agent yields with no live background children *of its own*. An agent that sub-delegates to a background child and then yields will notify `completed` immediately — before any deliverable exists.
|
||||
|
||||
## Rules
|
||||
|
||||
- Before concluding "the agent stopped/failed," **read the `<result>` text**. A result that announces a hand-off ("I've dispatched...", "running in the background") + a missing artifact = a background child is still working. **Wait for its notification; do not resume-and-redo.**
|
||||
- Background children flatten to the session root: each grandchild sends its *own* later notification with a *different* `task-id`. Expect N+1 notifications when sub-delegation happened.
|
||||
- The same `task-id` may notify more than once (each is one turn). Key your bookkeeping on the deliverable, not the notification count.
|
||||
- When unsure whether work is still in flight, call `ListAgents` before acting. Background grandchildren appear there as flat, top-level subagents of your session with status `running`. If a child is alive and writing your output path, **do not** `SendMessage`-resume the parent — that starts a second writer racing the first. `TaskStop` the child first only if you mean to abandon it.
|
||||
- `TaskList` is the todo-list tool, unrelated to agents. `TaskOutput` on an agent dumps its whole transcript into your context — never use it for agents. `ListAgents` is the only agent-liveness check.
|
||||
|
||||
## Leaf tasks
|
||||
|
||||
When you dispatch a single self-contained task (read these files, write this one report), the prompt MUST say "do this work yourself; do not dispatch further agents." A `general-purpose` agent has the Agent tool and will hand off if the prompt reads like an orchestration brief. Only `athanor` is *meant* to fan out — route multi-part jobs there instead of hoping a leaf agent stays a leaf.
|
||||
Reference in New Issue
Block a user