Skip to content
Agentmart
Submit a tool

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

IndexedMIT
Write a review

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.

We use your email only for this newsletter. Privacy

About

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.

Use cases: design, data, productivity, agent-building

No 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 K

From Busy-Office/ai-skills, MIT.

More from Busy-Office/ai-skills

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
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Busy-Office

Cite this page

graph-engineer skill. Agent Mart. https://agentmart.dev/skills/busy-office-graph-engineer (last updated 2026-10-24)