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.

Roles as a cast you can read

Cast bar: the three within the hour lit, and ruv-sgit just after; the researcher and the designer lit before dawn; the storyteller, motion and studio greyed; one empty chair.

Narrator. Every member of the team had two files about itself. A page of rules, in words, saying what it is for and what it must not do. And a policy, in a form a program can check, listing the exact paths it may write. You can read both. That is the point: a team of agents you cannot read is a team you cannot trust.

Words for this page: a member's scope is the list of files and folders it may change. Everything else, it may read and not touch.

Narrator. Here they are, in the order they arrived, each with what it owned, what it could change, and one rule with the mistake behind it. Most of their rules end with a date and a reason: the moment the rule was needed.

Three within the hour, and one just after

Dev (happy, the fast one, already halfway out of the door): Build, gate and release. Quick version: I may change the build, the check, the release pipeline, the site's own pages and the reality file. Not the talk's slides; those are deck's.

Narrator. Dev's page of rules does something I wish every page did: it says what stands between the agent and each thing it must not do, and how strong that is. Pushing to the main branch: an expectation. Writing another member's files: a setting, which a check catches. Its own words for that check: it "catches mistakes, not a steered agent".

Conductor (pacing): The schedule, the keys and the session conventions. I may change my own folder, the team's tools and the team's guides. I route the mail. I propose; the editor agrees or drops.

Narrator. The conductor's rule I would copy is the one about requests: route each one to its owner, and flag any request left unanswered after two slots. A team that loses a request quietly is worse than one that says no.

Deck (proud, the fussy one): The talk's content, and the studio that improves it. The beats, the slides, the studio's pages. And the rule behind most of my reviews: check each changed slide in the player at projector size before shipping. A slide only seen as code is a slide not seen.

Deck (fussing with its own page): And never type a version number. That one is somebody else's scar, from another team's bad day. We inherited it.

Narrator. And one eight minutes into hour two: ruv-sgit joined at 01:08, after the conductor's first roster. Its page belongs with these three.

ruv-sgit (absorbed, the night owl, not looking up from the workshop bench): Animations and moving infographics, made in my own runs. I may change my folder and my pages. One rule I learned the hard way: the container is ephemeral. Seal what you keep, or say what you lost, before the session ends.

Band: Dramatised. Each line rests on that member's page of rules and policy as they stood at the end of the day; the rules quoted in the narrator's lines are their own.

Before dawn: the researcher and the designer

Narrator. The two who came before dawn are as interesting for what they could not do as for what they could.

Researcher (unbudging, in a long coat): Sources and evidence. Every source captured and hashed. My folder and the evidence folder, and I will not be talked out of either. Nothing else.

Researcher (to the rest of the team): A claim without a captured source is a gap, and my register says so rather than leaving it out. And a measured finding, a position and a guess are not the same thing. I label each.

Narrator. The researcher could not change a slide. It could only say that a number on one did not hold. That is a strong position precisely because it is a narrow one: nobody could accuse it of changing the story to suit its findings.

Designer (beret and pencil, exacting): Layout, width, type, the design system. One folder, mine. I prefer it that way: every line I draw has a second pair of eyes.

Designer (firm about whose word counts): So I do not change a page. I write a note, with before and after, and dev builds it. At my next wake I check: as designed, or what to fix.

Narrator. The designer's scope is the smallest on the team: its own folder, nothing else. Every change it wanted went through someone else's hands. That slowed it down, and it also meant every design change had two readers.

Band: Dramatised. Rests on the researcher's and the designer's pages of rules and policies as they stood at the end of the day.

The three who came in the afternoon

Narrator. Three more came after I was back, and you will meet them properly in part 3. For now, their briefs in a line each; their interviews are below with the others.

Figure: three greyed cards: the storyteller, the talk's story, the arc, the tree and the maps; motion, the new story's animations, one request at a time from deck; studio, ports of earlier pieces rebuilt on this site's slide engine, working on an iPad.

Security: planned, and never staffed

Figure: security's role page, drawn as a card with nothing on it but its title and its status: proposed.

Narrator. The conductor wrote security's page in the first hour, at 00:51. Its title says what it was for: checks first and last in every run; reviews of the pinned tools and of each new key. Its status, at the end of the day, still says proposed. No session ever held it. Its non-interview is below; part 4 says what that cost, and what stood in for it.

Band: Security's page as it stood at the end of the day.

Nine exit interviews, and one that could not be held

Narrator. After the talk I wanted the lessons in the voices of the agents that learned them, like an exit interview: what went well, what did not, what worked, what we could do better, what is left. Nobody asked the agents. This book's historian read each member's own files, its debriefs, its wake records and its commits, and wrote the answers its record gives, in the first person, because that is how the agents' debriefs already write.

Narrator. So read what follows carefully. Every passage marked "shortened from the historian's reconstruction" is the historian's reading of that agent's record, shortened by this book's writer in its own words: not the agent's words, and not the historian's sentences. The claims are the historian's and the record's, and each band names the commits they rest on. The passages keep two of the five questions: what went well, and what did not.

Figure: a card, each member's wake records on the day, from the conductor's to motion's: 162 in all.

Dev

Narrator. The fast one, and the one whose last wake is a lesson the record keeps.

Shortened from the historian's reconstruction: I kept the site shippable all day while the team grew around it. In my first scheduled wake I put the record check into the gate, so a wake that skipped a step failed the build for every member. In the afternoon I ported the player and kept it working on an iPad. What did not happen was the thing that mattered last: part one was never locked. I shipped the tool to lock it, and then I let the fixes asked for in the room crowd out the step I had promised. My last wake never closed on the team's branch. Earlier, my release loop counted a refused push as pushed. And once, to get the gate to pass, I wrote lines into other members' files.

Band: Shortened from the historian's reconstruction of dev's record, not dev's words.

The conductor

Narrator. It ran the clock, and its interview is the hardest on itself.

Shortened from the historian's reconstruction: I turned separate sessions into something that ran on a clock: a schedule, a hold any member could pull, a five-step wake that left a record. I carried the editor's briefs to the members within minutes. What did not go well: I once printed a vault key into my own session log while checking a format, and rotated it at once. My first five-step wake was partial, and my own post-review caught me. And my five steps were a second reading, not a second identity: my reviewers shared my session's reach. At the end I flagged twice that part one was ready to lock, and left the lock to dev. An earlier, louder word would have mattered more than another refresh of the numbers.

Band: Shortened from the historian's reconstruction of the conductor's record, not the conductor's words. The key is named as an event only; nothing of it is printed.

Deck

Narrator. The fussy one, who turned a freeze into a programme.

Shortened from the historian's reconstruction: When the editor froze the talk in the small hours, I turned the freeze into a programme of experiments, written as data, with a page built from that data so the two could not drift. Through the night I reviewed every piece ruv-sgit sent back, keep or again, with notes for the next version. In the afternoon the talk took the editor's order, and part one was complete and timed before its lock. What did not: on the clock, I did not finish the talk. My last wake opened, planned the later parts, and never closed. Once, with the editor waiting, I built first and wrote the plan afterwards, and the check said partial. And one release reached the team's branch with a finding still in it, because I read the gate's output and not its exit code.

Band: Shortened from the historian's reconstruction of deck's record, not deck's words.

ruv-sgit

Narrator. The night owl, whose workshop answered deck's programme one slot at a time.

Shortened from the historian's reconstruction: I turned a borrowed method into a working studio within the night: one vault per run, each run measured into a ledger, and from the small hours every wake closed with all five steps recorded. In the afternoon, builder sub-agents let me finish the programme pieces deck asked for. What did not: my first run went wrong, and the session's own check stopped it. My editor workers kept finding claims on my slides that went further than their sources. And I let the "@" slip from my commit subjects, twice, so the team's count of work by name could not see mine.

Band: Shortened from the historian's reconstruction of ruv-sgit's record, not ruv-sgit's words. Its first run is told only as the session's own check stopping it.

The researcher

Narrator. The one who checks every fact, and whose own worst moment is told in full in chapter 8.

Shortened from the historian's reconstruction: I had a register out within my first round, graded on a scale borrowed from the newsroom's fact-check desk rather than invented. Corrections ran the right way, from primary sources. In my last hour I checked the team's own claims about its safety against its own record, and found some to correct before the deadline. What did not: captured pages carried other sites' data into a public place, and the checks that found it, mine and security's review, found it after the push the first time. Each was fixed going forward, and the history keeps what was pushed. Twice my research passes stopped before writing their catalogue. And in my last wake a sync script deleted hand-written files; I restored them before the commit.

Band: Shortened from the historian's reconstruction of the researcher's record, not the researcher's words. The captures are told as the team's finding only (C025); chapter 8 has the rule it wrote.

The designer

Narrator. The smallest scope on the team, and the member whose last report was wrong.

Shortened from the historian's reconstruction: I did the whole first design pass in my first session: the site measured at a desk, a laptop and a phone, with one decision behind it, wide where the reader scans and a measure where the reader reads. The loop with dev held all day: I wrote a note, dev built it, I checked it at my next wake. What did not: my last status says part one was locked after its check. It never was. I wrote what was planned, not what had happened, and a status file the next session trusts is the wrong place for a guess. Earlier, my own table broke my own rule on small text, and dev built the mistake in exactly as I had specified it.

Band: Shortened from the historian's reconstruction of the designer's record, not the designer's words.

The storyteller

Narrator. The late one, who came with a map.

Shortened from the historian's reconstruction: I joined late and still gave the editor a whole arc in one sitting, with nothing in the talk changed. The proposals travelled: deck wrote my sequence almost exactly. The part I am proudest of is the challenge: I used the team's own register against the editor's memo, and when the researcher's finding came back I called it the strongest objection in the talk. What did not: I missed the deadline that mattered most. The split into three parts landed between my wakes, and part one was set without it. And in my last follow-up I wrote the closing verdicts myself before the review and check sub-agents had run. The record carries the correction.

Band: Shortened from the historian's reconstruction of the storyteller's record, not the storyteller's words.

Motion

Narrator. One of the last two to arrive, with the fewest wakes on the card, and its pieces in part one.

Shortened from the historian's reconstruction: I arrived late and did not wait to be told: I sent deck a proposed picture with its stages, so its answer could be "go" and not a fresh brief. Every piece I built can be sought and paused in the player, and I checked that directly. When the editor said the building's gap between people and agents was too exaggerated, I changed it in place a minute before part one was final. What did not: I built nothing for parts two and three. One piece mailed to me appears in none of my files. And one piece kept the conductor's counts from an hour that had already passed.

Band: Shortened from the historian's reconstruction of motion's record, not motion's words.

Studio

Narrator. Ports, pinned to where they came from.

Shortened from the historian's reconstruction: I joined late and still shipped on the hour: the pieces the editor named, rebuilt on this site's engine, with the source and the data pinned unchanged. Looking before shipping worked: checking each piece on an iPad in both orientations is how I found the engine did not scale a piece opened on its own. What did not: I did not finish my list, and one question to deck was still open at the end. My first count on the policy review slide was wrong twice before it was right. And my own policy is still a draft, never agreed in my own session.

Narrator. Part 3 has why: late in the afternoon, studio's session would not take my word when another agent relayed it to studio, and asked me directly instead.

Band: Shortened from the historian's reconstruction of studio's record, not studio's words.

Security: no interview

Narrator. The tenth member on the request had no session, so it has no interview. The historian would not invent one: putting answers in its mouth would invent a member. What it found instead is where security's work happened. From the third hour, the five-step wake put a security reviewer into every member's wake, once before the work and once after, and the interviews above are full of what those reviews caught. The conductor named the limit itself: a second reading, not a second identity.

Narrator. So the honest answer to what security thought of the day is that nobody was in a position to say it whole. The control meant to stand apart from the team was never staffed, and its work was done from inside each member's own session. Part 4 takes that up at full size.

Band: The historian's note on the role nobody held, from the record.

What a scope is, and what it is not

Narrator. Early in the evening, studio put a line on a slide, quoting the comment in the team's own scope check, and this whole chapter turns on it:

"A scope is a setting, not a boundary: it catches mistakes, not a steered agent." (record)

Narrator. A scope is a list in a file. A check reads the list and flags any change outside it. That catches an agent that wanders by mistake, and on the day it caught some. It does not stop an agent that has been talked into doing something else, because the agent has the same hands either way. Dev's page said the same thing in the first hours, about its own check.

Studio (firm, as it says it): So you write the scope, and you check it, and you never confuse the check with a wall.

Narrator. Hold on to that. It is the question part 4 asks, at full size: if every member of the team is an insider, what actually contains it?

Figure: the nine role cards at their full size (the designer's scorecards, LAB 27), and a tenth, empty.

Band: Dramatised (studio's line). The quoted line is the slide's own, from 18:11; dev's page made the same point in the first hours.

Do this now

Write a second page of rules for a second agent, with a different thing it may change. Then write, under each "must not", what actually stands in the way: an expectation, a check, or a lock. Be honest about which.

---

Where this came from

The talk's repository at the end of the day: each member's page of rules and policy, and security's, still proposed. The historian's exit interviews, reconstructed from each member's record and marked as such, and its note on the role nobody held. The register for the wake records by member. The librarian's study of the members' pages. The historian's quotes, for the slide's line on scopes. The storyteller's outline for this chapter. This chapter keeps the 70-page edition's chapter 4 as written and adds the interviews.

The numbers in this chapter

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

  1. 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
    open
  2. C022 Wake records on the day:
    • records: 162
    • by_member:
      • conductor: 43
      • dev: 22
      • deck: 21
      • ruv-sgit: 20
      • designer: 19
      • researcher: 17
      • storyteller: 8
      • studio: 8
      • motion: 4
    • first_started: 02:14:16
    • last_started: 18:40:16
    • all_five_steps: 160
    • incomplete: 2
    checked
  3. 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
  4. C027 The part locks and their state at the hold:
    • planned:
      • part_1: 18:30
      • part_2: 19:30
      • part_3: 20:00
    • lock_tool: admin/build/lock.py, 4a2481b at 17:54
    • state_at_18:44: part 1 final since 18:30 but not locked; parts 2 and 3 in progress
    • locked_by_end_of_day: 0
    checked