lesson I13: the watcher, page and skill - #147
Merged
Merged
Conversation
…kers All five done-when clauses passed in the student run. The three projections answer from the account, a grant left past its expiry produces a sweep pull request whose diff removes the block beside a reconcile one whose diff is empty, the cap step ran on the sweep's own pull request and counted both markers against the one number, and search returned the lesson 12 request out of the conversation record. Nine stumbles, fixed. The load-bearing ones are that the break-glass marker is parsed rather than decorative, so a fence whose id is not the third field or does not begin with bg- is invisible to the script that is meant to find it; that the two dates the lesson hands you are the only pair both already expired and inside the two hour ceiling, which nothing said; and that the sweep branches from wherever you are standing, so the lesson now says to be on main and says why. The block itself is given rather than sent for, since lesson 10's grant has usually been swept by the time anybody arrives. The student's answer on the last row was better than the page's and is now the page's. Making a projection's account read a control rather than a convention comes in tiers, a grep gate that catches carelessness, a negative test per projection that catches laziness, and a seeded fixture per projection for anyone who means it, and the estate stopped at the convention because the first two cost more than the failure they prevent. One script fix. The sweep titled its pull request with the file label rather than the principal, so it said on_call where the rest of the estate says on-call. The last TODO markers in the course are gone. content/propose-loop.md has the prose its five context notes asked for, which matters because lessons 8, 9 and 13 all send students to it, and the IAM course intro is written. Zero todo markers across the site. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013JoNB9iUGjsiwRAJvyZPrt
This was referenced Sep 12, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The last skeleton. All five done-when clauses passed in the student run, and the site has zero TODO markers for the first time.
The lesson
Drift is the account moving; burndown is the clock moving. A reconcile pull request restores what the repo declares and carries no file change; a sweep pull request removes what the repo declares and carries a real one. They arrive in the same list looking alike and push in opposite directions, and telling them apart is what the lesson is for.
Plus the three projections that read the account rather than a file, the cap counting both kinds against one number, and
GET /api/searchanswering "which requests did the concierge handle".Two bugs in code that had already shipped green
access/scripts/break-glass sweephad never removed anything since lesson 10. Itcds to the repository root then calls helpers that resolve from the access root, so its guard matched nothing, it committed an empty tree, and it opened pull requests with no diff — reporting success every time. A stale branch of the same name then made those empty pull requests read as adding the grant they were meant to retire.And the cap counted one marker, so a watcher could hold five reconcile pull requests and five sweeps while
access/baselinesays five.Both fixed and merged before this lesson was written. Lesson 10's student run passed green over that sweep, because its done-when exercised the dry run and the watch's report and never
--open. The status page now says so.Nine stumbles
The load-bearing ones: the break-glass marker is parsed rather than decorative, the two dates are the only pair that is both already expired and inside the two-hour ceiling, and the sweep branches from wherever you are standing.
The student's answer on the last table row was better than mine and replaced it.
And the TODOs
content/propose-loop.mdhas the prose its context notes asked for — it matters because lessons 8, 9 and 13 all send students there — and the IAM course intro is written.🤖 Generated with Claude Code
https://claude.ai/code/session_013JoNB9iUGjsiwRAJvyZPrt