issue-graph

A calculation-based graph of GitHub issues, using sub-issues and dependency links to show which work is ready, which parent issues may be complete, and which issues become unblocked after a closure.

In plain words
What is it for?
Finding ready issues, identifying parent issues ready to roll up or close, tracking what a closed issue unlocks, and coordinating parallel agents without duplicate terminal actions.
Why use it?
It replaces guesses about work order with results calculated from the relationships stored in GitHub.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/arcblock/agent-skills/issue-graph
Any agent
npx skills add ArcBlock/agent-skills --skill issue-graph
Clone the repo
git clone --depth 1 https://github.com/ArcBlock/agent-skills

Made for: Claude Code, Codex.

Per session 95 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,229 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00095 $0.02229
Opus 5 $0.00048 $0.01115
Sonnet 5 $0.00019 $0.00446
Haiku 4.5 $0.00010 $0.00223

Measured 2d ago against content hash 64312f446abf, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

issue-graph scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

The scan reads SKILL.md. This mod also ships 7 executable files (scripts/backfill.ts, scripts/claim.ts, scripts/graph-scan.ts, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/agentloop/skills/issue-graph/SKILL.md · 133 lines

How it starts

The opening of the file, as written. The whole thing — 133 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Issue Graph — 确定性 issue 关系图(原生边 + 图计算 + 并发原语)

Repo profile — read .claude/repo-profile.md first. This skill is repo-agnostic; arc is the reference implementation. It resolves the repo from the git remote (repo_slug); its runtime scripts are referenced as <plugin_root>/skills/issue-graph/scripts/*.ts (the profile's plugin_root — so they resolve wherever the plugin is checked out). Arc's own issue-number provenance for any lessons is not inlined here.

「选择和传播都是纯计算,LLM 只负责做,不负责猜该做谁。」

GitHub 原生图(sub-issues + issue dependencies)是关系数据的唯一真相;本 skill 提供四个确定性脚本,把「哪些 issue 现在能做 / 哪些父 issue 该收尾 / 哪些 issue 被某次关闭解锁」从模型猜测变成每轮现算的图计算。图不落盘——唯一持久状态是 GitHub 本身,所以永远没有索引漂移。

设计来源、Phase 0 演练证据(149 条边、17 个 rollup 候选、fencing 实测)、并发 设计全文见 arc case-law 附录(repo-profile Case Law)。

脚本(scripts/,全部 REST-only + 手动分页)

为什么 REST-only:cloud routine 的出站代理挡 gh 的 GraphQL(403 "not enabled"),--paginate 对 issues 端点也有代理 bug(根 CLAUDE.md「按需安装 CLI 依赖」节)。所有脚本手动 page=N 循环,在本地与 cloud routine 行为一致。

graph-scan.ts — 图计算(只读,sweep 每轮调)

bun <plugin_root>/skills/issue-graph/scripts/graph-scan.ts [--window-hours 2] [--pretty]

输出 JSON:

字段 语义 消费方怎么用
ready open ∧ 无 open blocker;顺序已按 hostname 旋转(多机错峰) 并入 sweep 候选集;hasHold=true 的按 hold 语义处理
blocked 有 open blocker 的 issue + blocker 列表 确定性 SKIP(带原因),不再靠模型猜「轮没轮到」
rollupCandidates open ∧ 有孩子 ∧ 全部孩子已关 走 issue-review 的父级 rollup(fencing 互斥)
kicks 近窗口关闭的 issue 反查出的 open parent / 被解锁 dependent 无需人类 comment 直接注入候选集——这就是修「子 issue 完成后要人 bump」的机制

窗口默认 2h > sweep 间隔 1h:同一关闭事件被两轮看见没关系,kick 只是注入候选, 后续统一走 terminal-comment 去重 + 锁 + 认领检查,重复注入零成本。

link.ts — 写边(幂等,开派生 issue 时必调)

bun <plugin_root>/skills/issue-graph/scripts/link.ts --parent <N> --child <M>      # 父子边
bun <plugin_root>/skills/issue-graph/scripts/link.ts --issue <Y> --blocked-by <X>  # 依赖边

写边纪律(图精确性的来源):agent 每开一个 spin-off / 派生 issue,除了 body 里的 <!-- spinoff-of: #N --> 标记(留作 provenance),必须同时调 link.ts 挂原生父子边;phase 之间有硬次序的加 --blocked-by。边已存在 = 幂等 OK;child 已有不同 parent = 报错停下(换 parent 是人类决定)。人手开的 issue 不带边也 没关系——孤立点走现有 label/catch-all 通道,图只增强、不替代。

Read the full file on GitHub · 133 lines

Files

What ships with it

7 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 133 lines · 95 tokens per session scan A 64312f446abf

Subscribe to this mod's changes

issue-graph is a skill published in the GitHub repository ArcBlock/agent-skills (5 stars, last pushed 2d ago), licensed MIT. It adds 95 tokens to every session and 2,229 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.

obra/superpowers · 37 tokens

chat-pet-sprite-creation

Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.

microsoft/vscode · 53 tokens

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…

microsoft/vscode · 71 tokens

agent-host-chat-contributions

Build and review cross-cutting agent-host chat behavior through lifecycle contributions. Use when adding turn lifecycle side effects, prompt or context injection, restored-history transformation, protocol-action observation, or when reviewing changes that add code to AgentSideEffects or AgentService.

microsoft/vscode · 56 tokens

auto-perf-optimize

Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.

microsoft/vscode · 62 tokens