一键导入
skill-dependency-graph
Generate a navigable Mermaid dependency map of all skills with change detection, per-category drill-downs, and enabled overlay
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Generate a navigable Mermaid dependency map of all skills with change detection, per-category drill-downs, and enabled overlay
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Audit every enabled skill's upstream file dependencies for staleness — flags chained skills about to consume yesterday's article or a long-dead topic file
Audit .github/workflows and composite actions with zizmor + actionlint, classify findings against the prior audit, auto-fix Critical/High regressions, and open a PR only when something actually changed.
Weekly API cost report — computes dollar costs from token usage, flags anomalies, forecasts burn, and prescribes concrete optimizations
Weekly partial-correlation of compute economics against a Hyperliquid macro basket — DePIN-token proxy track runs every week (n>180d), sweep-P&L track defers until n≥30 joined days
Score frontier LLMs (Claude, GPT, Gemini, DeepSeek, Grok) on a private compute-markets task corpus, track score deltas across releases, flag public-vs-private divergence
Save a note as one or more atomic notes under memory/notes/ (and optionally Supernotes). Splits bundled inputs into separate atomic files.
| name | Skill Dependency Graph |
| description | Generate a navigable Mermaid dependency map of all skills with change detection, per-category drill-downs, and enabled overlay |
| var | |
| tags | ["meta","dev"] |
${var} — Output path override. If empty, writes to
docs/skill-graph.md.
Today is ${today}. Generate a navigable, decision-ready Mermaid map of all Aeon skills. Skip notify and PR when nothing changed.
Build an input fingerprint:
{
sha1sum aeon.yml skills.json
for f in skills/*/SKILL.md; do
awk '/^---$/{n++;next} n==1{print FILENAME": "$0}' "$f" # frontmatter only
grep -hE '^depends_on:|^- skill:|consume:|parallel:|trigger:' "$f" || true
grep -hoE 'memory/(topics|state)/[a-zA-Z0-9_.-]+' "$f" | sort -u
done | sha1sum
} > /tmp/skill-graph.fingerprint
Compare against memory/topics/skill-graph-state.json (key input_fingerprint). If identical:
## skill-graph block to memory/logs/${today}.md: SKILL_GRAPH_NO_CHANGE — N skills, identical fingerprintIf state file is missing → mode = SKILL_GRAPH_NEW. Otherwise → mode = SKILL_GRAPH_OK.
Explicit edges:
aeon.yml → per-skill enabled, schedule, var, model; chains: blocks (steps:, consume:, parallel:); reactive: blocks (trigger:, on:, when:)skills/*/SKILL.md → frontmatter name, tags, depends_on: arrayDerived edges (this is the leverage):
memory/topics/*.md and memory/state/*.json references. Classify as write if surrounding 3 lines match (write|save|append|>|update)\b.*(topics|state)/, else read. A write→topic from skill A and a read→same topic from skill B yields a shared-state edge A -..-> B.research writing to articles/*.md (or having articles/ in their output description) → automatic content-pipeline edges to syndicate-article, rss-feed, update-gallery.memory/cron-state.json — collapse this into a single legend note rather than 90 edges to heartbeat/skill-health/skill-repair.skills.jsonUse skills.json as the canonical category map (research, dev, crypto, social, productivity). For skills not in skills.json, fall back to the first matching tag.
Before writing any Mermaid, validate:
[label] declaration has matching bracketsA --> B references nodes declared in some subgraphclick X "..." directive references a declared node and a path that exists on disksubgraph and closes with endIf any lint check fails → mode = SKILL_GRAPH_ERROR, abort write, notify with the failing rule, exit.
Write to docs/skill-graph.md (or ${var}). Structure:
Auto-generated by skill-graph on ${today}, current modeARCHITECTURE_OK (no structural change) / NEW_SKILLS: a, b / RETIRED_SKILLS: c / NEW_DEPS: A→B, ... / NEW_ENABLED: xdocs/skill-graph.md: added/removed nodes, added/removed edges, enabled-state flips. Skip section on SKILL_GRAPH_NEW.flowchart LR with 5 category subgraph boxes (no inner nodes) + cross-category edges + edge counts as labelsflowchart LR showing heartbeat → skill-health → skill-evals → skill-repair → self-improve with the shared cron-state.json as a labeled state nodeflowchart LR per category. Inside: all nodes for that category, intra-category edges as solid/dashed/dotted, cross-category dependencies shown as faded :::external ghost nodes pointing into a side clusterclick slug "../skills/slug/SKILL.md" (Mermaid renders as hyperlinks on github.com). The first argument is the Mermaid node ID, so use the hyphenated skill slug as the ID throughout (e.g. skill-health[skill-health], not skill_health[skill-health]). Underscore IDs in one diagram with hyphenated targets in another silently break the click-binding.class slug enabled (bold border, schedule annotation in label) for skills with enabled: true; class slug disabled (faded grey) for the rest. Class definitions:
classDef enabled fill:#fff,stroke:#000,stroke-width:2px,color:#000
classDef disabled fill:#f5f5f5,stroke:#bbb,color:#888
classDef external fill:none,stroke:#bbb,stroke-dasharray:3 3,color:#888
--> depends_on, -.-> consume, -..-> reactive/shared-state); enabled vs disabled visual; click-to-source noteskills parsed: N · depends_on: X · consume: Y · reactive: Z · shared-state derived: W · enabled: E/N · mode: SKILL_GRAPH_{OK,NEW,NO_CHANGE,ERROR}if ! grep -q 'docs/skill-graph.md' README.md; then
# insert under "Skills" header if present, else append
...
fi
Never re-insert. Never reformat existing lines.
Write memory/topics/skill-graph-state.json:
{
"generated_at": "${today}",
"input_fingerprint": "<sha1>",
"skills_total": 96,
"enabled_count": 1,
"edges": { "depends_on": 4, "consume": 4, "reactive": 1, "shared_state": 12 },
"node_list_sha": "<sha1 of sorted slugs>",
"edge_list_sha": "<sha1 of sorted edge tuples>"
}
Used next run for change detection (step 1).
git checkout -b skill-graph/${today} 2>/dev/null || git checkout skill-graph/${today}
git add docs/skill-graph.md memory/topics/skill-graph-state.json README.md
git commit -m "docs(skill-graph): regenerate map (${verdict_one_line})"
git push -u origin skill-graph/${today}
gh pr create --title "docs(skill-graph): ${verdict_one_line}" --body "..."
PR body includes: verdict line, what-changed diff, summary table, source-status footer.
SKILL_GRAPH_NO_CHANGE → no notify (already exited at step 1)SKILL_GRAPH_NEW → notify: *Skill Graph initialized* — ${N} skills mapped across 5 categories. PR: ${url}SKILL_GRAPH_OK → notify only if verdict is not ARCHITECTURE_OK: *Skill Graph updated* — ${verdict_one_line}. PR: ${url}SKILL_GRAPH_ERROR → notify: *Skill Graph FAILED* — lint: ${rule}. No PR opened.Append to memory/logs/${today}.md:
### skill-graph
- Mode: SKILL_GRAPH_{OK|NEW|NO_CHANGE|ERROR}
- Verdict: ${verdict_one_line}
- Skills: ${N} (enabled: ${E})
- Edges: depends_on=${X}, consume=${Y}, reactive=${Z}, shared_state=${W}
- PR: ${url or "—"}
- Source-status: ${footer}
No external APIs needed — all inputs come from local files. Standard git + gh CLI for branch/PR creation (already authenticated via GITHUB_TOKEN).
memory/topics/skill-graph-state.json — auto-created on first run; safe to delete to force a full regeneration (next run will fall through to SKILL_GRAPH_NEW).SKILL_GRAPH_ERROR rather than commit a broken diagram.SKILL_GRAPH_NO_CHANGE is the most common path on a stable architecture and must be silent — no PR, no notify, just a log line. Operator trains to trust the silence.../skills/X/SKILL.md from docs/skill-graph.md) so they resolve on github.com.aeon.yml only — never infer from cron-state or recent runs (a skill can be enabled but not yet run).every skill writes cron-state.json into N edges — collapse into one legend note. The graph is a map, not an audit log.