assumptions

assumption-archaeologist

code-qualityClaude Codeby Bouwles

Summary

Finds load-bearing implicit assumptions that were never written down and records them in a living ASSUMPTIONS.md with stable IDs and a status lifecycle. Provides /assumptions:search and /assumptions:verify. Command-driven — never auto-runs.

Install to Claude Code

/plugin install assumptions@assumption-archaeologist

Run in Claude Code. Add the marketplace first with /plugin marketplace add Bouwles/assumption-archaeologist if you haven't already.

README.md

Assumption Archaeologist

A Claude Code plugin that digs up the implicit assumptions baked into your code that were never written down — "this always runs in UTC", "this list is already sorted", "the user is authenticated by the time we get here", "this value is never null" — and surfaces them as a living ASSUMPTIONS.md.

These unwritten assumptions are exactly the things that cause production bugs, and nobody documents them. This plugin documents them and tracks whether they still hold.

It is command-driven only. It never runs on a hook and never scans in the background, so it never spends tokens unless you explicitly ask.

Commands

/assumptions:search [path | --all]

Reads your code and records every load-bearing implicit assumption it finds into

ASSUMPTIONS.md. Default scope is git-changed files (git diff HEAD); pass a path to scan that, or --all for the whole repo. Read-only on your source — the only file it writes is ASSUMPTIONS.md.

"Load-bearing" means: if the assumption turns out false, you get a real bug. Trivia is skipped on purpose, so the doc stays signal-dense.

/assumptions:verify

Re-checks each assumption already in ASSUMPTIONS.md against the current code and updates its status — marks it addressed once the code guards or documents it, or

stale once that code is gone. Finds no new assumptions; only verifies existing ones.

ASSUMPTIONS.md

One living file at your repo root. Each entry:

### AA-3f9c · `src/scheduler.js` · scheduleJob()
<!-- aa:id=AA-3f9c file=src/scheduler.js hash=3f9c -->
- **Assumption:** timestamps passed in are always UTC
- **Load-bearing because:** scheduleJob() does `new Date(ts)` with no timezone — a
  local-time input fires the job hours off
- **Risk:** high
- **Status:** unverified   ·   **First seen:** 2026-06-25
- **Notes:** _none_

Edit the prose and Notes however you like. The tool keys off the hidden aa:id marker, so re-running /assumptions:search dedupes, refreshes the details, and

never clobbers your edits, status, or notes.

Status lifecycle

| Status | Meaning | | --- | --- | | unverified | just found, not yet judged | | confirmed | a human confirmed it's a real, intended assumption | | addressed | the code now guards or documents it | | stale | the assumption is no longer present in the code |

Install

From the marketplace in this repo:

/plugin marketplace add <path-or-repo-to-this-folder>
/plugin install assumptions@assumption-archaeologist

How it works

Finding assumptions is semantic work, so Claude does it (guided by the command prompts) — there is no brittle regex pretending to detect "this list is sorted". The only deterministic code (src/index.js, zero dependencies) maintains the living doc: stable content-based IDs, dedupe, the status lifecycle, and a round-trippable render that preserves your prose.

node src/index.js merge --input findings.json   # add/refresh entries
node src/index.js list --json                    # dump current entries
node src/index.js set-status --id AA-xxxx --status addressed

Test

npm test

Related plugins

Browse all →

ai-review-arena

ai-review-arena

Full AI development and business lifecycle orchestrator — multi-AI adversarial review (Claude + Codex subagents + Gemini), 3-round debate with Round 4 escalation, static analysis integration, STRIDE threat modeling, evidence tiering, adversarial red team, CSV batch review, test generation, cost estimation, and feedback-based routing

Open plugin →

claude-c-suite

kagura-plugins

Tool · Executive-team review lenses (CEO/CTO/CSO/CFO/PM/QA-Lead/DX-Lead/…) for any codebase. Single-lens /ask router plus per-role commands. (JFK-maintained; kagura-ai migration deferred.)

Open plugin →

claude-phd-panel

kagura-plugins

Tool · PhD-level review panel (CS / DB / Distributed-Systems / Data-Science / PL / Security / Statistics) for deep technical critique. (JFK-maintained; kagura-ai migration deferred.)

Open plugin →

kagura-code-reviewer

kagura-plugins

Tool · Cost-free, Ollama-first code review — multi-angle finders, adversarial verify, structured verdict.

Open plugin →

masa

masa-skill

Teach your AI coding agent the MASA (Modular Agentic Semantic Architecture) framework

Open plugin →

rust-ext-review-toolkit

rust-ext-review-toolkit

13 specialized agents and 4 commands for analyzing PyO3 Rust extensions. Tree-sitter-rust scripts detect unsafe-block soundness violations, panics crossing the FFI boundary, swallowed PyResults, #[pyclass] Send/Sync gaps, missing __traverse__/__clear__, and PyO3 version-migration debt. Includes a 'migrate' command for the Bound-API and free-threading migration checklist.

Open plugin →