Repository navigation
v0.7.0
⚠️ Behaviour change on upgrade
A rules edit now binds the agents already working — including on stores you never
reconfigure. Previously the read gate fired once per author per pad, so an agent that
had already posted went on posting under the version it read on its way in. From v0.7.0
the default is rules.reack = "on-change": after a rules edit at any level, the next post
from an agent that has not read the new version is refused with rules_unread.
Nothing to migrate — the marker format is unchanged and existing markers load as they are.
To keep the old behaviour, set it explicitly:
{ "rules": { "reack": "once" } }If your agents run unattended, make sure they treat rules_unread on a pad they have
posted in before as "the rules moved" rather than as a stale-digest retry. scratchpad skills docs usage says so now, and so does the error itself, which hands back the rules
in full plus the digest to repeat.
A rules change that reaches the agents it binds (#18)
Editing the rules used to be close to inert. Reaching an agent already on a pad meant
interrupting its session by hand — which costs a person their time and the agent its
context, and still left the new rules binding nobody but the next arrival.
Three parts, separable on purpose:
- Bind —
rules.reackre-asks whenever the rules in force move at any of the three
levels. The proof an author has read a version is derived from the transcript, like turn
state and the roster, so there is still no subscription state outside the pad files. - Arrive — a change can be announced into each pad it binds, as a
scratchpadsection
titled "Rules changed" (--notify, or the checkbox in the Web UI dialog). A protected
pad is told too: a password keeps other agents out, it was never a reason to leave a pad
blocked by rules nobody mentioned. - Wake —
rules,noticeandcontinuedsections now wake every waiter before
any selector is consulted. Previously--wake-for menever fired for a rules section,
so the agents that had narrowed their waits were exactly the ones that never heard.
Docs, and illustrations that had stopped matching the product (#19)
The README and the website had fallen behind: neither mentioned house rules, a pad
continuing into a successor when it fills, or where configuration lives and when it
takes effect. The site still described a product with no tasks, no addressing and no
search. Both counted eight MCP tools, when pad_rules had made nine.
New use case — UC8: a coordination pad, and one pad per module. Leads meet on a shared
pad and each also runs a smaller pad with its own workers, so a worker never loads the
cross-module history; the lead carries a summary up and a task down. It needs no setup — it
is a choice of how many pads you open, not a feature. Its limit is documented too: the
bridge is a convention, and nothing in the tool will notice a summary that never went up.
The illustrations were redrawn. All of them still showed exactly two agents, and two
were wrong rather than merely dated:
- the social card's arrows all pointed away from the pad, so the picture said the pad
broadcasts and no agent ever contributes; - the across-machines picture floated the pad in mid-air, equidistant from every machine —
which reads as a hosted service, the opposite of "the store can only live in one place".
The terminal panes had the same class of error in the story: they showed a person typing
scratchpad commands. A person does not — they ask an agent, and the agent runs the CLI.
Each pane now opens with the human's sentence and the ref they hand over.
SKILL.md: a shell & is not arming a wait. The rule "never end your turn without
arming a wait" was already there and agents still ended turns unwatched — because
pad wait & really runs and really exits, but nothing carries that exit back into the
agent's context. The pad looks watched and is not. The test is not "did it go to the
background" but "will its exit reach me".
Changelog
Features
- 1bd1e2c [worktree-rules-reack-notify] feat(rules): a rules change that binds the agents already working, and reaches them
Documentation
- fce6325 [docs-multi-agent-refresh] docs(skills): a shell
&is not arming a wait - 52e9c08 [docs-multi-agent-refresh] docs: rules are re-asked, so "before its first post" is no longer true
- a11b626 [docs-multi-agent-refresh] docs: say what shipped, and stop drawing a product with two agents
Others
- ceae270 [docs-multi-agent-refresh] Merge origin/main: the wait discipline meets the rules re-ack
Install (one-liner):
curl -fsSL https://madnh.github.io/scratchpad/install.sh | sh