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.
npx agentmods add skills/arcblock/agent-skills/issue-graphnpx skills add ArcBlock/agent-skills --skill issue-graphgit clone --depth 1 https://github.com/ArcBlock/agent-skillsWhat 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.
| Model | Per session | Once 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 |
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.
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.
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.mdfirst. 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'splugin_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 通道,图只增强、不替代。
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.
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.
- 2d ago First seen · 133 lines · 95 tokens per session scan A 64312f446abf
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.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
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.
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.
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…
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.
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.