Skip to content

fix: retire PyAutoConf rename leftovers in Brain functional surfaces - #268

Merged
Jammy2211 merged 1 commit into
mainfrom
claude/pyautoconf-rename-leftovers-38ia48
Aug 24, 2026
Merged

Jammy2211 merged 1 commit into
mainfrom
claude/pyautoconf-rename-leftovers-38ia48

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Summary

The PyAutoConf → PyAutoNerves rename (package autoconf → autonerves) was
completed in the reader-facing docs but left eight sites naming the old
repo/package. Four were live defects, all silent — nothing failed, the surfaces
just stopped seeing the Nerves repo.

The root cause sat under the symptom the prompt reported. repo_aliases split
one repo across two dead keys: @PyAutoConf normalised to autoconf and
@PyAutoNerves to pyautonerves, and neither is in the body map, so neither
resolved. autonerves is now the single canonical key with the other three
spellings aliased onto it — the shape the existing pyautobuild: pyautohands
entry already set. That also collapses the three target_default_wiki rows that
existed only to paper over the split.

The other three live defects:

  • test_witness pointed at PyAutoConf/test_autoconf, reachable only
    through the stale alias. pyauto-brain refactor therefore reported
    [unwitnessed: pyautonerves] and advised "strengthen tests first" for a repo
    that has a real suite.
  • release.relevant_repos listed PyAutoConf, and nightly.sh fetches
    each name verbatim. Whether a rename redirect carried that call is unverified
    (see below); naming PyAutoNerves removes the dependency rather than trusting
    it.
  • hygiene.sh timed import autoconf, whose non-zero rc is recorded as
    autoconf:n/a and skipped — so Nerves import timing went unmeasured.

Four comment/prose sites follow. Two were stale beyond the name:
ensure_workspace_labels.sh and skills/repo_cleanup/reference.md both mapped
repos to rhayes777/Jammy2211 owners the migration retired — the labels
script's own live list already disagreed with its header. Both now defer to the
body map's github: field instead of hardcoding an owner.

Fixes the headline finding of
PyAutoMind/draft/maintenance/pyautobrain/refactor_witness_map_missing_autonerves.md;
that prompt's broader "audit the other organ/library repos" ask is deliberately
not absorbed here and stays a separate task.

API Changes

None. PyAutoBrain is an organ, not a released library, and nothing imports it —
these are internal policy maps and agent prose. config/policy.yaml is a
declared config surface, so the key changes are noted for any adopting fork:
test_witness and target_default_wiki are keyed autonerves (was autoconf),
and release.relevant_repos names PyAutoNerves. Old spellings keep working
through repo_aliases.

Test Plan

  • python3 -m pytest tests/ -q → 467 passed (462 baseline + 5 new)
  • python3 PyAutoMind/scripts/repos_sync.py --check → all 11 checks OK
    (its tenant-firewall leg caught my own test comments hardcoding the org
    name; fixed before commit)
  • bash -n on all four touched shell scripts
  • Live conductor runs against the changed policy — refactor, bug,
    sizing all behave

Live proof of the headline defect being fixed — bin/pyauto-brain refactor on
this branch:

Repos affected:       autofit, autonerves
Witnesses:            {'autofit': 'PyAutoFit/test_autofit',
                       'autonerves': 'PyAutoNerves/test_autonerves'}

No [unwitnessed: pyautonerves].

New test coverage
  • tests/test_policy_seams.py — all four spellings normalise to one key that is
    in KNOWN_REPOS; the witness map resolves under each; and every name in
    release.relevant_repos must exist in the body map
    . That last one is the
    drift guard whose absence let this survive the rename.
  • tests/test_activity_gate.py — fixture moved off the old name, plus a case
    asserting a PyAutoNerves commit qualifies a night (the prompt's acceptance
    criterion, offline and deterministic).
  • tests/test_nerves_rename_complete.py (new) — enforces the prompt's grep
    acceptance repo-wide, allowlisting only the sites deliberately about the
    rename, and failing if an allowlist entry goes dead so it can't rot into a
    blanket waiver. It found the eighth site (skills/OPERATIONS.md) on its
    first run.

Two things a reviewer should check rather than take on trust

  1. Heart was never consulted. pyauto-heart is not on PATH in this
    web-github session and PyAutoHeart is not in its repo scope, so
    bin/pyauto-brain vitals returns not-found. The per-repo suite stood in per
    the WORKFLOW.md fallback and is green, but no YELLOW was acknowledged and
    no RED was seen, because nothing was asked.

  2. The commit message says "157-test suite… verified live" — the count is
    weaker than that reads.
    The path PyAutoNerves/test_autonerves is
    verified properly: cloned PyAutoLabs/PyAutoNerves@main and confirmed the
    directory exists beside the autonerves package with 17 test_*.py files.
    The count is cited from PyAutoMind/complete/2026/08/cli-noise-autonerves-batch.md
    and was not re-run here. Nothing in the change depends on it — only the path
    is load-bearing — but the commit states the number without that qualifier and
    pushed history isn't rewritten in this org, so the correction lives here.

Gate at sign-off

Effective autonomy supervised (header supervised, bug cap supervised).
Plan was pre-approved before any edit and is on #267, unmodified since.
Tests PASS (467) · smoke n/a (organism repo, no downstream script surface) ·
review CLEAN with claim dispositions on
#267 ·
Heart NOT EVALUATED (above). Human signed off on PR-open; merge is yours.

No pending-release label — PyAutoBrain is outside the release chain.

Closes #267

🤖 Generated with Claude Code

https://claude.ai/code/session_01MPhEXMoPYa7H1sNHWR2GNW


Generated by Claude Code

The PyAutoConf -> PyAutoNerves rename (package autoconf -> autonerves) was
completed in the reader-facing docs but left eight sites naming the old
repo/package. Four were live defects, all of them silent — nothing failed, the
surfaces just stopped seeing the Nerves repo.

config/policy.yaml is the functional core:

- repo_aliases split one repo across two dead keys. `@PyAutoConf` normalised to
  `autoconf` and `@PyAutoNerves` to `pyautonerves`; neither is in the body map,
  so neither resolved. Make `autonerves` the single canonical key and alias the
  other three spellings onto it, the shape the `pyautobuild: pyautohands` entry
  already set. That also collapses the three target_default_wiki rows that
  existed only to paper over the split.
- test_witness pointed at PyAutoConf/test_autoconf, reachable only through the
  stale alias. `pyauto-brain refactor` therefore reported
  `[unwitnessed: pyautonerves]` and advised "strengthen tests first" for a repo
  with a 157-test suite. Now PyAutoNerves/test_autonerves, verified live.
- release.relevant_repos listed PyAutoConf, and nightly.sh fetches each name
  verbatim. Whether a rename redirect carried that call is unverified from this
  session; naming PyAutoNerves removes the dependency rather than trusting it.
- hygiene.sh timed `import autoconf`, whose non-zero rc is recorded as
  `autoconf:n/a` and skipped, so Nerves import timing went unmeasured.

The remaining four sites are comments and prose. Two were stale beyond the
name: ensure_workspace_labels.sh and repo_cleanup/reference.md both mapped repos
to `rhayes777`/`Jammy2211` owners that the migration retired — the labels
script's own live list already disagreed with its header. Both now defer to the
body map's `github:` field instead of hardcoding an owner.

Tests pin every seam: all four spellings normalise to one known key; the witness
map resolves under each; a PyAutoNerves commit qualifies a night (the prompt's
acceptance criterion, offline); and every release-relevant repo must exist in
the body map — the drift guard whose absence let this survive. A repo-wide guard
enforces the prompt's grep acceptance, allowlisting only the sites deliberately
about the rename and failing if an allowlist entry goes dead. It found the
eighth site (skills/OPERATIONS.md) during the run.

Closes #267

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MPhEXMoPYa7H1sNHWR2GNW
@Jammy2211
Jammy2211 merged commit 2e7ea30 into main Aug 24, 2026
2 checks passed
@github-actions
github-actions Bot deleted the claude/pyautoconf-rename-leftovers-38ia48 branch August 25, 2026 14:09
Jammy2211 pushed a commit that referenced this pull request Aug 27, 2026
CI's tenant firewall caught what the tests could not: the new leg-4 comments and
the test's section header named a concrete satellite repo, in .py files. The
framework organs must stay adoptable as a config-diff fork, so an instance fact
outside the declared config surfaces is drift — and growing FIREWALL_ALLOWLIST
instead would mean one more file an adopting fork has to rewrite, for a name
that carries none of the finding.

The shape is the evidence, not the tenant: "a workspace-test repo, issue #266 /
PR #268" says everything the comment needed. The dates, issue and PR numbers are
not instance facts and stay.

AGENTS.md keeps the concrete names deliberately — skills prose and AGENTS.md are
out of the firewall's scope by design (production prompts, never genericised),
and the runnable `--repo` example there is more useful naming a real repo.

The test file was already violating its own header, which promises every fixture
is fictional and that nothing in it names a real prompt or record.

tenant firewall: OK. 584 pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Vd6ptkoJsjAJMosPWsCDZz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: retire PyAutoConf rename leftovers in Brain functional surfaces

1 participant