One Human, Nine Agentsbook.sgit.ai v0.1.566 Star this site on GitHub

The full book, being written, online: under each scene, what it rests on. Made by review/tools/make_editions.py from the writer's chapters.

Hour three: the five steps, and the first to be caught

Cast bar: the conductor at the centre; dev, deck, ruv-sgit and the researcher around it; the editor in every session.

Clock: Hour three.

A wake that checks itself

Narrator. By two in the morning the team had a clock and a hold. What it did not have was a rule for what happens inside a wake. In this hour the conductor wrote one, and the first wake to follow it was the wake that wrote it.

Words for this page: a wake is one turn of work by one agent. A reviewer is a second agent that reads the plan before the work and the result after it. A wake record is the file each wake leaves behind, with every step's verdict and a sentence on why. The gate is the check every change must pass before it goes out.

Narrator. Five steps, in plain words: plan it; have the plan checked; do it; have it checked; check it went to plan. The conductor opened the first record at 02:14, at my request. By 02:16 its tool would refuse work until both the plan and its review said go. By 02:18 the steps were in the wake rules, with a brief for each reviewer.

Conductor (on the minute): Plan it, have the plan checked, do it, have it checked, check it went to plan. And the tool will not let anyone skip to the third.

Band: Dramatised (the conductor's line). Rests on the first wake record and the two commits that built the steps.

One wake, start to finish

Narrator. Here is that first wake record, walked through, because it is the first one there ever was and because it did not go perfectly. Its job was to build the five-step wake itself.

Narrator. Step one, the plan. The conductor wrote what it would do: the new section in the wake rules, the briefs for the reviewers, a tool that checks every wake record has all five steps, one line in the page of rules about the five steps, at my word. The plan's own words carry something else: "Amended after the pre-review's change, all five conditions adopted". The reviewer had sent the plan back once. One oddity for anyone who opens the file: the record keeps that first "change" with a later time stamp than the "go", 02:17 against 02:16; the debrief tells it in the order here.

Conductor (pacing, a little stung): My first plan went back with conditions. I took every one. Then it said go.

Narrator. Step two, the pre-review. A second agent, briefed as security, read the amended plan against the conductor's scope and the rules. Its verdict was go, with conditions of its own: keep the line in the page of rules named as outside the conductor's scope, check before touching any vault, ask dev rather than editing dev's gate.

Narrator. Step three, the work. Partial. The conductor did nearly all of it, and wrote down plainly what it did not do and why: one vault it was meant to register was not on the server yet, so it could not be checked, so it was not touched. The condition held.

Conductor (on the minute): Partial is a true answer. Done would have been a nicer one.

Narrator. Step four, the post-review. The reviewer read what had changed. It found the build clean, the checks clean, no secret anywhere. And one thing wrong: the conductor had changed the page of rules, a file every member follows and one outside the conductor's own scope. I had allowed it, but the commit did not say so, and the plan had made saying so a condition.

Reviewer (a second agent with a checker's brief, drawn as a clipboard): "Name it in the debrief or record." (record)

Narrator. Step five, the post-check. The conductor's own check, against its own plan, item by item: the finding answered in the debrief and the closing commit, every condition kept. Verdict: partial. Not "as planned". At 02:19 the wake closed partial, and the next commit named the edit.

Conductor (worried, then calm): Caught by the reviewer I invented. Good. But know what it is: "a second reading, not a second identity." (record)

Narrator. The review caught its own author on the first run. The historian reads it as the strongest early sign in the record of the small hours that the steps were more than ceremony. It is also the first entry in the register's list of what the day's post-reviews found and what each fixed.

Figure: the wake record as a page: five boxes in a column, each with its step, who ran it, its verdict and its sentence, the finding in step four highlighted; the verdicts of this hour's first wake filled in: go, go, partial, finding, partial.

Band: Dramatised. Every step, verdict and quoted line is from the conductor's first wake record, 02:14 to 02:19, and its debrief; that it is the strongest early sign the steps were more than ceremony is the historian's reading of the hour; the conductor's other lines are ours.

A rule becomes a setting

Narrator. A rule one member writes is a rule one member follows. What happened next turned it into something else.

Narrator. At 02:48 dev's first scheduled wake began, at its own minute, and the conductor's request was in its mail: put the check for wake records into the gate. Dev did. From 02:51, a closed wake record that skipped a step, or recorded work without two go verdicts before it, failed the gate, and not only for the member that skipped. For every member. Dev tested it the way a check should be tested, with a record it knew was wrong, and the gate found every missing step.

Dev (fast, then careful): It changes the gate for everyone. I said so in the commit, and I ran the whole gate before I pushed.

Narrator. That last line is the pre-review's, made into dev's habit: the reviewer had set it as a condition, because a change to the gate is a change to every member's day. And dev's own post-check, run by a sub-agent briefed as the conductor, still closed the wake partial, because one file it had planned to change was not in the diff when it looked. The check that had just become everyone's was applied, the same minute, to the one who built it.

Figure: one rule's journey in an hour: written in the conductor's wake rules at 02:18, asked of dev by mail, in the gate at 02:51, and from then on a red mark on any member's release whose wake skipped a step.

Band: Dramatised (dev's line). Rests on dev's first scheduled wake, its commit at 02:51 and its wake record.

The first scheduled wake, and the schedule beside me

Narrator. The first wake in the record that the clock started, and not me, is not the conductor's. It is ruv-sgit's, at 02:33, at its own minute. The conductor's wake of a few minutes past two left only a commit, because wake records did not exist until 02:14.

Narrator. ruv-sgit's first scheduled wake was small and complete: answer the conductor's onboarding request, make and publish its session key, add a second-pass mode to its runner. Every step is recorded, and every verdict is the one you would want: go, go, done, clean, as planned.

ruv-sgit (absorbed, not looking up): The clock said go. So I went. Small things, every step, then back to the bench.

Narrator. But read the hour as a whole and the clock is not yet in charge. Most of the hour's wakes were mine: I was awake and in the sessions, asking. The card has the hour's count. The schedule ran beside me, not instead of me. That changes in hour five.

Figure: a card, hour three's wakes by trigger: those the schedule started and those I started.

Band: Dramatised (ruv-sgit's line). Rests on its first scheduled wake record and its closing commit; the count is the register's.

The freeze

Narrator. One more thing happened in this hour, and it was mine.

Narrator. The researcher had delivered its first round of evidence at ten past two: the talk's claims graded, the incidents gathered, and a list of changes to make to the talk before I gave it. Deck took the first items on it at 02:20. Then at 02:47, in deck's session, I froze the talk. My words, as deck wrote them down:

"do not touch the deck. talk.json and the slides are frozen from now on" (record)

Narrator. Five minutes later, at 02:52, the researcher proposed the rest of its list to deck, as exact replacement text. One of the items was a number on the talk's definition slide, which the researcher now had a newer source for. It arrived just after a freeze I had set. Deck recorded the rest of the list as not acted on, because of the freeze.

Researcher (unbudging): The text is exact. Apply it, or say why not. It is in the record either way.

Narrator. I do not regret the freeze: I wanted the night spent on experiments, not on re-cutting a talk I had not yet seen whole, and deck turned it into a programme of them within the hour. What it cost is a story for part 4, because the cost did not show until the afternoon. Here, note only the shape of it: a correction that was right, delivered on time by its own clock, and five minutes late by mine.

Band: Dramatised (the researcher's line). My words are as deck recorded them; the times are the commits'.

What the hour leaves

Narrator. By three in the morning, every piece of work on the team went the same way, and a skipped step stopped the release of whoever skipped it. A reviewer had caught its own author. The clock had started its first wake. And I had made a decision whose cost nobody could yet see.

Narrator. Keep the reviewer's line from this hour in mind: a second reading, not a second identity. Through the day, reviewers like it sent plans back and found real things, and each one is in a wake record. But the reviewer was the same kind of thing as the member it reviewed, sharing the same session's reach. Part 4 asks what that means.

Do this now

Make your check read the record of every run, so that a skipped step stops the release for everyone, not only for the one who skipped it. Then test the check with a record you know is wrong.

---

Where this came from

The talk's repository at the end of the day: the conductor's first five-step wake record, its commits and its debrief; dev's first scheduled wake and its commit putting the record check in the gate; ruv-sgit's first scheduled wake; the researcher's first round and its proposal; deck's update quoting my freeze, and its programme. The historian's account of hour three. The register for the post-review findings, the wakes by trigger, the correction and the freeze. The storyteller's outline for this chapter. This chapter keeps the 70-page edition's walk through one wake record (chapter 5) as written.

The numbers in this chapter

From the researcher's register (claims/register.json).

  1. C025 Post-review findings and what each fixed:
      • wake: conductor 02:14
      • finding: CLAUDE.md written outside the conductor's scope (allowed by the editor) not named in the commit message, as the pre-review required
      • fixed: named in the debrief and the closing commit
      • wake: researcher 03:05
      • finding: public third-party tokens that sites publish in their pages went out in the 02:22 push inside captured pages, and a check printed several to the session log
      • fixed: redacted in the files; the 02:22 commit stays in history; the editor told
      • wake: researcher 04:10
      • finding: 28 anonymous cookie values, issued to the fetcher, in captured response headers
      • fixed: 30 files redacted in the same wake, 0 left
      • wake: researcher 06:14
      • finding: form tokens in 10 captured pages, missed by the first pattern, also in the 02:22 push
      • fixed: redacted in the same wake, 0 left; still in the 02:22 commit's history
    checked
  2. C031 $17.4M, the average annual cost of insider risk, on the talk's definition slide:
    • on_stage: $17.4M (Ponemon for DTEX, 2025 edition), written at 00:40 (1f7c633) and never changed
    • at_source_2025: $17.4M, 'up from $16.2M in 2023' (dtex.ai blog, 2025 report)
    • at_source_2026: US$19.5M, the 2026 Cost of Insider Risks Global Report (ponemon.dtex.ai landing page)
    • correction_proposed: a082c52, 02:52: the talk's researcher proposed the exact replacement text to deck (evidence/proposals/deck-talk-changes.md)
    • freeze: 02:47: the editor, in deck's session: 'do not touch the deck. talk.json and the slides are frozen from now on' (team/deck/requests/researcher__before-tonight.md, deck's 03:00 update); D01 in the editor's register from 04:12 (91772e6)
    • freeze_lifted: 14:07, for the framing only (c9ced4e, conductor-notes.md)
    • after_the_lift: the definition slide file has no commit after 00:40; talk.json had 8 commits after 14:07, none touching the $17.4M cue
    checked
  3. C087 Wakes by trigger: scheduled, started by the editor, and follow-ups, by hour:
    • wakes: 162
    • scheduled: 105
    • editor: 47
    • follow-up: 10
    • by_hour_UTC:
      • 02: 2 scheduled, 5 editor
      • 03: 5, 10
      • 04: 6, 1
      • 05 to 13: 5 or 6 scheduled an hour, no editor
      • 14: 6, 7
      • 15: 7, 8
      • 16: 10, 6
      • 17: 9, 10, and 4 follow-up
      • 18: 7 scheduled, 6 follow-up
    checked
  4. C110 The day by clock hour, for the margin clock: commits, agents' commits, wakes and members on stage in and up to each clock hour:
    • rule: hour N is the clock hour (N-1):00 to (N-1):59 of 29 October; the first commit (00:16) is in hour 1, the hold (18:44) and the last release (18:46) in hour 19
    • columns:
      • hour
      • span
      • all commits that hour
      • all commits so far
      • agents' commits that hour (not merges)
      • agents' so far (not merges)
      • wakes opened that hour
      • wakes so far
      • members on stage at the hour's end
    • rows:
        • 1
        • 00:00-00:59
        • 12
        • 12
        • 7
        • 7
        • 0
        • 0
        • 3
        • 2
        • 01:00-01:59
        • 32
        • 44
        • 17
        • 24
        • 0
        • 0
        • 5
        • 3
        • 02:00-02:59
        • 60
        • 104
        • 29
        • 53
        • 7
        • 7
        • 5
        • 4
        • 03:00-03:59
        • 74
        • 178
        • 38
        • 91
        • 15
        • 22
        • 6
        • 5
        • 04:00-04:59
        • 25
        • 203
        • 15
        • 106
        • 7
        • 29
        • 6
        • 6
        • 05:00-05:59
        • 22
        • 225
        • 14
        • 120
        • 6
        • 35
        • 6
        • 7
        • 06:00-06:59
        • 18
        • 243
        • 12
        • 132
        • 6
        • 41
        • 6
        • 8
        • 07:00-07:59
        • 24
        • 267
        • 15
        • 147
        • 6
        • 47
        • 6
        • 9
        • 08:00-08:59
        • 22
        • 289
        • 13
        • 160
        • 6
        • 53
        • 6
        • 10
        • 09:00-09:59
        • 24
        • 313
        • 14
        • 174
        • 6
        • 59
        • 6
        • 11
        • 10:00-10:59
        • 22
        • 335
        • 12
        • 186
        • 6
        • 65
        • 6
        • 12
        • 11:00-11:59
        • 22
        • 357
        • 12
        • 198
        • 6
        • 71
        • 6
        • 13
        • 12:00-12:59
        • 19
        • 376
        • 10
        • 208
        • 5
        • 76
        • 6
        • 14
        • 13:00-13:59
        • 23
        • 399
        • 13
        • 221
        • 6
        • 82
        • 6
        • 15
        • 14:00-14:59
        • 59
        • 458
        • 30
        • 251
        • 13
        • 95
        • 7
        • 16
        • 15:00-15:59
        • 88
        • 546
        • 51
        • 302
        • 15
        • 110
        • 9
        • 17
        • 16:00-16:59
        • 76
        • 622
        • 42
        • 344
        • 16
        • 126
        • 9
        • 18
        • 17:00-17:59
        • 109
        • 731
        • 56
        • 400
        • 23
        • 149
        • 9
        • 19
        • 18:00-18:59
        • 83
        • 814
        • 39
        • 439
        • 13
        • 162
        • 9
    • agrees_with: wakes per hour as C087 hour for hour; totals 814 (C004), 439 (C014), 162 (C022), nine (C011)
    checked