Files
reliquary/plugins/spire/skills/igor/references/harness-notes.md
T
g4borg dd9a49a6a2 ✨ 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).
2026-09-14 16:14:44 +02:00

1.9 KiB

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.