
graph
Deterministic orchestration graph runtime - declarative DAG pipelines with journal-based crash recovery
- Installs
- 221
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/yeachan-heo/oh-my-claudecode --skill graph- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads graph automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Graph Skill
Run a deterministic orchestration graph from a declarative JSON descriptor.
The runtime consumes the sealed-descriptor and pure-scheduler contracts in
src/graph/* and executes through an independent OS process (omc graph run),
so crash recovery (kill mid-run, rerun, resume from journal) works for real.
Usage
/oh-my-claudecode:graph <descriptor.json>
/oh-my-claudecode:graph "build then test then ask me before deploy" (author the descriptor first)
The execution surface is always the CLI subcommand:
omc graph run <descriptor.json> [--runs-root <dir>]
Run it via the Bash tool for non-interactive graphs. Progress lines stream as
[run], [node], [ok], [fail], [join], [done].
When To Use
- Repeatable multi-step pipelines with explicit dependencies (DAG)
- Work that must survive interruption: kill/restart resumes from journal
- Auditable runs: OCC journal + projection snapshots under
.omc/graph-runs/<run_id>/
When NOT to use: exploratory one-off work (use conversation or /team); anything needing adaptive re-planning mid-run (graphs are deterministic).
Workflow
-
Descriptor given -> go to step 3.
-
Pipeline described -> author the descriptor JSON (schema below), write it next to the project (suggest
.omc/graphs/<name>.json) and show it to the user before running.run_idmust be unique per logical pipeline; rerunning with the samerun_idRESUMES, not restarts. -
Approval nodes: if the descriptor contains any
"kind": "human-approval"node, do NOT run it through the Bash tool (stdin is not interactive there; EOF fails closed to denied). Tell the user to run interactively instead:! omc graph run <file>The
!prefix runs it inside this session with live stdin so y/n works. -
Run and relay progress. Exit codes (normative): 0 succeeded | 1 terminal failed | 19 another writer owns this run (busy) 20 corrupt/tampered journal (fail-closed) | 21 descriptor drift on resume | 70 runtime crash (unmapped error)
-
Resume: rerunning the same command after a crash replays committed transitions and continues. Completed nodes never re-execute.
Descriptor Schema (minimal)
{ "descriptor_version": 1, "run_id": "unique-pipeline-id", "revision_id": "rev-1", "goal": "one line", "nodes": [ { "id": "n1", "kind": "command", "title": "...", "timeout_ms": 60000, "max_attempts": 2, "effect_policy": { "policy": "side_effect_free" }, "command": "npm test" }, { "id": "a1", "kind": "agent", "title": "...", "timeout_ms": 300000, "max_attempts": 1, "effect_policy": { "policy": "side_effect_free" }, "instructions": "..." }, { "id": "gate", "kind": "human-approval", "title": "...", "prompt": "Proceed?" } ], "edges": [ { "id": "e1", "kind": "fixed", "from": "n1", "to": "a1" } ], "entry_node_ids": ["n1"], "concurrency_limit": 2, "terminal_verification_node_id": "a1" }
Edge kinds: fixed | conditional | fan_out/join pairs | back_edge (bounded retries via max_traversals). See src/graph/schema.ts for the authoritative Zod schema — and read the Capability Boundary section above for what built-in executors actually execute today.
Capability Boundary & Semantics (read before authoring)
- Edge support: built-in command/agent executors cover
fixededges andfan_out/joinpairs.conditionalandback_edgeroutes are fully supported by the runtime and scheduler contracts but require a custom NodeExecutor that emitsrouteon its results — built-in executors never produce routes, so graphs relying on them fail fast withroute_requiredrather than guessing. - Crash-recovery guarantee is at-least-once for command nodes: a crash
between an external side effect and its journal append re-executes that node
on resume. For
idempotentcommands, the resolved key is available to the command asGRAPH_IDEMPOTENCY_KEYbefore it starts and is also recorded for downstream dedupe. Built-in executors rejectreconcile; reconciliation requires a custom executor with an actual external reconciliation authority. Exactly-once for external side effects is out of scope for v1. - Command trust boundary: command nodes are arbitrary shell lines with
process authority in the current working directory. Only run descriptors
you wrote or trust. Command children receive an allowlisted environment
(PATH, HOME/USERPROFILE, TEMP/TMP, locale/timezone, USER identity,
GRAPH_*, and the optional idempotency key), not the host's full secrets. Commands are not filesystem/process sandboxed. - Agent authority boundary: built-in agent nodes are explicitly read-only.
They run in the current working directory with no additional directories,
only
Read,Glob, andGrep,permissionMode: dontAsk, session persistence disabled, and a provider-specific environment allowlist. Agent timeouts abort and interrupt the SDK query. Use a custom executor for any agent that needs mutation or external effects. Treat.omc/graph-runs/<run_id>/descriptor.jsonas executable content.
FAQ
What does the graph skill do?
Deterministic orchestration graph runtime - declarative DAG pipelines with journal-based crash recovery
How do I install graph?
Run npx skills add https://github.com/yeachan-heo/oh-my-claudecode --skill graph in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/graph/ (personal) or .claude/skills/graph/ (project).
Which AI agents can use graph?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is graph safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains graph?
It is published by yeachan-heo in yeachan-heo/oh-my-claudecode. It has 221 recorded installs.
More from yeachan-heo/oh-my-claudecode
ai-slop-cleaner
yeachan-heo/oh-my-claudecode
Clean AI-generated code slop with a regression-safe, deletion-first workflow and optional reviewer-only mode
ralplan
yeachan-heo/oh-my-claudecode
Consensus planning entrypoint that auto-gates vague ralph/autopilot/team requests before execution
hud
yeachan-heo/oh-my-claudecode
Configure HUD display options (layout, presets, display elements)
deepinit
yeachan-heo/oh-my-claudecode
Deep codebase initialization with hierarchical AGENTS.md documentation
deep-interview
yeachan-heo/oh-my-claudecode
Socratic deep interview with mathematical ambiguity gating before explicit execution approval
Popular other skills
hyperframes-cli
heygen-com/hyperframes
The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.
triage
mattpocock/skills
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
ask-matt
mattpocock/skills
Ask which skill or flow fits your situation. A router over the skills in this repo.
to-questionnaire
mattpocock/skills
Turn a decision you can't fully answer into a questionnaire for someone else to fill in.
loop-me
mattpocock/skills
Grill me about specs for the workflows I want to build, within this workspace.