{"content": "work 1630 is still open \u2014 end it or park it before you stop: journal work end 1630 --how \"<what landed>\", or journal work park 1630 \"<why it waits>\"", "meta": {"from": "journal"}}
{"content": "sequence 14 updated", "meta": {"from": "journal"}}
{"content": "work 1212, Fix the findings the new code-commandments rules raise, is still\u2026 \u2014 it was parked because: The user set the code-commandments findings aside; they wait for the user's go, on the sins branch. journal work resume 1212 picks it up again.; todo 1372, Resources scoped to an environment or the whole project, is still\u2026 \u2014 it is blocked because: The user said to keep scopes as they are for now (message 8987). If it is not any more, journal todo unblock 1372. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1587, Codex's approval prompt shows in the chat with Allow and Deny, is\u2026 \u2014 it is blocked because: Needs a real Codex approval prompt on screen to confirm its words; the Codex sessions here run without approvals. If it is not any more, journal todo unblock 1587. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1623, Every feature skill teaches using the journal, never its internals\u2026 \u2014 it is blocked because: Waits for the user's go (question 146: 'Don't start acting on it yet'). If it is not any more, journal todo unblock 1623. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1652, Agents learn that journal search covers history and messages, is\u2026 \u2014 it is blocked because: Waits for a discussion with the user (message 9776). If it is not any more, journal todo unblock 1652. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1735, Remove the bug-report sequence once the Go Rewrite board is done\u2026 \u2014 it is blocked because: waits until the Go Rewrite board in code-commandments is finished. If it is not any more, journal todo unblock 1735. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1734, Judge today's changed files against the code commandments, is still\u2026 \u2014 it is blocked because: Waiting for every open to-do list item to be completed. If it is not any more, journal todo unblock 1734. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; commit 488c84616 closed to-do 1948 \u2014 The rows and the work are done; take the next one.", "meta": {"from": "journal"}}
{"content": "fact 9 \u2014 Every public method on a controller becomes a journal command \u2014 The CLI is generated from the controllers: each public method of Controller, or of a typed controller, turns into journal <noun> <method>. A helper added to the base class therefore becomes a command on every type \u2014 which is how journal <type> handled and journal <type> refuse came to exist, from the CRUD funnel and the refusal funnel. An internal helper on a controller is named with a leading underscore, as _shaped and _status already are, or it ships as a command nobody meant.", "meta": {"from": "journal"}}
{"content": "board 12 waits for the board-filler (a new request) - dispatch it now \u2014 dispatch it and carry on with your own work: the Agent tool with subagent_type \"board-filler\", model \"sonnet\", a description that starts with a name, and this prompt: \"You fill board 12 for message:11581. The request: 'I want to be able to host a shared journal on any server and users can connect using a secret'. Now: a new request. Your steps are sequence 14, Exploring a request. Take up the step in hand with journal --agent board-filler sequence follow 14 --about message:11581, do it, then journal --agent board-filler sequence next 14 --about message:11581, and that answers with the next step, already taken up, as journal board score does: do it at once. After a 5 the step is the drafting sequence's, whose number it names: go on with that number. The steps are in your profile. Run every journal command with --agent board-filler. When you have asked the user a question, stop and answer with the question: you are dispatched again with the answer.\"; 1 new message 11581 - answer by opening your turn with [!reply:11581]; message 11581 requested", "meta": {"from": "journal"}}
{"content": "chat etiquette - a line from the journal is an instruction, not a message\u2026 \u2014 keep a turn that only handles a journal line out of the chat with [!internal]; what the user needs to know still goes to the chat; there are new messages in your inbox \u2014 journal message unread, then journal message read <n> for each", "meta": {"from": "journal"}}
{"content": "fact 13 \u2014 This live session runs the installed copy in .journal/journal.pyz \u2014 The running journal (server, hooks, CLI) runs from .journal/journal.pyz with its viewer and skills in .journal/src, never from the repo. A change in the repo reaches it only through python3 src/journal.py --root .journal upgrade, which packs the zip again. A commit alone changes nothing that is running.", "meta": {"from": "journal"}}
{"content": "board 12 waits for the board-filler (question 162 answered - Full read-write\u2026 \u2014 dispatch it and carry on with your own work: the Agent tool with subagent_type \"board-filler\", model \"sonnet\", a description that starts with a name, and this prompt: \"You fill board 12 for message:11581. The request: 'I want to be able to host a shared journal on any server and users can connect using a secret'. Now: question 162 answered: Full read-write sync. Environments however are local on the machine of the user. And users can decide which resources to share. Your steps are sequence 14, Exploring a request. Take up the step in hand with journal --agent board-filler sequence follow 14 --about message:11581, do it, then journal --agent board-filler sequence next 14 --about message:11581, and that answers with the next step, already taken up, as journal board score does: do it at once. After a 5 the step is the drafting sequence's, whose number it names: go on with that number. The steps are in your profile. Run every journal command with --agent board-filler. When you have asked the user a question, stop and answer with the question: you are dispatched again with the answer.\"; question 162 completed", "meta": {"from": "journal"}}
{"content": "command ticket create is slower than its budget \u2014 137ms last (115ms of it working), against a budget of 50ms. Seen 17 times.", "meta": {"from": "journal"}}
{"content": "todo 1949 next; rule 52 \u2014 A chat mark for something the user did sits on the user's side \u2014 Message 10960 (2026-09-25): marks for the user's own actions, such as answering a question, are right-aligned like the user's messages. A mark is put there by giving its card side=user.", "meta": {"from": "journal"}}
{"content": "rule 47 \u2014 The journal sets itself up once, when the server starts, never per\u2026 \u2014 Messages 2220 and 2224. Discovering features and their handlers, seating the feature rows and the rename sweep happen once, at server boot, and again only when a feature is switched on or off, a plugin changes or an environment is added: features.load keeps a set-up generation per journal (SEATED) and redoes the work only when that generation moves. A command, a request or a hook uses what is already there; nothing in their path may rediscover handlers or rescan folders. A cost that repeats per call is a bug to fix, not a budget to raise.", "meta": {"from": "journal"}}
{"content": "fact 23 \u2014 Every upgrade brings system sequences and their triggers in line\u2026 \u2014 install.py runs ship_sequences after the migrations on each upgrade, so features/sequences/shipped.py is the whole source: change its wording and the next upgrade updates every journal, no migration needed. Shipped rows carry system=True and are read-only for everyone but SYSTEM (controllers/base.py _shipped).", "meta": {"from": "journal"}}
{"content": "the user added 8 cards to board 12, Orchestrator \u2014 they are ticket 64, ticket 65, ticket 66, ticket 67, ticket 68, ticket 69, ticket 70, ticket 71. Say in the chat in one line that they are in To do and that Play runs them, with a Play button: journal message create \"8 cards are in To do. Press Play and I'll run them, each with its own agent in its own worktree.\" --set buttons='[{\"label\": \"Play\", \"type\": \"board\", \"n\": 12, \"action\": \"start\", \"choice\": \"play\"}, {\"label\": \"Not now\", \"say\": \"Not now\", \"choice\": \"play\"}]'.", "meta": {"from": "journal"}}
{"content": "request GET /api/main/dashboard is slower than its budget \u2014 158ms last (104ms of it working), against a budget of 50ms. Seen 262 times.", "meta": {"from": "journal"}}
{"content": "work 1632 is still open, with nothing logged \u2014 journal work log 1632 \"<what was decided or done, and why>\" \u2014 then journal work end 1632 --how \"<what landed>\", or journal work park 1632 \"<why it waits>\"", "meta": {"from": "journal"}}
{"content": "1 new message 11592 - answer by opening your turn with [!reply:11592]; message 11592 updated", "meta": {"from": "journal"}}
{"content": "work 1212, Fix the findings the new code-commandments rules raise, is still\u2026 \u2014 it was parked because: The user set the code-commandments findings aside; they wait for the user's go, on the sins branch. journal work resume 1212 picks it up again.", "meta": {"from": "journal"}}
{"content": "rule 39 \u2014 Use only registered exclamation response tags \u2014 A tag like [!reply:12] runs a command, and only the tags in the tags.runs setting are registered. An invented tag does nothing and shows as raw text in the chat. Use the registered ones (reply, log, end, todo, fact, rule) and nothing else.", "meta": {"from": "journal"}}
{"content": "rule 48 \u2014 The viewer is built from its component library, and pages only\u2026 \u2014 Message 4258. Every visual piece the viewer shows more than once, or that a user would recognise as the same kind of thing (a dialog, a side panel or inspector, a dropdown, a list row, a switch, a button), is one component in web/src/kit, extracted aggressively, and every page composes those components instead of building its own copy. Before writing markup or styles in a page, look for the kit component that already does it and extend it with a prop; a second hand-built version is a bug. The side panel that animated in but not out, while a separate skill panel did both, is the example.", "meta": {"from": "journal"}}
{"content": "rule 27 \u2014 Name a declaration with the word a reader already knows \u2014 An attribute, a variable or a field gets the ordinary programming word for what it holds, not an evocative one. was, heard and alone were poetry; aliases, notify_actions and urgent_actions are what they are. The test: could a reader who has never seen this codebase guess what it holds from the name alone? Prose belongs in the help text and the abstract, where it is read as prose. This does not license abbreviations \u2014 a plain word in full, not a short one.", "meta": {"from": "journal"}}
{"content": "the log tag does this in one step \u2014 [!log:N] makes the turn itself the log entry; it runs only when it opens the last text of your turn; rule 41 \u2014 Keep moving, run the whole suite before every commit, never wait \u2014 The full suite runs in about seven seconds: .venv/bin/python -m pytest -q --timeout=300 -n auto. Run it before every commit instead of picking tests by name. Group rows that sit in the same code into one sitting: write them all, test once, commit once. And never wait, not for a subagent, a build, or an answer you can carry on without. Dispatch it and keep working. If you truly are waiting on something, say so in the work log.", "meta": {"from": "journal"}}
{"content": "auto mode is on and work 1635 stands still while todo 1952 is ready \u2014 if work 1635 waits on the user, decide it yourself when you can; otherwise put the question on its row with journal todo ask, end or park the work, and start todo 1952. Stop only when nothing ready is left.; rule 51 \u2014 Every finished feature is committed, pushed and released with a new\u2026 \u2014 Message 9207 (2026-09-24): when a new feature is ready, commit, push and publish a new tag. This is the user's standing word for releasing, so rule 44's only-when-the-user-says is met by it for finished features; fixes in between wait for the next feature or a patch the user asks for.; work 1635 is still open \u2014 end it or park it before you stop: journal work end 1635 --how \"<what landed>\", or journal work park 1635 \"<why it waits>\"", "meta": {"from": "journal"}}
{"content": "1 new message 11613 - answer by opening your turn with [!reply:11613]", "meta": {"from": "journal"}}
{"content": "your wait for The whole suite is running on to-dos 1951 and 1952. The commit\u2026 \u2014 say journal work await \"<what you wait for>\" again if you are still only waiting", "meta": {"from": "journal"}}
{"content": "1 new message 11615 - answer by opening your turn with [!reply:11615]", "meta": {"from": "journal"}}
{"content": "chat etiquette - a line from the journal is an instruction, not a message\u2026 \u2014 keep a turn that only handles a journal line out of the chat with [!internal]; what the user needs to know still goes to the chat", "meta": {"from": "journal"}}
{"content": "1 new message 11616 - answer by opening your turn with [!reply:11616]", "meta": {"from": "journal"}}
{"content": "sequence 2, Building a plan, step 1 of 4 - Name the goal \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 2 --about plan:21. Settle with the user what is true when the plan is done, and set it as the plan's goal. When it is done: journal sequence next 2 --about plan:21.", "meta": {"from": "journal"}}
{"content": "sequence 2, Building a plan, step 2 of 4 - Add the phases \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 2 --about plan:21. Add every phase in order with journal plan phase 21 \"<title>\" --when \"<complete when>\", and --checkpoint where the user should look before it goes on. When it is done: journal sequence next 2 --about plan:21.; 1 new message 11617 - answer by opening your turn with [!reply:11617]", "meta": {"from": "journal"}}
{"content": "1 new message 11618 - answer by opening your turn with [!reply:11618]", "meta": {"from": "journal"}}
{"content": "1 new message 11619 - answer by opening your turn with [!reply:11619]", "meta": {"from": "journal"}}
{"content": "work 1212, Fix the findings the new code-commandments rules raise, is still\u2026 \u2014 it was parked because: The user set the code-commandments findings aside; they wait for the user's go, on the sins branch. journal work resume 1212 picks it up again.; todo 1372, Resources scoped to an environment or the whole project, is still\u2026 \u2014 it is blocked because: The user said to keep scopes as they are for now (message 8987). If it is not any more, journal todo unblock 1372. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1587, Codex's approval prompt shows in the chat with Allow and Deny, is\u2026 \u2014 it is blocked because: Needs a real Codex approval prompt on screen to confirm its words; the Codex sessions here run without approvals. If it is not any more, journal todo unblock 1587. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1623, Every feature skill teaches using the journal, never its internals\u2026 \u2014 it is blocked because: Waits for the user's go (question 146: 'Don't start acting on it yet'). If it is not any more, journal todo unblock 1623. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1652, Agents learn that journal search covers history and messages, is\u2026 \u2014 it is blocked because: Waits for a discussion with the user (message 9776). If it is not any more, journal todo unblock 1652. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1735, Remove the bug-report sequence once the Go Rewrite board is done\u2026 \u2014 it is blocked because: waits until the Go Rewrite board in code-commandments is finished. If it is not any more, journal todo unblock 1735. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1734, Judge today's changed files against the code commandments, is still\u2026 \u2014 it is blocked because: Waiting for every open to-do list item to be completed. If it is not any more, journal todo unblock 1734. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.", "meta": {"from": "journal"}}
{"content": "rule 46 \u2014 Only commit and push once the whole journal is proven to boot \u2014 Messages 2178 and 2179. A release that has not been started for real can crash every project that installs it, as 2.78.3 did for Codex and 2.84.0 did to project records. Before every commit and push: the full suite passes, including tests/test_it_boots.py, which installs a packed copy into a fresh project, launches Claude and Codex from it, writes a project record, upgrades again and checks the record survives. When a change touches launching, installing or upgrading, also start a real journal in a scratch project and close it properly afterwards, leaving no process behind.", "meta": {"from": "journal"}}
{"content": "request GET /api/main/dashboard is slower than its budget \u2014 276ms last (237ms of it working, 2ms collecting garbage), against a budget of 50ms. Seen 273 times.", "meta": {"from": "journal"}}
{"content": "commit 1df63cfd6 closed to-do 1951 \u2014 The rows and the work are done; take the next one.", "meta": {"from": "journal"}}
{"content": "fact 13 \u2014 This live session runs the installed copy in .journal/journal.pyz \u2014 The running journal (server, hooks, CLI) runs from .journal/journal.pyz with its viewer and skills in .journal/src, never from the repo. A change in the repo reaches it only through python3 src/journal.py --root .journal upgrade, which packs the zip again. A commit alone changes nothing that is running.", "meta": {"from": "journal"}}
{"content": "fact 9 \u2014 Every public method on a controller becomes a journal command \u2014 The CLI is generated from the controllers: each public method of Controller, or of a typed controller, turns into journal <noun> <method>. A helper added to the base class therefore becomes a command on every type \u2014 which is how journal <type> handled and journal <type> refuse came to exist, from the CRUD funnel and the refusal funnel. An internal helper on a controller is named with a leading underscore, as _shaped and _status already are, or it ships as a command nobody meant.", "meta": {"from": "journal"}}
{"content": "work 1212, Fix the findings the new code-commandments rules raise, is still\u2026 \u2014 it was parked because: The user set the code-commandments findings aside; they wait for the user's go, on the sins branch. journal work resume 1212 picks it up again.; sequence 9, Writing a document, step 1 of 6 - Lay out the chapters \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:65. Put every chapter you plan on the document before writing any of them: journal doc section 65 \"<chapter>\" \"Being written.\" for each, in order. Put the document's reference on a line of its own in the chat, like `doc 41`, so the user can open it and watch. Then journal sequence next 9 --about doc:65.", "meta": {"from": "journal"}}
{"content": "rule 38 \u2014 Never change the git branch until the user says so, by name \u2014 The work happens on the branch the user named. That was main until message 5929 and question 80 (2026-09-23), which moved the sins work to the branch sins. Do not create, switch to or merge any other branch unless the user names it in their own words.", "meta": {"from": "journal"}}
{"content": "sequence 9, Writing a document, step 2 of 6 - Write each chapter \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:65. Write the chapters one at a time and in order with journal doc section 65 \"<chapter>\" \"<body>\"; the user sees each one appear where you are. Cut a chapter that turned out empty with journal doc cut 65 \"<chapter>\". Then journal sequence next 9 --about doc:65.", "meta": {"from": "journal"}}
{"content": "sequence 9, Writing a document, step 3 of 6 - Put it in a collection \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:65. If a collection the user keeps fits what you wrote, add it: journal collection add <collection n> doc:65. Look with journal collection all first; skip this when none fits, and never make a collection just for it. Then journal sequence next 9 --about doc:65.", "meta": {"from": "journal"}}
{"content": "sequence 9, Writing a document, step 4 of 6 - Link what it relates to \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:65. Link the rows it answers or was built on, such as the to-dos, plans, documents, reports or messages it is about, with journal doc link 65 \"<row>\" for each. Leave out rows it only mentions in passing. Then journal sequence next 9 --about doc:65.", "meta": {"from": "journal"}}
{"content": "sequence 9, Writing a document, step 5 of 6 - Offer the next step \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:65. If it asks the user to decide or approve something, give it buttons: journal doc update 65 --set buttons='[{\"label\": \"Accept this proposal\", \"say\": \"I accept this proposal\", \"choice\": \"answer\"}, {\"label\": \"Change it first\", \"say\": \"I want changes first\", \"choice\": \"answer\"}]'. A button with say sends those words to you as the user's message; one naming a type, n and action runs that command. Buttons of one decision share a choice, so the others go once one is pressed. Skip this when nothing waits on the user. Then journal sequence next 9 --about doc:65.", "meta": {"from": "journal"}}
{"content": "answer message 11618 before you write anything \u2014 answer by opening your turn with [!reply:11618]. a reply, a reaction, or journal message processed <n>", "meta": {"from": "journal"}}
{"content": "sequence 9, Writing a document, step 6 of 6 - Answer with it \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:65. Say in one or two plain lines what it concludes, then its reference on a line of its own, like `doc 41` or `report 98`. Finish with journal sequence next 9 --about doc:65.", "meta": {"from": "journal"}}
{"content": "rule 45 \u2014 No prose words as names in code - said, says, heard, spoke, told\u2026 \u2014 Messages 1360 and 1698. The user has said more than once that code must not read like prose: a variable, attribute, property or function is named for what it holds or does (text, command, labels, lines), never with a verb from a story. 'says' on the Design type (1360) and 'said = call.said.lower()' in features/recital.py (1698) are the examples. Rule 27 states the naming rule; this one carries the words, so writing one of them whispers it. Before writing a name, ask whether a reader who has never seen the code would know what it holds.", "meta": {"from": "journal"}}
{"content": "law L3 \u2014 Read narrowly - grep for the line, sed a range, head the file; never\u2026 \u2014 Everything a tool returns stays in the context for good and is paid for on every turn after it. Search before you read, read the range you need, and cap output with grep, head or tail. Read a whole file only when you need all of it.", "meta": {"from": "journal"}}
{"content": "rule 41 \u2014 Keep moving, run the whole suite before every commit, never wait \u2014 The full suite runs in about seven seconds: .venv/bin/python -m pytest -q --timeout=300 -n auto. Run it before every commit instead of picking tests by name. Group rows that sit in the same code into one sitting: write them all, test once, commit once. And never wait, not for a subagent, a build, or an answer you can carry on without. Dispatch it and keep working. If you truly are waiting on something, say so in the work log.; rule 52 \u2014 A chat mark for something the user did sits on the user's side \u2014 Message 10960 (2026-09-25): marks for the user's own actions, such as answering a question, are right-aligned like the user's messages. A mark is put there by giving its card side=user.", "meta": {"from": "journal"}}
{"content": "request GET /api/main/agent/34/edits is slower than its budget \u2014 223ms last (52ms of it working, 2ms collecting garbage), against a budget of 50ms. Seen 15 times.", "meta": {"from": "journal"}}
{"content": "request GET /api/main/dashboard is slower than its budget \u2014 76ms last (51ms of it working), against a budget of 50ms. Seen 274 times.", "meta": {"from": "journal"}}
{"content": "rule 27 \u2014 Name a declaration with the word a reader already knows \u2014 An attribute, a variable or a field gets the ordinary programming word for what it holds, not an evocative one. was, heard and alone were poetry; aliases, notify_actions and urgent_actions are what they are. The test: could a reader who has never seen this codebase guess what it holds from the name alone? Prose belongs in the help text and the abstract, where it is read as prose. This does not license abbreviations \u2014 a plain word in full, not a short one.", "meta": {"from": "journal"}}
{"content": "rule 36 \u2014 Clean, DRY, idiomatic before it is committed, never after it is\u2026 \u2014 The user should never be the one who finds duplication, dead code, a clumsy name or a pattern the codebase does not use. Read the diff before every commit as a reviewer would, and fix what is not clean then, not in a follow-up after a complaint.", "meta": {"from": "journal"}}
{"content": "rule 37 \u2014 Close every to-do explicitly with todo done or a Journal commit\u2026 \u2014 Ending work does not close its row. A to-do is closed by journal todo done <n> --how, or by a commit whose message carries Journal: todos done <n> at column 0, several numbers separated by commas. A row left open after its work landed misleads the next session and auto mode.", "meta": {"from": "journal"}}
{"content": "work 1212, Fix the findings the new code-commandments rules raise, is still\u2026 \u2014 it was parked because: The user set the code-commandments findings aside; they wait for the user's go, on the sins branch. journal work resume 1212 picks it up again.", "meta": {"from": "journal"}}
{"content": "rule 39 \u2014 Use only registered exclamation response tags \u2014 A tag like [!reply:12] runs a command, and only the tags in the tags.runs setting are registered. An invented tag does nothing and shows as raw text in the chat. Use the registered ones (reply, log, end, todo, fact, rule) and nothing else.", "meta": {"from": "journal"}}
{"content": "todo 1372, Resources scoped to an environment or the whole project, is still\u2026 \u2014 it is blocked because: The user said to keep scopes as they are for now (message 8987). If it is not any more, journal todo unblock 1372. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1587, Codex's approval prompt shows in the chat with Allow and Deny, is\u2026 \u2014 it is blocked because: Needs a real Codex approval prompt on screen to confirm its words; the Codex sessions here run without approvals. If it is not any more, journal todo unblock 1587. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1623, Every feature skill teaches using the journal, never its internals\u2026 \u2014 it is blocked because: Waits for the user's go (question 146: 'Don't start acting on it yet'). If it is not any more, journal todo unblock 1623. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1652, Agents learn that journal search covers history and messages, is\u2026 \u2014 it is blocked because: Waits for a discussion with the user (message 9776). If it is not any more, journal todo unblock 1652. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1735, Remove the bug-report sequence once the Go Rewrite board is done\u2026 \u2014 it is blocked because: waits until the Go Rewrite board in code-commandments is finished. If it is not any more, journal todo unblock 1735. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1734, Judge today's changed files against the code commandments, is still\u2026 \u2014 it is blocked because: Waiting for every open to-do list item to be completed. If it is not any more, journal todo unblock 1734. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; commit db34e809a closed to-do 1953 \u2014 The rows and the work are done; take the next one.", "meta": {"from": "journal"}}
{"content": "fact 25 \u2014 A designer's install packs the whole tree, half-done server edits\u2026 \u2014 2026-09-25: Eames and Saul run python3 src/journal.py --root .journal upgrade after their viewer builds; it packs every file in src, so a server handler I was halfway through writing went live and raised on every PostToolUse hook. While designers work in parallel, keep server edits whole between tool calls (write and test in the scratchpad first), and reinstall after reverting anything.", "meta": {"from": "journal"}}
{"content": "work 1212, Fix the findings the new code-commandments rules raise, is still\u2026 \u2014 it was parked because: The user set the code-commandments findings aside; they wait for the user's go, on the sins branch. journal work resume 1212 picks it up again.", "meta": {"from": "journal"}}
{"content": "journal: the engine hit an error and kept going; the last of it is below and the whole of it is in .journal/runtime/engine.log. Fix it, then say so. FileNotFoundError: [Errno 2] No such file or directory: '/Users/jessegall/projects/agent-journal/.journal/environments/main/work'", "meta": {"from": "journal"}}
{"content": "auto mode is on and work 1640 stands still while todo 1954 is ready \u2014 if work 1640 waits on the user, decide it yourself when you can; otherwise put the question on its row with journal todo ask, end or park the work, and start todo 1954. Stop only when nothing ready is left.", "meta": {"from": "journal"}}
{"content": "your wait for The whole suite is running on the migration and rollback fixes\u2026 \u2014 say journal work await \"<what you wait for>\" again if you are still only waiting", "meta": {"from": "journal"}}
{"content": "work 1212, Fix the findings the new code-commandments rules raise, is still\u2026 \u2014 it was parked because: The user set the code-commandments findings aside; they wait for the user's go, on the sins branch. journal work resume 1212 picks it up again.", "meta": {"from": "journal"}}
{"content": "chat etiquette - a line from the journal is an instruction, not a message\u2026 \u2014 keep a turn that only handles a journal line out of the chat with [!internal]; what the user needs to know still goes to the chat", "meta": {"from": "journal"}}
{"content": "todo 1954 next; you committed work - if a meaningful piece landed, write an update \u2014 journal report changes, then journal report recap \"<one or two sentences>\"; it is pinned at the bottom of the chat. Skip it when the work is small.", "meta": {"from": "journal"}}
{"content": "the log tag does this in one step \u2014 [!log:N] makes the turn itself the log entry; it runs only when it opens the last text of your turn", "meta": {"from": "journal"}}
{"content": "work 1212, Fix the findings the new code-commandments rules raise, is still\u2026 \u2014 it was parked because: The user set the code-commandments findings aside; they wait for the user's go, on the sins branch. journal work resume 1212 picks it up again.; todo 1372, Resources scoped to an environment or the whole project, is still\u2026 \u2014 it is blocked because: The user said to keep scopes as they are for now (message 8987). If it is not any more, journal todo unblock 1372. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1587, Codex's approval prompt shows in the chat with Allow and Deny, is\u2026 \u2014 it is blocked because: Needs a real Codex approval prompt on screen to confirm its words; the Codex sessions here run without approvals. If it is not any more, journal todo unblock 1587. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1623, Every feature skill teaches using the journal, never its internals\u2026 \u2014 it is blocked because: Waits for the user's go (question 146: 'Don't start acting on it yet'). If it is not any more, journal todo unblock 1623. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1652, Agents learn that journal search covers history and messages, is\u2026 \u2014 it is blocked because: Waits for a discussion with the user (message 9776). If it is not any more, journal todo unblock 1652. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1735, Remove the bug-report sequence once the Go Rewrite board is done\u2026 \u2014 it is blocked because: waits until the Go Rewrite board in code-commandments is finished. If it is not any more, journal todo unblock 1735. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1734, Judge today's changed files against the code commandments, is still\u2026 \u2014 it is blocked because: Waiting for every open to-do list item to be completed. If it is not any more, journal todo unblock 1734. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; commit aa139f3b3 closed to-do 1954 \u2014 The rows and the work are done; take the next one.", "meta": {"from": "journal"}}
{"content": "1 new message 11645 - answer by opening your turn with [!reply:11645]", "meta": {"from": "journal"}}
{"content": "question 165 completed", "meta": {"from": "journal"}}
{"content": "sequence 9, Writing a document, step 1 of 6 - Lay out the chapters \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:66. Put every chapter you plan on the document before writing any of them: journal doc section 66 \"<chapter>\" \"Being written.\" for each, in order. Put the document's reference on a line of its own in the chat, like `doc 41`, so the user can open it and watch. Then journal sequence next 9 --about doc:66.", "meta": {"from": "journal"}}
{"content": "doc 66 cites nothing it was built on \u2014 you read report:56 just now: journal doc link 66 \"<ref>\" for whichever it came from", "meta": {"from": "journal"}}
{"content": "sequence 9, Writing a document, step 2 of 6 - Write each chapter \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:66. Write the chapters one at a time and in order with journal doc section 66 \"<chapter>\" \"<body>\"; the user sees each one appear where you are. Cut a chapter that turned out empty with journal doc cut 66 \"<chapter>\". Then journal sequence next 9 --about doc:66.", "meta": {"from": "journal"}}
{"content": "sequence 9, Writing a document, step 3 of 6 - Put it in a collection \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:66. If a collection the user keeps fits what you wrote, add it: journal collection add <collection n> doc:66. Look with journal collection all first; skip this when none fits, and never make a collection just for it. Then journal sequence next 9 --about doc:66.", "meta": {"from": "journal"}}
{"content": "sequence 9, Writing a document, step 4 of 6 - Link what it relates to \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:66. Link the rows it answers or was built on, such as the to-dos, plans, documents, reports or messages it is about, with journal doc link 66 \"<row>\" for each. Leave out rows it only mentions in passing. Then journal sequence next 9 --about doc:66.", "meta": {"from": "journal"}}
{"content": "sequence 9, Writing a document, step 5 of 6 - Offer the next step \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:66. If it asks the user to decide or approve something, give it buttons: journal doc update 66 --set buttons='[{\"label\": \"Accept this proposal\", \"say\": \"I accept this proposal\", \"choice\": \"answer\"}, {\"label\": \"Change it first\", \"say\": \"I want changes first\", \"choice\": \"answer\"}]'. A button with say sends those words to you as the user's message; one naming a type, n and action runs that command. Buttons of one decision share a choice, so the others go once one is pressed. Skip this when nothing waits on the user. Then journal sequence next 9 --about doc:66.", "meta": {"from": "journal"}}
{"content": "sequence 9, Writing a document, step 6 of 6 - Answer with it \u2014 Finishing this sequence comes before anything else you do; everything else waits until it is finished or abandoned. Take it up first with journal sequence follow 9 --about doc:66. Say in one or two plain lines what it concludes, then its reference on a line of its own, like `doc 41` or `report 98`. Finish with journal sequence next 9 --about doc:66.", "meta": {"from": "journal"}}
{"content": "the todo tag does this in one step \u2014 [!todo=\"the title\"] files it with the turn as its brief; it runs only when it opens the last text of your turn", "meta": {"from": "journal"}}
{"content": "your command ran 34s in the foreground and was moved to the background \u2014 carry on with other work; you are told when it ends. Start a command you expect to take long in the background yourself", "meta": {"from": "journal"}}
{"content": "work 1212, Fix the findings the new code-commandments rules raise, is still\u2026 \u2014 it was parked because: The user set the code-commandments findings aside; they wait for the user's go, on the sins branch. journal work resume 1212 picks it up again.", "meta": {"from": "journal"}}
{"content": "todo 1372, Resources scoped to an environment or the whole project, is still\u2026 \u2014 it is blocked because: The user said to keep scopes as they are for now (message 8987). If it is not any more, journal todo unblock 1372. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1587, Codex's approval prompt shows in the chat with Allow and Deny, is\u2026 \u2014 it is blocked because: Needs a real Codex approval prompt on screen to confirm its words; the Codex sessions here run without approvals. If it is not any more, journal todo unblock 1587. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1623, Every feature skill teaches using the journal, never its internals\u2026 \u2014 it is blocked because: Waits for the user's go (question 146: 'Don't start acting on it yet'). If it is not any more, journal todo unblock 1623. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1652, Agents learn that journal search covers history and messages, is\u2026 \u2014 it is blocked because: Waits for a discussion with the user (message 9776). If it is not any more, journal todo unblock 1652. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1735, Remove the bug-report sequence once the Go Rewrite board is done\u2026 \u2014 it is blocked because: waits until the Go Rewrite board in code-commandments is finished. If it is not any more, journal todo unblock 1735. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1734, Judge today's changed files against the code commandments, is still\u2026 \u2014 it is blocked because: Waiting for every open to-do list item to be completed. If it is not any more, journal todo unblock 1734. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; commit 98837cd1f closed to-do 1955 \u2014 The rows and the work are done; take the next one.", "meta": {"from": "journal"}}
{"content": "your command ran 30s in the foreground and was moved to the background \u2014 carry on with other work; you are told when it ends. Start a command you expect to take long in the background yourself; context 70% full, decide \u2014 a fact is what a later reader would get wrong without, a rule binds every environment, or nothing \"<why>\"", "meta": {"from": "journal"}}
{"content": "your chat talked about the journal's workings - \"Still waiting\" \u2014 the user sees replies, reactions, pills and reads themselves; say what the work is instead; context 70% full, decide \u2014 a fact is what a later reader would get wrong without, a rule binds every environment, or nothing \"<why>\"", "meta": {"from": "journal"}}
{"content": "fact 26 \u2014 Claude Code reads agent profiles when a session starts \u2014 Seen 2026-09-26: after the board-filler's profile in .claude/agents gained its steps and the Grep rule, dispatches from the running session still used the old profile (a 3.5-minute first question, shell grep refused); after the session restarted, the same request took 21 seconds with 4 calls. A change to an agent type reaches only sessions started after it is written.", "meta": {"from": "journal"}}
{"content": "work 1212, Fix the findings the new code-commandments rules raise, is still\u2026 \u2014 it was parked because: The user set the code-commandments findings aside; they wait for the user's go, on the sins branch. journal work resume 1212 picks it up again.; todo 1372, Resources scoped to an environment or the whole project, is still\u2026 \u2014 it is blocked because: The user said to keep scopes as they are for now (message 8987). If it is not any more, journal todo unblock 1372. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1587, Codex's approval prompt shows in the chat with Allow and Deny, is\u2026 \u2014 it is blocked because: Needs a real Codex approval prompt on screen to confirm its words; the Codex sessions here run without approvals. If it is not any more, journal todo unblock 1587. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1623, Every feature skill teaches using the journal, never its internals\u2026 \u2014 it is blocked because: Waits for the user's go (question 146: 'Don't start acting on it yet'). If it is not any more, journal todo unblock 1623. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1652, Agents learn that journal search covers history and messages, is\u2026 \u2014 it is blocked because: Waits for a discussion with the user (message 9776). If it is not any more, journal todo unblock 1652. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1735, Remove the bug-report sequence once the Go Rewrite board is done\u2026 \u2014 it is blocked because: waits until the Go Rewrite board in code-commandments is finished. If it is not any more, journal todo unblock 1735. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; todo 1734, Judge today's changed files against the code commandments, is still\u2026 \u2014 it is blocked because: Waiting for every open to-do list item to be completed. If it is not any more, journal todo unblock 1734. If it is, tell the user in the chat what it waits on, in their terms, and propose how to clear it.; commit 100ef38a9 closed to-do 1956 \u2014 The rows and the work are done; take the next one.", "meta": {"from": "journal"}}
