docs: -d skip reason measured; the ADR exception at both merge rules
improvise-28ri, from the #211 review at 6ccad4b: the recipe's grep has no
-r, so the skills' symlinks arrive as directory operands and are never
read. -d skip only silences "Is a directory", and sort -u would absorb a
duplicate anyway. Measured with BSD grep 2.6.0 and GNU grep 3.12: 3092
matches either way, 462 distinct ids. GNU grep -r follows those
symlinks (3107), so -r must not be added.
improvise-oga4: "Shipping a wave"'s opening and "Repository policy over
the Beads blocks" now point at the ADR exception. The wave SKILL.md
pointer is unwrapped, so a grep for "ADR pull requests" finds it.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
This commit is contained in:
@@ -80,9 +80,9 @@ defect is a test that passes.
|
||||
"pending". Dispatch an adversarial reviewer and give it the head SHA, the base,
|
||||
and a test-merge, so it reviews the tree that will exist. Point it at
|
||||
`agent-rules.md`, "GitHub", for what a reviewer reads and answers first.
|
||||
- Only the user's explicit approval accepts or merges an ADR PR. The review
|
||||
gates still apply, and none of them is approval: `AGENTS.md`, "ADR pull
|
||||
requests".
|
||||
- Only the user's explicit approval accepts an ADR, and lets its PR merge. The
|
||||
review gates still apply, and none of them is approval:
|
||||
`AGENTS.md`, "ADR pull requests".
|
||||
- A re-review is of the **delta**, at a named SHA. A review of a superseded
|
||||
commit reads as a pass.
|
||||
- Merge on GitHub, then `git fetch gh && git merge --ff-only gh/main`. Close
|
||||
|
||||
@@ -131,9 +131,10 @@ and watch the check fail.
|
||||
|
||||
**Do not push `main` to `gh/main`.** Each agent's work reaches GitHub as its own
|
||||
branch and its own pull request, and lands on `main` by being merged there, once
|
||||
CI is green and an adversarial review agent has passed the PR's head SHA. The
|
||||
orchestrator does not integrate agent branches locally: its `main` only
|
||||
fast-forwards to `gh/main` after a merge. The procedure is
|
||||
CI is green and an adversarial review agent has passed the PR's head SHA. An ADR
|
||||
PR also needs the user's explicit approval, and nothing else stands in for it:
|
||||
"ADR pull requests" below. The orchestrator does not integrate agent branches
|
||||
locally: its `main` only fast-forwards to `gh/main` after a merge. The procedure is
|
||||
`.agents/skills/wave/SKILL.md`, "Shepherding". `origin` and `gitea` are mirrors
|
||||
and take `main` directly.
|
||||
|
||||
@@ -315,12 +316,14 @@ out two things a `grep -r` over the same roots reads:
|
||||
repository with their unpushed work.
|
||||
|
||||
`-d skip` is there for the skills' symlinks, and it changes no answer. The
|
||||
`.claude/skills/*` entries are symlinks to directories under `.agents/skills/`.
|
||||
`git ls-files` lists each one as a file, and grep, handed a symlink to a
|
||||
directory, prints `grep: <path>: Is a directory` on stderr. `-d skip` silences
|
||||
those lines. The skills are read once, through `.agents`, with or without the
|
||||
flag: neither BSD nor GNU `grep -r` follows a symlink it meets while recursing,
|
||||
so no id is ever counted twice.
|
||||
`.claude/skills/*` entries are symlinks to directories under `.agents/skills/`,
|
||||
and `git ls-files` lists each one, so each reaches grep as a command-line
|
||||
operand. The grep has no `-r`, so it never reads a directory operand. It prints
|
||||
`grep: <path>: Is a directory` on stderr instead, and `-d skip` only silences
|
||||
those lines. The output goes through `sort -u`, so a duplicate could not change
|
||||
the answer anyway. Measured with BSD grep 2.6.0 and GNU grep 3.12: 3092 matches
|
||||
with or without the flag, 462 distinct ids. Do not add `-r`: GNU grep then
|
||||
follows those symlinks and reads the skills a second time (3107 matches).
|
||||
|
||||
Plain `git grep` is not a substitute: on macOS its `-E` silently ignores `\b`
|
||||
and finds a fraction of the ids.
|
||||
@@ -392,9 +395,10 @@ regeneration. Repository policy lives here, outside them:
|
||||
- **Work is not done until it is in a pull request and that pull request has
|
||||
merged.** A pushed branch is not done, and neither is a green one. In a wave,
|
||||
the merge is the orchestrator's, after an adversarial review passes the head
|
||||
SHA ("Shipping a wave"). So a wave agent's part ends at an open PR plus its
|
||||
hand-back, and the ticket is done, and its bead closed, only when the merge
|
||||
lands.
|
||||
SHA ("Shipping a wave"). An ADR PR merges only on the user's explicit
|
||||
approval as well ("ADR pull requests"). So a wave agent's part ends at an
|
||||
open PR plus its hand-back, and the ticket is done, and its bead closed, only
|
||||
when the merge lands.
|
||||
- **This repository does not opt in to the Beads "team-maintainer" profile.**
|
||||
So the pull (`git pull`, or `git pull --rebase` in bd's "full" profile) and
|
||||
the bare `git push` that the block lists for that profile are not
|
||||
|
||||
Reference in New Issue
Block a user