You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The people were a gif: a few pixels of path traced back and forth, forever, at
the same speed whatever was happening. An actor now walks between the stations
of its own room -- the room's own fixtures, chosen from its own stretch of
floor -- stops at each one, leans into the work and turns to face the way it is
going. Where a stretch of floor has nothing to work at the actor paces it
rather than miming at a spot where there is nothing, because two stations a
hand's width apart reads as a broken animation rather than as somebody busy.
And the animation means something now. An arm that does not engage a room has
nobody working in it, so switching arms changes who is at work and the actors
in the rooms it leaves out stand at their posts. Everybody carries a nameplate,
outside the group that mirrors so it stays the right way round.
Also the two thin places: Review and the Oracle had kits written for a layout
with four rows of depth and supplied too little to stand on a floor, and the
plant hall's right-hand third read as the building running out.
Two things it revealed: a frozen document clock looks exactly like a broken
animation, and the nameplate went in under a class the dossier already used.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: BUILD_PLAN.md
+56-1Lines changed: 56 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,7 @@
4
4
5
5
This is the executable plan derived from [`docs/`](docs/). The design documents say *what* to build and *why*; this says *in what order*, *with what acceptance test*, and *what changes because of the machine we're actually on*.
6
6
7
-
**Status:** M0–M31 complete; v5 and v6 landed, v7 registered and not yet run. **V6's result does not adjudicate what v6 registered** — its treatment arm did not implement the mechanism it names; see M23. The live path is wired but unspent (mock-driven throughout; the first live run awaits an API key). M12's code-generation half is blocked on both a key and Docker. Nothing below is claimed as done until its acceptance criteria are green in CI.
7
+
**Status:** M0–M32 complete; v5 and v6 landed, v7 registered and not yet run. **V6's result does not adjudicate what v6 registered** — its treatment arm did not implement the mechanism it names; see M23. The live path is wired but unspent (mock-driven throughout; the first live run awaits an API key). M12's code-generation half is blocked on both a key and Docker. Nothing below is claimed as done until its acceptance criteria are green in CI.
8
8
9
9
---
10
10
@@ -1272,6 +1272,61 @@ it failed — it was the only thing in the suite that knew which way the camera
1272
1272
1273
1273
---
1274
1274
1275
+
### M32 · An actor with somewhere to be ✅
1276
+
Presentation only. `model.py`, `map.py` and `ledger.py` untouched.
1277
+
1278
+
**The people were a gif.** Each one traced a few pixels of path back and forth, forever, at the
1279
+
same speed, whatever was happening. That is decoration, and decoration on a page whose whole claim
1280
+
is that nothing on it is decorative. An actor now walks between the **stations of its own room** —
1281
+
the room's own fixtures, chosen from its own stretch of floor — stops at each one, leans into the
1282
+
work, and turns to face the way it is going. Where a stretch of floor has nothing to work at, the
1283
+
actor paces it rather than miming at a spot where there is nothing: two stations a hand's width
1284
+
apart is a figure shuffling on the spot, which reads as a broken animation rather than as somebody
1285
+
busy, so below a minimum spread the route falls back to walking.
1286
+
1287
+
**And the animation now means something.** An arm that does not engage a room has nobody working
1288
+
in it, so switching arms changes who is at work — the actors in the rooms that arm leaves out
1289
+
stand at their posts. That is the same fact the route, the opacity and the dossier already report,
1290
+
said a fourth way, and it is the difference between a map that moves and a map that is showing
1291
+
you a system.
1292
+
1293
+
**Everybody says who they are.** A nameplate rides above each figure with the role's own name on
1294
+
it, outside the group that mirrors, so it stays the right way round when its owner turns.
1295
+
1296
+
**The two thin places are filled.** Review and The Oracle had kits written for a layout with four
1297
+
rows of depth and supplied too few things to stand on a floor; both gained furniture. The plant
1298
+
hall had three tanks and two exchangers clustered to the left, so its right-hand third read as the
1299
+
building running out — a row of nine switchgear and skid units now runs the length of its deck.
1300
+
1301
+
#### What building it revealed was wrong
1302
+
1303
+
**1. A negative delay and a frozen clock look exactly like a broken animation.** Sampling the
1304
+
actor's transform in the browser returned the same number sixteen times over eleven seconds. The
1305
+
keyframes were right, `getAnimations()` said `running`, and the value never moved — because the
1306
+
pane was not compositing, so the document timeline was not advancing at all. Driving
1307
+
`animation.currentTime` by hand proved the motion in one step. Worth recording: when an animation
1308
+
looks stuck, check the clock before the keyframes.
1309
+
1310
+
**2. `tag` was already taken.** The nameplate went in as `class="tag"`, which is also the class on
1311
+
the dossier's backing chip — so the count of nameplates on the page was one more than the number
1312
+
of people in the building. The test that caught it was counting a class name rather than a thing,
1313
+
which is exactly why it caught it.
1314
+
1315
+
**Acceptance**
1316
+
- Every test from M22 through M31 still passes; three that read the old motion path were rewritten
1317
+
against what an actor does now.
1318
+
- Every actor's stations are inside its own room, in order, and far enough apart that nobody
1319
+
shuffles on the spot. Tested.
1320
+
- Two actors in a room never cross. Tested.
1321
+
- At least two thirds of actors are stationed at a real fixture rather than pacing, and no actor is
1322
+
half at a station. Tested.
1323
+
- An actor in a room this arm does not engage stands at its first station, with the animation off.
1324
+
Tested against both the stylesheet and the script.
1325
+
- Every actor carries its own name. Tested.
1326
+
- Still one self-contained file; still refuses to build on input that does not verify.
1327
+
1328
+
---
1329
+
1275
1330
## 2. Working agreement
1276
1331
1277
1332
-**`main` is always green.** Every milestone lands as a PR with CI passing on Linux and Windows.
Copy file name to clipboardExpand all lines: README.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -75,7 +75,9 @@ state of the research machine is owned by exactly one room. It is drawn as a cut
75
75
a chamber you look into from the side, with a ceiling, a back wall and a floor its furniture and
76
76
its people stand on, and between the chambers is the plant that runs the place — a service deck, a
77
77
trunk down the sealed wing, and a hall of tanks and trusses underneath. None of that carries a
78
-
number, because none of it records anything. The recorded passes move between the rooms. At rest there is no writing on it at all: hover a room to find out which it is,
78
+
number, because none of it records anything. The recorded passes move between the rooms, and the
79
+
actors walk between the stations of their own rooms and work at them — in the rooms the arm on
80
+
display engages. In the rooms it does not, they stand at their posts. At rest there is no writing on it at all: hover a room to find out which it is,
79
81
click it to open what that department actually did — every figure naming the artifact it was read
80
82
out of — and press `labels` to put the callouts, the captions and the roster back on. Drag to pan,
0 commit comments