Skip to content
Agentmart
Submit a tool

grafel-graph-read

Shared grafel read protocol — status → inspect → expand.

Skill by cajasmota

IndexedMIT★ 24
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/cajasmota-grafel-graph-read

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Shared grafel read protocol — status → inspect → expand. Compose into any persona that consults the graph.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/grafel-graph-read

What's inside

Skill name
grafel-graph-read
Description
Shared grafel read protocol — status → inspect → expand. Compose into any persona that consults the graph.
License
MIT
Instructions
34 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# READ Protocol

## Step 1 — status
Call `grafel_orient (view=me)` first. Confirms the group name and which repos are indexed. If no graph is loaded, ask the user to run `grafel index <path>` first.

## Step 2 — inspect
For each entity of interest (a class, function, file path the user named):
- `grafel_inspect entity_id=<id-or-path>` returns the entity + 1-hop neighbors with line-precise CALLS/called_by edges
- `calls[].line` = line in the inspected entity's body where the outbound call appears
- `called_by[].line` + `called_by[].context` = line and ~40-char snippet in the caller's body
- `discriminators[]` (#2666) — when the entity does `var === literal` comparisons (e.g. `checklistType === 2`), each row carries `{file_line, literal, other_side}` so you can jump straight to the comparison without scanning the body. Discriminator literals are also mixed into the BM25 doc terms, so `grafel_find` queries like "checklistType 2" surface the enclosing entity.
- Use these to pinpoint call sites without calling `get_source`
- Look at the neighbors for ORIENTATION before drilling deeper

## Step 3 — expand
When you need to traverse:
- `grafel_subgraph entity_id=<id> edge=CALLS direction=incoming` for callers
- `grafel_subgraph entity_id=<id> edge=CALLS direction=outgoing` for callees
- `grafel_find name=<substring>` if you don't have an id yet

Other useful read tools to layer in: `grafel_trace` (process-flow BFS), `grafel_cross_links` (HTTP/Kafka/WS cross-repo), `grafel_orient (view=clusters)` (Louvain communities), `grafel_orient (view=modules)`, `grafel_subgraph`.

### In-app navigation (#2665)
For Expo Router / React Navigation / Next.js push-sites, two shortcuts fold the NAVIGATES_TO graph into the existing read tools:
- `grafel_endpoints(kind="navigation")` — list distinct routes, with merged `params_keys` (sorted, deduped JSON array) per route. Use this to answer "which screens take param X?".
- `grafel_related(direction="callers", "/route/literal")` — pass a literal beginning with `/`; the handler reverse-traverses NAVIGATES_TO and returns push-site callers with `file`, `line`, and per-call `params_keys`. Use this when adding a required param: callers whose `params_keys` is missing the new key are the diff candidates.

## When the READ phase is enough
Many user questions resolve at Step 2 (inspect a single entity, read the neighbors). Don't over-traverse. Three rules:
1. STOP when the entities you've seen answer the user's question
2. Don't enumerate edges past 2-hops unless the user asked
3. Prefer `grafel_subgraph` for "give me a bounded view"

From cajasmota/grafel, MIT.

More from cajasmota/grafel

Signals

Stars
24
Forks
7
Open issues
282
Last commit (this folder)
Jun 24, 2026 (4 months ago)
Last release
Sep 23, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from cajasmota

Cite this page

grafel-graph-read skill. Agent Mart. https://agentmart.dev/skills/cajasmota-grafel-graph-read (last updated 2026-10-24)