Graph-first mental models for pipelines, call chains, and cross-module flows. Use when explaining architecture, tracing business flows, mapping functional areas, or answering "how does X connect to Y?" — never reconstruct structure from grep.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add ReidenXerx/bearing --skill bearing-imaging --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Bearing Imaging?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/reidenxerx-bearing-imaging)More formats (shields.io, HTML) on the badges page.
---
name: bearing-imaging
description: >-
Graph-first mental models for pipelines, call chains, and cross-module flows.
Use when explaining architecture, tracing business flows, mapping functional areas, or
answering "how does X connect to Y?" — never reconstruct structure from grep.
---
# GitNexus Imaging (graph-first thinking)
<!-- BEGIN GENERATED: graph-uncertainty — bearing regenerates this block; edits here are replaced on update -->
## The graph can be wrong
A zero is not absence; a near-0.5 `r.confidence` edge is a lead, not proof (~92% of `USES`); a count
can be a floor — `impact` says which in `epistemic`. Before a conclusion that matters, confirm with a
scoped `Grep` (allowed here, not a gate violation) and say which check you ran.
<!-- END GENERATED: graph-uncertainty -->
Use this when the task needs **structure in your head**, not a single symbol lookup.
**Output contract:** cite a **process** or **cluster** for any cross-module flow. If none is found,
or the result looks wrong, say so, verify classically, and say why in one sentence.
## Thinking modes → tools
| Mental model | Tool | Instead of |
| --- | --- | --- |
| Business flow ("request → handler → storage") | `query` → **processes** | reading five files linearly |
| Call chain ("who calls X?") | `context` (incoming CALLS) | `Grep("X")` |
| Module map ("what lives in area Y?") | `READ clusters` → `cluster/{Area}` | a broad Glob on `src/` |
| Pipeline step trace | `READ process/{name}` | following imports by hand |
| Blast radius | `impact` + `detect_changes` | grepping for callers |
| Field / data flow | `cypher` with `ACCESSES` | grepping the field name |
Every recipe starts by READing `gitnexus://repo/__GITNEXUS_REPO__/context` for staleness. Stale →
refresh first (`bearing:agent-refresh`); hooks block runtime edits until it is fresh.
---
## Recipe 1 — explain a pipeline / business flow
**Trigger:** "How does X work?", "Explain the <feature> pipeline", "What happens when I run Y?"
```
1. query({ search_query: "<feature or pipeline name>",
task_context: "<user question verbatim>",
goal: "find execution flows and entry symbols" })
2. Pick the top 1–3 processes
3. READ gitnexus://repo/__GITNEXUS_REPO__/process/{name} for each
4. context({name}) on entry + hub symbols — 2–4 symbols, not every leaf
5. Read source ONLY at the lines context/process cited, with offset/limit
```
Answer as: flow name → entry symbol → steps → hub symbols → modules touched. Cite `file:line`.
---
## Recipe 2 — map a functional area
**Trigger:** "What's in area X?", "Map the <area> module"
```
1. READ .../clusters → READ .../cluster/{AreaName}
2. query({ search_query: "{AreaName} entry points", goal: "entry symbols" })
3. context on 2–3 entry symbols the cluster lists
```
`cohesion` measured 0.04–0.98 across one repo's clusters — a low-cohesion cluster is a naming
accident, not a module. Read it before you describe the area as one.
---
## Recipe 3 — trace a call chain
**Trigger:** "What calls X?", "Trace from CLI to core"
```
1. context({ name: "X" })
2. Walk incoming CALLS at depth 1 — do not grep
3. Note which processes each caller belongs to
4. READ process/{name} for step order
```
Stop at process / cluster boundaries, not every leaf. `trace` answers A→B in one call instead of
3–8 manual hops, and reports the furthest reachable node when no path exists.
---
## Recipe 4 — trace a data field
**Trigger:** "Who reads/writes `<field>`?", "Where is `<field>` consumed?"
```
1. READ .../schema (if unfamiliar with cypher)
2. cypher — ACCESSES edges with reason read/write on the field name
3. context on writers first, then readers
4. detect_changes if the field changed in WIP
```
`impact` excludes `ACCESSES` by default, so pass
`relationTypes: ["CALLS","IMPORTS","ACCESSES"]` when editing a field or "no callers" means "no
callers that aren't field reads".
---
## Recipe 5 — cross-module spine
**Trigger:** a change spanning several modules (entry → core → storage → client).
Discover the spines from the graph rather than guessing:
```
1. READ .../clusters → top functional areas
2. READ .../processes → longest / most-connected flows
3. query({ search_query: "<feature> end to end", goal: "spine processes" })
```
Then run `detect_changes` on the WIP: it surfaces cross-community blast that `impact` on a single
symbol misses. A `processType` of `cross_community` is where contracts break.
---
## Anti-patterns
- Describing a 3+ module flow from memory while the index is fresh.
- Reading whole adapter files before `query`.
- Skipping `process/{name}` when the question was "how does the flow work".
- Trusting `impact` alone on WIP — pair it with `detect_changes` for cross-module edits.
## Related
Master index `bearing-workspace` · checklists `bearing-scenarios` · HTTP routes
`bearing-api-routes`.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!