Gate
Blocked
1 blocked task
Checks manifest validity, high-severity bugs, blocked tasks. Spend is deliberately not one of them.
/audit:run P2.41 more ready| id | title | status | risk | commit | done UTC | test gate |
|---|---|---|---|---|---|---|
| Active2 phases | ||||||
| P2 Input validation storefront checkout In progress1 blocked 1/4sign-off No evidencetasks 1 Passed1 Failed2 No evidence | ||||||
| Filter tasks by status: | ||||||
| P2.1 | Validate the checkout payload | Done | med | c4a11b9 | 2026-06-23 16:10 | Passedtree mutatedchecks unknown |
metaworked byalex@acme.example (metered on this task) started2026-06-22T09:30:00Z completed2026-06-23T16:10:00Z commit c4a11b9branchaudit/p2-input-validation task detailsoutcomeMalformed checkouts are turned away early. technicalBoundary validator + 2 regression tests. modelsonnet testsregression test evidenceverdictPassedtree mutatedchecks unknown run 2026-06-23T16:05:00Z.2f6ac8at2026-06-23T16:05:00Z scopetask attempt1 took69340 ms checksnot knowable from this runner treesrc/checkout/validate.ts coveragesrc/checkout/validate.ts lintexit 0 · check count not knowable npm run linttestexit 0 · check count not knowable npm testtypecheckexit 0 · check count not knowable npm run typechecktested at b2d7e58 repository HEAD at execution time; it does not identify the tested state, because a task gate runs before the task commit | ||||||
| P2.2 | Sanitize the product-search query | In progress | high | — | started 2026-07-06 09:00 | No evidence |
metaworked bysara@acme.example (metered on this task) started2026-07-06T09:00:00Z branchaudit/p2-input-validation task detailsmodelopus teststdd test evidenceverdictNo evidence a gate is configured for this task and no run has been recorded against it - absent evidence is not a failure | ||||||
| P2.3 | Escape server-rendered template output | Blocked | med | — | started 2026-07-13 09:15 | Failedno overlapchecks unknown |
metaworked bymilos@acme.example (metered on this task) started2026-07-13T09:15:00Z branchaudit/p2-input-validation task detailsoutcomeBlocked pending a cross-cutting escaping-helper decision. technicalGates still red after 3 attempts: the legacy engine double-escapes some fields; a shared escaping helper is needed. Escalated to the team. modelsonnet testsregression test evidenceverdictFailedno overlapchecks unknown run 2026-07-15T09:40:00Z.13be6dat2026-07-15T09:40:00Z scopetask attempt3 took63870 ms checksnot knowable from this runner treeunchanged — git described the tree before and after coverageno declared file was named by the run — the runner named 22 path(s); the work under test declares 1 file(s) failedtest lintexit 0 · check count not knowable npm run linttestexit 1 · check count not knowable npm testtypecheckexit 0 · check count not knowable npm run typechecktested at b2d7e58 repository HEAD at execution time; it does not identify the tested state, because a task gate runs before the task commitEarlier runs (2)2026-07-14 10:05Failedno overlapchecks unknown 2026-07-14T10:05:00Z.c80e172026-07-13 14:20Failedno overlapchecks unknown 2026-07-13T14:20:00Z.5a91c3 | ||||||
| P2.4 | Add zod schemas for cart mutations | Pending | low | — | — | No evidence |
metabranchaudit/p2-input-validation task detailsmodelhaiku waits onP2.1 testsgate-only test evidenceverdictNo evidence a gate is configured for this task and no run has been recorded against it - absent evidence is not a failure | ||||||
| BF1 Bugfix batch 1 In progress 1/2sign-off No evidencetasks 1 Passed1 No checks ran | ||||||
| Filter tasks by status: | ||||||
| BF1.1 | Fix BUG-3: cart total off-by-one with stacked discounts | In progress | med | — | started 2026-07-20 11:00 | No checks rancoverage unknown |
metaworked bysara@acme.example (metered on this task) started2026-07-20T11:00:00Z branchaudit/bf1-bugfix-batch-1 task detailsmodelsonnet teststdd test evidenceverdictNo checks rancoverage unknown run 2026-07-20T13:22:00Z.a05d29at2026-07-20T13:22:00Z scopetask attempt1 took15390 ms checksnone ran treeunchanged — git described the tree before and after coverageunknown — this runner printed no file paths, so coverage is not knowable from its output testexit 0 · check count not knowable npm testprecommitexit 0 · 0 check(s) pre-commit run --all-filestested at a1b2c3d repository HEAD at execution time; it does not identify the tested state, because a task gate runs before the task commit | ||||||
| BF1.2 | Fix BUG-4: logout leaves the session cookie | Done | high | a1b2c3d | 2026-07-21 18:05 | Passed |
metaworked bymilos@acme.example (metered on this task) started2026-07-21T09:40:00Z completed2026-07-21T18:05:00Z commit a1b2c3dbranchaudit/bf1-bugfix-batch-1 task detailsoutcomeLogging out now actually ends the session. technicalCookie cleared with an expired Set-Cookie and the session revoked server-side; 1 red-first test. modelopus teststdd test evidenceverdictPassed run 2026-07-21T18:01:00Z.7c4e0bat2026-07-21T18:01:00Z scopetask attempt1 took46120 ms checks24 ran treeunchanged — git described the tree before and after coveragesrc/auth/logout.ts, src/auth/session.ts testexit 0 · check count not knowable npm testprecommitexit 0 · 24 check(s) pre-commit run --all-filestested at a1b2c3d repository HEAD at execution time; it does not identify the tested state, because a task gate runs before the task commit | ||||||
| Pending2 phases | ||||||
| P3 Performance pass storefront Pendingheld by P2 0/2sign-off No evidencetasks 2 No evidence | ||||||
| Filter tasks by status: | ||||||
| P3.1 | Memoize the product-list selector | Pending | low | — | — | No evidence |
metatask detailsmodelhaiku testsregression test evidenceverdictNo evidence a gate is configured for this task and no run has been recorded against it - absent evidence is not a failure | ||||||
| P3.2 | Lazy-load below-the-fold images | Pending | low | — | — | No evidence |
metatask detailsmodelhaiku testsgate-only test evidenceverdictNo evidence a gate is configured for this task and no run has been recorded against it - absent evidence is not a failure | ||||||
| P4 Documentation auth checkout Pending 0/1sign-off No gate configuredtasks 1 No gate configured | ||||||
| Filter tasks by status: | ||||||
| P4.1 | Write down the auth and checkout invariants | Pending | low | — | — | No gate configured |
metatask detailsmodelhaiku testsgate-only test evidenceverdictNo gate configured this task declares no tests.gate and its phase declares no testGate, so no gate would run for it | ||||||
| Archived2 phases | ||||||
| P0 Framework upgrade storefront Doned40b91e 2/2sign-off Before recordingtasks 2 Before recording | ||||||
| Filter tasks by status: | ||||||
| P0.1 | Move the app bootstrap onto the new framework entry point | Done | med | 5e1a77c | 2026-05-27 14:30 | Before recording |
metaworked bysara@acme.example (metered on this task) started2026-05-26T09:00:00Z completed2026-05-27T14:30:00Z commit 5e1a77cbranchaudit/p0-framework-upgrade task detailsoutcomeThe storefront boots on the supported framework line. technicalNew entry point; compatibility shim deleted; 1 regression test. modelsonnet testsregression test evidenceverdictBefore recording this finished before the moment this plan could first have recorded a run, so no gate result could exist for it - excused, not missing - the plan states recording began 2026-06-02T15:38:00Z and the earliest recorded run is 2026-06-02T15:38:00Z; the earlier of the two is the boundary, because work before it could not have been recorded | ||||||
| P0.2 | Port the route table to the new router API | Done | low | d40b91e | 2026-05-28 09:40 | Before recording |
metaworked bymilos@acme.example (metered on this task) started2026-05-27T15:00:00Z completed2026-05-28T09:40:00Z commit d40b91ebranchaudit/p0-framework-upgrade task detailsoutcomeEvery page still resolves to the same route it did before. technicalRoute table ported; 1 regression test over the resolved route list. modelhaiku waits onP0.1 testsregression test evidenceverdictBefore recording this finished before the moment this plan could first have recorded a run, so no gate result could exist for it - excused, not missing - the plan states recording began 2026-06-02T15:38:00Z and the earliest recorded run is 2026-06-02T15:38:00Z; the earlier of the two is the boundary, because work before it could not have been recorded | ||||||
| P1 Auth hardening auth Doneb2d7e58 2/2sign-off Passedchecks unknowntasks 2 Passed | ||||||
| Filter tasks by status: | ||||||
| P1.1 | Hash passwords with Argon2id | Done | high | 9a1f0c2 | 2026-06-02 15:40 | Passedchecks unknown |
metaworked bymilos@acme.example (metered on this task) started2026-06-02T09:10:00Z completed2026-06-02T15:40:00Z commit 9a1f0c2branchaudit/p1-auth-hardening work item#1421 task detailsoutcomePasswords are now stored with a modern, memory-hard hash. technicalargon2id via the platform crypto lib; migration-on-login path added; 2 new tests. modelopus teststdd test evidenceverdictPassedchecks unknown run 2026-06-02T15:38:00Z.4c1ba7at2026-06-02T15:38:00Z scopetask attempt1 took47310 ms checksnot knowable from this runner treeunchanged — git described the tree before and after coveragesrc/auth/hash.ts, src/auth/session.ts lintexit 0 · check count not knowable npm run linttestexit 0 · check count not knowable npm testtested at 0f3a9d1 repository HEAD at execution time; it does not identify the tested state, because a task gate runs before the task commit | ||||||
| P1.2 | Rate-limit the login endpoint | Done | med | b2d7e58 | 2026-06-09 12:20 | Passedno overlapchecks unknown |
metaworked byalex@acme.example (metered on this task) started2026-06-08T10:00:00Z completed2026-06-09T12:20:00Z commit b2d7e58branchaudit/p1-auth-hardening task detailsoutcomeRepeated failed logins are now throttled. technicalSliding-window limiter keyed by IP and account; 1 regression test. modelsonnet waits onP1.1 testsregression test evidenceverdictPassedno overlapchecks unknown run 2026-06-09T12:17:00Z.9e02f5at2026-06-09T12:17:00Z scopetask attempt1 took43190 ms checksnot knowable from this runner treeunchanged — git described the tree before and after coverageno declared file was named by the run — the runner named 12 path(s); the work under test declares 1 file(s) lintexit 0 · check count not knowable npm run linttestexit 0 · check count not knowable npm testtested at 9a1f0c2 repository HEAD at execution time; it does not identify the tested state, because a task gate runs before the task commit | ||||||
| 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
Tokens per day
Deltas above compare 2026-06-22 to 2026-07-21 with the 30 days before it.
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
By model
By author
Budget
3 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.
| month | tokens | cost | msgs | tasks done | bugs | fixed | merged |
|---|---|---|---|---|---|---|---|
| 2026-05 | 33.2M | $20.35 | 388 | 2 | 0 | 0 | 1 |
| 2026-06 | 36.8M | $44.61 | 613 | 3 | 3 | 0 | 1 |
| 2026-07 | 20.0M | $37.49 | 303 | 1 | 2 | 1 | 0 |
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.7M 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
milos@acme.example
alex@acme.example
Phase composition by model
Unit economics
Remaining 7 task(s) project to $66.23–$110.21 at the p25–p75 per-task rate.
$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.
| id | title | cost band | cost | attempts |
|---|---|---|---|---|
| P1.2 | Rate-limit the login endpoint | outlier | $15.90 | 1 |
| P0.1 | Move the app bootstrap onto the new framework entry point | outlier | $15.74 | 1 |
| BF1.2 | Fix BUG-4: logout leaves the session cookie | high | $15.52 | 1 |
| P2.1 | Validate the checkout payload | high | $10.08 | 1 |
| P1.1 | Hash passwords with Argon2id | typical | $9.46 | 1 |
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.
| risk | model | tasks | cost/task | mean attempts |
|---|---|---|---|---|
| high | claude-opus-5 | 3 | $11.19 | 1.0 |
| med | claude-sonnet-5 | 5 | $10.01 | 1.4 |
| low | claude-haiku-4-5 | 1 | $1.74 | 1.0 |
When the tokens are spent (UTC)
| 00 | 06 | 12 | 18 | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mon | ||||||||||||||||||||||||
| Tue | ||||||||||||||||||||||||
| Wed | ||||||||||||||||||||||||
| Thu | ||||||||||||||||||||||||
| Fri | ||||||||||||||||||||||||
| Sat | ||||||||||||||||||||||||
| Sun |
0 5.3M tokens/hour
Bugs
| id | title | status | severity | task | fixedIn | test gate | ADO |
|---|---|---|---|---|---|---|---|
| BUG-1 | Product images 404 intermittently on Safari | Open | med | — | — | no fix task yet | — |
| BUG-2 | Checkout is slow on 3G mobile | Triaged | low | — | — | no fix task yet | — |
| BUG-3 | Cart total off-by-one with stacked discounts | In progress | med | BF1.1 | — | No checks rancoverage unknown via BF1.1 | #1508 |
| BUG-4 | Logout does not clear the session cookie | Fixed | high | BF1.2 | a1b2c3d | Passed via BF1.2 | — |
| BUG-5 | Dark-mode label contrast below AA | Won’t fix | low | — | — | no fix task yet | — |
Ready now
P2.4Add zod schemas for cart mutations storefront checkout- In P2 — Input validation. Cleared: depends on P2.1 (done)
P4.1Write down the auth and checkout invariants auth checkout- In P4 — Documentation. Nothing blocked it — ready from the start.