graph-engineer
Turns a linear agent, prompt chain, or orchestration script into an engineered graph — nodes with contracts, edges that carry data, fan-out/fan-in only where…
Skill by Busy-Office
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/busy-office-graph-engineer
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, data, productivity, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/graph-engineer
What's inside
- Skill name
graph-engineer- Description
- Turns a linear agent, prompt chain, or orchestration script into an engineered graph — nodes with contracts, edges that carry data, fan-out/fan-in only where earned, verifiers on the edges, cycles that converge, models tiered by judgement — and reviews an existing Workflow script for the same things, with a mechanical lint (barrier smells, agent-as-plumbing, dedupe-against-confirmed, unbounded loops, forbidden calls) before the judgement pass. Use whenever someone wants to design, draw, restructure, parallelise, fan out, speed up, cheapen, or make more reliable a multi-agent workflow, a Workflow tool script, a subagent pipeline, an orchestration graph, or "this agent that does A then B then C"; asks how to decompose a task across agents, where to put a verifier, whether to use parallel() or pipeline(), how to make a discovery loop stop, which node should run on a cheaper model, or how many agents a job will cost; or wants a workflow script reviewed, linted, or explained as a graph. Not for the scheduled outer loop that wakes on a cadence — that is loop-doctor / loop-economist / loop-atlas / wake-weight; this skill is the shape of one run's work.
- License
- MIT
- Instructions
- 241 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- description: longer than 1024 characters
Files (17)
- SKILL.md
- evals.json · evals/
- BAR.md · evals/gauntlet/
- CRITIC.md · evals/gauntlet/
- ROUNDS.md · evals/gauntlet/
- AGENT.md · fixtures/linear-chain/
- README.md · fixtures/linear-chain/
- README.md · fixtures/smelly-workflow/
- workflow.js · fixtures/smelly-workflow/
- anti-patterns.md · references/
- contracts.md · references/
- cost-model.md · references/
- cycles.md · references/
- report-template.md · references/
- topologies.md · references/
- verification.md · references/
- graph-lint.mjs · scripts/
SKILL.md (first lines)
# Graph Engineer
A linear agent is a graph already — the worst one: a single chain where
every step waits for the last, one context holds everything, and one stall
kills the run. Graph-engineering is redrawing it: cut the arrows that carry
no data, fan out what is independent, merge only where the whole set is
needed, put a verifier on the edge a wrong answer would cross, and let the
orchestration be code so it runs the same way every time.
This skill produces **one artifact** — a graph review: diagram first, the
node and edge tables, every barrier justified, the cost estimate, and the
script — and, when asked, the script itself in the place the user names. It
designs and reviews; it never launches a workflow on its own.
```mermaid
flowchart LR
A["inventory<br/>every 'and then' · what crosses"] --> B["contracts<br/>node shape · edge shape"]
B --> C["topology<br/>chain · fan-out · pipeline · diamond · route · cycle"]
C --> D["confidence<br/>verifiers · isolation · convergence"]
D --> E["tier + cost<br/>model per node · agents · critical path"]
E --> F["script + lint<br/>graph-lint.mjs → rows"]
F --> G["review<br/>diagram · tables · script · do-next"]
G -. only when the user opts in .-> H["run<br/>Workflow tool"]
```
## The guard-rail
- **Write nothing into the target repo unasked.** The review and the script
go to the scratchpad. If the user wants the script kept (`.claude/workflows/`
is the usual home), they name the path and you write exactly that file.
- **Never launch the graph yourself.** The Workflow tool runs only on the
user's explicit opt-in ("run it", "use a workflow", `ultracode`). Hand back
the script and say how to run it; running is their call.
- **No subagents to design a graph.** One context, one pass. Designing a
fan-out by fanning out is the joke the economist already told.
- **Read bounded.** The linear agent's prompt/script fully; anything it reads
(a backlog, a log) by header and size only.
- **Every number is derived or labelled an estimate.** Agent counts come from
the script; latency and tokens are estimates from the topology, stated as
such, with the formula.
- **Leave a receipt** in the footer: what was read, lint rows found and
closed, nothing written into the repo.
## Load only what the job needs
The references are ~9.5k tokens together; no job needs all of them. Read the
ones in the job's row, plus any a lint row points to — not the rest.
| job | read | skip |
|---|---|---|
| **quick question** — "parallel() or pipeline()?", "where does the verifier go?" | the one reference that answers it | the review; answer in chat in a few lines |
| **design from a chain** | `topologies`, `contracts`, `cost-model`, `report-template`; `verification` if a step checks work | `cycles`, `anti-patterns` |
| **review a script** | `anti-patterns`, `report-template` | the others until a row needs one: G6 → `topologies`, G7 → `contracts`, G8/G9 → `cycles` |
| **cycle of unknown size** | `cycles`, `verification`, `cost-model`, `report-template` | `contracts`, `anti-patterns` |
A quick question gets an answer, not a review: no artifact, no script, no
receipt — offer the full review in one line if the question hides a design
problem.
## Workflow
### 1. Inventory the chain
Take the thing as it is — a prompt with "then" in it, a script, a skill, a
Workflow script — and list every step in order. For each arrow between two
steps answer one question: **which variable crosses it?** Name the value that
leaves one step's output and enters the next step's input. If none does,
write `none`.
An arrow with `none` is not an edge; it is the order someone typed. Cut it.
What is left is usually two or three independent nodes feeding one that
needs all of them — the diamond, hiding inside the chain.
For an existing Workflow script, run the lint first:
```bash
node <skill-dir>/scripts/graph-lint.mjs <script.js> > <scratchpad>/graph-lint.json
```
It returns the shape (agent, parallel, pipeline, loop and phase counts, the
static fan-out widths) and one row per mechanical finding — `G` ids from
`references/anti-patterns.md`. Rows are evidence; the review adds the
judgement the lint cannot make.
### 2. Give every node and edge a contract
`references/contracts.md`. A node is one agent, one bounded job, explicit
input in, validated output out — a JSON schema on the `agent()` call, so the
next node consumes a shape rather than parses prose. An edge is the shape
that crosses it, named by its data, not its order.
Then the rule that saves the most tokens in any graph: **agents for
judgement, code for plumbing.** Flatten, dedupe, filter, group, count —
these are the edge, and the edge is plain JavaScript at zero tokens. An
`agent()` whose prompt begins "combine these" is paying rent on wiring.
### 3. Choose the topology
`references/topologies.md` — the six shapes, when each is right, what each
costs. Default to `pipeline()`: every item flows through every stage on its
own, no barrier. A barrier (`parallel()`, or awaiting a whole set before the
next stage) is earned only when a stage needs **every** prior result at once
— a cross-set dedupe, an early exit on the total, a prompt that compares one
finding against the others. "The stages feel separate" and "it's cleaner"
are not reasons; separate is not synchronised.
Routing is a schema-validated classification followed by an `if` in code.
The judgement is the agent's; the branch taken is the script's, and it takes
the same branch for the same classification every time.
### 4. Buy confidence where a wrong answer costs
`references/verification.md`. A verifier is a node whose only job is to kill
the finding before it crosses the edge: N skeptics prompted to refute
(adversarial), one lens each — correctness, security, does it reproduce
(perspective-diverse), or N attempts scored by judges (judge panel). Pick by
how a finding can be wrong. A verifier that produced the finding is not one.
`references/cycles.md` for discovery of unknown size: loop until KFrom Busy-Office/ai-skills, MIT.
More from Busy-Office/ai-skills
- 0.570score
jev
Busy-Office
Get a fast, typed second opinion (yes/no, choice, or score with probabilities) from jev-ai.pro before acting.
SkillAFreshness: AClaude Code +9 - 0.566score
loop-doctor
Busy-Office
Reviews — and, when asked, sets up — a project's autonomous, scheduled loop — the routine that wakes on a cadence (cron, launchd, a /loop interval, a cloud…
SkillAFreshness: AClaude Code +9 - 0.529score
requeue
Busy-Office
Reviews and reorders the queue an engineering loop or team works from — backlog, roadmap, todo, milestones — so the next work picked up is the right work.
SkillBFreshness: BClaude Code +9 - 0.529score
progress-dashboard
Busy-Office
Publishes a one-page stakeholder progress dashboard for any git project — where it stands, what's waiting on people, whether it's stalled — from whatever…
SkillBFreshness: BClaude Code +9 - 0.529score
app-icon-generator
Busy-Office
Generate a complete app icon set — iOS AppIcon.appiconset, Android launcher + adaptive icons, and web favicons/PWA manifest icons — from a single square…
SkillBFreshness: BClaude Code +9 - 0.525score
solo-flow
Busy-Office
Prescribes and audits a trunk-based git workflow for a repository with exactly one writer — a single autonomous agent or loop, with no other humans committing.
SkillBFreshness: BClaude Code +9 - 0.525score
loop-economist
Busy-Office
Reviews what an engineering loop's actual runs cost and produced — reading Claude Code session transcripts and git history rather than the loop's documents.
SkillBFreshness: BClaude Code +9 - 0.283score
loop-atlas
Busy-Office
No description from the publisher yet.
SkillBFreshness: BClaude Code +9 - 0.283score
wake-weight
Busy-Office
No description from the publisher yet.
SkillBFreshness: BClaude Code +9 - 0.283score
sharpen-intent
Busy-Office
No description from the publisher yet.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 26, 2026 (1 month ago)
- Last release
- Sep 8, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Busy-Office/ai-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Busy-Office
- 0.570score
jev
Busy-Office
Get a fast, typed second opinion (yes/no, choice, or score with probabilities) from jev-ai.pro before acting.
SkillAFreshness: AClaude Code +9 - 0.566score
loop-doctor
Busy-Office
Reviews — and, when asked, sets up — a project's autonomous, scheduled loop — the routine that wakes on a cadence (cron, launchd, a /loop interval, a cloud…
SkillAFreshness: AClaude Code +9 - 0.529score
requeue
Busy-Office
Reviews and reorders the queue an engineering loop or team works from — backlog, roadmap, todo, milestones — so the next work picked up is the right work.
SkillBFreshness: BClaude Code +9 - 0.529score
app-icon-generator
Busy-Office
Generate a complete app icon set — iOS AppIcon.appiconset, Android launcher + adaptive icons, and web favicons/PWA manifest icons — from a single square…
SkillBFreshness: BClaude Code +9 - 0.529score
progress-dashboard
Busy-Office
Publishes a one-page stakeholder progress dashboard for any git project — where it stands, what's waiting on people, whether it's stalled — from whatever…
SkillBFreshness: BClaude Code +9 - 0.525score
loop-economist
Busy-Office
Reviews what an engineering loop's actual runs cost and produced — reading Claude Code session transcripts and git history rather than the loop's documents.
SkillBFreshness: BClaude Code +9
Cite this page
graph-engineer skill. Agent Mart. https://agentmart.dev/skills/busy-office-graph-engineer (last updated 2026-10-24)