Agent skill

Graph

by smallnest in smallnest/goal-workflow

Graph engineering for parallel task execution: convert a task, PRD, SPEC, or issue set into a dependency graph (DAG), layer it into supersteps, then implement each independent node concurrently with…

MITAuto-check passedProduct & Project Management

Install Graph

skills CLI
$ npx skills add smallnest/goal-workflow --skill graph -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install smallnest/goal-workflow graph --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/smallnest/goal-workflow.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/graph .claude/skills/graph && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
graph
GitHub stars
289
Token cost
~3.9k tokens
SKILL.md length
1,345 words
Files
2 (incl. scripts)
Skills in repo
20
Repo updated
First seen
Licence
MIT

At a glance

Graph engineering for parallel task execution: convert a task, PRD, SPEC, or issue set into a dependency graph (DAG), layer it into supersteps, then implement each independent node concurrently with…

  • Works in 5 steps: Locate & Decompose Input → Build the DAG & Validate → Topological Layering into Waves → …
  • Graph engineering
  • SKILL.md covers Mental Model (borrowed from…, Overview, Step 1: Locate & Decompose Input and Step 2: Build the DAG & Validate, plus 7 more sections
  • Runs Python scripts from its folder; calls git, python3 and node

What it does

Graph is an agent skill from smallnest/goal-workflow. Graph engineering for parallel task execution: convert a task, PRD, SPEC, or issue set into a dependency graph (DAG), layer it into supersteps, then implement each independent node concurrently with subagents — each node runs /goal → /review-it → /ship-it in an isolated git worktree, with a fan-in barrier between waves. Triggers on: graph, graph engineering, build a graph, task graph, dependency graph, DAG, parallel implement, 并发实现, 并行实现, 任务图, 把任务变成图, fan-out fan-in, superstep, dynamic workflow.

Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/render_graph_html.py`).

It sits in Product & Project Management, covering PRD writing, Git worktrees and Subagents. It works with Git. The repository describes itself as: AI-driven development workflow with /prd, /goal, /review-it and /ship-it skills. The licence is MIT.

When your agent uses it

  • Graph engineering
  • Dependency graph
  • Parallel implement
  • Dynamic workflow

Example prompts

  • “/graph”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Bash(git:*), Bash(gh:*), Bash(cat:*), Bash(mkdir:*), Bash(grep:*), Bash(python3:*)

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Locate & Decompose Input
  2. Build the DAG & Validate
  3. Topological Layering into Waves
  4. Pre-flight Checks
  5. Execute Wave by Wave (fan-out → fan-in)

What it can do on your machine

Read from SKILL.md and the folder at commit b06ab3c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(git:*)
    • Bash(gh:*)
    • Bash(cat:*)
    • Bash(mkdir:*)
    • Bash(grep:*)
    • Bash(python3:*)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • git
    • python3
    • node
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Graph loads about 3.9k tokens when it runs. Until then it costs about 127 tokens; SKILL.md has 1,345 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~127
When it runs · the whole SKILL.md, loaded when a task matches
~3.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from smallnest/goal-workflow at commit b06ab3c, republished under its MIT licence (© smallnest). 1,345 words, ~3,938 tokens.

Download SKILL.mdSave it as .claude/skills/graph/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
graph
description
Graph engineering for parallel task execution: convert a task, PRD, SPEC, or issue set into a dependency graph (DAG), layer it into supersteps, then implement each independent node concurrently with subagents — each node runs /goal → /review-it → /ship-it in an isolated git worktree, with a fan-in barrier between waves. Triggers on: graph, graph engineering, build a graph, task graph, dependency graph, DAG, parallel implement, 并发实现, 并行实现, 任务图, 把任务变成图, fan-out fan-in, superstep, dynamic workflow.
allowed-tools
Bash(git:*), Bash(gh:*), Bash(cat:*), Bash(mkdir:*), Bash(grep:*), Bash(python3:*)
user-invocable
true

graph — Task/PRD to Parallel Execution Graph

Turn a task (or PRD / SPEC / issue set) into a directed acyclic graph of work units, layer it into supersteps (waves), and implement each wave's independent nodes concurrently using subagents. Each node runs the full /goal → /review-it → /ship-it pipeline inside its own git worktree, so parallel nodes never clobber each other's working tree. Between waves, a fan-in barrier merges results and re-plans the next wave.

This is the parallel sibling of /loop-it. /loop-it is strictly sequential (one worktree, one issue at a time). /graph fans out every independent node in a wave at once.


Mental Model (borrowed from LangGraph / graph engineering)

ConceptHere
NodeOne implementable unit of work (an issue / subtask)
EdgeA dependency: B depends on A → edge A → B
Superstep / waveA set of nodes whose deps are all satisfied — run concurrently
Fan-outDispatch one subagent per node in the current wave
Fan-in (barrier)Wait for all nodes in the wave before starting the next
State channel.graph_state — shared checkpoint, rewritten between waves (resume source)
Live trackergraph.html — Claude-style light-theme dashboard, re-rendered from .graph_state at every checkpoint
Dynamic re-planAfter a wave, revise the graph if new work/deps emerged

Core principle: Independent nodes in the same wave have no shared state and no ordering dependency, so they can run in true parallel. Dependencies define the only ordering. Everything else runs at once.


Overview

Input (task / PRD / SPEC / issues)
        │
        ▼
1. Decompose into nodes  ─────────►  nodes = {id, title, deps, criteria, scope}
        │
        ▼
2. Build DAG + validate  ─────────►  detect cycles, orphan deps
        │
        ▼
3. Topological layering  ─────────►  waves = [[n1,n2,n3], [n4,n5], [n6]]
        │
        ▼
4. Render graph + confirm with user
        │
        ▼  (write .graph_state + graph.html — open graph.html to watch live)
┌──────────── per wave (superstep) ────────────┐
│                                               │
│  FAN-OUT: 1 subagent per node (parallel)      │
│    each subagent, in its own git worktree:    │
│      /goal (inline implement) → /review-it    │
│                              → /ship-it        │
│                                               │
│  FAN-IN barrier: wait for ALL nodes           │
│    integrate, update .graph_state             │
│    re-render graph.html                        │
│    re-plan next wave if graph changed         │
│                                               │
└───────────────────────────────────────────────┘
        │
        ▼
All waves done → final summary

Step 1: Locate & Decompose Input

Accept any of: a free-form task description, a PRD/SPEC file, or an existing issue set (GitHub / local .md).

  • PRD/SPEC → reuse /to-issues decomposition rules (one node per User Story; split large, merge tiny).
  • Existing issues → each issue is a node; parse dependencies from issue bodies (Depends on: #3, Dependencies: #3, #5).
  • Free-form task → break into the smallest independently-shippable units yourself.

Each node MUST have:

Node #N
  title:      short imperative title
  deps:       [list of node ids] or []
  criteria:   acceptance criteria (checklist) — how the subagent knows it's done
  type:       backend | frontend | fullstack | ui | infra | docs
  scope_hint: which files/dirs this node is expected to touch (for conflict analysis)

scope_hint matters: two nodes with no dependency edge but overlapping file scope are not truly independent — see Step 3.


Step 2: Build the DAG & Validate

Construct edges from deps. Then validate:

CheckAction on failure
Cycle (A → B → A)Print ⚠️ 循环依赖: #A ↔ #B. Break by node id order, warn user, ask to confirm or fix.
Dangling dep (#7 depends on #99, no such node)Print warning, drop the phantom edge.
Scope collision (two dep-free nodes edit same files)Add a soft edge to serialize them (lower id first), OR flag for user. Never let two parallel worktrees fight over the same files.

Hot-file exception: A shared wiring file that nearly every node must touch (e.g. router.go, main.go, mod.rs, a DI container, an __init__ re-export) does NOT count as a scope collision — treating it as one would serialize the entire graph into a chain. For such files, assume append-only edits merge cleanly, and prefer one of: (a) designate a single node that owns wiring and have others expose a registration hook, or (b) do a tiny follow-up "wire everything" node in the last wave. Reserve the collision rule for nodes that edit the same logic in the same file (e.g. two handlers rewriting the same function).


Step 3: Topological Layering into Waves

Compute waves via Kahn's algorithm:

  1. Wave 0 = all nodes with deps == [] and no scope collision among themselves.
  2. Remove wave-0 nodes; Wave 1 = nodes whose deps are now all satisfied.
  3. Repeat until all nodes placed.
  4. Within a wave, if two nodes edit the same logic in the same file (real collision, per the hot-file exception in Step 2), push the higher-id one to the next wave. Bare wiring-file overlap does not trigger this.

ID conventions (used consistently): lower id wins — cycles break by lowest id first (Step 2), and scope collisions serialize with the lower id first (higher id deferred to the next wave).

Print the layered plan:

📊 Graph: 6 nodes, 3 waves

Wave 0 (parallel ×3):  #1 db schema   #2 config loader   #3 logging util
Wave 1 (parallel ×2):  #4 API handler (deps #1)   #5 CLI flags (deps #2)
Wave 2 (parallel ×1):  #6 integration (deps #4,#5)

Max parallelism: 3 subagents in Wave 0.

Also emit a Mermaid diagram for the user:

```mermaid
graph LR
  n1[#1 db schema] --> n4[#4 API handler]
  n2[#2 config loader] --> n5[#5 CLI flags]
  n3[#3 logging util]
  n4 --> n6[#6 integration]
  n5 --> n6
```

Wait for user confirmation before dispatching any subagent. Let them adjust nodes, deps, or the max-parallelism cap.


Step 4: Pre-flight Checks

Before the first wave (same spirit as /loop-it):

bash
git rev-parse --is-inside-work-tree   # in a repo?
git status --porcelain                # clean tree? (dirty → stash/abort)
git branch --show-current             # on main/master?
git ls-remote --heads origin          # remote reachable?
gh auth status                        # if shipping to GitHub

Any hard failure → print the error and stop. Confirm a max concurrency cap with the user (default 3–4 parallel subagents; more risks rate limits and review noise).

Then initialize the state channel + live tracker (do this once, right after the plan is confirmed and before the first fan-out):

bash
# 1. Write the initial checkpoint (all nodes pending, current_wave 0).
cat > .graph_state <<'JSON'
{ "version": 1, "task": "...", "repo": "owner/repo",
  "waves": [[1,2,3],[4,5],[6]], "current_wave": 0,
  "nodes": { "1": {"title":"...","deps":[],"status":"pending","wave":0}, ... } }
JSON

# 2. Keep it out of git.
grep -qxF '.graph_state' .gitignore || printf '.graph_state\ngraph.html\n' >> .gitignore

# 3. Render the Claude-style light-theme dashboard.
python3 skills/graph/scripts/render_graph_html.py .graph_state graph.html

Tell the user: open graph.html in a browser — it auto-refreshes every 5s, so it tracks execution live (waves, node statuses, progress bar, and a Mermaid DAG colored by status). Re-run the render command at every checkpoint (see Step 5b) to push updates.


Step 5: Execute Wave by Wave (fan-out → fan-in)

For each wave, in order:

Show full SKILL.md (583 more words)Show less
5a. FAN-OUT — one subagent per node, in parallel

Dispatch all nodes of the wave in a single response (multiple Agent/subagent calls in one message = concurrent). Each subagent works in its own git worktree so parallel file edits never collide:

bash
# The orchestrator creates a worktree per node BEFORE dispatching:
git worktree add -b feat/node-{N}-{slug} ../.graph-worktrees/node-{N} main

Each subagent receives a self-contained prompt (it does NOT inherit orchestrator context):

markdown
You are implementing ONE node of a task graph, working in an ISOLATED git worktree.

Worktree:  ../.graph-worktrees/node-{N}   (already created on branch feat/node-{N}-{slug})
Node #{N}: {title}
Type:      {type}
Scope:     {scope_hint}  — stay within these files; do not touch other nodes' scope

Acceptance criteria (all must pass):
- [ ] {criterion 1}
- [ ] {criterion 2}

Context (deps already merged into main, pull first):
{summaries of dependency nodes' outputs, or the referenced PRD/SPEC excerpt}

Your pipeline (run all three, in order):
1. IMPLEMENT (inline /goal): read the node + any referenced PRD/SPEC, read adjacent
   code, implement to satisfy EVERY acceptance criterion, run build + tests + lint
   (e.g. go build ./... && go vet ./... && go test ./...). Iterate until all green.
2. REVIEW (/review-it): run code review on your changes, apply accepted findings,
   re-run focused tests, repeat until review is clean (max 2 rounds).
3. SHIP (/ship-it): commit (message references the node/issue), push branch,
   create PR, merge, close the issue.

Constraints:
- Work ONLY inside your worktree. Do NOT edit files outside {scope_hint}.
- Do NOT try to call `goal` via the Skill tool (it's a UI command, not a skill) —
  "implement" means you write the code yourself. /review-it and /ship-it ARE skills.
- If you cannot satisfy a criterion, STOP and report what's blocking — don't fake it.

Return: node id, PASS/FAIL, PR/commit refs, files changed, and — if you discovered new required work or a dependency the graph didn't capture — a `NEW_WORK:` line describing it (title + which nodes it blocks). Emit `NEW_WORK: none` if there's nothing.

Why worktrees, not branches alone: /goal mutates the working tree. Two subagents editing the same checkout would corrupt each other. A worktree per node gives each its own filesystem checkout on its own branch — that's what makes the wave genuinely parallel and safe.

5b. FAN-IN — barrier, integrate, re-plan

Wait for every subagent in the wave to return (BSP barrier — the next wave cannot start until this one commits). Then:

  1. Read each subagent's summary. Mark node shipped or failed.
  2. git checkout main && git pull — dependency outputs are now on main for the next wave.
  3. Remove finished worktrees: git worktree remove ../.graph-worktrees/node-{N} (keep failed ones for investigation).
  4. Write checkpoint to .graph_state, then re-render the tracker: python3 skills/graph/scripts/render_graph_html.py .graph_state graph.html (the open graph.html picks it up on its next auto-refresh).
  5. Dynamic re-plan (LangGraph-style conditional edge): scan each subagent's NEW_WORK: line. If any is not none, add the new node(s)/edge(s) and re-layer the remaining nodes before starting the next wave. Show the user the delta.
  6. If any node in the wave failed, mark all nodes that depend on it as blocked and skip them (their inputs aren't ready).

Proceed to the next wave.


State File: .graph_state (+ live tracker graph.html)

.graph_state lives at the repo root and must be in .gitignore. It's the single source of truth: checkpoint it after every wave so a crash resumes at the wave boundary, and re-render graph.html from it so the browser dashboard stays live. graph.html is a derived view — never hand-edit it; regenerate it from .graph_state.

json
{
  "version": 1,
  "updated_at": "2026-07-21T10:30:00Z",
  "task": "Add user auth",
  "repo": "owner/repo",
  "waves": [[1, 2, 3], [4, 5], [6]],
  "current_wave": 1,
  "nodes": {
    "1": { "title": "db schema", "deps": [], "status": "shipped", "branch": "feat/node-1-db-schema", "pr": 43, "wave": 0 },
    "2": { "title": "config loader", "deps": [], "status": "shipped", "wave": 0 },
    "3": { "title": "logging util", "deps": [], "status": "failed", "wave": 0, "error": "test TestLog failed", "attempts": 2 },
    "4": { "title": "API handler", "deps": [1], "status": "in_progress", "wave": 1 },
    "6": { "title": "integration", "deps": [4, 5], "status": "blocked", "wave": 2, "reason": "depends on #3 (failed)" }
  }
}

Status values: pending | in_progress | shipped | failed | blocked | skipped. Each node carries title + deps so graph.html can draw the DAG and cards straight from the checkpoint.

Render the tracker any time with:

bash
python3 skills/graph/scripts/render_graph_html.py .graph_state graph.html

On resume: read .graph_state, skip shipped, ask about failed (retry/skip), re-derive remaining waves, and re-render graph.html.


Safety Guards

  • Worktree isolation is mandatory — never run two parallel /goal sessions in the same checkout.
  • Fan-in barrier is mandatory — never start wave N+1 before every node in wave N returns and merges.
  • Scope collisions serialize — dep-free nodes touching the same files go in different waves.
  • Never skip /review-it before /ship-it.
  • Cap concurrency — default 3–4; more invites rate limits and merge contention.
  • Never force-push to main. Each node ships via its own branch/PR.
  • Failed node blocks its dependents — don't ship on top of unmet inputs.
  • Max retries per node — reuse /loop-it's error classes; don't loop forever.
  • Confirm the plan before the first fan-out.

Common Mistakes

MistakeFix
Dispatching subagents in separate responsesOne response, multiple calls = parallel. Separate = sequential.
No worktree → parallel edits corrupt the treeOne git worktree per node.
Two "independent" nodes edit the same fileAdd a soft edge; put them in different waves.
Starting the next wave before all nodes mergeEnforce the fan-in barrier.
Over-decomposing into 20 trivial nodesMerge tiny units; a node should be a meaningful shippable unit.
Ignoring a failed node's dependentsMark them blocked, skip them.

Relationship to Other Skills

/prd → /prd-to-spec → /to-issues ─┬─► /loop-it   (sequential: one node at a time)
                                   └─► /graph     (parallel: whole wave at once)
                                          │
                     each node: inline /goal → /review-it → /ship-it (in its own worktree)
  • /to-issues — decomposition rules reused for building nodes.
  • /loop-it — sequential counterpart; use it when nodes heavily share files or serial safety matters.
  • /graph — this skill; use it when the DAG has genuine parallelism (independent subsystems).
  • /review-it, /ship-it — real skills each node's subagent invokes.

© smallnest, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in skills/graph of smallnest/goal-workflow.

  • SKILL.md
  • scripts/render_graph_html.py

Open the folder on GitHubat commit b06ab3c

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders. This page covers the copy in smallnest/goal-workflow, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Graph next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Graph compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Graph this skillsmallnest/goal-workflow289—~3.9kAutomated safety check: PassMIT
CCPM Project Managementautomazeio/ccpm8.4k—~1.1kAutomated safety check: PassMIT
Reviewfossasia/eventyay-interpretation1.6k35 repos~996Automated safety check: PassApache-2.0
Worktree Prdvfarcic/dot-agent-deck109—~503Automated safety check: PassMIT
Badstephenleo/bmad-autonomous-development107—~7.7kAutomated safety check: PassMIT
Ad ReviewCorridorTech/PoseCap224—~2.4kAutomated safety check: NotesApache-2.0

Similar skills

  • Runs a spec-driven workflow from PRD to epic to GitHub issues to parallel agents, with status, standup and blocked-work reports from bundled scripts.

    8.4k GitHub stars~1.1k tokensUpdated 6 mo ago
    Product & Project ManagementAuto-check passed
  • Review

    fossasia/eventyay-interpretation

    Review the changes since a fixed point (commit, branch, tag, or merge-base) along two axes — Standards (does the code follow this repo's documented coding standards?) and Spec (does the code match…

    1.6k GitHub starsUsed in 35 repos~996 tokens
    Product & Project ManagementAuto-check passed
  • Worktree Prd

    vfarcic/dot-agent-deck

    Create a git worktree for PRD work with a descriptive branch name.

    109 GitHub stars~503 tokensUpdated today
    Product & Project ManagementAuto-check passed
  • Bad

    stephenleo/bmad-autonomous-development

    BMad Autonomous Development — orchestrates parallel story implementation pipelines.

    107 GitHub stars~7.7k tokensUpdated 5 mo ago
    Agent WorkflowsAuto-check passed
  • Ad Review

    CorridorTech/PoseCap

    Two-axis fresh-context code review per WORKFLOW §10. An agent skill from CorridorTech/PoseCap.

    224 GitHub stars~2.4k tokensUpdated today
    DevelopmentAuto-check: notes
  • ClawTeam Multi-Agent Swarm

    win4r/ClawTeam-OpenClaw

    Launches a swarm of specialist Hermes agents in git-worktree-isolated tmux windows with a kanban board and file-based inboxes, using built-in templates like hedge-fund and code-review.

    1.5k GitHub starsUsed in 1 repo~2.9k tokens
    Agent WorkflowsAuto-check passed

More from smallnest/goal-workflow

All 20 skills in this repo
  • Article Icons

    smallnest/goal-workflow

    Illustrate an article (Markdown, HTML, etc.) with animated-style icons from itshover.com/icons.

    289 GitHub stars~1.6k tokensUpdated 24 days ago
    Auto-check passed
  • Walkthrough

    smallnest/goal-workflow

    Generate a Phase-2 Walkthrough artifact (walkthrough.md) once implementation and verification are complete.

    289 GitHub stars~4.7k tokensUpdated 24 days ago
    Auto-check: notes
  • Insight Diagram

    smallnest/goal-workflow

    为任意项目生成 UML 图、架构图和流程图。分析代码库后让用户选择要生成的图表类型,使用 architecture-diagram skill 渲染为 HTML+SVG,保存到 docs/ 目录。适用于任何软件项目的文档可视化。

    289 GitHub stars~1.6k tokensUpdated 24 days ago
    Auto-check passed
  • Code To Spec

    smallnest/goal-workflow

    Reverse-engineer a SPEC document from an existing project. An agent skill from smallnest/goal-workflow.

    289 GitHub stars~2.7k tokensUpdated 24 days ago
    Auto-check passed
  • Design It

    smallnest/goal-workflow

    A skill your agent uses when turning a requirement, spec, or feature brief into a single self-contained HTML design document in a fixed house style — one styled HTML page with a table-of-contents…

    289 GitHub stars~1.1k tokensUpdated 24 days ago
    Auto-check passed
  • Humanize It

    smallnest/goal-workflow

    对指定文档进行去 AI 味的改写。自动选择最合适的人性化策略(humanizer-zh / humanize-chinese / technical-writing), 迭代改写直到效果达标或迭代 42 次为止。适用于中文文本的去 AI 化处理,包括通用文章、技术文档、学术论文等。

    289 GitHub stars~957 tokensUpdated 24 days ago
    Auto-check passed

Works with

Questions about Graph

What does Graph do?

Graph engineering for parallel task execution: convert a task, PRD, SPEC, or issue set into a dependency graph (DAG), layer it into supersteps, then implement each independent node concurrently with…. Graph is an agent skill from smallnest/goal-workflow. Graph engineering for parallel task execution: convert a task, PRD, SPEC, or issue set into a dependency graph (DAG), layer it into supersteps, then implement each independent node concurrently with subagents — each node runs /goal → /review-it → /ship-it in an isolated git worktree, with a fan-in barrier between waves.

When should I use Graph?

Graph fits situations like: graph engineering; dependency graph; parallel implement; dynamic workflow.

How do I install Graph in Claude Code?

Run `npx skills add smallnest/goal-workflow --skill graph -a claude-code`. Or copy the skill folder (skills/graph in smallnest/goal-workflow) into .claude/skills/graph in your project. Claude Code loads it when a task matches its description.

How do I install Graph in Codex?

Run `npx skills add smallnest/goal-workflow --skill graph -a codex`. Or copy the skill folder (skills/graph in smallnest/goal-workflow) into .agents/skills/graph in your project. Codex loads it when a task matches its description.

Can I use Graph in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add smallnest/goal-workflow --skill graph -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/graph, .gemini/skills/graph, .github/skills/graph and .opencode/skills/graph in your project.

What does Graph need to run?

Going by SKILL.md and its folder, Graph needs Python for the scripts in its folder and the command-line tools its instructions call (git, python3, node and gh). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash(git:*), Bash(gh:*), Bash(cat:*), Bash(mkdir:*), Bash(grep:*), Bash(python3:*).

Does Graph access the network?

SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Graph safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Graph use?

Graph is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Graph use?

About 3.9k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Graph?

Skills that share tags, products or a category with Graph: CCPM Project Management (automazeio/ccpm, 8.4k stars), Review (fossasia/eventyay-interpretation, 1.6k stars), Worktree Prd (vfarcic/dot-agent-deck, 109 stars) and Bad (stephenleo/bmad-autonomous-development, 107 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Graph?

smallnest (a GitHub user) maintains it in smallnest/goal-workflow, which has 289 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on September 13, 2026.

Source: smallnest/goal-workflow on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.