Keep the Thread Across Boundaries
Core principle. A boundary does not lose the work. It loses the reasons.
- The record is the memory this holds. Not the transcript, not the plan, and not a fact store. Only what settled and what is still open.
- The weight sits in An entry stands alone. Every other rule here is cheap once entries are written that way, and worthless when they are not.
- You opened this in the middle of something. This is how to keep that work, not a replacement for it. Name what you were doing before you start, and return to it when this is done.
Five moments, and nothing else
Write when something settles. These are the only triggers, and they are events rather than states.
| When |
Write |
| a decision is made |
decide |
| a constraint is stated |
decide, because a constraint is a decision with an open scope |
| an approval is given |
decide, marked as approval, which expires at a boundary |
| the objective changes |
push, which parks whatever was in hand |
| a second request arrives before the first closes |
push if it interrupts, nothing if it is a dependency or independent |
- Steering is not a moment. Carry on, look at this instead, try the other one. These change what happens next and settle nothing.
- A frame is pushed only when there is state worth restoring. A decision already made, or more than one step done. Otherwise do the second thing and carry on, because a ledger of trivia is worse than no ledger.
An entry stands alone
Write it as the thing settles, in words that need no previous turn. The moment it settles is the only moment the referent is guaranteed present.
- Approval is anaphoric by nature. "Yes, do that" names nothing. The entry is the thing approved, written out, not the word yes.
- The test is cold reading. If someone reads only the record in two weeks and cannot tell what was decided, the entry is not finished.
- Carry the alternative that lost, as
over. Reopening then needs a new fact rather than a gap in memory. It is usually free. A rival was ruled out. A workaround was refused. A placement was compromised.
- Writing it is also a misunderstanding check. Stating what you understood was settled, in the same turn, surfaces a wrong reading now instead of after the work is done.
What crosses, and what does not
A boundary is a compaction, a model change, a resume, or a handoff. Two things cross it in opposite directions, and collapsing them into one rule is the failure this skill exists to prevent.
- A decision survives. A recorded choice with its rejected alternative is not a question again.
- An authorization does not. Acting is irreversible, so it is pending again unless the approval is still visible. Render the two separately, or the record will claim something is approved after the approval has died.
- On the far side, read before acting, and say what you promoted into the current turn and what you left as background. A record nobody promotes from becomes archaeology; one that promotes everything stops being a record.
The shape on disk
An append-only log is the truth, and the rendering is the interface. No materialised state file, so a partial write cannot corrupt what is known, and the history comes free.
push <text> new item; whatever was in hand is parked beneath it
pop close the current item and restore the one beneath
decide <what> --over <no> record against the current item
brief [--line] render: the whole state, or the one line for this turn
- The per-turn line comes from the record. Opening a turn with the objective, what is parked, and the constraints still in force is how the line is produced, so reading is not a discipline anyone has to remember. A constraint absent from that line is one nothing is checking the next action against.
- Prune by rendering, never by deleting. Decisions from closed items move to a settled section and the rendering shows the most recent few. Nothing leaves the log.
- Resolve where it lives rather than declaring it. What the request named, then what the instruction file declares, then a directory that already exists. Report the path chosen.
Before a boundary you can see
A compaction cannot be seen arriving, so the record is kept current instead of written when one looms.
- Checkpoint on what is visible. An announced compaction, a resume, or a handoff. Also a large ingestion, and there the checkpoint goes before the read. The read may be what pushes the boundary.
- State it flat and last in the turn, so a summariser keeps it whole rather than compressing it into prose.
- Use both channels. The file survives the boundary and needs someone to open it. The stated block may be dropped by the summariser and needs nobody. They fail differently.
- On a handoff it travels whole. The receiver has nothing to reconstruct it from.
What this does not hold
- A fact with its evidence belongs wherever the host already keeps them. Two homes for one fact is how they start disagreeing.
- A durable record a later reader needs is a documentation decision, not this. This holds what is in flight; some of it graduates, most of it does not.
- The transcript. Messages average many times the length of the entry that distils them, and a buffer of recent messages is what several collections already keep and why it does not help them.
- A task list. It holds the work, and an item closes when the work does. A constraint filed as a task closes with it, while its scope was closed by nobody, and the tracker will not say that the rule outlived the errand.
Routing
- Every skill writes here at its own settle points. A budget stated before probing, a rival ruled out, a placement compromised, a slicing chosen: each is already announced somewhere, and this is where the announcement leaves a trace.
- A review reads it rather than reconstructing the reasoning at the end.
- A direct instruction from the user outranks anything here.
1---2name: keep-the-thread-across-boundaries3description: Hold what a session settled so it survives a compaction, a model change, a resume, or a handoff: the objective in hand, the requests parked behind it, and every decision with the alternative it rejected. Use when a decision is made, a constraint is stated, an approval is given, the objective changes, a second request arrives before the first is finished, or you are pointed at a decision taken earlier that the work has to run under. Use again on the far side, when you are working from a summary rather than the conversation that produced it. A decision that lived only in the conversation did not survive it, and the one nobody wrote down is the one that gets re-argued at the worst moment. Not for facts with evidence, which belong wherever the host already keeps them, not for durable records a later reader needs, which is a documentation decision, and not for steering that settles nothing: carry on, try the other one, that looks right.4---56# Keep the Thread Across Boundaries78**Core principle.** A boundary does not lose the work. It loses the reasons.910- **The record is the memory this holds.** Not the transcript, not the plan, and not a fact store. Only what settled and what is still open.11- **The weight sits in *An entry stands alone*.** Every other rule here is cheap once entries are written that way, and worthless when they are not.12- **You opened this in the middle of something.** This is how to keep that work, not a replacement for it. Name what you were doing before you start, and return to it when this is done.1314## Five moments, and nothing else1516**Write when something settles.** These are the only triggers, and they are events rather than states.1718| When | Write |19| --- | --- |20| a decision is made | `decide` |21| a constraint is stated | `decide`, because a constraint is a decision with an open scope |22| an approval is given | `decide`, marked as approval, which expires at a boundary |23| the objective changes | `push`, which parks whatever was in hand |24| a second request arrives before the first closes | `push` if it interrupts, nothing if it is a dependency or independent |2526- **Steering is not a moment.** Carry on, look at this instead, try the other one. These change what happens next and settle nothing.27- **A frame is pushed only when there is state worth restoring.** A decision already made, or more than one step done. Otherwise do the second thing and carry on, because a ledger of trivia is worse than no ledger.2829## An entry stands alone3031**Write it as the thing settles, in words that need no previous turn.** The moment it settles is the only moment the referent is guaranteed present.3233- **Approval is anaphoric by nature.** "Yes, do that" names nothing. The entry is the thing approved, written out, not the word yes.34- **The test is cold reading.** If someone reads only the record in two weeks and cannot tell what was decided, the entry is not finished.35- **Carry the alternative that lost**, as `over`. Reopening then needs a new fact rather than a gap in memory. It is usually free. A rival was ruled out. A workaround was refused. A placement was compromised.36- **Writing it is also a misunderstanding check.** Stating what you understood was settled, in the same turn, surfaces a wrong reading now instead of after the work is done.3738## What crosses, and what does not3940**A boundary is a compaction, a model change, a resume, or a handoff.** Two things cross it in opposite directions, and collapsing them into one rule is the failure this skill exists to prevent.4142- **A decision survives.** A recorded choice with its rejected alternative is not a question again.43- **An authorization does not.** Acting is irreversible, so it is pending again unless the approval is still visible. Render the two separately, or the record will claim something is approved after the approval has died.44- **On the far side, read before acting**, and say what you promoted into the current turn and what you left as background. A record nobody promotes from becomes archaeology; one that promotes everything stops being a record.4546## The shape on disk4748**An append-only log is the truth, and the rendering is the interface.** No materialised state file, so a partial write cannot corrupt what is known, and the history comes free.4950```txt51push <text> new item; whatever was in hand is parked beneath it52pop close the current item and restore the one beneath53decide <what> --over <no> record against the current item54brief [--line] render: the whole state, or the one line for this turn55```5657- **The per-turn line comes from the record.** Opening a turn with the objective, what is parked, and the constraints still in force is how the line is produced, so reading is not a discipline anyone has to remember. A constraint absent from that line is one nothing is checking the next action against.58- **Prune by rendering, never by deleting.** Decisions from closed items move to a settled section and the rendering shows the most recent few. Nothing leaves the log.59- **Resolve where it lives rather than declaring it.** What the request named, then what the instruction file declares, then a directory that already exists. Report the path chosen.6061## Before a boundary you can see6263**A compaction cannot be seen arriving, so the record is kept current instead of written when one looms.**6465- **Checkpoint on what is visible.** An announced compaction, a resume, or a handoff. Also a large ingestion, and there the checkpoint goes before the read. The read may be what pushes the boundary.66- **State it flat and last in the turn**, so a summariser keeps it whole rather than compressing it into prose.67- **Use both channels.** The file survives the boundary and needs someone to open it. The stated block may be dropped by the summariser and needs nobody. They fail differently.68- **On a handoff it travels whole.** The receiver has nothing to reconstruct it from.6970## What this does not hold7172- **A fact with its evidence** belongs wherever the host already keeps them. Two homes for one fact is how they start disagreeing.73- **A durable record a later reader needs** is a documentation decision, not this. This holds what is in flight; some of it graduates, most of it does not.74- **The transcript.** Messages average many times the length of the entry that distils them, and a buffer of recent messages is what several collections already keep and why it does not help them.75- **A task list.** It holds the work, and an item closes when the work does. A constraint filed as a task closes with it, while its scope was closed by nobody, and the tracker will not say that the rule outlived the errand.7677## Routing7879- **Every skill writes here at its own settle points.** A budget stated before probing, a rival ruled out, a placement compromised, a slicing chosen: each is already announced somewhere, and this is where the announcement leaves a trace.80- **A review reads it** rather than reconstructing the reasoning at the end.81- **A direct instruction from the user outranks anything here.**