auditing-upstream-drift

auditing-upstream-drift is a skill for Claude Code from DollarDill/beads-superpowers. It costs 44 tokens per session (6,306 once invoked), scanned B, original, MIT.

A maintainer-only checklist for auditing the beads-superpowers plugin before releases or when its upstream projects change. It covers code, tests, documentation, hooks, manifests, and integration completeness.

In plain words
What is it for?
Use it only in the beads-superpowers repository to audit upstream changes, plugin health, documentation, and release readiness.
Why use it?
It helps detect outdated dependencies, missing capabilities, broken tests, or inaccurate plugin content before release.

Skill for Claude Code

Written for Claude Code: SessionStart hook event. Also seen: mentions CLAUDE.md; mentions subagents; names the TodoWrite tool.

Needs its repository: it reads a path above its own folder, which exists only inside the repository. The line is cd tests/brainstorm-server && node server.test.js 2>&1 | tail -1 && node ws-protocol.test.js 2>&1 | tail -1 && node auth.test.js 2>&1 | tail -1 && cd ../.. && \.

Part of the beads-superpowers plugin — 22 skills, 1 agent, 1 hook shipped together

Good fit Use it only in the beads-superpowers repository to audit upstream changes, plugin health, documentation, and release readiness.

Compare 6 skills from other repositories ↓
Install

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.

Clone the repo
git clone --depth 1 https://github.com/DollarDill/beads-superpowers
agentmods
npx agentmods add skills/dollardill/beads-superpowers/auditing-upstream-drift

Made for: Claude Code.

Or install beads-superpowers, the plugin that ships this one along with the rest of its 22 skills, 1 agent, 1 hook.

Wrote 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.

agentmods badge for auditing-upstream-drift

README.md
[![agentmods](https://agentmods.dev/badge/skills/dollardill/beads-superpowers/auditing-upstream-drift/github.svg)](https://agentmods.dev/skills/dollardill/beads-superpowers/auditing-upstream-drift)
Your own site
<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.

agentmods 80×15 button for auditing-upstream-drift

Your own site · 80×15
<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>
Per session 44 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,306 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 10d ago against content hash 64c414b9c5c9, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

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
.claude/skills/auditing-upstream-drift/SKILL.md · 405 lines

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.json whose name is beads-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 closebd dolt pushgit 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

Read the full file on GitHub · 405 lines

Files

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.

Changes

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.

  1. 10d ago First seen · 405 lines · 44 tokens per session scan B 64c414b9c5c9

Subscribe to this mod's changes

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.

Related

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.

restarter/lets-workflow · 137 tokens

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.

restarter/lets-workflow · 112 tokens

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.

theam/claude-dev-kit · 59 tokens

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.

KtKID/x-dev-pipeline · 140 tokens

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.

KtKID/x-dev-pipeline · 55 tokens

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.

theam/claude-dev-kit · 52 tokens