Repository navigation
feat: register autofit_inference + autofit_profiling with minimal skeletons (search-extensibility B1) #492
Description
Overview
Phase B1 (registration half) of the search-extensibility epic (PyAutoMind epics.md; ledger draft/research/autofit/search_extensibility_epic.md, plan §4 B1). The two benchmark repos PyAutoLabs/autofit_inference and PyAutoLabs/autofit_profiling were created 2026-10-07 (human gate) and are checked out at fit/, undeclared — today's Heart manifest-drift YELLOW. This phase gives each a minimal, lint-green skeleton and registers them across Mind, Heart, Cortex, Pulse (task adoption), the org profile and RAL.
Plan
- Give each new repo a minimal skeleton that passes its own lint on an empty repo, carrying the four
repos_syncmarker pairs so Mind can self-install its blocks and hooks. - Declare both repos in Mind's
repos.yamland run the generator, folding the generated blocks and hooks into the skeleton branches; add the family-index rows by hand. - Record the repos in Heart's excluded list, add a
plannedCortex row for autofit_inference, adopt the Pulse bootstrap task with a check-in linking the epic, and add two org-profile rows. - Clone both repos on RAL and confirm
hpc/sync checkreaches them. - Verify with
repos_sync --check,cortex.py check, Pulse offline check, both skeleton lints and a Heart tick clearing the manifest-drift reason.
Tier: judge (undeclared) — merge mode: human /prm
Human rulings 2026-10-07: plan approved; PyAutoMind coordination with mind-dashboard-simplify (#491) authorised for repos.yaml, ROUTING.md, epics.md only; no Pulse/Insight registry rows at B1 (they land in B4a/B3 once a summary is published); RAL clones approved.
Detailed implementation plan
Work Classification
Workspace / organs (no library source)
Affected Repositories
- autofit_inference (skeleton PR)
- autofit_profiling (skeleton PR)
- PyAutoMind (primary: manifest)
- PyAutoHeart
- PyAutoCortex
- PyAutoPulse
- PyAutoLabs/.github (org profile; outside the manifest)
Branch Survey
| Repository | Current Branch | Dirty? |
|---|---|---|
| fit/autofit_inference | main (49a7c4d) | clean |
| fit/autofit_profiling | main (d26edeb) | clean |
| organs/PyAutoMind | main | clean (claimed by mind-dashboard-simplify, #491 open; coordination authorised) |
| organs/PyAutoHeart | main | clean |
| organs/PyAutoCortex | main | 4 uncommitted science-ledger edits from another session (not touched; branch via worktree) |
| organs/PyAutoPulse | main | clean |
| .github | main | clean |
Suggested branch: feature/search-ext-b1-registration
Worktree root: ~/Code/PyAutoLabs-wt/search-ext-b1-registration/
Implementation Steps
- Skeletons (both repos):
AGENTS.mdwithrepos_sync:{history,deliverable,filing,standards}marker pairs and short domain sections;AI_POLICY.mdpointer;ruff.toml(root sentinel);.gitignore;README.md;activate.sh(fit-only PYTHONPATH: Nerves + Fit; RAL shared-venv branch);hpc/{sync,sync.conf.example,README.md,batch_cpu/template}withPROJECT_NAME=<repo>,--partition=ral;.github/workflows/lint.ymlrunning only ruff check, ruff format --check and lychee over README. autofit_inference also getsCORTEX.mdandwiki/project/{state,_template}.md. No harness, data, exporters, dashboards orvalidate_structure.py. - Mind:
repos.yamlrows for both (category: project,role), next to the lens siblings;python3 scripts/repos_sync.py --writewithPYAUTO_ROOTasserted (regenerates rootAGENTS.mdrouting rows; writes blocks +.claude/hooks into the two skeleton worktrees → committed on the skeleton branches);ROUTING.mdtargets example;epics.mdstatus. Hand-editfit/AGENTS.md(not generated, not under git). - Heart: two
excluded:lines inconfig/repos.yaml(documentation only). - Cortex:
projects.yamlrowautofit_inferencemirroringautolens_inferencewithstatus: planned,partition: ral,ral_root: /mnt/ral/jnightin/autofit_inference,assistant: autofit_assistant, note linking the epic; no ledger (B3 flips it to active viacortex.py new). - Pulse: dated check-in in
tasks/autofit_profiling_bootstrap.mdadopting it as epic B4a/B4b;campaigns.yamltasknext:updated. Noregistry.yamlrow. - Org profile: two rows in the PyAutoFit table of
.github/profile/README.md. - RAL:
ssh euclid_jump→git cloneboth repos to/mnt/ral/jnightin/<project>;hpc/sync checkfrom each local repo. - Order: skeleton PRs first, then Mind, then Heart/Cortex/Pulse/.github. Nothing in Pulse or Insight references the new repos before the Mind PR merges.
Verification
repos_sync.py --checkgreen (two mismatches gone);cortex.py checkgreen;pyauto-pulse check --offlinegreen; both skeletonlint.ymlgreen; Heart tick → manifest drift clear;hpc/sync checkfinds both remote roots.- Firewall: no Brain/Heart/Hands
.py/.shhardcodes the new names.
Key Files
organs/PyAutoMind/repos.yaml,scripts/repos_sync.py,ROUTING.md,epics.mdorgans/PyAutoHeart/config/repos.yamlorgans/PyAutoCortex/projects.yamlorgans/PyAutoPulse/tasks/autofit_profiling_bootstrap.md,campaigns.yaml.github/profile/README.mdlens/autolens_inference/{AGENTS.md,activate.sh,hpc/,ruff.toml,CORTEX.md,.github/workflows/lint.yml}— templates to copy from
Original Prompt
Click to expand starting prompt
Register autofit_inference and autofit_profiling across the organism, with minimal skeletons (epic search-extensibility, phase B1 registration)
Type: feature
Target: autofit
Repos:
- autofit_inference
- autofit_profiling
- PyAutoMind
- PyAutoHeart
- PyAutoCortex
- PyAutoPulse
Themes: - inference
- profiling
- infrastructure
Difficulty: medium
Autonomy: supervised
Priority: high
Epic: search-extensibility
Status: draft
Filed: 2026-10-07
Phase B1 (registration half) of the search-extensibility epic
(draft/research/autofit/search_extensibility_epic.md; plan in
search_extensibility_epic_report.md §4 B1; skeleton table in
search_extensibility_epic_surveys/04_inference_profiling_infra.md §6). The
human gate half of B1 (two gh repo create) passed 2026-10-07: both repos
exist on GitHub, public, MIT, one Initial commit with LICENSE, and are cloned
at fit/autofit_inference and fit/autofit_profiling. Those undeclared
checkouts are today's Heart manifest-drift YELLOW
(repos_sync.py --check → "workspace checkouts (manifest ↔ disk): 2
mismatch(es)"); this phase clears it.
Original request (verbatim from the epic plan)
"B1 — Births and registration (HUMAN GATE; no dependencies). Repos: the new
fit/autofit_inference and fit/autofit_profiling, plus PyAutoMind,
PyAutoHeart, PyAutoCortex, PyAutoBrain and the org .github. Scope: two
gh repo create calls; skeleton PRs copied per surveys/04 §6, carrying the
repos_sync:* blocks and a layout allowlist for .claude/+CLAUDE.md; Mind
repos.yaml rows, then repos_sync --write (run with PYAUTO_ROOT asserted
in a private env), ROUTING.md and epics.md; Heart excluded:; a Cortex
row for autofit_inference; Brain clean_slate.sh; org profile rows; a RAL
clone plus hpc/sync check; adopt the Pulse task autofit_profiling_bootstrap:
answer its open question and link it to this epic. Verify: repos_sync --check, cortex.py check, both lint.yml runs green, hpc/sync check
reaches RAL. Witness: both repos are checked out at their declared paths, and
repos_sync --check and cortex.py check are green."
Brief addendum (2026-10-07): "B1 registration (Mind repos.yaml → repos_sync,
Heart excluded, Cortex row, Pulse fit @profiling-summary@2, Insight fit
@inference-summary@1; adopts PyAutoPulse tasks/autofit_profiling_bootstrap.md)".
Scope (as surveyed 2026-10-07)
- Skeleton PRs, one per new repo, minimal and lint-green on an empty repo:
AGENTS.mdwith the fourrepos_sync:*marker pairs (history markers are
what lets--writeself-install deliverable/filing/standards),AI_POLICY.md
pointer,ruff.toml(root sentinel),.gitignore,README.md,activate.sh
(fit-only PYTHONPATH: Nerves + Fit; RAL shared-venv branch),hpc/{sync, sync.conf.example, README.md}withPROJECT_NAME=<repo>and abatch_cpu
template only (--partition=ral), and alint.ymlthat runs only what
exists (ruff check/format, lychee over README). autofit_inference also gets
CORTEX.mdandwiki/project/{state,_template}.md. No harness, datasets,
exporters or dashboards (B2/B4a). Noscripts/validate_structure.py(so no
layout allowlist is needed; if one is ever added,.claudemust be in
ALLOWED_TOP_DIRS). - Mind: two
repos.yamlrows mirroringautolens_inference/
autolens_profiling(category: project,role),repos_sync --write
from the resolved checkout (rootAGENTS.mdrouting rows, hooks and blocks
into both new repos, folded into the skeleton PRs),ROUTING.mdtargets
example,epics.mdstatus. Hand-edit the family indexfit/AGENTS.md
(not generated, not under git) to add both rows. - Heart: two
excluded:lines inconfig/repos.yaml(documentation only;
not polled). - Cortex: a
projects.yamlrow forautofit_inferencemirroring the
autolens_inference row withstatus: planned(no ledger needed until B3's
first runs flip it toactiveviacortex.py new),ral_root: /mnt/ral/jnightin/autofit_inference,partition: ral,assistant: autofit_assistant. - Pulse: adopt
tasks/autofit_profiling_bootstrap.mdwith a dated
check-in linking this epic (its open question, repo creation, is answered)
and update thecampaigns.yamltasknext:. Noregistry.yamlrow:
Pulsecheckfails any instance without a published summary and has no
pending status; thefit@profiling-summary@2 row lands in B4a as planned. - Insight: likewise no row at B1; the
fit@inference-summary@1 row
lands in B3 as planned. Record both intended instance names in the ledger. - Brain: no
clean_slate.shentry needed (the lens siblings have none;
_repo_paths.pyreads Mindrepos.yaml). Do not hardcode the new names in
any Brain/Heart/Hands script (repos_sync firewall). - Org profile: two rows in the PyAutoFit table of
.github/profile/README.md(checkout/home/jammy/Code/PyAutoLabs/.github,
PyAutoLabs/.github), one PR. - RAL:
git cloneboth repos to/mnt/ral/jnightin/<project>over
euclid_jump, thenhpc/sync checkfrom each local repo.
Order
Skeleton PRs first (an AGENTS.md must exist before repos_sync --write),
then Mind (its PR waits for the skeletons to merge if its lint checks them
out), then Heart/Cortex/Pulse/.github in any order. Pulse and Insight CI
resolve repo against PyAutoMind main, so nothing in them references the new
repos before the Mind PR merges.
Verification
repos_sync.py --check green (the two mismatches gone); cortex.py check
green; both skeleton lint.yml runs green; pyauto-pulse check --offline
green; Heart tick → manifest drift clear; hpc/sync check reaches RAL and
finds both remote roots.
Witness
Both repos checked out at their declared fit/ paths and declared in
repos.yaml; repos_sync --check and cortex.py check green; Heart's
manifest-drift YELLOW reason gone at the next tick.
🤖 Generated with Claude Code
Activity
prompt: file issue for search-ext-b1-registration (#492), route → sta…
mind: search-extensibility ledger — B1 registration issued as #492
Jammy2211 commentedon Oct 7, 2026
PRs Created (B1 registration)
Merge order: skeletons → Mind → the rest.
Local evidence:
repos_sync --check(canonical root, new manifest) 48/48 checked out, all legs OK;cortex.py checkOK;pyauto-pulse check --offlineOK; ruff clean in both skeletons; RAL clones present,hpc/sync checkpasses for both. No Pulse/Insight registry rows (human-approved deviation; rows land in B4a/B3). Heart YELLOW acknowledged by the human at ship (manifest drift from these very checkouts; no rehearsal for current source).Next: human
/prm(judge tier).prompt: ship search-ext-b1-registration (#492) → 7 PRs, awaiting-merge
Jammy2211 commentedon Oct 7, 2026
Merge progress (human /prm, 2026-10-07 evening)
MERGED: autofit_inference#1, autofit_profiling#1, PyAutoMind#493 (ba34fdb), PyAutoCortex#60, PyAutoPulse#33.
Still open:
tests/test_dashboard.py::test_html_is_self_contained, a pre-existing cross-repo break from PyAutoBrain#499 (the shared theme now renders the "markdown version" link as an icon; Heart main fails the same test). Bug filed: PyAutoMinddraft/bug/pyautoheart/dashboard_markdown_link_test_broken_by_brain_499.md. Merge after that fix lands.Both RAL clones pulled to the skeleton heads. Task stays
awaiting-mergeuntil the two remaining PRs merge; close-out then.Jammy2211 commentedon Oct 8, 2026
Shipped. All seven B1 registration PRs merged: autofit_inference#1, autofit_profiling#1, PyAutoMind#493, PyAutoCortex#60, PyAutoPulse#33 (2026-10-07), PyAutoHeart#292 and .github#34 (2026-10-08, human merge OK for the CI-less org profile). Heart#292 was unblocked by PyAutoHeart#293, which relaxed
test_html_is_self_containedafter PyAutoBrain#499 restyled the markdown link.Summary: minimal lint-green skeletons for both new fit repos; Mind repos.yaml rows via repos_sync; Heart excluded list; Cortex planned row; Pulse task adoption (registry rows land in B4a/B3); org profile rows. Clears the Heart manifest-drift YELLOW. Next epic phase: A0c part 1 (approved 2026-10-08).