#65 has factory/status/blocked since 22:50
feat(web): the habit row — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the habit row — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the day count on Today — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the reminder time, on brain/select — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the reminder switch, on brain/toggle — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the week starts on Monday or Sunday — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the three button variants, on helm button — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): a habit's colour, on brain/radio-group — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the week strip and its met bar — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the stat block on a habit's history — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the target stepper — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): a privacy notice, reached from settings — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the language is a setting — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the archived habits, and the way to them — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): deleting asks twice, and the two questions differ — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): export hands over the whole record — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the reminder actually arrives — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(api): the event log reaches the second device — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(api): the account, its passkey and its devices — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the calendar of one habit — Held. The factory asked a question in a comment.
Answer in a comment. Then remove the label.
fix(web): nothing re-checks the committed icons against their tokens — Held. The factory cannot continue by itself.
State the next step in a comment. Then remove the label.
| State | Chain | Family | Blended — comparable | Raw total — not comparable | Cache reads |
|---|---|---|---|---|---|
| build | #80 | claude/codex · claude-opus-5 5 runs |
1.004.837 | 7.670.992 | 7.348.690 · 95.8 % |
| build | #66 | codex 2 runs |
815.303 | codex does not report it | — |
| build | #100 | codex 3 runs |
741.260 | codex does not report it | — |
| review-plan | #100 | codex 7 runs |
660.015 | codex does not report it | — |
| review-change | #80 | codex 3 runs |
562.651 | codex does not report it | — |
| plan | #66 | codex 3 runs |
554.681 | codex does not report it | — |
| review-change | #100 | codex 3 runs |
553.940 | codex does not report it | — |
| review-plan | #80 | codex 5 runs |
494.348 | codex does not report it | — |
| document | #80 | codex 5 runs |
439.677 | codex does not report it | — |
| plan | #100 | codex 2 runs |
381.053 | codex does not report it | — |
| architecture | #66 | codex 3 runs |
372.652 | codex does not report it | — |
| plan | #80 | codex 2 runs |
371.031 | codex does not report it | — |
| rework | #100 | codex 2 runs |
369.124 | codex does not report it | — |
| document | #100 | codex 3 runs |
356.255 | codex does not report it | — |
| specify | #80 | codex 3 runs |
314.172 | codex does not report it | — |
| specify | #66 | codex 2 runs |
312.706 | codex does not report it | — |
| review-plan | #66 | codex 3 runs |
308.458 | codex does not report it | — |
| review-spec | #80 | claude/codex · claude-opus-5 3 runs |
241.717 | 699.359 | 616.654 · 88.2 % |
| review-plan | #70 | codex 1 run |
231.193 | codex does not report it | — |
| review-spec | #66 | codex 2 runs |
225.120 | codex does not report it | — |
| … and 9 more states. The full list is in python3 .factory/bin/factory.py flow. | |||||
10 states, 4 with reviews: · measured: 28 data points, 10.252.454 blended
flow reports: 4 escalations.
flow counts the full life of the chain and does not retract a report. This page counted the report. It did not judge the cause.
| Commit | Time | Subject | Scope |
|---|---|---|---|
| 0a09a8c | 10:44 | chore(specs): record the QA handoff |
1 file · +1/−0 · Refs #69 |
| 5d80498 | 10:37 | docs(factory): correct the readiness incident |
2 files · +13/−1 · Refs #107 |
| 361a41a | 10:35 | docs(factory): record the bootstrap recovery |
2 files · +39/−1 · Refs #69 |
| c305901 | 10:26 | fix(factory): bound the Python bootstrap |
14 files · +274/−31 · Refs #69 |
| 68c2590 | 09:59 | chore(specs): record QA handover |
1 file · +9/−0 · Refs #73 |
| 47408c9 | 09:49 | chore(specs): record clean theme review |
2 files · +72/−0 · Refs #73 |
| 0971214 | 09:38 | docs(architecture): update theme part inventories |
4 files · +54/−9 · Refs #73 |
| 04895a2 | 09:34 | chore(specs): record settings row CI setup failure |
1 file · +1/−0 · Refs #69 |
| 57094af | 09:30 | chore(specs): approve architecture inventory task |
1 file · +1/−0 · Refs #73 |
| ba441e3 | 09:28 | chore(specs): record second theme review |
4 files · +115/−3 · Refs #73 |
| 97bad56 | 09:16 | docs(product): add the browser theme choice |
4 files · +46/−5 · Refs #73 |
| 6a18280 | 03:16 | refactor(web): keep one theme cycle |
4 files · +39/−14 · Refs #73 |
| 6df50e7 | 03:14 | chore(specs): prepare settings row QA handoff |
2 files · +8/−0 · Refs #69 |
| 5e86edf | 03:13 | fix(web): restore the app shell width |
2 files · +45/−1 · Refs #73 |
| 4ae677f | 03:07 | chore(specs): accept tightened theme cycle criterion |
1 file · +1/−0 · Refs #73 |
| c935bc8 | 03:06 | chore(specs): tighten theme cycle criterion |
3 files · +3/−8 · Refs #73 |
| 606236b | 03:05 | chore(specs): record clean settings row review |
2 files · +46/−0 · Refs #69 |
| c51e315 | 03:01 | chore(specs): return loose theme criterion |
5 files · +24/−1 · Refs #73 |
| 3ef10a7 | 02:59 | chore(specs): record theme review findings |
5 files · +188/−0 · Refs #73 |
| 1be565e | 02:47 | docs(web): document the theme control |
5 files · +72/−4 · Refs #73 |
| 0401276 | 02:40 | feat(web): activate the theme storage decision |
4 files · +37/−5 · Refs #73 |
| 8b8865f | 02:38 | docs(ui): record rework documentation check |
2 files · +10/−4 · Refs #69 |
| 58566f1 | 02:37 | feat(web): compose the theme control |
9 files · +489/−8 · Refs #73 |
| ca3872b | 02:28 | feat(web): finish settings row rework |
4 files · +7/−6 · Refs #69 |
| dc3ebec | 02:27 | test(web): format spacing regression |
2 files · +7/−1 · Refs #69 |
| 9eae0b1 | 02:26 | test(web): format target regression |
2 files · +7/−1 · Refs #69 |
| ebdc9e8 | 02:26 | test(web): format control regression |
2 files · +5/−1 · Refs #69 |
| 7f95ee2 | 02:12 | test(web): guard settings action spacing |
3 files · +77/−1 · Refs #69 |
| 2cefe68 | 02:08 | fix(web): keep settings actions tappable |
4 files · +75/−1 · Refs #69 |
| bf4f6e6 | 02:00 | feat(web): label settings row controls |
4 files · +102/−3 · Refs #69 |
| b828845 | 01:46 | test(web): record theme gate failure |
2 files · +42/−4 · Refs #73 |
| 00bc2f1 | 01:40 | chore(specs): approve finding tasks |
1 file · +1/−0 · Refs #69 |
| 2e74ef3 | 01:34 | chore(specs): record settings row findings |
5 files · +160/−0 · Refs #69 |
| 2e08735 | 01:28 | feat(web): add the theme control |
9 files · +321/−2 · Refs #73 |
| 089ba33 | 01:06 | docs(factory): name the header check in the publish table |
1 file · +1/−0 · no Refs line |
| f0e35d6 | 01:03 | docs(ui): record settings row contract |
4 files · +93/−4 · Refs #69 |
| 79599cb | 00:56 | test(web): record exhausted theme control attempts |
2 files · +5/−1 · Refs #73 |
| 3051131 | 00:56 | feat(web): add shared settings row |
8 files · +567/−2 · Refs #69 |
| ec9cf27 | 00:53 | test(web): record theme control focus failure |
1 file · +4/−1 · Refs #73 |
| 9929973 | 00:50 | test(web): record theme control failure |
1 file · +7/−2 · Refs #73 |
| … and 10 more commits today. The full list is in git log origin/main --since=today. | |||
The source prompts contain 21135 words. A rendered pass through all ten states contains 60214 words. The proposals below come from contract, convergence, and prompt-size investigations. Only the counts and past-run costs are evidence. The expected savings rema…
Korrektur zuerst. Eine frühere Fassung dieses Befunds sagte, build lege die Nachzügleraufgaben an. Das ist falsch. .factory/shared/writing-a-task.md:3: *„Three states write task files: plan, review-change and rework."* build ist nicht dabei.
Der Fund. Über 12 Ketten mit lokalem Arbeitsdatensatz: 208 von 599 ausgeführten Zustandsläufen (34,7 %) entfallen auf zwei Zustände, die keinen Produktcode schreiben. Über 9 Ketten mit Kantenmarkern sind 78 von 241 Kanten (32 %) der Kreis selbst — …
Fixed at the source 2026-08-25; the gate is what remains.
Null Aufrufe in 21 Issues. Keines trägt die Signatur, die cmd_split anhängt (factory.py:3433, „Geschnitten aus #%d"); alle 21 sind von Hand eröffnet.
branch_of nahm die erste passende branch aus einer paginierten Antwort und entschied damit per Reihenfolge, auf welcher branch eine chain arbeitet. Repariert: bei zwei Treffern hält es an und nennt beide.
2 holds wait for a person · 0 pull requests ready, and §8.6 leaves the merge with the owner · 0 issues without a state label. A person decides what comes next.