Two commits: the reporting rule, and the rescue of a live config change that had no history.
The rule (appended to § 4 Commit Hygiene)
Report a pull request as link AND title, every time. A bare #54 is not a reference: numbers are per-repository, so a number alone does not say which work, in which repo, is being reported. Give the PR's web URL on that forge — on the Dankclaw Gitea that is https://gitea.franksdank.cloud/<owner>/<repo>/pulls/N — together with the PR's title. Applies everywhere a PR is mentioned: chat replies, status summaries, issue and commit bodies, alerts. Another forge (GitHub, GitLab, …): the equivalent URL its web UI serves, same pairing.
Point of use: § 4 is where an agent finishes work and reports a PR, and it already ends with "ask the user if they would like to open a pull request" — the citation rule belongs on that next breath. It also closes the gap the AGENTS.md browser rule leaves: an xdg-open tab helps in the browser, not in a chat reply.
The rescue (first commit)
agent/APPEND_SYSTEM.md has been running a rewritten rule 1 — the point-of-use doctrine, the purpose test, the dead-weight-number law — since 2026-10-19 10:49 without ever being committed. The file is prose tier, outside the live-sync allowlist, so the heartbeat correctly surfaces the dirt instead of committing it; the consequence was that the fleet's system prompt existed on one disk with no history, no review, and no way for another machine to pull it. Committed verbatim: cmp against the running file is clean, nothing editorial.
Verification, and a correction
scripts/kb-lint.sh: 0 violations.
tests/gen-keybinds.bats "section comments become headers" is red under LC_ALL=C on main — pre-existing, unrelated to this branch, fixed in the companion PR #55. With that landed, LC_ALL=C bats tests/ = 110 ok, 0 failures.
That failure also means my verification line in PR #54 ("109 ok, 0 failures") was wrong: I read a tail window instead of grepping for failures. #54's body is being corrected rather than left standing.
Landing note
After merge, ~/.omp still holds this file dirty — with exactly the content committed here. Confirm identity, then discard, then fast-forward:
Fresh sessions pick the rule up from there; this session's prompt was built before it existed.
cwd: /home/blank/.omp/wt/wt-20261019-125509-7c8a99d · session: 01a155bb-6474-7366-be9d-629f74af0e05 (built in the worktree ~/.omp/wt/wt-append-pr-rule)
Two commits: the reporting rule, and the rescue of a live config change that had no history.
## The rule (appended to § 4 Commit Hygiene)
> **Report a pull request as link AND title, every time.** A bare `#54` is not a reference: numbers are per-repository, so a number alone does not say which work, in which repo, is being reported. Give the PR's web URL on that forge — on the Dankclaw Gitea that is `https://gitea.franksdank.cloud/<owner>/<repo>/pulls/N` — together with the PR's title. Applies everywhere a PR is mentioned: chat replies, status summaries, issue and commit bodies, alerts. Another forge (GitHub, GitLab, …): the equivalent URL its web UI serves, same pairing.
Point of use: § 4 is where an agent finishes work and reports a PR, and it already ends with "ask the user if they would like to open a pull request" — the citation rule belongs on that next breath. It also closes the gap the AGENTS.md browser rule leaves: an `xdg-open` tab helps in the browser, not in a chat reply.
## The rescue (first commit)
`agent/APPEND_SYSTEM.md` has been running a rewritten rule 1 — the point-of-use doctrine, the purpose test, the dead-weight-number law — since **2026-10-19 10:49** without ever being committed. The file is prose tier, outside the live-sync allowlist, so the heartbeat correctly surfaces the dirt instead of committing it; the consequence was that the fleet's system prompt existed on one disk with no history, no review, and no way for another machine to pull it. Committed verbatim: `cmp` against the running file is clean, nothing editorial.
## Verification, and a correction
- `scripts/kb-lint.sh`: 0 violations.
- `tests/gen-keybinds.bats` "section comments become headers" is red under `LC_ALL=C` on `main` — pre-existing, unrelated to this branch, fixed in the companion PR **https://gitea.franksdank.cloud/dank/command-center/pulls/55**. With that landed, `LC_ALL=C bats tests/` = 110 ok, 0 failures.
- That failure also means my verification line in **PR #54** ("109 ok, 0 failures") was wrong: I read a `tail` window instead of grepping for failures. #54's body is being corrected rather than left standing.
## Landing note
After merge, `~/.omp` still holds this file dirty — with exactly the content committed here. Confirm identity, then discard, then fast-forward:
```bash
cmp ~/.omp/agent/APPEND_SYSTEM.md <(git -C ~/.omp show origin/main:agent/APPEND_SYSTEM.md) && git -C ~/.omp checkout -- agent/APPEND_SYSTEM.md
git -C ~/.omp merge --ff-only origin/main
```
Fresh sessions pick the rule up from there; this session's prompt was built before it existed.
---
cwd: /home/blank/.omp/wt/wt-20261019-125509-7c8a99d · session: 01a155bb-6474-7366-be9d-629f74af0e05 (built in the worktree `~/.omp/wt/wt-append-pr-rule`)
The live deployment has been running this rewrite of rule 1 since 2026-10-19, but
the file was never committed: agent/APPEND_SYSTEM.md is prose tier, outside the
live-sync allowlist, so the heartbeat surfaces the dirt instead of committing it —
which is correct behaviour, and it left the fleet's system prompt with no history
and no way for another machine to pull it. Committed verbatim as it runs, no
editorial changes: the purpose test, the dead-weight-number law, and the
deletion-is-an-update clause.
A config that only exists on one disk is not a deployment; it is a pending loss.
"#54" made Frank go hunting: numbers are per-repository across the forges this
fleet uses, and a number carries no hint of which work is being reported. Every
mention of a PR now pairs its web URL with its title — gitea.franksdank.cloud for
the Dankclaw Gitea, the equivalent for any other forge.
Refs the AGENTS.md convention that an open PR gets opened in Frank's browser: the
rule covers prose, where the browser tab does not help.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Two commits: the reporting rule, and the rescue of a live config change that had no history.
The rule (appended to § 4 Commit Hygiene)
Point of use: § 4 is where an agent finishes work and reports a PR, and it already ends with "ask the user if they would like to open a pull request" — the citation rule belongs on that next breath. It also closes the gap the AGENTS.md browser rule leaves: an
xdg-opentab helps in the browser, not in a chat reply.The rescue (first commit)
agent/APPEND_SYSTEM.mdhas been running a rewritten rule 1 — the point-of-use doctrine, the purpose test, the dead-weight-number law — since 2026-10-19 10:49 without ever being committed. The file is prose tier, outside the live-sync allowlist, so the heartbeat correctly surfaces the dirt instead of committing it; the consequence was that the fleet's system prompt existed on one disk with no history, no review, and no way for another machine to pull it. Committed verbatim:cmpagainst the running file is clean, nothing editorial.Verification, and a correction
scripts/kb-lint.sh: 0 violations.tests/gen-keybinds.bats"section comments become headers" is red underLC_ALL=Conmain— pre-existing, unrelated to this branch, fixed in the companion PR #55. With that landed,LC_ALL=C bats tests/= 110 ok, 0 failures.tailwindow instead of grepping for failures. #54's body is being corrected rather than left standing.Landing note
After merge,
~/.ompstill holds this file dirty — with exactly the content committed here. Confirm identity, then discard, then fast-forward:Fresh sessions pick the rule up from there; this session's prompt was built before it existed.
cwd: /home/blank/.omp/wt/wt-20261019-125509-7c8a99d · session: 01a155bb-6474-7366-be9d-629f74af0e05 (built in the worktree
~/.omp/wt/wt-append-pr-rule)