- Skill ID
- akillness/jeo-skills/graphify
- Publisher
- akillness
- Repository
- jeo-skills
- Installs
- 0
- Files
- 8
- Requires
- >
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
akillness/jeo-skills/graphifyInstalls these files- SKILL.md
- SKILL.toon
- evals/evals.json
- references/build-and-fallback-recipes.md
- references/cli-command-map.md
- references/install-matrix.md
- references/mode-packets-and-route-outs.md
- scripts/patch_wikilink.py
What this skill tells the agent
Graphify
Graphify is a CLI. The primary path for every request in this skill is a real graphify … command, not a slash command and not an improvised Python script.
Use this skill when the main question is "which graphify command answers this, over what scope, and what should we read next?"
The job is to:
- classify the request into one graph packet,
- choose one CLI mode,
- scope the corpus before runtime or token cost explodes,
- report artifacts and any degraded output truthfully,
- route search-only, wiki-only, or project-memory work to the right neighboring skill.
Read references/cli-command-map.md for the full command surface with real flags. Read references/install-matrix.md before installing anything — especially for jeo / jeopi / gjc / opencode. Read references/mode-packets-and-route-outs.md for an unfamiliar request, and references/build-and-fallback-recipes.md when native extraction is weak.
CLI quickstart
pip install graphifyy # PyPI package is graphifyy; the binary is graphify
graphify --version
graphify scope # what would actually be graphed?
graphify update . # build -> .graphify/graph.json + .graphify/GRAPH_REPORT.md
graphify summary # hubs, communities, representative nodes
graphify query "where is auth enforced?" --budget 1500
graphify explain <node> # one node, plain language
graphify path <source> <target> # shortest path between two nodes
graphify tree <node> --depth 2 # local neighbourhood
graphify export html # -> .graphify/graph.htmlThree facts that keep answers truthful:
- `graphify build` does not exist. The build command is
graphify update.graphify build --helpsilently falls through to the root help. - State lives in `.graphify/`, not
graphify-out/.graphify-out/is the legacy layout;graphify migrate-statemoves it. Every--graph <path>flag defaults to<cwd>/.graphify/graph.json. - `graph.html` is not produced by `graphify update`. It comes from
graphify export html.
When to use this skill
- The user explicitly wants
GRAPH_REPORT.md,graph.json,graph.html, a codebase graph, or a persistent knowledge graph - The request is about repo/corpus structure, relationship tracing, path queries, or architecture discovery that should survive the current session
- The corpus mixes code, docs, PDFs, notes, or screenshots and the user wants one durable structure layer
- The user wants to refresh, query, or explain an existing graph instead of re-reading raw files
- The user wants change-aware review context, affected execution flows, or risk scoring for a diff or PR
- The user wants Graphify installed into jeo, jeopi, gjc, opencode, Claude, Codex, Gemini, or another supported agent
When not to use this skill
- Only needs to find a symbol, file owner, config location, or reference chain →
codebase-search - Wants a persistent markdown knowledge base or filed research notes →
llm-wiki - Wants project/repo memory, manifests, or cross-agent handoff packets →
opencontext - Needs dependency-only JS/TS analysis or a quick repo tree diagram, not a durable graph
- Generic GraphRAG / text-KG architecture talk with no concrete Graphify ask
Install for jeo / jeopi / gjc / opencode
graphify install [platform] accepts exactly these ids: claude, codex, gemini, opencode, aider, copilot, claw, droid, trae, trae-cn, hermes, kimi, kiro, antigravity, antigravity-windows, vscode-copilot-chat, windows, vscode.
`jeo`, `jeopi` and `gjc` are not platform ids — graphify install jeo will fail the same way graphify install agents does (error: unknown platform). Per this repo's setup-all-skills-prompt.md, those three discover the shared ~/.agents/skills root natively, which the unconditional universal id populates. So:
# CLI for everyone
pip install graphifyy && graphify --version
# skill into the shared root that jeo, jeopi, gjc and sst/opencode all read
npx skills add https://github.com/akillness/jeo-skills --skill graphify -a universal
ls "${SKILLS_ROOT:-$HOME/.agents/skills}/graphify/SKILL.md"
# optional: opencode plugin + tool.execute.before hook (sst/opencode only)
graphify install opencode # or: graphify install opencode --projectgraphify install opencode --project writes .opencode/skills/graphify/SKILL.md, .opencode/plugins/graphify.js, .opencode/opencode.json, and an AGENTS.md section. graphify install claude --project writes .claude/skills/graphify/SKILL.md, .claude/settings.json PreToolUse hooks, and a CLAUDE.md section.
The archived Go opencode-ai/opencode TUI has no skill loader — graphify install opencode will not surface the skill there; bridge it as a command file or just use the CLI. Full detail: references/install-matrix.md.
Instructions
Step 1: Normalize the request into one packet
repo-structure-packet— map a codebase or subsystem before editingrelationship-trace-packet— answer a path/query/explain question from an existing graphmixed-corpus-memory-packet— build durable structure across code + docs + assetsreview-diff-packet— produce review context or affected flows for changed filesinstall-packet— get Graphify into an agent for always-on userefresh-or-fallback-packet— update an existing graph, recover from weak output, or fall back
Start from the packet the user already has. Do not force every request through a feature tour.
Step 2: Pick one CLI mode
| Mode | Primary commands | |||||
|---|---|---|---|---|---|---|
cli-build | graphify scope → graphify update . | |||||
cli-query | graphify summary → query / explain / path / tree | |||||
cli-export | `graphify export html\ | wiki\ | obsidian\ | svg\ | graphml\ | neo4j` |
incremental-refresh | graphify check-update → graphify update / watch / hook install | |||||
review-context | graphify review-context / affected-flows / detect-changes | |||||
agent-serve | graphify serve (stdio MCP server for graph.json) | |||||
install | graphify install <platform> or the ~/.agents/skills route | |||||
structural-fallback | build the smallest truthful structural graph when native extraction is empty or misleading |
Name one primary mode. Mention at most one fallback.
Step 3: Scope before spending
Run graphify scope first on anything unfamiliar. Good defaults:
- repo root only when repo-wide architecture is genuinely the ask
src/,app/,packages/<pkg>/, or one service directory for implementation workraw/,docs/, or a mixed research folder for corpus graphing- an existing
.graphify/when the job is query/refresh rather than rebuild
Use --scope auto|committed|tracked|all and .graphifyignore instead of hoping runtime behaves. If the request is really locate/reference, route to codebase-search.
Step 4: Run the narrowest command set
Keep it to the commands the mode needs. Do not chain a build, an export, a wiki, and a watch loop when the user asked one question.
Step 5: Report degraded output honestly
Verified behavior: with no LLM API key configured, graphify update . still writes graph.json and GRAPH_REPORT.md, but prints:
[graphify label] warning: community labeling failed (...); using Community N placeholders.
[graphify describe] description generation failed (...); continuing without descriptions.When that happens, say the graph is structurally complete but unlabeled/undescribed, and offer graphify update --fill-missing once a backend is configured. Never present placeholder
More from akillness
Use this skill in a project
Open any RiverX project, search the Skills panel for akillness/jeo-skills/graphify, and install it in one click.
