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 commands/procoders/superpowers-v/v-preferencesgit clone --depth 1 https://github.com/procoders/superpowers-vWhat 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.00120 | $0.01316 |
| Opus 5 | $0.00060 | $0.00658 |
| Sonnet 5 | $0.00024 | $0.00263 |
| Haiku 4.5 | $0.00012 | $0.00132 |
Grade A, and why
v-preferences 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 — 78 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are managing Compound V decision preferences — the maker's OWN dated past reasoning at a brainstorm fork. This is memory + challenge, not a clone: it recalls "you decided X before" only to trigger re-examination, always paired with a divergent counter-move — never "reason as the creator", never a pre-selected default. It has no routing influence. Every subcommand here is read-only-ish observation and LOCAL model management; the live fork surface is wired into the elicitation driver, not this command.
Split storage (state it honestly):
- The raw
decisions.jsonl— the full free-textwhy+ question context, the PII-prone part — lives LOCAL under~/.claude/compound-v/preferences/and is NEVER committed / never shipped. It is purgeable. - The distilled
preferences.mdlives in-repo atdocs/superpowers/preferences/preferences.md, git-tracked and V-memory-indexed (recallable via/v:remember) — the "all in one memory" path. It is secret+PII-scrubbed atdistilltime before it is written, so the committed copy carries no flagged token (the honest caveat: the scrubbed distillate DOES ship with the plugin).
Deterministic mechanics live in scripts/compound-v-preferences.py
(pure stdlib, --selftest-gated). Anti-ruflo: counts only ("4/5 similar forks"), never a fabricated
confidence %; drift + staleness are surfaced, never hidden.
Args: {{args}} — one of stats (default) · distill · show · purge.
Branch on {{args}}
-
stats(default) — per-pattern override/disagreement rates plus demoted/expired flags, from the LOCAL log:python3 scripts/compound-v-preferences.py statsRender each pattern's dominant choice with its sample size (counts only), the recency-weighted last-K disagreement (
N/M diverged, not an all-time ratio), and anydemoted(your reasoning here may have shifted → stops surfacing) orexpired(past the staleness window → stops surfacing until refreshed) banner. Never print a%confidence. -
distill— regenerate the in-repodocs/superpowers/preferences/preferences.mdfrom the LOCAL jsonl, secret+PII-scrubbed before write:python3 scripts/compound-v-preferences.py distill --repo .Only unprompted rationales appear as "your reasoning" — a
borrowed(candidate-tapped) why is excluded. Print the written path + pattern count. Commit the result so V-memory can index it (then it surfaces via/v:remember); re-index with/v:memory-refresh. -
show— print the current distilled model (the committed, scrubbed in-repo view):cat docs/superpowers/preferences/preferences.mdIf it is absent, say so and suggest running
distillfirst.distillalways writes the in-repopreferences.md— a placeholder (_No decisions captured yet._) when the local log is empty, or the distilled, PII-scrubbed pattern model once decisions exist. This is the shared, aggregated model — the raw per-decision log (local~/.claude) is never shown here. -
purge— wipe the LOCAL rawdecisions.jsonlin one command. State that it is IRREVERSIBLE (per the base rule for destructive actions — say WHY and confirm intent before running): it deletes the full free-text history under~/.claude/compound-v/preferences/. The already-committed distillate is untouched.python3 scripts/compound-v-preferences.py purge
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 · 78 lines · 120 tokens per session scan A a43d903f5ec7
v-preferences is a command published in the GitHub repository procoders/superpowers-v (35 stars, last pushed 3d ago), licensed MIT. It adds 120 tokens to every session and 1,316 once invoked, about $0.0006 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-30.
Other commands, from other repositories
deepen
Spare-budget design pass. Make one shallow module deep — smaller interface, behavior held, tests green before & after.
review
Adversarial senior review of the spec before build. Refute, don't rubber-stamp. Ends in a go/no-go gate.
spec
Create, amend, or backprop bug into SPEC.md. Sole mutator of spec.
grill
Sharpen a fuzzy idea into §G/§C before spec. Calibrated interrogation, one question at a time.
init
Initialize the current repository for herdrpowers by declaring repo-specific configuration in its instruction files.
session-end
Guided end-of-session ritual. Writes structured handoff (session-handoff.md), appends progress.md entry, and offers over-budget state archival + TOC refresh + git commit.