- /goals new writes the goals skeleton (with the user's default loop statement) into the file, as
main did; the planning prompt points at it instead of repeating the shape.
- The ## headings at Ready are the approved structure. A write/edit of the goals file that drops one
is undone, and the tool result says why.
- turn_end also checks the file, to catch shell edits: it restores removed Interview entries and
reports a lost heading once. The Interview snapshot is taken at turn start, so the user's own edits
between turns (for example deleting a pasted secret) are respected.
Co-Authored-By: Claude <288921227+claudypoo@users.noreply.github.com>
steering-lite-bsbench session, 04:29 UTC: the input hook saved the user's answer, then the agent
wrote the whole goals file from memory with an empty ## Interview and erased it. The extension now
snapshots Interview entries before each write/edit of the goals file, restores any that are missing
afterwards, and adds a note to the tool result.
Co-Authored-By: Claude <288921227+claudypoo@users.noreply.github.com>
Session IDs start with a timestamp, so the last 6 characters are the distinguishing part.
A new /goals new in the same session makes the next version and never overwrites (flag wx).
Co-Authored-By: Claude <288921227+claudypoo@users.noreply.github.com>
Loading a second pi-subagents copy forced an "extensions": [] filter in user settings. pi-goals
now only imports its event helper; tests run against 0.70.1, which ships its own types, so the local
.d.ts shim is removed.
Co-Authored-By: Claude <288921227+claudypoo@users.noreply.github.com>
wassname: "I'd rather waste some tokens and avoid a model mistakenly waiting".
- Every interactive user message is saved verbatim under ## Interview, so answers survive compaction.
- Each loop wake ends with one extension line: search the goals file, Interview and project setup
before waiting; check access by trying it; do not invent limits; else record an assumption and continue.
- Planning asks about credentials, compute and limits and records them under ## Resources.
- Loop statement and User voice: agent proposes, edits only after the user agrees.
Co-Authored-By: Claude <288921227+claudypoo@users.noreply.github.com>
Herdr trial (GLM 5.3 flash): slash commands skip the input hook, so the opening request was not
recorded and the model paraphrased it with wrong context in User voice. The trial also showed
planning, Ready, one scheduler task, real judge accepts, loop removal, stale-wake drop and a live
transformed loop wake working.
Co-Authored-By: Claude <288921227+claudypoo@users.noreply.github.com>
- Default loop statement is wassname's 2026-09-24 text, spelling fixed only.
- Planning prompt states the aim: the agent starts uncertain and reduces that uncertainty.
- Planning now allows normal tools (bash, subagent scouts); only file edits outside the goals
file and CompleteGoal are blocked.
- README: design intent quote, and what the agent versus the user sees at each step.
Co-Authored-By: Claude <288921227+claudypoo@users.noreply.github.com>
- One goals file per /goals new, planning is read-only except that file, Ready starts work.
- Ready creates a session-scoped pi-scheduler prompt task with an owned marker. Each owned wake is
transformed into the user's Loop statement plus the current goals read from disk. Wakes from an
older Ready or another session are dropped. Pause, clear or no remaining goals remove the task.
- Whole goals file is re-sent once after compaction or resume.
- CompleteGoal delegates to a fresh read-only pi-subagents runtime agent. Accept with quoted checks
marks [✓]. Reject, malformed output or judge failure leaves the goal open (the old version
accepted on judge failure). /goals judge off records [x] self-verification.
- Tests: fake Pi harness plus contract tests against real scheduler core and pi-subagents parsers.
Mutation check: 7 deliberate bugs each failed at least one test.
- Removes the old subprocess judge, private auto-continue timer, historical docs and scripts.
Co-Authored-By: Claude <288921227+claudypoo@users.noreply.github.com>
Updated the planDrafting prompt to improve clarity and user engagement. Added details on user interaction and refined language for better understanding.
Both round-1 findings were withdrawn once the reviewer had the plan-mode
facts. Comment the state-flip order, which is the part that reads like a bug
and is not.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
"Ready?" over an unread file is not a review -- the only copy of the plan was
inside a collapsed edit tool call. Print the working set before the menu.
The 4th option compacts the planning conversation before the work turn starts.
session_compact already re-sends the whole plan file, so the exploration is
summarized away and the agreed goals are not.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
A subagent runs pi -p --no-session with extensions on, so it loaded pi-goals, got the
parent's plan injected, and could sign off the parent's goals. Two windows on one checkout
also stomped each other's file. The session id in the name fixes both, and doubles as the
on switch: no /goals means no file at this session's path, so nothing fires.
Drops the v1 goals.md rename, and /goals clear now deletes the file.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
~/.pi/skills is a symlink to ~/.claude/skills, so a pi session loads the plan-format skill and this
prompt at once. A dogfooding agent merged the two by hand on every redraft.
Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>