Backlog

What is outstanding on this repo, and what has been decided. Kept here because the alternative is a session task list, which dies with its container: when one restarted on 6 October 2026 the whole list went with it, and every “what’s left?” after that was answered by re-deriving it from the repo.

Every number here is measured, and every number here goes stale. The command that produced it sits beside it, so check rather than quote. Update this file in the PR that changes what it describes.

Decided

Exam order for the person who sits them: AIP-C01, then AIB-C01. This sets priority for anything reader-facing. AIB-C01 is publishing now and ends 16 Dec 2026; AIP-C01 has already published in full.

ANS-C01 is not being swept, and not being written off. Its exam retired on 31 December 2026, the track is parked, and its 114 posts are dated Mar to Jun

  1. A sweep is a point in time, so verifying AWS facts now for posts no reader sees for over two years means verifying them again nearer the date. The open question is the track’s future: revive it, reframe it as a standalone networking series, or fold parts into SAP-C03. Folding wholesale loses depth that is hard to rebuild, 35 posts touching BGP against SAP-C03’s 4 and 54 on Direct Connect against 18.

The daily re-sweep Routine is disabled. Three firings, nothing produced each time. CLAUDE.md carries the diagnosis and what to try next if it is revived. It had no work left to do once ANS-C01 became the only outstanding track.

Open, and the person’s call

A fifth evidence rule for a non-AWS primary source. Recorded at EXAM-VERIFICATION.md, deliberately not written during a sweep because what counts as a primary source is an editorial judgement. It is live: a WebFetch returned an ISO/IEC 42001 control list the page does not support, inventing an A.8.6 that does not exist. The agents reattributed rather than sourced it, which is correct by instinct and not by rule.

Work

Prose length, 490 of 537 scenario posts over budget

python3 scripts/check-exam-prose.py --strict      # the table
python3 scripts/check-exam-prose.py --over        # worst first

_data/prose_budget.yml has an enforced: list of certs, and CI gates every track on it. Nothing is in that list, which is why the overruns grew unnoticed. The job is per track: trim, add the cert to enforced, repeat, so each track that comes right stays right.

cert over / posts median words (budget 2000)
AIP-C01 136 / 137 2,928
SAA-C03 65 / 66 2,836
SAP-C03 48 / 48 3,164
SCS-C03 44 / 45 2,798
DOP-C02 43 / 44 2,622
AIF-C01 41 / 41 2,987
ANS-C01 76 / 76 2,960
AIB-C01 29 / 66 2,268
CLF-C02 8 / 14 2,165

The overruns concentrate in ### The solution, running +92% to +240% against a 400-word budget, which is the section a revising reader re-reads. AIP-C01 first, then AIB-C01, per the exam order above.

What is open here is one question, and it is not a measurement. Measured 8 October 2026 across all 537 scenario posts:

The flatness is what makes it a judgement rather than a defect. Padding varies post to post; this does not. So the open question is whether ~2,850 words is right for a non-business scenario post, or whether every track should be cut to AIB’s ~2,200. The second reading is a 120,700-word cut across the corpus, and nobody should take that decision from a ratio.

Reproduce any of the three with scripts/check-exam-prose.py plus the option counts from the Evaluation tables; the script’s docstring carries the calibration history.

Four tracks unwritten, about 370 posts

SOA-C03, DVA-C03, DEA-C01 and MLA-C02 have no posts. They publish from Feb 2028 at the current spacing, MLA-C02 last in Feb 2029. Plan each one before writing it (scripts/workflows/plan-exam-track.js), and size the post count by objectives per post rather than by the domain’s exam weight.

What the October 2026 re-sweep says about where the effort goes: mechanism defects concentrate in the long formats, 92 in 93 SAA-C03 posts and 63 in 92 AIF-C01 posts, almost none in the quizzes. That is the defect class no read-through catches, because nothing on the page contradicts anything else.

Queue runway, and two shelves that were spent

python3 scripts/queue-runway.py --series     # the table, measured
python3 scripts/queue-runway.py --below 365  # exit 1 if a queue is thinner

The numbers are not reproduced here, because a runway table in markdown is wrong as soon as anyone schedules or re-lays a post. The script classifies queues by importing reschedule.py’s own constants, so it cannot drift from the way the laying code sees them.

As at 8 October 2026 the exam queue is the nearest cliff at 2029-06-20, ahead of Thursday at 2030-07-04 and Tuesday at 2031-12-09. A first pass at this section claimed Thursday was nearest, which was wrong and is exactly what the script exists to stop. Note that the exam figure is flattered by parked ANS-C01 sitting at the end of it, and that the four unwritten tracks fill slots inside that span rather than extending it.

Thursday is the queue with the shape problem rather than the shortest runway. Consulting and Craft runs out on 2029-01-04, The Workshop on 2029-03-22 and High Performance Teams on 2028-04-13, while Under the Hood runs to 2030-07-04, so the slot CLAUDE.md describes as mixed between four series is single-series for its last eighteen months: 73 Under the Hood posts from 2029 against 5 of everything else. Nobody decided to stop writing craft posts; only one of the four series had a shelf to restock from.

All five Under the Hood candidates from the first shelf were written (2030-06-06 to 2030-07-04), and both narrative candidates were written as The Shortlist (11 posts) and The Safety Case (9 posts). All three shelves now carry fresh candidates, marked as things to mull over rather than commitments. High Performance Teams has five posts and no shelf; whether it continues or folds into Consulting and Craft is an open editorial call.

Writing the current shelves

Commissioned 8 October 2026: write every live candidate on the three shelves, to the house style, and keep this table current as each one lands. A shelf entry is an outline; the post is the deliverable. Tick a row in the PR that adds the post, not before.

The Thursday stream is free from 2030-07-11, which satisfies the two candidates whose outlines ask to be scheduled after March and June 2030 (they want backlinks that publish then).

python3 scripts/queue-runway.py --series        # has the slot moved?
grep -c '^## ' NEXT-*-IDEAS.md                 # what is still on a shelf
# post series slot state
1 Reading Code You Didn’t Write Consulting and Craft 2030-07-11 written
2 The Restore You Haven’t Tried Consulting and Craft (Hands On) 2030-07-18 written
3 Test Data That Isn’t Production Consulting and Craft (Hands On) 2030-07-25 written
4 When They Want a Date Consulting and Craft 2030-08-01 written
5 Leaving Well Consulting and Craft 2030-08-08 written
6 How Is a Forecast Made? Under the Hood 2030-08-15 written
7 How Does a Battery Actually Work? Under the Hood 2030-08-22 written
8 Where Does It All Go? Under the Hood 2030-08-29 written
9 How Does a Vote Get Counted? Under the Hood 2030-09-05 written
10 How Does a Drug Get Approved? Under the Hood 2030-09-12 written

All ten written, 8 October 2026, totalling 24,110 words: the five Craft posts run 22 to 25 minutes and the five Under the Hood 28 to 35. Every one comes back within budget on measure-post.py, with no real em-dashes, none of the banned tics, and backlinks only to posts dated earlier than its slot. The Craft and Under the Hood shelves now hold no live candidates.

The three narrative candidates are not in it. The Standard of Proof, The Reproducible Result and The Floor are arcs, not posts: the written equivalents from earlier shelves came to 52 posts (Tentpeg), 11 (The Shortlist) and 9 (The Safety Case). Committing to three arcs is a different decision from writing ten Thursday posts, and it needs CANON work before a word of prose. Left for an explicit call.

A note on reading these shelves: they are layered, newest section last, so an entry near the top may already be written. Tentpeg, The Shortlist and The Safety Case all read as open candidates and are all done. Check the series counts before treating a shelf entry as work.

Dependencies

Three open Dependabot PRs (#1838 actions, #1852 cdk, #1853 everything-else) and 9 advisories on main, 6 high and 3 moderate, as of 8 October 2026. The npm advisories were last cleared on 1 October, so these are newer than that.

gh api 'repos/barkingiguana/barkingiguana.github.com/pulls?state=open'

None of the three is a chore, and the reason is the deploy wiring. deploy-analytics.yml, deploy-contact.yml and deploy-signup.yml trigger on a push to main touching their directory, so #1852 and #1853 are each three live AWS deploys on merge. #1838 bumps actions/checkout, setup-go and setup-node a major version each across five workflows, one of which is the scheduled publisher, and a publisher that breaks does so silently.

#1853 does not build. Checked out and typechecked 8 October: at the versions it resolves (typescript@7.0.2, @types/node@26.6.4) all three apps return the same four errors, TS2591 on process, path and child_process plus TS2304 on __dirname. main is clean at typescript@5.9.3, so it is the bump. TypeScript 7 no longer applies the automatic @types/* inclusion the three tsconfig.json files relied on, having no types field of their own. Adding "types": ["node"] takes analytics from 4 errors to 0 on TS 7, and is a no-op on TS 5.9.3, so it can land ahead of the bump. moduleResolution: node16 gets to 1 error and a lib change to none of them. Diagnosis and the measured table are on #1853.

A clean typecheck is the floor; cdk synth on each app is the check that decides a two-major TypeScript jump in the code that provisions infrastructure. #1852 touches the same six files, so whichever lands first leaves the other needing a rebase.

Done, where the result is worth keeping

Eight of nine written tracks are at the 2026-10 verification standard (python3 scripts/resweep.py --status). The outstanding 109 are all ANS-C01, deliberately held.

What that sweep measured, over 7,338 AWS claims in 185 posts already recorded verified: 492 wrong facts, 155 mechanism defects, 51 unpublished figures, 20 availability defects, 85 arithmetic errors, and 15 posts clean. A four-post sample sizes a track to within about 25%, and only if it is stratified by format: AIF-C01’s two halves split by format and came in at 1.57 and 3.46 wrong facts a post.

The exam queue has a two-week gap between runs and SAA-C03 sits entirely after Christmas (python3 scripts/relay-exam-queue.py --summary). The anchors in EXAM_RUNS are derived from the gap rather than chosen, so changing the gap means recomputing all of them.