Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/DollarDill/beads-superpowersnpx agentmods add skills/dollardill/beads-superpowers/auditing-upstream-driftWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/dollardill/beads-superpowers/auditing-upstream-drift)<a href="https://agentmods.dev/skills/dollardill/beads-superpowers/auditing-upstream-drift"><img src="https://agentmods.dev/badge/skills/dollardill/beads-superpowers/auditing-upstream-drift/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/dollardill/beads-superpowers/auditing-upstream-drift"><img src="https://agentmods.dev/badge/skills/dollardill/beads-superpowers/auditing-upstream-drift.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What 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.1 | $0.00044 | $0.06306 |
| Opus 5 | $0.00022 | $0.03153 |
| Sonnet 5 | $0.00009 | $0.01261 |
| Haiku 4.5 | $0.00004 | $0.00631 |
Grade B, and why
auditing-upstream-drift scanned grade B with 2 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 10d 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.
Recursive force deletemediumDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
rm -rf /tmp/superpowers-upstream Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
if ! command -v curl >/dev/null 2>&1 || ! curl -sf -o /dev/null --max-time 10 "https://gastownhall.github.io/beads/"; then How it starts
The opening of the file, as written. The whole thing — 405 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Auditing Upstream Drift
Maintainer-only skill for the beads-superpowers repository — not distributed. Before doing anything else: if the current repo is not beads-superpowers (no
.claude-plugin/plugin.jsonwhosenameisbeads-superpowers), say so and STOP — this skill audits that repo against its upstreams and is useless anywhere else.
This is the quality gate for the beads-superpowers plugin. It verifies everything — upstream staleness, test pass rates, documentation accuracy, plugin manifest validity, hook functionality, content integrity, and beads integration completeness.
Iron Law: NO PLUGIN RELEASE WITHOUT A FULL AUDIT FIRST. Audit findings with security or material-risk impact are never downgraded to make a release, and phases are never skipped for a date (Production-Grade Doctrine).
When to Use
- Before any plugin version bump or release
- Monthly (or after upstream releases of superpowers or beads)
- When a user reports a skill behaves differently than expected
- When beads adds new CLI features that skills should leverage
- After any bulk refactoring of skills or tests
- After merging upstream changes
Upstream Sources
| Source | Repository | Our Baseline | What We Track |
|---|---|---|---|
| Superpowers | obra/superpowers | v6.2.0 | Skills content, new skills, hook structure, plugin manifest |
| Beads | gastownhall/beads | v1.1.2 | CLI commands, new features, bd prime format, deprecations |
Known Deliberate Divergences
These shared skills intentionally differ from upstream superpowers. When Phase 5 (Check 5.3) flags them as CHANGED, that is expected — do not revert them toward upstream. Adopt only upstream changes that don't reverse these decisions.
| Area / Skill | We do | Upstream does | Why |
|---|---|---|---|
| All shared skills | bd task tracking — beads is the ledger |
TodoWrite / markdown TODOs |
The fork's reason for existence: cross-session persistence |
| using-git-worktrees, finishing-a-development-branch | bd worktree Iron Law; reject native-tool-first selection |
native worktree tool first → .worktrees/ → raw git worktree |
native-first bypasses beads-DB sharing across worktrees (ADR-0014; audit finding #6) |
| finishing-a-development-branch | Land the Plane (bd close → bd dolt push → git push) |
no session-close ritual | core to the beads workflow |
| subagent-driven-development | beads is the durable ledger; Parallel Batch Mode kept; bd merge-slot optional |
markdown progress ledger | beads survives compaction; single orchestrator already serializes merges (ADR-0013, ADR-0012) |
| using-superpowers | Claude Code tool names + per-CLI references/ maps (trimmed to harness-specific content, superset of upstream's 3-file set) |
fully vendor-neutral tool vocabulary | we ship multi-CLI adapters, not one neutral vocabulary (ADR-0006) |
| Beads integration | CLI-only: call bd directly in skills + one SessionStart hook composing beads context (curated memories + a bd prime pointer); no beads Claude plugin or beads-mcp server |
Claude plugin + MCP server | Lowest overhead; full bd command coverage; matches beads' own "CLI + hooks when shell is available" guidance (ADR-0017) |
| brainstorming, writing-plans | stress-test (a fork-only skill) is offered at the approval gate via a 3-option "Approved + stress-test" gate folded into the upstream Approved/Needs-changes review gate | 2-option review gate; no stress-test (stress-test does not exist upstream) | stress-test is one of our 7 fork-unique skills; offering it at every spec/plan gate is intended fork behavior (ADR-0020) |
| using-superpowers + judgment/gate skills (doctrine class) | fork-only Production-Grade Doctrine: canonical ## Production-Grade Doctrine block in using-superpowers PLUS self-contained woven doctrine-floor lines (incl. the security floor) in judgment/gate skills |
no such doctrine (obra/superpowers has none) | intended fork behavior (ADR-0023/0036/0040); on re-sync PRESERVE every woven doctrine-floor line; mark SKIP, not Conflict |
| using-superpowers + question-gate skills (ask-user class) | fork-only ask-user convention: ## Asking the User block in using-superpowers, self-contained consent lines at the 3 destructive gates (finishing-a-development-branch, document-release, using-git-worktrees), adapt parentheticals on the 6 JSON gate lead-ins, quirk rows in references/{opencode,codex,pi}-tools.md |
upstream uses bare generic phrasing with no convention block (zero in-skill tool refs) | intended fork behavior (ADR-0041); on re-sync PRESERVE all four elements; mark SKIP, not Conflict |
| All shared skills (namespace) | cross-skill references use beads-superpowers:<skill> |
bare superpowers:<skill> |
upstream's bare namespace points at the upstream plugin; in our fork it must carry our plugin name or it resolves to the wrong plugin (intended; mark SKIP, not Conflict) |
| brainstorming | brainstorm session dir + auth-token files live under .internal/brainstorm/ (self-ignored) |
upstream uses .superpowers/brainstorm/ |
one canonical .internal/ scratch root (spec 2026-06-30); server.cjs unchanged — do not revert the path on re-sync |
| Codex SessionStart hook | keep it — still fires using-superpowers bootstrap + composed beads context |
v6.1.0 removed theirs ("Codex reliably triggers skills on its own, and the bootstrap hook made the UX worse rather than better") | ours also carries composed beads context injection (curated memories + a bd prime pointer), not just the skill bootstrap upstream deemed redundant (ADR-0039, 2026-07-02) |
| SessionStart matcher | `startup | resume | clear |
| writing-skills | not shipped — removed 2026-07-10 (e4w8) | ships the writing-skills meta-skill | upstream maintenance weight; Check 5.2 will list it as upstream-new — mark SKIP |
| .pi/extensions/superpowers.ts | appends composed beads context (bd prime exec) + beads-superpowers: bootstrap marker |
bootstrap-only extension | beads context is the fork's reason to exist |
test-driven-development spec-backed floor |
Fork-only design-artifact precondition before code | no design-artifact precondition | Do NOT file as "revert toward upstream" — it is the default-install design gate, pinned in KERNEL_MAP |
| .codex-plugin/marketplace.json | ships it (version-synced mirror of .claude-plugin's) | no such file | kept deliberately for Codex marketplace flows |
| OpenCode plugin | upstream's .opencode/plugins/ file as base + minimal beads graft (composer bootstrap, compaction re-injection, pointer fallback) |
superpowers.js static-bootstrap transform |
beads context is the fork's core; layout/mechanism otherwise upstream-verbatim |
| subagent-driven-development (fix rounds) | fresh implementer dispatch every fix round | resume the implementer rounds 1–3, fresh one tier up at 4–5 | resume needs an addressable live subagent — most of our supported harnesses may lack it; fresh dispatch also strengthens external-signal verification and avoids the author defending their own defect (ADR-0064) |
| subagent-driven-development (workspace) | SDD workspace, task briefs, and review packages live under .internal/sdd/<plan-basename>/ (self-ignored) |
.superpowers/sdd/<plan-basename>/ |
one canonical .internal/ scratch root (spec 2026-06-30); upstream's per-plan workspace shape adopted, path not — do not revert the path on re-sync |
| subagent-driven-development (breaker trip) | controller adjudicates nothing — findings are filed and surfaced, the user decides | controller adjudicates each open finding, may park minors | Production-Grade Doctrine: descoping authority is the human's |
| subagent-driven-development (severity) | severity preserved at the breaker; security findings block the epic and are never parkable | findings flattened into one disposition list | the reviewer's own security floor says a rationale never downgrades a regression |
| subagent-driven-development (re-review) | PASS requires the reviewer's verdict AND a green full suite | reviewer's verdict alone | a fix-diff reviewer structurally cannot see out-of-diff regressions |
| subagent-driven-development (fix context) | fix round carries only the latest report section | full prior report | full history is quadratic across rounds and re-anchors fresh eyes on failed approaches |
test-driven-development writing-good-tests.md |
fork retains three classes of source-text assertion: absence-of-defect pins (fail only if a named defect returns), security-floor pins (credential prefixes the handoff skill must redact), and CHANGE-DETECTOR presence pins (~27 explicitly-labelled pins across tests/skills/test-getting-up-to-speed-contract.sh, test-kb-triggers.sh, and test-session-handoff-contract.sh, retained under the deletion bar — a pin may go only once converted to behavioral or covered by a bead in the external cc-eval tracker). Adoption also drops upstream's (superpowers:writing-skills) parenthetical — a dead cross-plugin reference, since writing-skills isn't shipped here and a bare superpowers: namespace resolves to the upstream plugin — the file's one deliberate deviation from byte-identical |
upstream's Warning Signs forbid all source-text assertions | our shipped artifacts are prose that instructs agents, and no eval-harness consumes them yet; deleting the redaction pins would be an automatic Reject under the audit rubric's security floor, and deleting the change-detector pins on faith would convert a false alarm into false silence on real breakage. Adopt the six rules and the traps; keep these three classes. Mark SKIP, not Conflict |
| All shared skills (guardrail heading) | guardrail sections are named ## Red Flags |
v6.2.0 renamed several to ## Common Rationalizations (using-git-worktrees, requesting-code-review) |
## Red Flags is a literal alternate in scripts/check-guardrail-floor.sh's PAT; renaming a heading silently drops that skill's guardrail count and can trip — or worse, quietly relax — the floor. Adopt upstream's rows, keep our heading. Mark SKIP, not Conflict |
| brainstorming, writing-plans (companion files) | not shipped — no spec-document-reviewer-prompt.md / plan-document-reviewer-prompt.md |
still ships both files (v6.2.0, skills/brainstorming/ and skills/writing-plans/) |
orphans upstream — nothing dispatches them; upstream's own writing-plans/SKILL.md Self-Review section says self-review is "not a subagent dispatch"; upstream RELEASE-NOTES v5.0.6 (2026-03-24) records their deprecation in favor of inline self-review (~25 min subagent-review overhead vs. ~30s self-review, no measurable quality difference). Check 5.4 will list them as new companion files every audit — mark SKIP (known-dead), not missing capability |
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 10d ago First seen · 405 lines · 44 tokens per session scan B 64c414b9c5c9
auditing-upstream-drift is a skill published in the GitHub repository DollarDill/beads-superpowers (26 stars, last pushed 19d ago), licensed MIT. It adds 44 tokens to every session and 6,306 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it B with 2 findings (recursive force delete, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
goal-test
A local experiment for testing a goal command that keeps an AI coding session working until a stated condition is judged complete. It uses a separate language model to evaluate the conversation after each assistant turn.
loop-test
A local experiment for designing repeating checks with Claude Code’s loop command. It covers both fixed intervals and checks that schedule themselves again after each run.
coverage-check
Run the repo's unit tests with coverage and verify that every file touched in the current change keeps line, branch, and function coverage at or above 95%. Language- and framework-agnostic. Use before committing, before PR creation, or when the user asks about coverage.
x-qa-gate
A quality-review gate for completed development tasks. It checks the code against the request, design, tests, verification evidence, and current changes, using different review rounds for different risk levels.
x-verify
A fact-checking gate that reruns the automated checks listed for a development task and reports which checks passed, failed, or still need a person. It is one step in a larger development process.
e2e-generate
Create or update end-to-end tests for a user-facing flow that changed, using whatever e2e framework the repo already uses. Use after implementing a user story that alters UI behavior, routing, forms, or API-driven views.