Start
Orienting, not working. Do not edit code or memory during this — the job is
to find out where things stand and agree what happens next, and a clean
session has no conversation history to fall back on, only what this skill
reads.
See agent-memory for what a note, an index, and evidence mean; this skill
only says which of them to open and in what order.
Order
Identify the half the task belongs to. Halves are directories under
the configured memory directory (memory_dir in .floppy/config) — this
skill does not hardcode their names. Which words route to which half is
the consumer's own knowledge, kept in their own AGENTS.md (or
equivalent), not here. If the task doesn't name a half clearly, ask which
one in a single short question rather than guessing.
A freshly initialized repository has no halves yet — everything lives
flat under the memory directory, one MEMORY.md and nothing to choose
between. That is not a dead end and not a question to ask: skip this step
and open MEMORY.md directly. Splitting into halves is worth doing once
the memory has grown enough to need routing, not before.
Read the current-state file whole. Its path is statuses_now in
.floppy/config (a repository default such as docs/statuses/NOW.md).
It is rewritten in place, so it answers "what's true right now" without
needing history. It holds what is true about the project: frozen
decisions, what is red, what waits on the human, metrics with their marks.
If it points at a dated journal entry for a detail, open only that section,
and only if the task needs it — not the whole journal.
Then read the personal status, if it exists — statuses_personal,
which defaults into the private scope at machines/<name>/NOW.md. This is
the working state of whoever sits at this machine: what they were mid-way
through, what is unfinished, where to pick it up. Missing is the ordinary
case and not a fault — a repository nobody has left a working note in has
nothing to say here. Do not go looking for it under a second machine's
name: that state is theirs and is not about this session.
Two files rather than one because they behave differently, not to be tidy.
Project state is shared and changes rarely; personal state changes every
session and is shared with nobody. Keeping them in one file meant every
wrap rewrote the shared document to record something private, which is what
made overlapping sessions collide in it.
Read the half's own guidance — its AGENTS.md or whatever document
the consumer's routing table names for it.
Open that half's memory index (<memory_dir>/<half>/INDEX.md, or a
sub-index within it), not the whole memory tree. Read the one or two notes
that plainly relate to this task; skip the rest.
Then, only if the task is not about this project alone, open
<memory_dir>/common/ — the scope for facts about no single project: an
outside tool that was evaluated, a shell trap, what this machine has
installed. It holds one directory per audience (shared, private), each a
link into a memory repository, and either may be absent on a machine that
wired only one. Nothing in the project's index points there and nothing
should — the link would be dead for anyone who has not wired the scope —
which is exactly why it is named here instead. A repository that has no
common/ directory never wired it, and that is not a fault to report.
Check live facts instead of trusting the documents:
bash .floppy/run status
Documents can be stale in a way that looks identical to being current — a
rewritten current-state file carries no sign of its own age. The command
reports what is actually true right now: git state, divergence from the
remote, background work, memory wiring. If it disagrees with what the
documents said, the command wins, and say so out loud rather than quietly
answering from the documents.
When the task is on the process/tooling half itself, this step is
replaced by, not performed in addition to, the flag that reports the
same live facts plus that half's own state — memory lint, the wrap lock,
worktrees, recent process edits:
bash .floppy/run status --flow
Run one or the other, never both: --flow is the plain report with the
process-half section appended, so a plain run status right after it
would just repeat what it already printed.
Answering
Give the answer before making any edit, in four short parts:
- Where we are — from the current-state file and the memory just opened,
with pointers to the files, not a restatement of their content.
- What's frozen — thresholds, artifacts, or decisions on this half that
cannot move without a dated, deliberate change.
- What I propose — an ordered list, marking which items need a decision
from the human and which don't.
- What's missing — unknown numbers, open decisions, external
dependencies that block a confident answer.
If the current-state file and run status disagree — for instance the
command reports the branch is behind its remote — resolve that first (a
git pull --rebase before anything else) rather than answering against state
that no longer holds.
What carries into the session
This rite ends here, but one rule outlives it. From now on a fact worth keeping
is written when it appears, not collected at the end. The moments that
produce a note are in agent-memory; the short form is that an option was
rejected, a measurement landed, a number turned out to mean something else, a
tool trap bit, or a decision was frozen.
Nothing is written now — start reads. The rule is stated here because this is
the only place early enough to be read before the first of those moments
arrives: wrap is loaded at the end, and agent-memory is loaded when a note
is already being written, which is too late to be the thing that prompts one.
1---2name: start3description: Orient a fresh session before touching any file — read the current-state file, the relevant half's own guidance, and that half's memory index, then verify live facts with `bash .floppy/run status` instead of trusting the documents. Use at the start of a session, when picking up a new task or branch of work, or when the user asks to start, orient, or "what's next".4---56# Start78Orienting, not working. Do not edit code or memory during this — the job is9to find out where things stand and agree what happens next, and a clean10session has no conversation history to fall back on, only what this skill11reads.1213See `agent-memory` for what a note, an index, and evidence mean; this skill14only says which of them to open and in what order.1516## Order17181. **Identify the half the task belongs to.** Halves are directories under19 the configured memory directory (`memory_dir` in `.floppy/config`) — this20 skill does not hardcode their names. Which words route to which half is21 the consumer's own knowledge, kept in their own `AGENTS.md` (or22 equivalent), not here. If the task doesn't name a half clearly, ask which23 one in a single short question rather than guessing.2425 A freshly initialized repository has no halves yet — everything lives26 flat under the memory directory, one `MEMORY.md` and nothing to choose27 between. That is not a dead end and not a question to ask: skip this step28 and open `MEMORY.md` directly. Splitting into halves is worth doing once29 the memory has grown enough to need routing, not before.30312. **Read the current-state file whole.** Its path is `statuses_now` in32 `.floppy/config` (a repository default such as `docs/statuses/NOW.md`).33 It is rewritten in place, so it answers "what's true right now" without34 needing history. It holds what is true about the **project**: frozen35 decisions, what is red, what waits on the human, metrics with their marks.36 If it points at a dated journal entry for a detail, open only that section,37 and only if the task needs it — not the whole journal.3839 **Then read the personal status, if it exists** — `statuses_personal`,40 which defaults into the private scope at `machines/<name>/NOW.md`. This is41 the working state of whoever sits at this machine: what they were mid-way42 through, what is unfinished, where to pick it up. Missing is the ordinary43 case and not a fault — a repository nobody has left a working note in has44 nothing to say here. Do not go looking for it under a second machine's45 name: that state is theirs and is not about this session.4647 Two files rather than one because they behave differently, not to be tidy.48 Project state is shared and changes rarely; personal state changes every49 session and is shared with nobody. Keeping them in one file meant every50 wrap rewrote the shared document to record something private, which is what51 made overlapping sessions collide in it.52533. **Read the half's own guidance** — its `AGENTS.md` or whatever document54 the consumer's routing table names for it.55564. **Open that half's memory index** (`<memory_dir>/<half>/INDEX.md`, or a57 sub-index within it), not the whole memory tree. Read the one or two notes58 that plainly relate to this task; skip the rest.5960 **Then, only if the task is not about this project alone, open61 `<memory_dir>/common/`** — the scope for facts about no single project: an62 outside tool that was evaluated, a shell trap, what this machine has63 installed. It holds one directory per audience (`shared`, `private`), each a64 link into a memory repository, and either may be absent on a machine that65 wired only one. Nothing in the project's index points there and nothing66 should — the link would be dead for anyone who has not wired the scope —67 which is exactly why it is named here instead. A repository that has no68 `common/` directory never wired it, and that is not a fault to report.69705. **Check live facts instead of trusting the documents:**7172 ```bash73 bash .floppy/run status74 ```7576 Documents can be stale in a way that looks identical to being current — a77 rewritten current-state file carries no sign of its own age. The command78 reports what is actually true right now: git state, divergence from the79 remote, background work, memory wiring. If it disagrees with what the80 documents said, the command wins, and say so out loud rather than quietly81 answering from the documents.8283 When the task is on the process/tooling half itself, this step is84 **replaced** by, not performed in addition to, the flag that reports the85 same live facts plus that half's own state — memory lint, the wrap lock,86 worktrees, recent process edits:8788 ```bash89 bash .floppy/run status --flow90 ```9192 Run one or the other, never both: `--flow` is the plain report with the93 process-half section appended, so a plain `run status` right after it94 would just repeat what it already printed.9596## Answering9798Give the answer before making any edit, in four short parts:99100- **Where we are** — from the current-state file and the memory just opened,101 with pointers to the files, not a restatement of their content.102- **What's frozen** — thresholds, artifacts, or decisions on this half that103 cannot move without a dated, deliberate change.104- **What I propose** — an ordered list, marking which items need a decision105 from the human and which don't.106- **What's missing** — unknown numbers, open decisions, external107 dependencies that block a confident answer.108109If the current-state file and `run status` disagree — for instance the110command reports the branch is behind its remote — resolve that first (a111`git pull --rebase` before anything else) rather than answering against state112that no longer holds.113114## What carries into the session115116This rite ends here, but one rule outlives it. From now on a fact worth keeping117is written **when it appears**, not collected at the end. The moments that118produce a note are in `agent-memory`; the short form is that an option was119rejected, a measurement landed, a number turned out to mean something else, a120tool trap bit, or a decision was frozen.121122Nothing is written now — `start` reads. The rule is stated here because this is123the only place early enough to be read before the first of those moments124arrives: `wrap` is loaded at the end, and `agent-memory` is loaded when a note125is already being written, which is too late to be the thing that prompts one.