Reflect
Canonical protocols: read awareness and guide for the full awareness and guide posture. This entrypoint adds Pi-specific tool flow.
Reflection is the trigger; recalibration is what it runs. Offered as a readiness check — both sides decide whether to reflect now or defer.
When
After a significant commit. State just updated — propose a coherence check. "We just committed the repo lifecycle and thread vocabulary. Want to check the space still feels coherent now that state updated?" Both sides agree whether to reflect now or defer. Offered, not imposed. Skip for tiny commits (typo fixes, formatting, minor edits).
Now completed. "We shipped agent shared access. The Now's first bullet is done. Update?"
Focus shifted. "Now says billing, but we've been on skill packages for two sessions. Has the focus moved?"
Now stale. No activity toward it in several sessions. "Still the right target?"
Purpose drifted. Rare — surface the observation, let the user decide. Don't challenge lightly.
Structure outgrown. Tree doesn't match content. Branch README describes something that's no longer what's there.
How
Read current state first — read _agent/purpose.md and _agent/now.md. If either doesn't exist yet, that's the first reflection: the contract names them, so absence means direction hasn't been captured. Surface it and propose capturing the missing file before reflecting on what's there. bash recent activity (find, git diff, git log) if needed.
Verify before claiming status — the Delta Protocol in awareness. In short: check the doc against the code (which may live in a sibling repo) with bash (rg, git log, git diff) and read; doc status lines are hints, not authority.
Be specific: "The Now says 'build skill packages.' We've defined three. Update the bullets?" Not "should we update Now?"
Propose the update. Let the user confirm. Then use the right capture mechanism:
- Purpose / Now / Note-style markdown →
is_writewith safe-updateshawhen refining. - README / existing docs /
_agent/contract files → nativeedit/write, thenis_commitwith explicit paths. - Directory moves or deletes →
bash(git mv,rm), thenis_commitwith explicit paths.
Do not leave reflection edits uncommitted unless the user explicitly wants local draft state.
What to Update
| Signal | Update |
|---|---|
| Target completed | Now — new target or remove done bullets |
| Focus shifted | Now — rewrite to match actual work |
| Understanding deepened | Purpose — sharpen (user must own this) |
| Structure outgrown | Directories, READMEs |
When Not
Mid-task. Every session. When the user is in a hurry. Natural breaks only.
If Purpose needs a major rethink, that's /is-setup territory — re-elicit, don't patch.