The Eyes of the PyAuto organism: where the human checks in on what every library's figures look like. Dashboard: dashboard.md, or with a library → dataset → figure browser and copyable review prompts on Pages at https://pyautolabs.github.io/PyAutoEyes/.
- Project repos
<lib>_visualization(today:autolens_visualization,autogalaxy_visualization,autofit_visualizationandautocti_visualization) make, store and track the figures: producers, datasets, the tracked PNGs,GALLERY.md, and a tracked figure manifest. They re-render on every library release. - This organ reads each project repo's manifest and builds one dashboard across all of them. It links to the PNGs where they live. It renders nothing, copies no figures and never judges them (the Brain's Eyes conductor does). It never edits library plot code, because accepted critiques route through intake → start_dev.
It is the same layering as autolens_profiling / autolens_inference under
the Brain board.
bin/pyauto-eyes board # re-render dashboard.md + dashboard.html + badge.json + state.json
bin/pyauto-eyes check # registry, manifests, every PNG URL, dashboard current
bin/pyauto-eyes survey lens # pyauto-brain eyes survey on the lens project repo
bin/pyauto-eyes board --offline --from lens=../../lens/autolens_visualization # no networkTo ask for a figure to be improved, use its Suggest an improvement link on
the dashboard. It opens a pre-filled issue on the project repo (title
figure: <domain>/<file>, the raw PNG link and a Suggested improvement:
stub, label eyes-critique). Or copy its Use the eyes skill. review <instance> <figure>
line into an AI assistant session. The dashboard files nothing itself, and an
accepted critique becomes a PyAutoMind intake prompt that goes through
start_dev.
Expand a library, then a dataset, and choose one figure to inspect. Click the image to enlarge it without leaving the dashboard. Open critiques are tucked into a separate disclosure. Local survey evidence stays in the context markers and state feed rather than adding text to the gallery.
Beside the page on Pages sit badge.json (the one-line headline) and
state.json, the organ-cockpit feed: one status, one headline and the rows
that ask something of a human, in the shared contract
PyAutoBrain/board/state_schema.json (validated on publish).
| Path | What |
|---|---|
registry.yaml |
one row per instance (lens, galaxy, fit and cti) |
REFERENCE.md |
the manifest contract (schema 1), the registry fields and the refresh chain |
eyes/ |
registry.py, manifest.py, context.py (survey + critiques), board.py, cli.py |
bin/pyauto-eyes |
board, check, survey |
dashboard.md / dashboard.html / badge.json / state.json |
generated, never hand-edited |
tests/ |
hermetic pytest tests and an optional real-browser check |
.github/workflows/ |
lint.yml, pages_dashboard.yml, dashboard_refresh.yml |
Requires Python 3.11+ and PyYAML. There is nothing to install: bin/pyauto-eyes
puts the repo on sys.path.
See AI_POLICY.md.
Rendering the HTML board requires a current PyAutoBrain checkout beside this
repo, at _brain/, or selected with PYAUTO_BRAIN. The banner, logo, responsive
layout and section navigation come from its board/_theme.py; CI and dashboard
refresh workflows check it out automatically. Counts and section links remain
owned by this board.
The optional interaction check uses Playwright with Chromium and loads real project PNGs. It covers five viewport widths in light/dark, keyboard navigation, selection and critique matching, in-page enlargement, retry and response races. From an environment with Playwright available, run:
node tests/browser.cjs dashboard.html .scratch/browserNODE_PATH may point to an existing Playwright installation's node_modules.
Screenshots and a JSON result summary go to the requested output directory.