Summary
Trycycle is different from Kilroy in many ways, but it does a better job of leading the top-level coordinating agent to:
- follow the workflow strictly
- avoid busy-polling or inventing status checks for subagents/workers
- understand its own scope of authority
Kilroy should adopt the conductor-facing prompt lessons without broadening this into unrelated workflow changes.
Problem
/home/user/code/kilroy-from-matt/AGENTS.md currently describes the top-level role as a director and teaches active supervision:
Oversee. `kilroy runs list --label wave=N` to see your wave's status. `kilroy runs show <id> --json` for details. `kilroy status --latest --watch` to follow a single run live. `kilroy runs wait <id> --timeout 1h` to block on a single run.
That framing encourages the agent to inspect live state, poll, watch, and infer progress. It also leaves the top-level agent's authority too vague: it can feel authorized to inspect, intervene, retry, or do shadow implementation work while workers are still running.
Recommended Changes
1. Rename the top-level role from director to conductor
Use conductor consistently in /home/user/code/kilroy-from-matt/AGENTS.md.
Reserve orchestrator for Kilroy internals/runtime code. The agent-facing role should be human-readable and singular.
2. Define the conductor's scope of authority
Add an explicit authority boundary.
The conductor may:
- write task specs
- dispatch Kilroy runs
- wait for terminal results
- integrate completed outputs
- ask the user when a run explicitly requires a decision
The conductor may not:
- implement the same task locally after delegation
- inspect live worktrees/artifacts to infer progress
- poll status repeatedly
- kill/retry before timeout
- change scope, backend, model, or flags after dispatch unless explicitly authorized
3. Make waiting the default behavior
Replace the current active-supervision guidance with a dispatch-and-wait contract:
After dispatch, wait. Do not inspect live run artifacts or poll status.
Use `kilroy runs wait <id> --timeout <expected-duration>` as the normal path.
Use `runs show`, `runs list`, `status --watch`, or artifact reads only after terminal completion, timeout, failure, or explicit user request.
4. Add an intervention-requires-authority rule
Before intervening in a running worker, the conductor must be able to cite one of:
- explicit user instruction
- a timeout rule
- a terminal failure result
- a
USER DECISION REQUIRED / escalation artifact
- an approved task-spec step that requires intervention
Curiosity, impatience, unclear progress, or "just checking" are not authority.
5. Separate observability from control
STATUS.md can remain useful for humans, dashboards, or explicit status requests, but conductor prompts should say it is not a control loop.
The conductor should not watch STATUS.md unless:
- the user asks for a progress update
- a run times out
- a run fails
- the workflow explicitly returns a terminal result requiring inspection
First Patch Scope
The first patch should be limited to /home/user/code/kilroy-from-matt/AGENTS.md:
- rename the role to conductor
- define the conductor's authority boundary
- replace the
Oversee step with strict dispatch-and-wait guidance
- clarify that
runs list, runs show, status --watch, live artifact reads, and STATUS.md are diagnostic/observability tools, not the normal conductor control loop
Out of Scope
Do not use this issue to change planner/reviewer implementation quality, move prompts out of DOT files, redesign workflow topology, or add plan review/synthesis stages. Those may be useful, but they are not the specific problem here.
Summary
Trycycle is different from Kilroy in many ways, but it does a better job of leading the top-level coordinating agent to:
Kilroy should adopt the conductor-facing prompt lessons without broadening this into unrelated workflow changes.
Problem
/home/user/code/kilroy-from-matt/AGENTS.mdcurrently describes the top-level role as a director and teaches active supervision:That framing encourages the agent to inspect live state, poll, watch, and infer progress. It also leaves the top-level agent's authority too vague: it can feel authorized to inspect, intervene, retry, or do shadow implementation work while workers are still running.
Recommended Changes
1. Rename the top-level role from director to conductor
Use conductor consistently in
/home/user/code/kilroy-from-matt/AGENTS.md.Reserve orchestrator for Kilroy internals/runtime code. The agent-facing role should be human-readable and singular.
2. Define the conductor's scope of authority
Add an explicit authority boundary.
The conductor may:
The conductor may not:
3. Make waiting the default behavior
Replace the current active-supervision guidance with a dispatch-and-wait contract:
4. Add an intervention-requires-authority rule
Before intervening in a running worker, the conductor must be able to cite one of:
USER DECISION REQUIRED/ escalation artifactCuriosity, impatience, unclear progress, or "just checking" are not authority.
5. Separate observability from control
STATUS.mdcan remain useful for humans, dashboards, or explicit status requests, but conductor prompts should say it is not a control loop.The conductor should not watch
STATUS.mdunless:First Patch Scope
The first patch should be limited to
/home/user/code/kilroy-from-matt/AGENTS.md:Overseestep with strict dispatch-and-wait guidanceruns list,runs show,status --watch, live artifact reads, andSTATUS.mdare diagnostic/observability tools, not the normal conductor control loopOut of Scope
Do not use this issue to change planner/reviewer implementation quality, move prompts out of DOT files, redesign workflow topology, or add plan review/synthesis stages. Those may be useful, but they are not the specific problem here.