diff --git a/AGENTS.md b/AGENTS.md index 85dde5d..c0e4601 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -20,7 +20,7 @@ Canonical boundaries live in `PyAutoBrain/ORGANISM.md`; the full body map | **Mind** | PyAutoMind | Intent, goals, priorities, workflow state; every task starts as a markdown prompt here. | | **Cortex** | PyAutoCortex | The Cortex — where the organism keeps track of what is true: the science body map (`projects.yaml`) and one ledger per science project (what was run, what came back, what was learned, where to pick up); the science mirror of the Mind (runs and a dated log, not prompts and PRs). | | **Memory** | PyAutoMemory | Long-term scientific/software/project knowledge (see science pointer below). | -| **Eyes** | PyAutoEyes | The Eyes — where the organism sees what its figures look like: the cross-project visualization dashboard over the `_visualization` project repos (autolens_visualization and autogalaxy_visualization) — the registry of those repos, the tracked-manifest read contract (`gallery/viz_manifest.yaml`) and the Pages board that links to their PNGs as the single point of contact for the visual behaviour of the whole ecosystem. Renders nothing and copies no figures (the project repos render and hold them); never judges them (the Brain's Eyes conductor does) and never edits library plot code (critiques route through intake). | +| **Eyes** | PyAutoEyes | The Eyes — where the organism sees what its figures look like: the cross-project visualization dashboard over the `_visualization` project repos (autolens_visualization, autogalaxy_visualization, autofit_visualization and autocti_visualization) — the registry of those repos, the tracked-manifest read contract (`gallery/viz_manifest.yaml`) and the Pages board that links to their PNGs as the single point of contact for the visual behaviour of the whole ecosystem. Renders nothing and copies no figures (the project repos render and hold them); never judges them (the Brain's Eyes conductor does) and never edits library plot code (critiques route through intake). | | **Heart** | PyAutoHeart | Health/readiness — the authoritative "is it safe to release?" verdict. | | **Hands** | PyAutoHands | Packaging, tagging, notebook generation, PyPI release execution. | | **Nerves** | PyAutoNerves | The Nerves — the configuration/serialization layer connecting workspace conventions to libraries (layered config, version handshake, test_mode), delivered as the `autonerves` package. | diff --git a/agents/conductors/eyes/AGENTS.md b/agents/conductors/eyes/AGENTS.md index 7de9dea..f5b1d73 100644 --- a/agents/conductors/eyes/AGENTS.md +++ b/agents/conductors/eyes/AGENTS.md @@ -27,12 +27,14 @@ repositories (tenant firewall); the instance pointer lives in this prose and in the `/eyes` skill. Default instance: the lens visualization project repo, **`lens/autolens_visualization`**; the galaxy project repo **`galaxy/autogalaxy_visualization`** is the second registered instance -(`--instance galaxy`). `autolens_workspace_test` remains a +(`--instance galaxy`), then **`fit/autofit_visualization`** (`--instance fit`) +and **`cti/autocti_visualization`** (`--instance cti`). `autolens_workspace_test` remains a secondary instance (its `gallery/` harness is retired by PyAutoEyes phase 5). Two layers (human decision 2026-09-28): **project repos** -`_visualization` (two today: `lens/autolens_visualization` and -`galaxy/autogalaxy_visualization`) make, store +`_visualization` (four today: `lens/autolens_visualization`, +`galaxy/autogalaxy_visualization`, `fit/autofit_visualization` and +`cti/autocti_visualization`) make, store and track one library's figures — producers, datasets, tracked PNGs, `GALLERY.md`, a tracked `gallery/viz_manifest.yaml` and the `gallery/gallery_run.sh` harness; **the organ PyAutoEyes** is the diff --git a/bin/clean_slate.sh b/bin/clean_slate.sh index 41b21f7..891cbed 100755 --- a/bin/clean_slate.sh +++ b/bin/clean_slate.sh @@ -76,9 +76,9 @@ PACKAGING_REPOS=(PyAutoNerves PyAutoFit PyAutoArray PyAutoGalaxy PyAutoLens) # for the same reason (JWST cosmos_web_ring); its local checkout was removed in # 2026-09 (PyAutoBrain#389) and the repo lives on GitHub only. The # visualization project repos (`_visualization`, category project in the -# body map; the lens one sits under lens/, the galaxy one under galaxy/) are -# excluded too: their dataset/ -# trees are the tracked realistic inputs their galleries are rendered from (the +# body map; the lens one sits under lens/, the galaxy one under galaxy/, the +# fit one under fit/ and the cti one under cti/) are excluded too: their +# dataset/ trees are the tracked realistic inputs their galleries are rendered from (the # lens hst imaging is a byte-identical copy of autolens_profiling's) and their # PNG renders are the tracked record (re-rendered on library release only) — # never wiped. The Eyes organ (organs/PyAutoEyes) is the cross-project dashboard diff --git a/docs/organs/eyes.md b/docs/organs/eyes.md index d104e0f..9b4732e 100644 --- a/docs/organs/eyes.md +++ b/docs/organs/eyes.md @@ -1,8 +1,9 @@ # Eyes — PyAutoEyes **What it owns:** the *perception lifecycle* as a **cross-project dashboard** -over the `_visualization` project repos (`autolens_visualization` and -`autogalaxy_visualization`) — the registry of those repos, the read contract of +over the `_visualization` project repos (`autolens_visualization`, +`autogalaxy_visualization`, `autofit_visualization` and +`autocti_visualization`) — the registry of those repos, the read contract of their tracked `gallery/viz_manifest.yaml` manifests and the board that links to their PNGs. The project repos render and hold the figures; the organ renders nothing and copies no figures. The Eyes are the perception mirror of the @@ -29,8 +30,8 @@ Each instance is a project repo `_visualization` with the same layout — renders, a tracked `gallery/viz_manifest.yaml` (every figure's producer, domain, source type, path, size and content hash, plus the stack it was rendered with), `output/gallery/gallery.html` and a `GALLERY.md` index. -`autolens_visualization` and `autogalaxy_visualization` are registered; fit -and cti follow. The organ's +`autolens_visualization`, `autogalaxy_visualization`, `autofit_visualization` +and `autocti_visualization` are registered. The organ's instance registry (`registry.yaml`, PyAutoEyes phase 1b/2) names every instance, its library and its domains, and the board shows each one's figure count, stale renders, gaps and open critiques — the single point of contact diff --git a/skills/eyes/eyes.md b/skills/eyes/eyes.md index 7358ee5..ee81837 100644 --- a/skills/eyes/eyes.md +++ b/skills/eyes/eyes.md @@ -7,21 +7,23 @@ function*). You never name the Brain; this command is the door. Shared routing context: `PyAutoBrain/skills/COMMANDS.md`. The default visualization instance is the lens visualization project repo, **`lens/autolens_visualization`**; the galaxy project repo -**`galaxy/autogalaxy_visualization`** is the second instance. `autolens_workspace_test` (the original +**`galaxy/autogalaxy_visualization`** is the second instance, then +**`fit/autofit_visualization`** and **`cti/autocti_visualization`**. `autolens_workspace_test` (the original reference instance from epic PyAutoBrain#117 Phase 1) remains a secondary instance; pass a different instance root to review another project. Two layers (human decision 2026-09-28): **project repos** -`_visualization` (two today: `lens/autolens_visualization` and -`galaxy/autogalaxy_visualization`) make, store +`_visualization` (four today: `lens/autolens_visualization`, +`galaxy/autogalaxy_visualization`, `fit/autofit_visualization` and +`cti/autocti_visualization`) make, store and track one library's figures — producers, datasets, tracked PNGs, `GALLERY.md`, a tracked `gallery/viz_manifest.yaml` and the `gallery/gallery_run.sh` harness; **the organ PyAutoEyes** is the cross-project dashboard that reads each project repo's tracked manifest and links to its PNGs — it renders nothing and copies no figures. The organ's `registry.yaml` lists every instance. Name one with `--instance ` (the -lens instance is `lens`, the galaxy instance `galaxy` — e.g. -`--instance galaxy`), or hand the conductor the PyAutoEyes root to cover +lens instance is `lens`, the galaxy instance `galaxy`, then `fit` and +`cti` — e.g. `--instance galaxy`), or hand the conductor the PyAutoEyes root to cover them all. ## Do