From 6dacd7778b846967fb945297420148e783f48f95 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 05:33:31 -0300 Subject: The docs: which writes fail, mark for one undo step, directory looks, the skill's log line Round 15's doc findings: one table of which files fail a write and which only say so; mark to make a loop's data writes one undo step; the 100-byte scratch exemption and the chord write-back in the skill; the skill's log line with ask, answer, changed, newcol, delcol and the restored records; a directory looked at opens a terminal that runs ls, and why; a plain word in a terminal is listed in +Search, its rows @p. Co-Authored-By: Claude Opus 5.5 --- .agents/skills/pardes-9p/SKILL.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to '.agents/skills') diff --git a/.agents/skills/pardes-9p/SKILL.md b/.agents/skills/pardes-9p/SKILL.md index 26f3ff19..4f903d5d 100644 --- a/.agents/skills/pardes-9p/SKILL.md +++ b/.agents/skills/pardes-9p/SKILL.md @@ -64,6 +64,8 @@ $m/pane//pty/run write one line, read `exit N` + its output, or `busy` / `e (a fresh terminal: waits for its first prompt; if none comes, interrupt the read) $m/log recent events, then EOF: new|del|rename|save , msg , run , exit , send , + ask , answer , changed + [reloaded|deleted], newcol|delcol , restored|restoredcol , dump|restore , err : (exec 3<>$m/log; echo follow >&3; cat <&3 replays what is there, then waits for new ones; `echo follow new` waits for new ones only; tail -f does not wait; @@ -174,7 +176,9 @@ REPLs bound for a language an exec asks which, logged `ask repl a b` log says `answer a|-`). Kill does not stop what a REPL runs (it was typed, not started by pardes): `echo 'sig INT' > $m/pane//pty/ctl` interrupts it. A range of a `.py` pane goes to its REPL by writing the event -record `MX ` to that pane's `event`. `Tty`'s argument is a shell +record `MX ` to that pane's `event`. A chorded exec's record (flag 8) +is followed by two, its argument and where it came from; write all three back +as read (one write or three) and it runs once with its argument. `Tty`'s argument is a shell (`Tty fish`), and `Tty` on a pane's ctl opens a new terminal pane. After a Restore, panes have new serials (`restored ` in the log), a command pane shows `exit ?` and does not run again, and REPLs are unbound. Multi-line code @@ -243,7 +247,11 @@ env printf 'Edit ,x/foo/{\ni//\n}\n' > $pane/ctl | Delete that range | `: > $pane/data` | truncate `data` (open with OTRUNC) | A write leaves `addr` just past what it wrote, so a second `echo x > data` -inserts after the first: write `addr` again before each replacement. A read +inserts after the first: write `addr` again before each replacement. Each +`data` write is one undo step; to make a loop's writes one, `echo 1 > mark` +(an undo point now), `echo 0 > mark`, the writes, then `echo 1 > mark`. +A `+New` scratch counts as unsaved (and holds up Exit, Restore, Del) only +once it holds 100 bytes or more. A read of `data` or `xdata` moves `addr` past what it read, as in acme. Truncating `data` is pardes's own (acme ignores OTRUNC and always inserts). | Read the selection | `cat $pane/dot` (offsets), `cat $pane/sel` (text) | the same two reads | -- cgit v1.3