Skip to main content

phoenix-context

Assemble the cheapest sufficient context for a task — route structural questions (who calls X, what breaks if I change Y, what inherits from Z) to the prebuilt code graph instead of grepping and re-reading files, and pull the relevant subgraph/snippet rather than whole directories. Use on any non-trivial codebase, before a change with unclear blast radius, or when the user says /phoenix-context or "what uses this".

설치로 이동

소스 정보

저장소
All-The-Vibes/ATV-Phoenix
최근 소스 활동
2026년 7월 20일 09:34
감지된 SKILL.md 언어
영어
스타
6
포크
4

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
type
Phoenix Skill
name
phoenix-context
description
Assemble the cheapest sufficient context for a task — route structural questions (who calls X, what breaks if I change Y, what inherits from Z) to the prebuilt code graph instead of grepping and re-reading files, and pull the relevant subgraph/snippet rather than whole directories. Use on any non-trivial codebase, before a change with unclear blast radius, or when the user says /phoenix-context or "what uses this".
license
MIT
# phoenix-context — make every token earn its place ## Overview A model has no memory between turns, so the harness re-sends the whole transcript every turn — every file you read is re-paid for on every subsequent turn. The cost that matters is not tokens *sent* but tokens *processed, summed across all turns* until the task is done. `phoenix-context` collapses that: structural questions go to a **prebuilt code graph** (the bundled TokenMasterX, `graphify`-backed), answered in one bounded query, instead of grep-and-read loops that compound turn after turn. > Pay once to understand structure, then never again. ## When to use - Any non-trivial / unfamiliar codebase. - Before a change whose blast radius is unclear ("what breaks if I change this signature?"). - During `phoenix-plan` (scope the real impact) and `phoenix-debug` (isolate the cause). - Whenever you catch yourself opening a 3rd+ file to answer a structural question. **When NOT to use:** a short, local question grep answers in ~one turn, or you already have the snippet. ## Two ways to assemble the same answer ``` GREP its way there GRAPH lookup turn 1 grep 2,000 turn 1 query graph 2,500 turn 2 read auth.py 6,000 turn 2 answer 3,000 turn 3 read server 11,000 ───────────────────────── turn 4 read handlers 17,000 TOTAL PROCESSED 5,500 turn 5 grep narrower 19,000 turn 6 read config 24,000 Same answer. turn 7 answer 26,000 19x less context processed. ───────────────────────── TOTAL PROCESSED 105,000 ← it is the AREA UNDER THE CURVE, not the last turn ``` ## Route structural questions to the graph | Question | Graph query | |---|---| | "Who calls `X`?" / reverse dependencies | `callers` (or `impact` for the transitive blast radius) | | "What does `X` call?" | `callees` | | "What inherits / overrides `X`?" | `inheritors` | | "Orient me on this unfamiliar symbol" | `explain` (or `find` to disambiguate a definition first) | | "What breaks if I change `X`?" | `impact` | The bundled TokenMasterX routing agent makes the graph the default for these. If `.token-master/graph.json` is missing or stale (empty results for symbols you can clearly see), rebuild it with `/token-master`. ## Enforce, don't just offer A graph the model never queries saves nothing. Left alone, models default to grep out of habit (in TokenMaster's own runs: 0/15 unprompted, 8/8 when routed). So: **for any "who calls / what breaks" question, reach for the graph first, on purpose.** That habit is where the token savings actually live. ## Honesty about the graph `graphify` call edges are name-inferred candidates (~0.8 confidence), not a verified call graph. Treat results as a **candidate list** and confirm a hit at its cited `file:line` before relying on it for a risky change. For precision-critical impact analysis, escalate to the AST backend (`codegraph`). State this uncertainty when it matters. ### Test-scope decisions fail closed Graph-derived test scopes are draft/exploration evidence only. Use a scoped set only when the graph is non-empty and every changed symbol is present with at least one mapped test. An empty graph, no changed symbols, an unknown symbol, or a symbol with no mapped tests requires the full acceptance suite; never run a known subset when coverage is incomplete. Ship and integration gates must always run the full acceptance suite, even when graph coverage appears complete. ## Consuming OKF knowledge bundles When the knowledge is shaped as an **OKF bundle** (a directory of markdown concepts — Phoenix's own exported code graph, or any external catalog of runbooks / datasets / decisions), route to `okf_ingest`, not grep. It is the same "pay once to orient" move: load the **index-first outline** once, then open *exactly* the concept(s) you need. ``` python skills/phoenix-okf/scripts/okf_ingest.py <bundle> # outline (cheap, once) python skills/phoenix-okf/scripts/okf_ingest.py <bundle> --query <type> # locate, no file reads python skills/phoenix-okf/scripts/okf_ingest.py <bundle> --full <path> # open one concept ``` This is proven end-to-end on a real structural question in `evals/m5-okf-live/` (a live three-turn disclosure answering "what cross-file edges does `src/heal.rs` have?"). As with the graph, the outline is paid once and reused; whole-bundle dumps are the silent token killer. INFERRED edges in an exported bundle are flagged `candidate` — same ~0.8-confidence honesty rule as above. See `/phoenix-okf` to produce, validate, and sense bundles. ## Pull subgraphs, not directories When you do need source, pull the **specific** functions/files the graph pointed to — not the whole folder "for context". Whole-directory dumps are the silent token killer; the relevant subgraph is almost always enough. ## Common Rationalizations | Rationalization | Reality | |---|---| | "Grep is simpler, I'll just search." | Grep re-reads on every turn; the graph answers once. On multi-hop questions grep costs 3–8× more processed tokens. | | "I'll read the whole module to be safe." | "To be safe" is how the context window fills with tokens you re-pay for every turn. Pull the subgraph. | | "The graph might be stale, I'll grep instead." | If stale, rebuild it (`/token-master`) once. Falling back to grep abandons the savings on every future turn. | | "Token cost doesn't matter, it's unlimited." | Even when $ is flat, tokens are a *latency* and *context-window* budget — fewer tokens = faster turns + more room for the actual task. | ## Red Flags - Opening a 3rd file to answer "what uses this?". → One graph query. - Reading a whole directory "for context". → Pull only the subgraph the graph identifies. - Trusting an inferred edge for a risky refactor without checking the source. → Verify at `file:line`, or use the AST backend. - Planning a change without querying its `impact`. → You're guessing the blast radius. ## Next Feed the precise context into **`phoenix-plan`** (scoped steps), **`phoenix-build`** (surgical edits), or **`phoenix-debug`** (isolated cause).
GitHub에서 보기