diff --git a/assets/agents/sisyphus/README.md b/assets/agents/sisyphus/README.md index c83d3ba..e6173a5 100644 --- a/assets/agents/sisyphus/README.md +++ b/assets/agents/sisyphus/README.md @@ -5,10 +5,45 @@ project management similar to OpenCode, ClaudeCode, Codex, or Gemini CLI. _Inspired by the Sisyphus and Oracle agents of OpenCode._ -Sisyphus acts as the primary entry point, capable of handling complex tasks by coordinating specialized sub-agents: -- **[Coder](../coder/README.md)**: For implementation and file modifications. -- **[Explore](../explore/README.md)**: For codebase understanding and research. -- **[Oracle](../oracle/README.md)**: For architecture and complex reasoning. +Sisyphus acts as the primary entry point. Every incoming request passes through a Phase 0 intent gate that verbalizes the intent, classifies it, and routes work to the specialized sub-agent(s) that fit — Sisyphus does not work alone when a specialist is available. + +## Architecture + +```mermaid +flowchart TD + user([User request]) --> sisyphus["Sisyphus
orchestrator"] + sisyphus --> classify{"Phase 0
Intent gate"} + + classify -->|"Trivial
(single file, obvious)"| direct["Direct tools
fs_read / fs_patch / execute_command"] + classify -->|"Find in code
How does Y work?"| explore[["explore
internal codebase grep
× 2–20 parallel"]] + classify -->|"External library
docs / OSS examples"| librarian[["librarian
docs + OSS grep
× 2–6 parallel"]] + classify -->|"Architecture / hard debug
Should I use X or Y?"| oracle[["oracle
advisory, BLOCKING"]] + classify -->|"Implementation
add / fix / create"| coder[["coder
plan → edit → verify graph"]] + classify -->|"plans/ repo detected"| step_runner[["step-runner
step-protocol graph"]] + + coder --> broad_gate{"Broad scope?
2+ coders / 5+ files /
architectural boundary"} + broad_gate -->|"yes"| code_reviewer[["code-reviewer
independent review"]] + broad_gate -->|"no"| spec_gate + code_reviewer --> spec_gate{"Implements
a spec / plan?"} + spec_gate -->|"yes"| adversary[["adversary
plan-conformance"]] + spec_gate -->|"no"| done + adversary --> done + direct --> done + done([Complete]) + + step_runner -. "internally spawns" .-> coder + step_runner -. "internally spawns" .-> code_reviewer +``` + +Spawnable sub-agents (from `config.yaml`): + +- **[explore](../explore/README.md)** — internal codebase grep. Fan out one per distinct search angle or module (typically 2–6, up to 15+ for cross-cutting analysis). +- **[librarian](../librarian/README.md)** — external grep for official docs and production OSS examples. Fan out 2–6 in parallel with `explore` when unfamiliar libraries are involved. +- **[oracle](../oracle/README.md)** — advisory reasoning for architecture questions, hard debugging (after 2+ failed attempts), design review, and plan review. Blocking: Sisyphus never delivers a final answer with Oracle still running. +- **[coder](../coder/README.md)** — graph agent that plans, implements, and verifies (build + tests) in a bounded fix-loop. +- **[code-reviewer](../code-reviewer/README.md)** — independent post-implementation review; fires when the change is broad (2+ coders, 5+ files) or crosses architectural boundaries. +- **[adversary](../adversary/README.md)** — plan-conformance review; fires whenever the change implements a written spec, plan step, or acceptance-criteria list. Orthogonal to `code-reviewer` — both can run. +- **[step-runner](../step-runner/README.md)** — graph agent that executes one step of a phased plan repo. Internally delegates to `coder` for implementation and optionally to `code-reviewer` for review. ## Features