Claude Code and Copilot CLI

Asks first. Checks, then ships.

Adams is a free plugin for Claude Code and Copilot CLI. It asks the open decisions first and runs quality checks before work is done.

Free · No account · No telemetry

Example session and early access

Example session, condensed
$ claude
> Build me a pricing page for my SaaS.
adams Three decisions before I build (recommended first):
adams 1. Plans: Free, Pro, Team. Recommend 3 tiers, Pro highlighted.
adams 2. Billing toggle. Recommend monthly and annual, annual default.
adams 3. Proof. Recommend real numbers only, no invented logos.
> yes to all
adams Building pricing.html ...
$ adams check pricing.html
line 4 STOCK PHRASE 1 match
line 9 ORPHAN last line, 1 word
ADAMS CHECK: FLAGGED
adams Fixing 2 hits ...
$ adams check pricing.html
ADAMS CHECK: CLEAN (1 page x 3 widths)
Automatic

What runs automatically

Gates block instead of advise. ADAMS_GATES=0 turns them off for a session.

Asks first

Asks open decisions first, again if the work drifts.

> Build me a pricing page.adams Three decisions first: 1. Plans: Free, Pro, Team

Checks on its own

Checks text, decks, PDFs, pages and Arabic before done.

$ adams check post.mdADAMS CHECK: FLAGGED$ adams check post.mdADAMS CHECK: CLEAN

Remembers decisions

Saves settled choices in a file and reloads them.

.adams/decisions.md- Plans: Free, Pro, Team- Billing: annual default- Proof: real numbers only

Align gate

Blocks the first code edit until decisions are recorded, or one assumption.

Align before editing code.Record it with:adams decide "<decision>"or --small "<assumption>"

Verify and commit gates

Blocks done until tests ran green. Blocks secrets and untested fixes at commit, and a Co-Authored-By trailer when you opt in.

Code changed since the lastgreen verification. Run npm testBlocked by the commit gate:.env is an env file,keep it out of git;A bug fix needs a regressiontest in the same commit

Seven hook events

Small local scripts that run on your machine. Four events feed the gates, and the other three only inform.

  • PreToolUseGuards git, edits and secrets
  • SubagentStartStarts the subagent time box
  • PostToolUseRecords runs, scans for tokens
  • PostToolUseFailureRecords failed runs too
  • UserPromptSubmitOne reminder per session
  • SessionStartReloads settled decisions
  • StopText check, verify, ledger, live check

Request ledger

A prompt with several asks gets a checklist. Done blocks until each ask is closed with evidence or skipped with a reason.

.adams/sessions/<session>.mdGoal: ship the pricing page- [x] Three plans, tests green- [-] Dark mode: out of scope- [ ] Annual toggle

Live check after a deploy

Blocks done after a deploy until you looked at the live URL.

$ wrangler pages deployLive URL not checked yet$ curl -s https://site.devLive check recorded

Subagent time box

Warns a subagent at 12 minutes. At 20 minutes writes stop and it verifies once, then reports.

  • 12 min warning
  • 20 min stop
  • Reads stay open
  • Verify once
Adams time box: 20 minutes.12 of 20 minutes used.Stop starting new work;finish, verify once, report.

Regression checks

A fixed defect gets a script in .adams/checks/ that fails while the defect exists. The Stop and commit gates require them like the tests.

$ adams checksFAIL hero-two-lines.shPASS price-grid.sh1 passed, 1 failed

Test and referee gates

Blocks skipped tests, silenced errors, edits to CI and thresholds, and switching Adams off.

  • Test tampering
  • Silenced errors
  • Referee edits
  • Switch-off
Adams deviation gate:it adds a skip or onlymarker to a test file.Tests are the referee:fix the code, not the test.

Scope and shell gates

Blocks writes outside the recorded scope, destructive commands, debug leftovers and oversized small tasks.

  • Scope
  • Destructive git
  • Leftovers
  • Small task limit
$ git commit --no-verifygit commit --no-verify skipsthe hooks that guard therepo. Fix what the hookreports instead.

Secret leak guard

Blocks a keychain read, a .env reader, bare env and an echo of a secret variable, and shows the captured form instead.

$ echo "$STRIPE_KEY"Would print a secret. Use:X=$(...) && test -n "$X"

Output scanner

Warns when a token appears in tool output. It stores a fingerprint, never the value.

Token seen in tool outputFingerprint 3f9a1c2b7d40Rotate it. Value not stored.
On its own

Works on its own

Guidance and checks that start without a prompt.

Context router

Fixed rules, no AI, no network. Each rule adds at most 600 characters and fires once per session.

  • Bug prompt or failing test runReproduce, minimise, regression test
  • Edit in an auth, token or .env pathSecurity checklist
  • Edit that adds a dependencyDoes the platform cover it? Cost?
  • Edit to a UI fileadams check at 375, 768, 1440
  • First source edit, no test yetOne failing test first
  • Edit to published copyMinimum effective edit
  • I do not understandRestate short and plain

Stress mode

On a page or URL, adams check also makes a copy with worse content and reports STRESS where the layout breaks.

  • long-textTwice the words
  • long-tokenA 40 character unbroken string
  • big-numbers9-digit numbers
  • emptyBlanked lists
  • Sideways scroll
  • Text overflow
  • Clipped text
  • Overlap

Runs at 375 and 1440. Skip it with -- --no-stress.

Commit review gate

The first commit of a session that stages source is denied once. After the review, the retry passes.

Blocked by the commit gate:Review before commit:correct, safe, holds underload, tested, fast, lean

Feature test gate

A feat, add or implement commit that stages source must stage a test file too, like a fix.

$ git commit -m "feat: tax"Blocked by the commit gate:A new feature needs a testin the same commit

Faster page checks

Pages are scanned in parallel, measured 2.6 times faster on a 30 page crawl. A rerun looks only at what was flagged.

  • --jobsScan pages in parallel
  • --failedRescan only flagged pages
  • CAUSESHits grouped by selector
  • PARTIALA partial rerun is never CLEAN

Measure sessions

Run adams stats to read your session transcripts. It only reads. Compare before and after a change.

  • Calls
  • Context size
  • Agent minutes
  • Corrections
$ adams statsapi calls 2536 | context p90 451kagents: 164, 2984 min totalquality: corrections 40
Scheduled

Scheduled housekeeping

Disk space back and secret leaks flagged, without printing a value.

adams clean

Frees disk space without risk. Only regenerable, unused files move to the Trash, and you approve branches and worktrees by number.

  • HourlyCleans at once below the free-space floor
  • NightlyRegenerable files go to the Trash
  • WeeklyA list you approve by number
  • Dry runShows the plan and changes nothing

adams schedule

Four launchd jobs run both for you. Install, uninstall and status, with a dry run.

  • HourlyFree disk space check
  • NightlyClean up, look for .env copies
  • DailyPublic repository check
  • WeeklyApproval list, every check

adams hygiene

Report-only security checks. A finding shows a fingerprint, never the value.

  • Stray .envCopies left in worktrees
  • Public reposRepos that should be private
  • Token scopesScopes beyond what you need
  • Shell historyTokens in history files
  • Supply chainUnpinned package sources

Safe by design

Cleanup touches only files on a fixed list. Each one moves to the Trash with a log line, so nothing is lost.

  • Allowlist onlyNothing else is ever a candidate
  • No symlinksA link is never followed
  • In-use checkOpen files are skipped
  • Protected foldersRepo roots, builds and .env folders stay
  • Trash and logAn adams- name and a JSON line each
Ship loop

Ship the work of a session

Needs the gh CLI. Nothing runs until you call it.

One command: /ship

Commits this session's files by name, opens the PR and merges when the fast checks pass. Marks the task done.

  • High risk asks
  • No force push
  • No admin merge
  • Needs gh
$ /shipShipped: committed 3 files;#12 T-004 a1b2c3d4Left: none

Tasks that run in parallel

One pull request per task. Dependencies decide what can start, and risk tiers decide what waits for you.

  • adams nextTodo tasks that can start now
  • adams watchYour open PRs with risk tier
  • adams ship PRMerge one PR, mark its task
  • adams track setSet a task status in place
Evals

Measured, not claimed

Eval scores with and without Adams, and a real-task scorecard.

Score per case, 0 to 1

With AdamsWithout Adams
  1. Vague pricing page
    With Adams 1.00
    Without Adams 0.00
    Gain +1.00
  2. HTML change
    With Adams 1.00
    Without Adams 0.00
    Gain +1.00
  3. LinkedIn post
    With Adams 1.00
    Without Adams 0.40
    Gain +0.60
  4. Arabic text
    With Adams 1.00
    Without Adams 0.60
    Gain +0.40
  5. Stop gate
    With Adams 0.62
    Without Adams 0.25
    Gain +0.37
  6. Plan breaks
    With Adams 1.00
    Without Adams 1.00
    Gain +0.00
  7. Tiny typo fix
    With Adams 1.00
    Without Adams 1.00
    Gain +0.00
  • Guards

    Plan breaks and tiny typo fix pass either way on purpose: regression guards.

  • Variance

    Stop gate varies: one run skipped the check.

  • Method

    Measured with claude plugin eval, 2 runs per case.

Real-task scorecard

1 run

Eight programming tasks in throwaway git repos, run with a real Claude Code configuration and scored by hidden deterministic checks.

93.8recorded
100rescored
8tasks
  • Run

    One run on 2026-10-09 with Adams 2.4.0.

  • Misses

    Two tasks scored 0.7 and 0.8. Both were checker bugs, fixed in 2.4.1, and the run rescores to 100.

  • Baseline

    No without-Adams baseline yet, so this does not show a gain.

Modules

Six modules

Adams loads only the module a task needs.

01

Product principles

Judgment rules for product calls

02

Workflow

Ask first, then diagnose bugs

03

Humanize writing

Text that does not read as AI

04

Line balance

No orphan words, equal cards

05

Visual QA

Visual checks before delivery

06

Senior frontend

Next.js, Supabase and Stripe code

Optional: adams-extras

Three modules most projects never need live in a second plugin, so the core skill stays small.

  • Innovation builderWordPress HTML block canvases
  • SEO architectStatic SEO sites and AI search
  • Obsidian memoryAn Obsidian vault as memory
Cost

Token cost

Figures from claude plugin details.

~223 tokens

Always on, in every session

~2k tokens

When Adams is invoked on a task

Hooks make no network calls except a daily release check on manual installs.

Start with early access.

Free, no account and no telemetry.