Skip to content
Back to skills

Context Graph

ASecurity

Use when looking for a value, a decision or a connection in the knowledge documents. Call this before opening a whole file.

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
ai-agentspythongogit

Works with

  • claude code

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned September 26, 2026

npx -y skills add JadeKim042386/context-graph --skill context-graph --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Context Graph?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Context Graph
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/jadekim042386-context-graph/badge)](https://www.skillsdirectory.com/skills/jadekim042386-context-graph)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: context-graph
description: Use when looking for a value, a decision or a connection in the knowledge documents. Call this before opening a whole file.
---

# Knowledge Map

When you need a value or a decision written in the knowledge documents, **ask here before
you open a file.**

## Runtime-specific script path

This skill is usable from Codex and Claude Code. Resolve the script path from
the host runtime instead of copying one platform's path into the other:

- Claude Code plugin: `python "${CLAUDE_PLUGIN_ROOT}/scripts/ask.py" --project-root . "<question>"`
- Codex installed skill: `python "${CODEX_HOME:-$HOME/.codex}/skills/context-graph/scripts/ask.py" --project-root . "<question>"`
- Codex repository checkout: `python context-graph/scripts/ask.py --project-root . "<question>"`

The same rule applies to `build_map.py`. If the host project exposes neither
path, reinstall this skill from the GitHub repository; do not fall back to a
different project's global map.

## How to use it

    # Claude Code plugin
    python "${CLAUDE_PLUGIN_ROOT}/scripts/ask.py" --project-root . "<question>"
    # Codex installed skill
    python "${CODEX_HOME:-$HOME/.codex}/skills/context-graph/scripts/ask.py" --project-root . "<question>"
    # Codex or repository checkout
    python context-graph/scripts/ask.py --project-root . "<question>"

Use the same runtime-specific prefix for `--path`, `--explain`, `--chain`,
and `--conflicts`.

Before retrieval, inspect `--project-root . --binding-only`. Missing or mismatched
binding means stop and report `unverified`, not use the global config. For a
non-mutating lexical probe, use `--project-root . --read-only "<question>"`.
Read [project-binding.md](references/project-binding.md) for the required local
config/map contract and migration boundaries. Creating config or rebuilding a map
is a separate authorized operation; do not do it merely to make a probe pass.

## Order of work

1. Decide what you are asking about — knowledge we wrote goes here, code goes to the code map.
2. Ask **in the language the document you want is written in**. A question in another language
   reaches only the notes written in that language, and mostly returns near-misses.
3. Ask **narrowly**. Follow the three rules below.
4. The answer carries the statement with its file and line number. That is usually the end of it.
5. Open the lines around it only when you need to confirm. **Do not open the whole file.**
6. If three or more places need looking at, delegate and take only the conclusion.

## Three rules you must follow

- **Ask in the language the document you want is written in.** Matching is on the words as
  they are written, so a question in another language reaches only the notes in that
  language. It is not silent about it - it returns whatever it can find, and most of that is
  a near-miss. If a value is written in an English note, ask for it in English.
- **The answer is capped in characters** (`answer_budget`, 8,000 by default). Statements are
  dropped whole from the back, never cut in the middle, and the count of what was dropped is
  printed at the end. **A dropped count means you asked too broadly** - it does not mean the
  documents hold nothing more.
- **Ask narrowly.** A question after a single value comes back short and costs less than
  opening the file. A question that sweeps a whole topic fills the cap and reports what it
  had to leave out, which tells you less than reading one note whole. To sweep a topic, hand
  it to a subagent and take only the conclusion.

## Refreshing

Asking does not refresh anything. A configured refresh must pass `--project-root`
and a valid binding. Legacy hooks without these now stop as unverified; their
migration and actual host delivery require separate validation. If the map lags
the documents, the answer says so and names what changed.

Files in this skill

  • SKILL.md3.1 KB
  • scripts/ask.py40 KB
  • scripts/build_map.py19.8 KB
  • scripts/config.py1.6 KB
  • scripts/conflicts.py12.3 KB
  • scripts/parse_html.py2.8 KB
  • scripts/parse_markdown.py6.1 KB
  • scripts/score.py6.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…