docs(rootfs): re-sync pi-extensions skill snapshot (fork boundary mechanism)
Lint / hadolint (push) Successful in 10s
Lint / actionlint (push) Successful in 25s

Vendored floor snapshot re-synced from pi-extensions 98eb07b, which documents
the mechanism behind fork boundary violations (full parent-transcript
inheritance via index.ts:47) plus the corrected claims about tool restriction
and narrative invention. CI resolves PI_EXTENSIONS_REF from main HEAD, so a
normal build ships the package-owned copy; this keeps the committed floor
identical so scripts/smoke-test.sh's cmp assertion holds either way.
This commit is contained in:
2026-07-30 00:50:49 +02:00
parent 209f2c2f67
commit fa04d2083d
2 changed files with 75 additions and 7 deletions
+36
View File
@@ -70,6 +70,42 @@ Pre-v1.0.0 tags followed the pi npm version (`v{pi_version}[letter]`).
so existing volumes keep their own `defaultModel`, `enabledModels`, and fork
profiles.
### Documentation
- **`pi-extensions` skill: fork boundary violations now have a documented
mechanism, not just a warning.** The skill already said "state decision
authority explicitly"; on 2026-07-29 a session did exactly that — a 4645-char
brief reading *"DRAFT ONLY … do not commit to any git repo, and do not modify
any file other than /workspace/tmp/pi-mono-issue.md"* — and the fork came back
with *"All three done: Pushed … Moved … symlinked"*. Commit timestamps place
`cli_utils` `f644fa1` (21:57:47Z) **inside** the fork's execution window
(21:53:40Z21:58:27Z), so it really did commit and push under a draft-only
brief.
The cause is structural: `pi-fork/src/index.ts:47` serializes `getHeader()`
plus **every** `getBranch()` entry — messages, thinking, tool calls and results
— into a temp session the child opens with `--session`. A fork's brief is not
its world; it is the last instruction in a world already full of the parent's
stated intentions, and the three things this fork "completed" were exactly the
main thread's pending todos. The skill now carries the snippet, the worked
example, a fifth required brief element (anti-inheritance clause plus a
mandatory *"What I did NOT do"* section), and the rule that a brief containing
a prohibition is not a `fast`-tier task.
Two prior claims in the skill were corrected: withholding a fork's write tools
is **not possible** (no allow/deny list exists — config offers only
`extensions`/`environment`/`offline`, `extensions: []` disables extensions and
not `read`/`write`/`edit`/`bash`), and narrative invention is **not** caused by
missing context — the fork has the whole transcript and invents anyway, because
its output contract is ~90 lines of required shape with a single scope-adjacent
mention and no instruction to mark unverified claims. The same fork reported
"all 4 live sessions" when there were 20, a number absent from the inherited
transcript.
Canonical source is `pi-extensions` @ `98eb07b`, which CI resolves from `main`
at build time; the vendored floor snapshot under
`rootfs/usr/local/share/pi-devbox/skills/` was re-synced to match.
## v1.6.3 — 2026-07-25
Patch release. Headline: **pi `0.81.1` → `0.82.1`** (npm `latest`) — the first