Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/rishi4792/compass/contractnpx skills add Rishi4792/compass --skill contractgit clone --depth 1 https://github.com/Rishi4792/compassWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00086 | $0.08616 |
| Opus 5 | $0.00043 | $0.04308 |
| Sonnet 5 | $0.00017 | $0.01723 |
| Haiku 4.5 | $0.00009 | $0.00862 |
Grade A, and why
contract scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 225 lines — stays where its author put it; the contents beside it link to each section on GitHub.
compass:contract
The contract is the single source of truth — the invariant every later step is checked against. A vague contract guarantees drift. Interview until airtight, then write contract.md. (Entry point — no prerequisite gate.)
Read these before you start. They are the standards this stage is held to, and they
live in plugins/compass/shared/ so they are the same for every stage that uses them:
shared/feynman.md— the writing standard for the reader-facing copy this stage produces.
(A standard nobody loads is not a standard. shared/MANIFEST declares who reads each file and
doctrine-wired-check.sh proves it — feynman.md sat unread for three releases while its own
first line claimed three stages loaded it.)
1. Folder, index, facets
- Create the folder with
compass.sh new-build <slug>— nevermkdir. It writes<dir>/.compass-format, the stamp that armsmode-gateandredfirst-check. That stamp is deliberately a file the contract stage cannot author: an earlier design used acompass-format:header, the model wrote it, and omitting one line disarmed the gate. A dir made by hand is refused bycontract-gateat the first seam. - Then populate
<state-root>/<slug>/(resolve<state-root>viacompass.sh state-root). Write the slug to<state-root>/CURRENT(a non-authoritative hint only — resume disambiguates by worktree, not this file); append to<state-root>/INDEX:<slug> · <goal> · status=draft · facets=<…> · touches=<rough paths, refined by plan>. - Isolation (REQUIRED iff this build may run in PARALLEL and touches DB schema): declare
isolation.db_provisionandisolation.db_teardownshell commands that stand up / tear down a per-worktree database (e.g. a fresh Postgres schema, emitting itsDATABASE_URLinto the worktree's.env.compass). Without this,compass.sh check-db-isolationREFUSES a schema-touching parallel build — concurrent migrations on one shared dev DB corrupt the migration history. Mark N/A for single-build or no-schema builds. schema-touching: yes|no(REQUIRED, v0.7.0): a header field declaring whether this build changes DB schema.yes→ build/review-build/ship runcompass.sh migration-gate(STRICT: a real migration in the deploy's canonical dir must reproduce the schema on a fresh DB;db execute/hand-apply, stray dir, or replay-fail = FAIL). For non-Prisma tools add a## Migration recipeblock (canonical_migrations_dir,migrate_diff_cmd,migrate_deploy_fresh_cmd).no→ migration-gate is N/A. Silent omission = the gate refuses to run.destructive-backfill: yes|no+env-keys-referenced: <KEY … | none>(+prod-keys: <KEY …>) — machine-readable prod-safety signals (v0.15.0, REQUIRED for F-RESTORE/F-PARITY): the ship stage'scompass.sh restore-point/config-parityHARD STOPs read THESE header fields (not the prose §Rollout/§Security blocks below), so the interview MUST write them.destructive-backfill: yes— a row-rewriting/deleting backfill even whenschema-touching: no— makesrestore-pointdemand a confirmed snapshot.env-keys-referenced:names the env keys the change newly references; when it is non-none,prod-keys:names the keys prod declares, andconfig-parityHARD-STOPs on any referenced key prod lacks. Writedestructive-backfill: no+env-keys-referenced: nonefor the common case — silent omission leaves both gates with no signal, so they N/A-pass: the exact soft-pass this floor exists to kill. A NON-destructive value backfill (populates/adds without deleting) is declaredbackfill: yes|no;backfill: yes(ordestructive-backfill: yes) makescompass.sh backfill-recon-gate(v0.21) require a recordedbackfill-recon: count + checksum tie-to-sourcestep before the migration is done.schema-pin: <field-schema block-ref | N/A — <reason>>+perf-budget: <p95/peak-mem/cost literals + SLO ranges | N/A — <reason>>— machine-readable data/perf pins (v0.21.0, REQUIRED for INV-SCHEMA-PIN / INV-PERFBUDGET):compass.sh schema-pin-gate/perf-budget-gateride the contract gate seam and read THESE header lines (guard-first N/A-pass on a missing contract.md or an absent header — legacy contracts stay byte-identical). Whenschema-touching: yes, the contract MUST carry a filled field-schema block — a markdown table with columnsname · type · nullable · unit/enum · exampleplus anevolution-rules:line (web addsendpoint · method · request · response · status · error-envelope, or cites an existing OpenAPI/Prisma artifact) — or an explicitschema-pin: N/A — <reason>for a non-schema build (the plugin's own contract writesschema-pin: N/Asince it changes no runtime schema; the gate then bootstraps clean). When Scale is non-trivial,perf-budget:MUST pin literalp95latency +peak-mem+costand attach an SLO healthy-range; a bareperf-budget: N/A(no reason) FAILS — writeperf-budget: N/A — <reason>for a trivial-scale build. Also writepii: yes|no(a customer-PII / financial-record surface) andci: yes|no(the repo runs CI):pii: yesmakescompass.sh pii-gate(plan seam) require acompliance/PII:plan line, andci: yesmakescompass.sh green-ci-gate(review-build seam) require a recorded green-CI merge proof — both N/A-pass when the header isno/absent.deploy: out-of-scope — <reason>(optional): ship is MANDATORY unless this exact line is present. Without it, a build cannot reach a final state withoutcompass:ship(enforced bylifecycle-audit+ the Stop hook).- Project facets (one OR MORE — composable):
web·pipeline·library. A CRM with a data sync isweb + pipeline→ both facets' sections and verify rungs apply. (touches here is a coarse pre-filter; plan rewrites it with the real file list.) - Optional budget: token/time ceiling for the whole build (Compass surfaces "approaching budget" rather than grinding silently).
- v0.12/v0.13 headers the interview ALWAYS writes (authoring-time defaults — legacy contracts without them stay byte-identical):
post-ship-loop: on (clean 2 / cap 5)for every shipping build (opting out requirespost-ship-loop: off — <reason>); with 0+post-ship-check: <cmd>lines pinning domain checks as commands, and oneobservation-channel: <facet> = <capture command / viewport spec / digest cmd>line naming HOW the live system gets observed (declare blindness HERE — OAuth-gated/air-gapped — not at ship time). Optionalobservation: strict-designmakes design drift material without a contract cite.cold-critic: onfor every web-facet build (2×cold-GO gate at build/review-build; waive only viacold-critic: off — <reason>; optionalcold-critic-fallback: human-eyeballfor un-screenshotable apps).mode-asked: required(v0.28.0) — ALWAYS write this header. It armscompass.sh mode-gateon the contract gate seam, which then refuses a receipt whose mode line is missing or not markedasked=yes. Legacy contracts have no such header and stay byte-identical (guard-first N/A-pass).intake: co-construct-v1when the interview below ran interactively;intake: classicwhen a headless/--auto session had to fall back (an auto session NEVER authors intake.md — F-AUTODEGRADE).program: <program-name> · <phase-id>(v0.22.0, optional) — write it when this build is one phase of a multi-build program (e.g.program: compass-3-phase · build 7a). The ship stage's guardedprogram-advanceandgo/resume's next-phase offer read this header; a build with noprogram:line is byte-inert (standalone). Absent = standalone, no ledger interaction.adds-test: <yes|no>(v0.22.0) —yeswhen the build adds/changes a test; then the build receipt MUST carry a realred-green:line (the failing test + why it failed BEFORE the fix) whichcompass.sh redgreen-checkrequires (empty/placeholder FAILS).no/absent is byte-inert. Optionalmutation: <INV-id · file= · break= · red=>recipe lines letcompass.sh mutation-checkPROVE a guard's test bites.- Durability nits (v0.23.0, template defaults — legacy contracts unaffected): every contract carries a
## Glossary(domain terms → plain meaning), analternatives-considered:line (what else was weighed + why-not — the ADR trace),one-way-door:labels on irreversible steps (so a reader sees what can't be undone), and aRACI:owner line (Responsible / Accountable / Consulted / Informed). Template-presence only — no rejection gate (a contract missing them is not blocked; the interview just always seeds them so a fresh reader gets the context).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 225 lines · 86 tokens per session scan A 1c7ae9f20035
contract is a skill published in the GitHub repository Rishi4792/compass (2 stars, last pushed 8d ago), licensed MIT. It adds 86 tokens to every session and 8,616 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
chat-pet-sprite-creation
Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.
cpu-profile-analysis
Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…
agent-host-chat-contributions
Build and review cross-cutting agent-host chat behavior through lifecycle contributions. Use when adding turn lifecycle side effects, prompt or context injection, restored-history transformation, protocol-action observation, or when reviewing changes that add code to AgentSideEffects or AgentService.
auto-perf-optimize
Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.