docs(board): record the dot-repo discovery fix and its bounded gap
Follows the file's own convention (F3/F4, F12, ORDRE 42, ORDRE 65) of documenting each board.sh fix in CLAUDE.md, not only in the commit message: why the obvious alternative (shopt -s dotglob) was wrong, and the gap deliberately left open (dot-directories that are not repos are never treated as polyrepo containers). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019qMr8vZZFwa4dBrheNgAhj
This commit is contained in:
parent
3e5add0aee
commit
e2bce4e490
1 changed files with 40 additions and 0 deletions
40
CLAUDE.md
40
CLAUDE.md
|
|
@ -620,6 +620,46 @@ marketplace plugin. Three components, one boundary:
|
|||
find a live one when planted - never behaviourally, because there is no
|
||||
behaviour to pin.**
|
||||
|
||||
**Ordre 20260818T124828Z (2026-08-18): repo discovery had no dotglob, so a
|
||||
dot-prefixed repo (`.profile`, the Forgejo/GitHub org-profile convention)
|
||||
was permanently invisible to the board - not listed, and `--dispatch
|
||||
--repo .profile` refused outright with "no repo named '.profile' in the
|
||||
scanned roots".** Measured with a known-positive control by `.claude`
|
||||
before the order was written: two repos in one root, one dot-prefixed one
|
||||
not, `board.sh --plain` found only the non-dot one. **The obvious fix -
|
||||
`shopt -s dotglob` on the existing discovery loops - is wrong, and the
|
||||
order proved it before this repo ever wrote one line:** turned on, the
|
||||
SAME `[ -e "$entry/.git" ]` test that already decides repo-vs-container
|
||||
would route a dot-prefixed directory that is NOT itself a repo (e.g.
|
||||
`.claude`) into the else-branch polyrepo-container scan, silently
|
||||
expanding what counts as a container to a class of directory nobody
|
||||
vetted for that. The fix is a dedicated `add_dot_repos()`, called once at
|
||||
root level and once per polyrepo container (the identical gap exists at
|
||||
both `board.sh:265` and `:271` - "same glob, two places" in the order's
|
||||
words): it walks `"$1"/.* ` and adds an entry ONLY when that entry is
|
||||
ITSELF a git repo, skipping `.` and `..` and skipping every dot-directory
|
||||
that isn't a repo outright - never recursing into it as a container. No
|
||||
`shopt` toggle is needed at all: `.* ` as a literal glob pattern already
|
||||
matches dot-entries without `dotglob` set - only a bare `*` needs it -
|
||||
which is what makes the targeted function possible without touching the
|
||||
existing `*` loops' behavior for ordinary (non-dot) entries at all.
|
||||
Verified against the real tree (2026-08-18): `.profile` and `.github`
|
||||
(both real repos) now appear; `.claude` (a directory, not a repo) stays
|
||||
invisible, exactly as before. Selftest section 22 pins the known-positive
|
||||
control the order specified - two repos in one root, board must find
|
||||
BOTH, not just the dot one - plus the container-non-promotion case (a
|
||||
dot-dir with a child repo must NOT surface the child) and the depth-2
|
||||
case (`:271`).
|
||||
|
||||
**Bounded gap, stated rather than closed:** a dot-prefixed directory that
|
||||
is not itself a repo is never treated as a polyrepo container, so if a
|
||||
directory like `.claude` ever grows an actual git-repo child, that child
|
||||
stays invisible to the board - the identical class of gap `board.sh`
|
||||
already accepts for orders addressed to an unscanned mailbox name. Widening
|
||||
dot-directories to ALSO act as containers was deliberately left undone:
|
||||
it was exactly the unmeasured side effect the order flagged, and nothing
|
||||
in `~/repos` currently needs it (`.claude` has no repo children today).
|
||||
|
||||
- **Route (`scripts/route.sh`):** pure calculator for the next session's model
|
||||
and effort. Takes four scored traits of the next task plus a required
|
||||
rationale, and prints one block of `key=value` lines: the rubric row, the rule
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue