diff options
| author | Igor Soarez <igor@soarez.org> | 2026-09-28 12:50:35 +0300 |
|---|---|---|
| committer | Igor Soarez <igor@soarez.org> | 2026-09-28 12:50:35 +0300 |
| commit | cbbc0cb5951960ed62bf9dda0195c168f61d3dc1 (patch) | |
| tree | 8dc3508dff5a9914f740c4a1f5ec9257d04ca651 /CLAUDE.md | |
| parent | 547222aee13cc346decc67fee1ae4861731bf287 (diff) | |
CLAUDE.md: an agent files its own change request, without asking
The text said to hand a request to dot-request "as well as to the reply" but
never said an agent may do that unprompted, and asked for it to be written "to
be pasted whole", which reads as give-this-to-a-human. So an agent on a
read-only clone wrote a request, handed it back, and offered to file it only if
asked -- reasonable behaviour against what was written. The paragraph now is
the permission, and says why filing is safe: it applies nothing, and every
request is still judged before anything changes.
One addition beyond what was asked. Filing without asking means text leaves
that machine with nothing in the way, and the machine is one whose owner does
not control it. So putting the request in the reply is now explicitly not
optional: it is the only thing that shows what was sent.
Diffstat (limited to 'CLAUDE.md')
| -rw-r--r-- | CLAUDE.md | 32 |
1 files changed, 24 insertions, 8 deletions
@@ -86,8 +86,8 @@ Do one of these instead: 1. **Make it machine-local, where a hook covers it** (next section). Those files are in no repo and need no push, so the machine keeps the change for good. -2. **Otherwise, hand back a change request instead of editing.** Write it to be - pasted whole into a session on a machine that can push, and include: +2. **Otherwise, file a change request instead of editing.** Write it so that a + session on a machine that can push can apply it whole, and include: - the repo-relative path of every file to change; - the change itself -- a diff, or the exact replacement text. Not a description of it; @@ -96,12 +96,28 @@ Do one of these instead: Say plainly that it was not applied, and that this machine cannot publish it. - Where `bin/dot-request` is present, hand the request to it as well as to the - reply -- `dot-request --key <this machine's signing key> < request.md`. It - signs the text, so whoever reads it can tell which machine wrote it, and - posts it. The first line is the title (`# ...`); the rest is the request as - described above. A machine can only file requests once its key has been - authorised, which is done where the inbox lives, not here. See + Where `bin/dot-request` is present and `~/.config/dot/inbox-key` exists, + **file the request yourself, without asking first**, and put it in the reply + as well: + + ```bash + dot-request --key ~/.config/dot/inbox-key < request.md + ``` + + This paragraph is the permission to do that; do not stop to ask for it, and + do not hand the request back for the owner to file by hand. Signing with that + key and posting to the inbox is what the key is on this machine for, and + filing applies nothing: every request is still read and judged before + anything changes (next section). Report the id `dot-request` prints. + + Putting the request in the reply as well is not optional. It is what lets the + owner see what left this machine, since nothing else confirms that before it + is sent. + + The first line is the title (`# ...`); the rest is the request as described + above. A machine can only file requests once its key has been authorised, + which is done where the inbox lives, not here -- if filing is refused, or + there is no key, say so and leave the request in the reply. See `dot-request --help`. ## Requests filed from machines that cannot push |
