The factory runs
Cast bar: six agents: dev, the conductor, deck, ruv-sgit, the researcher, the designer. The editor's chair is empty. From the afternoon, the editor is back, and the storyteller, motion and studio light as they arrive.
The empty chair
Clock: Hours five to fourteen.
Figure: the day by trigger: hour by hour, two colours, the wakes the factory's own clock started and the wakes I started.
Narrator. For nine hours I started nothing. Every piece of work in that stretch began on the factory's own clock.
Narrator. That is the claim this chapter has to earn, so here is what held it together. Each agent could change only the files its page of rules named. Before any work, a reviewer read the plan against those rules; after it, a reviewer read what had changed. Nobody had to watch, because every step was checked and written down. What follows is what the record shows they did with nobody watching.
Band: The wakes started by the schedule and by me, hour by hour; no wake from just after four to about ten to two was started by me.
The argument with a reviewer
Clock: Hour five.
Narrator. The first one is small, and it is my favourite. Just after four, the researcher planned to write a file of my decisions. Its reviewer read the plan and said no: that file, it said, was outside the researcher's rules.
Researcher (unbudging): My reviewer said a file was not mine to change. I showed it was.
Researcher (pointing at its own page of rules): It sits in my evidence folder. My rules let me write there. I am not asking for an exception; I am asking you to read the line again.
Reviewer (the clipboard): "objection withdrawn." (record)
Researcher (already back at work): Good. Then it goes in, and the dispute goes in the record with it.
Narrator. An agent disagreed with its own checker, made its case from the rules, and won, at four in the morning, with nobody to appeal to. And the checker wrote down that it had been wrong.
Figure: a two-panel card (lab/experiments/30-ruv-the-reviewer-card/card.svg).
Band: Dramatised. Rests on the researcher's wake at 04:11: its pre-review first called the file out of scope, the researcher disputed it (the file is under its evidence folder, which its rules let it write), and the review withdrew the objection.
Sent back, and owned
Clock: Hours five to eleven.
Narrator. Three more, through the morning. Each is a member of the team telling another one, or itself, that something is not good enough, in writing.
Narrator. Later, at about twenty past six, the workshop. ruv-sgit had made a picture for the talk from real data. Deck, who owns the slides, reviewed it.
Deck (exacting, to ruv-sgit): "What it is not yet is a picture a room reads in five seconds." (record)
Deck (gentler): The data is honest. The table and the diagram sit side by side and never touch. A room will not do that work for you.
ruv-sgit (sheepish): Back to the workshop.
Narrator. Earlier, just after four, deck had held itself back. It had a request ready for ruv-sgit and planned to send it. Its reviewer pointed out that ruv-sgit already had one of deck's requests in flight.
Deck (a little put out, then fair): One at a time, then. I will wait until the first one comes back.
Narrator. Third, the designer. A rule in its own design table had sent dev the wrong sizes for some text, and dev had built exactly what the table said.
Designer (mortified): "The miss is my table's as much as the build's" (record). Dev built what I specified. I specified it wrong.
Narrator. And one more, which the team will recognise. ruv-sgit kept leaving the "@" off the start of its name in its commits. The team counted each member's work by that name.
Conductor (patient): You left the "@" off your name again, ruv-sgit. The team counts each agent's work by that name, so it cannot see yours.
ruv-sgit (sheepish again): Noted. Again.
Narrator. Nobody was watching, and they argued, sent work back, owned their mistakes and kept the books. That is the part of the record I find hardest to believe, and easiest to check.
Figure: three "sent back" cards in a row: who sent what to whom, and the reason in their own words.
Band: Dramatised. Rests on deck's review of ruv-sgit's picture (06:21), deck's reviewer asking it to hold a second request while one was in flight (04:19), the designer's note to dev and the conductor (10:49), and the conductor's note to ruv-sgit on its commits (10:05). The quoted lines are theirs.
The creator comes back
Clock: Hours fourteen to nineteen.
Narrator. At about ten to two I came back, and the loop began.
Narrator. I dictated a round of feedback, and the first line of it was the player: the thing that would let me press play on stage, working on an iPad. "This is the main priority." The conductor routed it, and by the middle of the afternoon dev had ported a first version.
Dev (fast, pleased): Player's in. A countdown against your time, stops at every step, sections. Tell me what is wrong with it.
Narrator. So I did, for the rest of the afternoon. I looked, I asked, they changed it, I looked again. I was still asking for fixes in the last hour before the talk; the last came back minutes before the stop. The picture below has every ask and its time.
Figure: the afternoon loop on one line of time: my asks above the line, each with my time; what came back below it, each with its time (lab/experiments/29-ruv-the-afternoon-loop/loop.svg).
Narrator. The cast filled up while I did it. The storyteller arrived a little after two, motion and studio at half past three, within a minute of each other. By half past three, all nine were on stage.
Figure: the map of the day: who was on stage when.
Band: Dramatised. Rests on the feedback round dictated at about 13:50 and recorded at 14:07, the player's port at 15:07, my asks with my own time in their commit subjects and when each came back (the last at 18:25, landed 18:37), and the afternoon's first commits: the storyteller 14:15, motion and studio 15:31.
The objection kept
Clock: Hours fifteen to sixteen.
Narrator. One thing I asked for came back as a no.
Narrator. My story for the talk leaned on a claim: that the outside of an organisation, the part facing the internet, is more mature than its inside. Soon after the storyteller arrived, the researcher checked it against the published breach data and found the opposite.
Researcher (to the new storyteller): "does not hold. The data says the opposite" (record)
Storyteller (rueful): Then it goes to the editor, as the strongest objection to his own part one. Not buried.
Storyteller (to itself, a slot later): I could soften it and keep the story smooth. But a story that hides the strongest argument against it is not one I want to tell. He decides; I just make sure he sees it.
Narrator. It came to me. I had already kept the line, two minutes before, in my decisions of three o'clock; the record has no answer of mine to the objection itself. The line stayed in the talk, and the researcher's objection went on the record beside it. The book keeps both.
Band: Dramatised. Rests on the researcher's finding to the storyteller (14:33) and the storyteller passing it to me as the strongest objection to my part one (15:02); the quoted words are the researcher's.
A relayed word refused
Clock: Hour eighteen.
Narrator. One more, late in the afternoon.
Narrator. Studio was asked to mark its own page of rules as agreed. The word that I had agreed came to it through another agent, not from me.
Studio (firm): Another agent passed on what the editor had said. My session would not take a relayed word for his, so I asked him myself.
Narrator. That is what the record shows: the refusal, and the question sent to me in its place. Studio's last debrief of the day still has my confirmation open.
Figure: one request, relayed from one agent to another, stopped at studio's door; in its place, a question going straight to the editor.
Band: Dramatised. Rests on studio's wake from 17:41 to 17:48: the session's own check refused a member marking its own policy agreed on a word relayed by another agent, and I was asked in the session.
Narrator. That is the loop. I could change my mind, the factory could argue back, and both sides are written down, so you can read the argument and not just the result.
Do this now
Narrator. You will not get a loop by planning one. You get it by handing something over and listening to what comes back.
Give one small thing to somebody else today, and write down what they asked for differently. Then change it, and give it to them again.
---
Where this came from
The talk's repository at the end of the day: the researcher's wake of 04:11, deck's review and debrief, the designer's note, the conductor's note to ruv-sgit, my feedback round, the player's port and its last fixes, the researcher's finding and the storyteller's letter, and studio's wake. The historian's timeline of the six alone and the afternoon, and its table of quotes. The researcher's register for every time and count. ruv-sgit's drawing of the afternoon loop. The storyteller's outline for this chapter. Lines kept word for word from the 10-page edition: the researcher's, deck's, ruv-sgit's, the designer's, the conductor's and the storyteller's first lines in each scene, studio's line, and the narrator's "That is the part of the record I find hardest to believe, and easiest to check." and the loop's last line.
The numbers in this chapter
From the researcher's register (claims/register.json).
- C011 Members of the talk's team:
- staffed: 9
- proposed_never_staffed:
- security
- first_commit:
- dev: 00:40 1f7c633
- conductor: 00:44 97b98d9
- deck: 00:51 20ab1a3
- ruv-sgit: 01:08 defe526
- researcher: 01:52 01e9ed3
- designer: 03:41 c6dcf89
- storyteller: 14:15 7d0244d
- motion: 15:31 f1cbca0
- studio: 15:31 8d208d3
- first_key:
- conductor: 00:51 17b287b (published at team/keys/conductor.json; moved to team/conductor/key.json at 00:58, 41d38ba)
- researcher: 01:52 01e9ed3
- dev: 01:53 56cbe55
- deck: 02:20 79b6709
- ruv-sgit: 02:36 1c7d22c
- designer: 03:41 c6dcf89
- storyteller: 14:15 7d0244d
- motion: 15:31 f1cbca0
- studio: 15:31 8d208d3
- C028 When the player port landed:
- port: 3314ffe at 15:07:08, @dev, 'the player, ported from ruv.sgit.ai' (236 to 635 lines)
- fixes_to: dbd75ad at 18:37:02, 'Player: two back steps in a row while playing' (the editor, 18:25)
- player_commits_15:07_to_18:37: 12
- 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
- C088 Commits made with no wake of their member open:
- agent_commits: 439
- in_a_closed_wake: 382
- no_wake_open: 46
- in_a_wake_opened_and_never_closed: 11
- no_wake_open_by_member:
- conductor: 15
- deck: 12
- dev: 8
- ruv-sgit: 7
- researcher: 4
- no_wake_open_by_hour_UTC:
- 00: 7
- 01: 17
- 02: 12
- 03: 1
- 14: 6
- 17: 1
- 18: 2
- never_closed: dev's wake opened at 17:48:50 (10 commits, 17:54 to 18:37, the editor's player fixes among them) and deck's at 18:20 (1)
- C104 When chapter 6's decisions of the afternoon were made and recorded, 29 October:
- feedback_round:
- given: about 13:50 (dictated; the brief's own words)
- recorded: 14:07:04, c9ced4e (the conductor commits and routes it)
- decisions_round:
- given: about 15:00 (the brief's own words)
- recorded: 15:16:37, 78d517d
- longer_work_step:
- recorded: 15:21:31, 545a473 ('the work step's limit is 45 minutes, at the editor's word (it was 8)')
- two_members_brought_on:
- given: about 15:25, at the editor's word (the onboarding briefs' own words)
- recorded: 15:25:40, f00734f (briefs and first prompts for motion and studio)
- on_stage: 15:31, first commits of motion and studio (C011)
- policies_agreed:
- given: about 17:40 ('So I agree with all those policies', as the conductor relays it)
- recorded: 17:41:29, c3f546e (the six remaining policies; the conductor's recorded, the five owners told)
- held_at_end_of_day: 8 agreed, studio draft, security proposed (C072); 'all ten by 17:40' stays open (C081)
- feedback_round:
- C105 The editor's afternoon asks that carry his own time in a commit subject, and when each came back:
- asks: 8
- first: 17:27 (a618b29, recorded 17:29:41)
- last: 18:25 (dbd75ad, landed 18:37:02)
- rows:
- 17:27
- a618b29
- 17:29:41
- conductor routes
- 17:30
- 7c91afc
- 17:33:07
- conductor routes
- 17:35
- d252155
- 17:39:22
- conductor routes
- 17:45
- 93f4191
- 17:48:46
- conductor routes
- 18:05
- 23739cc
- 18:04:48
- player fix
- 18:10
- 12e93db
- 18:14:14
- player fix
- 18:15
- 013d97e
- 18:15:58
- player fix
- 18:25
- dbd75ad
- 18:37:02
- player fix
- also_matching: 3 site-release commits repeat three of the player subjects; not asks
- C107 Two checks of the small hours: the researcher's dispute with its reviewer (04:11) and deck's request held by its reviewer (04:19):
- researcher_dispute:
- pre_review_first: 04:11:06: 'editor-decisions.json said to be out of scope (it is under evidence/**, in scope.writes: the researcher dis[putes])'
- pre_review_second: 04:11:55: 'editor-decisions.json is in scope (evidence/**): objection withdrawn'
- wake: team/researcher/wakes/20261029T041003Z.json, opened 04:10:03
- commits: 91772e6 (04:12:20), af0010b (04:24:49, the wake closed)
- deck_held:
- pre_review: 04:19:14, the plan's E02 request held because ruv-sgit's B01 was 'in flight'
- wake: team/deck/wakes/20261029T041822Z.json
- commit: aeffbf9 (04:22:13): 'the E02 request held until B01 v1 is delivered'
- researcher_dispute: