This report is interactive, and its scripts are not running here. Filtering, search, sorting and expanding a phase all need them. An IDE preview pane usually blocks inline scripts — open this file in a real browser and it will work.

ACME Store — security & correctness audit

acme-store · 7 phases · 14 tasks · 5 bugs · generated 2026-10-16 16:40 UTC · audit 3.4.0

Gate

Blocked

1 blocked task

Checks manifest validity, high-severity bugs, blocked tasks. Spend is deliberately not one of them.

Next /audit:run P2.42 more ready
6/146 tasks done · 2 of 7 phases signed off · 3 open bugs
SummaryPhase 0 (framework upgrade) was finished before this project started recording test runs, so nothing in it points at one — the test-gate column says 'Before recording' rather than 'No evidence', and the no-test-evidence gate excuses it instead of failing it. Phase 1 (auth hardening) is signed off and merged: passwords now use Argon2id and login is rate-limited. Phase 2 (input validation) is in progress with one task blocked on a shared template-escaping decision. Phase 3 (performance) is gated behind Phase 2, and Phase 4 writes down the invariants the audit relied on — documentation work, so it declares no test gate at all. Of five tracked bugs, the logout session leak (BUG-4) is fixed and the cart off-by-one (BUG-3) is being fixed red-first; no high-severity bugs remain unresolved. Phase 5 (sync worker resilience) is queued behind the storefront work, in a different part of the stack — a background Go service rather than the storefront's TypeScript — and its gate is a runner named for what it is: go test rather than npm test.
idtitlestatusriskcommitdone UTCtest gate
Active2 phases
Filter tasks by status:
P2.1Validate the checkout payloadDonemedc89ff0a142026-06-23 16:10Gate mutated the treetree mutatedchecks unknown
P2.2Sanitize the product-search queryIn progresshigh—started 2026-07-06 09:00No evidence
P2.3Escape server-rendered template outputBlockedmed—started 2026-07-13 09:15Failedno overlapchecks unknown
P2.4Add zod schemas for cart mutationsPendinglow——No evidence
Filter tasks by status:
BF1.1Fix BUG-3: cart total off-by-one with stacked discountsIn progressmed—started 2026-07-20 11:00No checks rancoverage unknown
BF1.2Fix BUG-4: logout leaves the session cookieDonehigh—2026-07-21 18:05Passed
Pending3 phases
Filter tasks by status:
P3.1Memoize the product-list selectorPendinglow——No evidence
P3.2Lazy-load below-the-fold imagesPendinglow——No evidence
Filter tasks by status:
P4.1Write down the auth and checkout invariantsPendinglow——No gate configured
Filter tasks by status:
P5.1Cap the retry backoffPendingmed——No evidence
Archived2 phases
Filter tasks by status:
P0.1Move the app bootstrap onto the new framework entry pointDonemed—2026-05-27 14:30Before recording
P0.2Port the route table to the new router APIDonelow—2026-05-28 09:40Before recording
Filter tasks by status:
P1.1Hash passwords with Argon2idDonehigh—2026-06-02 15:40Passedchecks unknown
P1.2Rate-limit the login endpointDonemed—2026-06-09 12:20Passedno overlapchecks unknown
No phase matches these filters.

Usage

4 phases · 3 people · 4 models · 5 sessions · 2026-05-26 to 2026-07-21 · rates as of 2026-08-06, the project's usage.pricing in .claude/audit.config.json; rows are priced at global routing; the ledger does not read a request's inference geo; 0 row(s) at the rate stamped when written, 232 priced again at the rate in effect on their date

tokens
90.3M-64%
1,282 messages
equivalent cost
$102.60-3%
not a bill — subscription plans have no per-token charge
cache hit
93%
input side bills at 20% of fresh-token rates
cost per task
$11.41
Of the plan's 6 done task(s), 6 are priced; main-loop spend is not attributed to a task.
attributed
96%
87% down to a specific task

Tokens per day

Deltas above compare 2026-06-22 to 2026-07-21 with the 30 days before it.

2026-05-26 tokens 12.75M cost $8.712026-05-27 tokens 15.79M cost $9.672026-05-28 tokens 4.37M cost $1.562026-05-29 tokens 225.63K cost $0.332026-06-01 tokens 299.81K cost $0.562026-06-02 tokens 7.99M cost $10.312026-06-04 tokens 267.38K cost $0.342026-06-07 tokens 163.32K cost $0.362026-06-08 tokens 12.01M cost $9.682026-06-09 tokens 11.65M cost $9.132026-06-10 tokens 188.72K cost $0.132026-06-13 tokens 260.65K cost $0.302026-06-16 tokens 301.76K cost $0.712026-06-19 tokens 207.04K cost $0.322026-06-22 tokens 1.82M cost $6.112026-06-23 tokens 1.69M cost $6.492026-06-25 tokens 184.64K cost $0.152026-06-28 tokens 108.97K cost $0.242026-07-01 tokens 181.88K cost $0.322026-07-04 tokens 241.52K cost $0.342026-07-06 tokens 1.82M cost $9.202026-07-07 tokens 234.64K cost $0.562026-07-10 tokens 250.56K cost $0.262026-07-13 tokens 1.44M cost $6.152026-07-16 tokens 312.58K cost $0.482026-07-20 tokens 3.69M cost $3.812026-07-21 tokens 11.85M cost $16.3715.8M7.9M
05-2605-2806-0106-0406-0806-1006-1606-2206-2507-0107-0607-1007-1607-21

Author chips scope the per-author views of this section (the By author list, and the per-author panels in Detail) — the tiles and trend above stay project-wide, and the task table records no author to filter by. The panel has the full drill-down.

By phase

P0 Framework upgrade32.7M · $19.80
P1 Auth hardening31.6M · $29.13
BF1 Bugfix batch 115.5M · $20.18
P2 Input validation6.4M · $27.40
Uncategorized4.0M · $6.09

By model

claude-sonnet-554.9M · $53.18
claude-opus-525.8M · $43.96
claude-haiku-4-58.9M · $2.47
claude-fable-5765.3K · $2.99

By author

sara@acme.example31.2M · $32.20
milos@acme.example30.9M · $37.63
alex@acme.example28.2M · $32.77

Budget

P2 Input validation110%$27.40 of $25.00 · over
P0 Framework upgrade79%$19.80 of $25.00
P1 Auth hardening73%$29.13 of $40.00
All budgeted phases$76.33 of $90.00

4 phase(s) have no budgetUSD set and are not shown here — they are not phases at zero.

Detail — monthly activity, per-author split, phase composition, unit economics, model routing, hourly pattern

Month by month

Ledger columns are this ledger's spend by calendar month. Plan columns count the whole project by event month — a task in its completedAt month, a bug in its reportedAt month, a fix in the month its linked task completed (the same derivation the bug list uses), a phase in its mergedAt month.

monthtokenscostmsgstasks donebugsfixedmerged
2026-0533.1M$20.263742001
2026-0637.1M$44.846053301
2026-0720.0M$37.493031210

Each author, by model

Every panel shares one axis (2026-05-26 to 2026-07-21, one column per day) and one scale (peak 12.6M tokens per column), so heights and positions compare directly across people. A column too small to draw shows as a hairline — some spend, below this chart's resolution; hover it for the dates and the count.

sara@acme.example

claude-fable-5
claude-haiku-4-5
claude-opus-5
claude-sonnet-5

milos@acme.example

claude-fable-5
claude-haiku-4-5
claude-opus-5
claude-sonnet-5

alex@acme.example

claude-fable-5
claude-haiku-4-5
claude-opus-5
claude-sonnet-5

Phase composition by model

claude-fable-5claude-haiku-4-5claude-opus-5claude-sonnet-5
P0 Framework upgrade32.7M
P1 Auth hardening31.6M
BF1 Bugfix batch 115.5M
P2 Input validation6.4M
-- Uncategorized4.0M

Unit economics

Remaining 8 task(s) project to $75.69–$125.95 at the p25–p75 per-task rate.

Of the plan's 6 done task(s), 6 are priced; main-loop spend is not attributed to a task.

$5.36 on tasks that needed more than one attempt (1 task(s), 5% of spend) · $5.36 on tasks that ended blocked (1 task(s)).

Retried spend is not the same as wasted spend: the ledger buckets by hour, not by attempt, so a task that retried and then landed did not burn every attempt for nothing. Only the blocked figure is spend with no outcome (the same task is in both figures here).

Most expensive tasks

Cost band from this project's own completed tasks (median / p90): typical ≤ $10.08 · high ≤ $15.74 · outlier above. Of the plan's 6 done task(s), 6 are priced; main-loop spend is not attributed to a task.

idtitlecost bandcostattempts
P1.2Rate-limit the login endpointoutlier$15.901
P0.1Move the app bootstrap onto the new framework entry pointoutlier$15.741
BF1.2Fix BUG-4: logout leaves the session cookiehigh$15.521
P2.1Validate the checkout payloadhigh$10.081
P1.1Hash passwords with Argon2idtypical$9.461

Model cost within each risk band

Compared inside a band on purpose. Hard work is routed to the stronger model deliberately, so a raw spend-per-task comparison across bands would flag that working system as a fault.

Of the plan's 6 done task(s), 6 are priced; main-loop spend is not attributed to a task.

riskmodeltaskscost/taskmean attempts
highclaude-opus-53$11.191.0
medclaude-sonnet-55$10.011.4
lowclaude-haiku-4-51$1.741.0

When the tokens are spent (UTC)

All data · 2026-05-26 to 2026-07-21
00061218
Mon
Tue
Wed
Thu
Fri
Sat
Sun

0 5.3M tokens/hour

Bugs

idtitlestatusseveritytaskfixedIntest gateADO
BUG-1Product images 404 intermittently on SafariOpenmed——no fix task yet—
BUG-2Checkout is slow on 3G mobileTriagedlow——no fix task yet—
BUG-3Cart total off-by-one with stacked discountsIn progressmedBF1.1—No checks rancoverage unknown via BF1.1#1508
BUG-4Logout does not clear the session cookieFixedhighBF1.2—Passed via BF1.2—
BUG-5Dark-mode label contrast below AAWon’t fixlow——no fix task yet—

Ready now

P2.4 Add zod schemas for cart mutations storefront checkout
In P2 — Input validation. Cleared: depends on P2.1 (done)
P4.1 Write down the auth and checkout invariants auth checkout
In P4 — Documentation. Nothing blocked it — ready from the start.
P5.1 Cap the retry backoff worker
In P5 — Sync worker resilience. Nothing blocked it — ready from the start.