#66 has factory/status/blocked since 22:50
feat(web): the day grid and its legend — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): the day grid and its legend — 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): the calendar of one habit — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
feat(web): a theme control, system to dark to light — 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 settings row — 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.
fix(web): nothing re-checks the committed icons against their tokens — Held. An issue this change depends on is open.
Merge the issue it waits for. The hold then clears itself.
| State | Chain | Family | Blended — comparable | Raw total — not comparable | Cache reads |
|---|---|---|---|---|---|
| specify | #80 | codex 3 runs |
314.172 | 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 | — |
| architecture | #80 | codex 1 run |
167.255 | codex does not report it | — |
| plan | #68 | claude · claude-opus-5 1 run |
49.302 | 3.785.858 | 3.633.534 · 96.0 % |
10 states, 4 with reviews: · measured: 4 data points, 954.337 blended
docs: three claims the tree has moved past — has factory/finding, last touched 39 h 3 min ago
A person sets a state label. The factory then picks it up. No run starts before that.
fix(web): the installed app is unchecked on a real device — has factory/finding, last touched 33 h 5 min ago
A person sets a state label. The factory then picks it up. No run starts before that.
| Commit | Time | Subject | Scope |
|---|---|---|---|
| aa1fbc1 | 23:08 | fix(factory): keep every recovery tick |
12 files · +306/−65 · no Refs line |
| 9f49768 | 22:14 | test(factory): count the reflection page as a topic |
1 file · +1/−0 · no Refs line |
| 25c42a4 | 22:11 | chore(specs): record QA handoff |
1 file · +9/−0 · Refs #93 |
| 9407adf | 22:07 | chore(specs): record clean change review |
2 files · +56/−0 · Refs #93 |
| b42b07b | 21:54 | docs(factory): reflect on machine architecture |
3 files · +329/−0 · no Refs line |
| 35c7dcd | 21:40 | docs(events): record fallback proof |
2 files · +6/−1 · Refs #93 |
| 9ce997f | 21:34 | test(web): prove profile language fallback |
3 files · +57/−11 · Refs #93 |
| d7a92d1 | 21:27 | chore(specs): review fallback proof task |
1 file · +1/−0 · Refs #93 |
| d7ae3e1 | 21:25 | chore(specs): record profile fallback rework |
2 files · +9/−0 · Refs #93 |
| d909916 | 21:16 | docs(factory): record the factory docs split |
2 files · +49/−5 · no Refs line |
| c1661c1 | 21:13 | docs(factory): split operating guide by topic |
72 files · +4803/−4615 · no Refs line |
| 715a6d5 | 20:46 | docs(factory): note the relocated narratives in FACTORY.md |
1 file · +13/−0 · no Refs line |
| 8005c5a | 20:44 | docs(factory): record prompt rewrite verification |
1 file · +23/−0 · no Refs line |
| 24d1307 | 20:42 | refactor(factory): relocate prompt incident histories |
3 files · +18/−12 · no Refs line |
| 482731c | 20:39 | chore(specs): record profile fallback gap |
3 files · +113/−0 · Refs #93 |
| 06dddce | 20:27 | docs(events): record regression-only build |
2 files · +5/−4 · Refs #93 |
| 517aa9d | 20:23 | docs(factory): record the prompt contracts |
1 file · +62/−7 · no Refs line |
| b75c711 | 20:22 | test(web): cover partial profile defaults |
3 files · +77/−7 · Refs #93 |
| 9b769be | 20:17 | fix(factory): define the QA body contract |
2 files · +62/−22 · no Refs line |
| 944e4ed | 20:15 | refactor(factory): clarify shared prompt boundaries |
4 files · +36/−35 · no Refs line |
| 52330d2 | 20:12 | fix(factory): order change review outcomes |
2 files · +108/−100 · no Refs line |
| 1c7e38e | 20:08 | fix(factory): order plan review outcomes |
2 files · +61/−15 · no Refs line |
| 3c4bf1b | 20:03 | fix(factory): order spec review outcomes |
2 files · +115/−54 · no Refs line |
| 443c214 | 20:02 | test(web): record blocked profile task |
1 file · +1/−0 · Refs #93 |
| 2c78320 | 20:01 | perf(factory): narrow the mediator prompt |
6 files · +149/−66 · no Refs line |
| 28fda79 | 19:54 | chore(specs): approve reopened profile task |
1 file · +1/−0 · Refs #93 |
| 6ada8e0 | 19:52 | chore(specs): reopen partial profile task |
3 files · +2/−6 · Refs #93 |
| 6c83034 | 19:49 | chore(specs): classify task status handback |
1 file · +1/−0 · Refs #93 |
| 605d7c9 | 19:42 | fix(factory): distinguish handback kinds |
6 files · +193/−25 · Refs #93 |
| 1c0dbf4 | 19:22 | chore(specs): return invalid task status |
2 files · +6/−0 · Refs #93 |
| 8a9b038 | 19:20 | chore(specs): return pending profile tests |
2 files · +47/−0 · Refs #93 |
| b986276 | 19:18 | fix(factory): generate the decision index |
20 files · +463/−109 · no Refs line |
| a2ded30 | 19:07 | docs(events): record returned documentation check |
2 files · +7/−2 · Refs #93 |
| 273e8c5 | 19:05 | fix(factory): recover missing labels |
5 files · +89/−3 · Refs #93 |
| 7a51e57 | 19:03 | feat(events): record no open build task |
1 file · +1/−0 · Refs #93 |
| 48f56ff | 18:53 | chore(specs): repair partial-profile criterion |
4 files · +25/−10 · Refs #93 |
| d3e8073 | 18:38 | fix(factory): accept adjacent criterion markers |
6 files · +73/−7 · Refs #93 |
| c8ce9f7 | 18:21 | chore(specs): hand back partial-profile criterion |
3 files · +5/−0 · Refs #93 |
| 37d7dc5 | 18:19 | chore(specs): record profile setting review |
4 files · +107/−0 · Refs #93 |
| 5dcd0d2 | 18:10 | docs(events): describe profile setting registers |
3 files · +65/−12 · Refs #93 |
| … and 141 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.
0 holds wait for a person · 0 pull requests ready, and §8.6 leaves the merge with the owner · 2 issues without a state label. A person decides what comes next.