From fabe9d47e41cff3ec3877f1c7dd7255c85da7892 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Wed, 7 Oct 2026 17:21:50 +0100 Subject: [PATCH 1/3] feat: simplify Mind dashboard and retire bundle registry --- .github/workflows/dashboard_refresh.yml | 2 - .github/workflows/mind_ledger_merge.yml | 2 +- AGENTS.md | 2 +- REFERENCE.md | 54 ++- active.md | 7 +- bundles.md | 34 -- dashboard.html | 447 +++-------------------- dashboard.md | 451 ++++-------------------- parked.md | 2 - scripts/ledger_merge.py | 1 - scripts/spawn.py | 4 +- state.json | 2 +- tests/test_ledger_merge.py | 1 - themes.md | 16 +- 14 files changed, 143 insertions(+), 882 deletions(-) delete mode 100644 bundles.md diff --git a/.github/workflows/dashboard_refresh.yml b/.github/workflows/dashboard_refresh.yml index 5db9be775..6bf2277f5 100644 --- a/.github/workflows/dashboard_refresh.yml +++ b/.github/workflows/dashboard_refresh.yml @@ -37,7 +37,6 @@ on: - "parked.md" - "planned.md" - "condemned.md" - - "bundles.md" - "themes.md" - "epics.md" - "complete/archive/epics/**" @@ -53,7 +52,6 @@ on: - "parked.md" - "planned.md" - "condemned.md" - - "bundles.md" - "themes.md" - "epics.md" - "complete/archive/epics/**" diff --git a/.github/workflows/mind_ledger_merge.yml b/.github/workflows/mind_ledger_merge.yml index 8fa8e7a9f..3bd61431d 100644 --- a/.github/workflows/mind_ledger_merge.yml +++ b/.github/workflows/mind_ledger_merge.yml @@ -245,7 +245,7 @@ jobs: python3 ../PyAutoBrain/agents/conductors/intake/_intake.py --mind . --apply dashboard >/dev/null \ || echo "::warning::dashboard not regenerated here — dashboard_refresh.yml heals it on main" git add -A -- complete/index.md dashboard.md dashboard.html \ - active.md planned.md parked.md condemned.md epics.md bundles.md queue.md + active.md planned.md parked.md condemned.md epics.md queue.md # the organ-cockpit feed (PyAutoBrain#418), when the renderer wrote it — # a missing pathspec is fatal to `git add`, so guard it if [ -f state.json ]; then git add -A -- state.json; fi diff --git a/AGENTS.md b/AGENTS.md index 73564fa6a..e2c9ffbef 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -30,7 +30,7 @@ when the task needs them. Read [README.md](README.md) for the public overview. `/hooks`; changed or untrusted project hooks are skipped. The remote Python SessionStart bootstrap applies to Claude sessions only. - Registry files (`active.md`, `planned.md`, `parked.md`, `condemned.md`, - `epics.md`, `ideas.md`, `bundles.md`) are changed through skills in `skills/`. + `epics.md`, `ideas.md`) are changed through skills in `skills/`. `dashboard.md` is generated: run `pyauto-brain intake --apply dashboard` after registry or draft changes. Never hand-edit it. diff --git a/REFERENCE.md b/REFERENCE.md index 4d0c9e288..0c96d5ce7 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -144,7 +144,7 @@ over the registry without starting work: ``` PyAutoMind/ ├── README.md ← short front page -├── dashboard.md ← GENERATED task page (picks / in flight / parked / planned / backlog) +├── dashboard.md ← GENERATED task page (seven sections; reviews within Backlog) │ `pyauto-brain intake --apply dashboard`; CI self-heals the RENDER on │ main — never a shipped prompt nobody retired (that is /prm's close-out │ per task, `intake reconcile` across the backlog) @@ -246,9 +246,9 @@ Prompts start at `draft///.md` (and advance declaring `Type: human review` (`human-review`/`human_review` read the same) — `/intake` will never choose it for you, and no task acquires it by default. Review is opt-in, not a lifecycle stage, so an empty section means nothing was -flagged, not that nothing shipped. It renders as its own **Human review** section -on `dashboard.md`, directly under *In flight*, and is not counted as backlog: a -review is not work to pick up, it is work waiting on you. Its 📋 hands out a +flagged, not that nothing shipped. It renders as a **Human review** category +within *Backlog* on `dashboard.md`, included once in its navigation count. +Reviews stay out of development recommendations. Its 📋 hands out a read-and-report prompt rather than a `/start_dev`. Sign one off by retiring the prompt the usual way (`lifecycle.py record …`); don't sign it off and the follow-up is an ordinary `/intake`. @@ -336,7 +336,6 @@ Free-form markdown. Strong conventions: Issued: 2026-08-19 # optional; set when the prompt advances to active/ Blocked-by: PyAutoFit#1436 # optional; see "Declaring a gate" below Epic: cluster-strong-lensing # optional; an entry in epics.md - Bundle: euclid-pipeline-tidy # optional; an entry in bundles.md ``` When present, `Type:` should match the work-type folder. The goal is light @@ -395,17 +394,11 @@ Free-form markdown. Strong conventions: issue at `/start_dev` time and nowhere earlier — filing issues ahead of the work in general is the bulk-issue-queue anti-pattern, which stays forbidden. - **Declaring group membership — `Epic:` / `Bundle:`.** Both optional, both - naming a slug in the matching registry file, and the two mean opposite things - about ORDER. `Epic: ` (`epics.md`, plus an optional `Phase: `) says - this prompt is one phase of an ordered programme: the dashboard pulls it out - of every pick list and shows it only under its epic, worked in phase order. - `Bundle: ` (`bundles.md`) says the opposite — this prompt is - INDEPENDENT, and a human has pinned it to a set worth running in one - orchestrated session. A bundle member keeps its normal place on the - dashboard and gains a Bundles card; it leaves only the *auto*-bundle pool, - since it is already spoken for. A slug naming no registry entry still - groups, loudly (⚠️ on the page), so a typo is visible rather than silent. + **Declaring ordered membership — `Epic:`.** Optional. `Epic: ` + (`epics.md`, plus an optional `Phase: `) makes this prompt one phase of an + ordered programme: the dashboard removes it from standalone pick lists and + shows it under its epic, worked in phase order. Related independent work can + be grouped explicitly when launching a task; there is no bundle registry. **Declaring what the work is ABOUT — `Themes:`.** Optional, and the same list shape as `Repos:` — a bare `Themes:` line, then one `- keyword` bullet @@ -418,18 +411,11 @@ Free-form markdown. Strong conventions: - jax-gradient ``` - The **first** keyword is the primary theme and is what the dashboard's - auto-bundler groups on, so a card reads "three things about MGE" rather than - "three things that live in autoarray"; the remaining keywords are affinity, - deciding which prompts pack together inside that group. One to three keywords - is the intended shape, primary first. A prompt with no `Themes:` still - bundles — the bundler falls back to `Target:` — so nothing waits on a theme. - - The vocabulary is [`themes.md`](themes.md), a plain markdown list a human - edits directly (PyAutoBrain reads that file rather than holding its own - copy). A keyword that is not in it still groups, loudly: ⚠️ on the bundle - card and a count in the dashboard's Hygiene section, so the list never rots - into free-text tags. The **Intake (Conception) Agent** assigns `Themes:` when + The first keyword is the primary theme; one to three keywords is the + intended shape. Themes are optional metadata for selecting related work. + The vocabulary is [`themes.md`](themes.md), read directly by PyAutoBrain. + Unknown keywords appear in the dashboard's Hygiene count for correction. + The **Intake (Conception) Agent** assigns `Themes:` when it formalises a prompt. The optional `Difficulty:` / `Autonomy:` / `Priority:` keys let both people and @@ -730,8 +716,8 @@ it are discarded rather than stamping every task with the day the clone was made. The dashboard's [Recent](dashboard.md#recent) table is the payoff: it holds the -50 newest events on the work in hand — issued, parked, filed — and shows 10, -opening the next 10 on each tap of `…`. Shipped work stays out of it; +50 newest events on the work in hand — issued, filed, flagged for review — and +shows 10, opening the next 10 on each tap of `…`. Parked and shipped work stay out; `complete/index.md` is where the ledger is read. ### Completion record (`complete///.md`) schema @@ -789,7 +775,7 @@ no prompt. | Ledger — merged automatically | Code — always a human | |---|---| | `draft/**`, `active/**`, `complete/**` | `scripts/`, `tests/`, `.github/`, `skills/`, `policy/`, `docs/` | -| `active.md`, `planned.md`, `parked.md`, `condemned.md`, `epics.md`, `bundles.md`, `ideas.md`, `autonomy_log.md` | `repos.yaml`, `themes.md`, `README.md`, `AGENTS.md`, `REFERENCE.md`, `ROUTING.md`, … | +| `active.md`, `planned.md`, `parked.md`, `condemned.md`, `epics.md`, `ideas.md`, `autonomy_log.md` | `repos.yaml`, `themes.md`, `README.md`, `AGENTS.md`, `REFERENCE.md`, `ROUTING.md`, … | | `dashboard.md`, `dashboard.html` | anything unclassified — a new root file, a new top-level folder | Two exceptions inside the ledger dirs: a **dot-path** anywhere, and a file @@ -1116,9 +1102,9 @@ declaring `Type: human review` (`human-review`/`human_review` read the same) — Review is opt-in, not a lifecycle stage: `/prm` and the ship skills close a task out exactly as before and never file a review. -It renders as its own **Human review** section on `dashboard.md`, directly under -*In flight*, and is deliberately not counted as backlog — a review is not work to -pick up, it is work waiting on a person. Its 📋 hands out a read-and-report +It renders as a **Human review** category within *Backlog* on `dashboard.md`, +included once in the Backlog navigation count but excluded from development +recommendations. Its 📋 hands out a read-and-report prompt, not a `/start_dev`. Sign one off by retiring the prompt the usual way (`scripts/lifecycle.py record …`, then regenerate the dashboard); if it does not pass, the follow-up is an ordinary `$intake`. diff --git a/active.md b/active.md index cdfc64620..642fca89f 100644 --- a/active.md +++ b/active.md @@ -77,11 +77,12 @@ - issue: https://github.com/PyAutoLabs/PyAutoMind/issues/488 - issued: 2026-10-07 - session: Codex (session ID unavailable) -- status: awaiting-input +- status: library-dev - worktree: /home/jammy/Code/PyAutoLabs/.worktrees/mind-dashboard-simplify - repos: - PyAutoMind: feature/mind-dashboard-simplify - PyAutoBrain: feature/mind-dashboard-simplify -- summary: Implementation complete in task worktrees; Brain 1271 tests and Mind 696 tests passed, browser/freshness/policy checks passed. Awaiting Heart YELLOW acknowledgment before source commits/PRs; human /prm merge. -- awaiting: manifest drift: workspace checkouts (manifest ↔ disk) — 2 mismatch(es) vs PyAutoMind/repos.yaml +- summary: Implementation complete in task worktrees; Brain 1271 tests and Mind 696 tests passed, browser/freshness/policy checks passed. Heart YELLOW acknowledged; PR creation authorized, awaiting a GitHub-write-capable session; human /prm merge. +- heart-ack: manifest drift: workspace checkouts (manifest ↔ disk) — 2 mismatch(es) vs PyAutoMind/repos.yaml — acknowledged by the human on 2026-10-07 before shipping. +- blocked: GitHub writes unavailable in current session; shell DNS restricted and connector tool approval disabled. PR creation authorized. - evidence: PyAutoBrain/tmp/handoff.md and each repo tmp/full-tests-clean-env.log in the task worktree; issue #488 carries the handoff. diff --git a/bundles.md b/bundles.md deleted file mode 100644 index 1f5540837..000000000 --- a/bundles.md +++ /dev/null @@ -1,34 +0,0 @@ -# Bundles - -Sets of **independent** tasks that make sense to run in one orchestrated -session: an architect session (Fable) plans them, subagent sessions (Opus) -implement them, and every member still gets its own issue and its own PR — so -`/prm` closes each one out exactly as it would a standalone task. The skill -that runs one is `start_bundle` (PyAutoBrain). - -**A bundle is not an epic.** An epic is *ordered* and phase-gated: one phase at -a time, worked through its ledger, and its members are pulled out of the pick -lists so nobody starts phase 3 first. A bundle is a *flat set* — its members -have no order and no dependency on each other, so they stay in their usual -dashboard sections and a bundle is only an additional VIEW of the backlog. If -the members must happen in order, it is an epic (`epics.md`), not a bundle. - -This file holds **pinned** bundles only — the ones a human decided are worth -doing together. The dashboard also proposes **auto** bundles, computed fresh -from the backlog every time it is rendered (same target repo, unblocked, -non-epic, under a size cap, minimum two members); those are proposals and are -never written here. Pinning is how a proposal becomes a record — and how a -bundle that spans repos, or that no rule would ever spot, gets onto the page. - -Schema per entry: `## ` then `- title:` / `- members:` / `- rationale:` -(why these belong in one session) / `- status:` (optional, coarse and durable). -`- members:` opens a list of prompt paths, one per indented ` - ` -bullet, and closes at the next `- key:` line. - -A member prompt may also declare its own membership in its header: -`Bundle: ` (this file's slug). A prompt carrying that header leaves the -auto pool, and if its slug names no entry here the dashboard renders the group -with a ⚠️ rather than silently dropping it. - - diff --git a/dashboard.html b/dashboard.html index 8896c0475..d1f153135 100644 --- a/dashboard.html +++ b/dashboard.html @@ -102,6 +102,8 @@ /* Section links share a shape whether or not the owner has a useful count. */ .board-nav{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr)); gap:.75rem;margin:1.5rem 0;min-width:0} +@media(min-width:64rem){ + .board-nav[style]{grid-template-columns:repeat(var(--nav-columns),minmax(0,1fr))}} .board-nav-card{display:flex;flex-direction:column;justify-content:center;gap:.25rem; min-width:0;min-height:5.5rem;padding:1rem;border:1px solid var(--line); border-top:3px solid var(--accent);border-radius:12px;background:var(--btn); @@ -318,8 +320,8 @@ Keep track of decisions and outstanding questions throughout this conversation. After changes, report what was recorded, where it lives and what remains to do. Work on GitHub: -- Open Mind repository: https://github.com/PyAutoLabs/PyAutoMind
Last updated 2026-10-07 15:37:56 UTC
↻ Update

- +- Open Mind repository: https://github.com/PyAutoLabs/PyAutoMind
Last updated 2026-10-07 16:21:49 UTC
↻ Update

+

Community pages + merged "Community & Contributing" sections across PyAutoLabs — issue #773 — issued 2026-10-07 — awaiting-merge — 13/18 MERGED 2026-10-07; 5 PRs HELD until the next release by human decision (autolens_profiling #391 after… — PRs: PyAutoLens#774

-

Pending release markdown version

+

Pending release markdown version

5

Library PRs the ledger records as merged but not yet released, and the in-flight tasks waiting on each. Rendered from the ledger — active.md and the complete/ records — never a live GitHub query; the Brain board's pending-release search is the fresh view, this is what the Mind believes.

PyAutoArray

@@ -393,7 +395,21 @@

PyAutoLens

PyAutoNerves

-

Human review markdown version

2
+

Planned markdown version

7
+
+7 task(s) +

isothermal-ell-sph-oversampling-at-the-cusp — found 2026-08-09 — planned — NOT yet a prompt file; file one via /intake before starting

+

remote-mcp-deployment-tiers — issue #20 — filed 2026-07-21 — DESIGN-COMPLETE, build BLOCKED-ON-DEMAND — issue #20 holds the full auth/transport/hosting design + Richard/PyAutoMCP…

+

samples-parameter-paths — issue #1327 — filed 2026-07-08 — parked

+

piemass-potential — filed 2026-06-05 — planned

+

latent-nan-guard-honest-run — planned 2026-07-22

+

knn-partial-point-block — issue #609 — filed 2026-10-02

+

sibson-internal-edge-continuity — issue #610 — filed 2026-10-02

+
+

Backlog markdown version

236
+

234 unstarted prompts and 2 awaiting human review. Unstarted prompts are sorted most-pickable first (priority, then size). 47 of them belong to an epic and are listed only under Epics below.

+
+Human review — 2

Shipped work waiting on you — tasks a human asked to check before calling them done. Nothing lands here on its own: a task only gets a review row when someone files one (/intake with Type: human review), so an empty section means nothing has been flagged, not that nothing shipped.

Human review: the scaling_relation slam parks (imaging un-parked, multi_galaxy kept)👀 human_reviewautolens_workspacenormal — flagged for review 2026-08-29

-

Parked markdown version

5
-
-5 task(s) -

single-source-density-design — issue #1500 — parked 2026-08-18

-

prior-message-collapse-design — issue #1500 — parked 2026-08-18

-

fixed-light-numba-s7 — parked 2026-09-18

-

bootstrap-smoke-codex — issue #144 — parked 2026-10-02 — queued (human-deferred) — requested quicker wrap after inference PR

-

colab-refinement-throughout — issue #145 — parked 2026-10-02 — queued (human-deferred) — requested quicker wrap after inference PR

-

Planned markdown version

7
-
-7 task(s) -

isothermal-ell-sph-oversampling-at-the-cusp — found 2026-08-09 — planned — NOT yet a prompt file; file one via /intake before starting

-

remote-mcp-deployment-tiers — issue #20 — filed 2026-07-21 — DESIGN-COMPLETE, build BLOCKED-ON-DEMAND — issue #20 holds the full auth/transport/hosting design + Richard/PyAutoMCP…

-

samples-parameter-paths — issue #1327 — filed 2026-07-08 — parked

-

piemass-potential — filed 2026-06-05 — planned

-

latent-nan-guard-honest-run — planned 2026-07-22

-

knn-partial-point-block — issue #609 — filed 2026-10-02

-

sibson-internal-edge-continuity — issue #610 — filed 2026-10-02

-
-

Backlog markdown version

234
-

234 filed prompts, not started — sorted most-pickable first (priority, then size). 47 of them belong to an epic and are listed only under Epics below.

bug — 70

Fix KNN neighbor search for a partial final point block🐛 bugautoarraysmallsupervisedhigh

@@ -659,364 +654,8 @@

PyAutoNerves

triage — 1

jax.jit(analysis.fit_from) is vacuous in the jax_likelihood scripts❓ triageautolensmediumhuman-requiredmedium

-

Bundles markdown version

- -

Sets of INDEPENDENT tasks that make sense in one orchestrated session: an architect session plans them, subagents implement them, and every member still gets its own issue and its own PR — so the prm skill closes each one out unchanged. Not an epic: nothing here is ordered or phase-gated, and every member also appears in its usual section above — a bundle is an extra view of the backlog, never a replacement. Pinned bundles are the human record in bundles.md; auto bundles are recomputed from the backlog every time this page is rendered and are proposals, never records.

-
-autoarray — bundle 1 — 4 task(s) · 7 pts · auto — proposed -

Run this bundle — one session, one issue and one PR per member

- - - - - - - - - - - - - - - - - - - - - - - - - - -
PromptDifficultyPriorityStatus
Fix KNN neighbor search for a partial final point blocksmallhighformalised
Fix Sibson interpolation at internal edgeslargehighformalised
files/*_experiment.py import a module that no longer exists…smalllowformalised
After the phase-8c releases: bump the autonerves floor, drop the…smalllowformalised
-
-
-euclid — 4 task(s) · 5 pts · auto — proposed — ⚠️ theme(s) not in themes.md: catalogue, euclid, jax, latent -

Run this bundle — one session, one issue and one PR per member

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PromptRepoDifficultyPriorityStatus
test_latent_euclid_variables_traces_under_jax_jit went red on main…euclidsmallhighdraft
Bundle stages 1/5/6 read OUTPUT_DIR, but the SED chain writes…euclidsmallmediumdraft
vis_lp passes batch_size=50 to af.Nautilus, which has no such…euclidsmallmediumformalised
Upstream the DR1 final-catalogue tooling to the pipeline, with a…euclidmediumnormalformalised
-
-
-euclid — bundle 2 — 3 task(s) · 5 pts · auto — proposed — ⚠️ theme(s) not in themes.md: catalogue, docs, euclid, hpc -

Run this bundle — one session, one issue and one PR per member

- - - - - - - - - - - - - - - - - - - - - - - -
PromptRepoDifficultyPriorityStatus
SED chain waveband fit can spin forever in Nautilus exploration…euclidsmallhighformalised
euclid_dr1: every dataset rgb.jpg is upside down relative to the VIS…euclid---
euclid pipeline: skip_fit_output docs say it gates the whole of…euclidlowlowdraft
-
-
-pyautoheart — bundle 1 — 3 task(s) · 5 pts · auto — proposed -

Run this bundle — one session, one issue and one PR per member

- - - - - - - - - - - - - - - - - - - - -
PromptDifficultyPriorityStatus
Local smoke env creation fails: smoke_install.sh flat pip chain vs…mediumhighformalised
Heart smoke runner deletes the tracked output/.gitignore when wiping…smallmediumformalised
release-integrate: analyze-side foreign-path filter and a…mediumlowformalised
-
-
-workspaces — bundle 1 — 3 task(s) · 5 pts · auto — proposed -

Run this bundle — one session, one issue and one PR per member

- - - - - - - - - - - - - - - - - - - - -
PromptDifficultyPriorityStatus
Physical model check when speeding up smoke testsmediumhighformalised
rectangular.py parity contract: absolute-nats bound, and import…easymediumformalised
Sync remaining workspace config/priors copiessmallmediumformalised
-
-
-ci — 3 task(s) · 3 pts · auto — proposed — ⚠️ theme(s) not in themes.md: ci, robustness -

Run this bundle — one session, one issue and one PR per member

- - - - - - - - - - - - - - - - - - - - - - - -
PromptRepoDifficultyPriorityStatus
The reusable smoke workflow's relevance gate skips the unit /…pyautoheartsmallhighformalised
arXiv's Fastly edge refuses urllib.request outright — retrying a…pyautomindsmallhighformalised
arxiv_refs.py swallows every API error, so an arXiv outage resolves…pyautomemorysmallmediumformalised
-
-
-assistants — 4 task(s) · 7 pts · auto — proposed -

Run this bundle — one session, one issue and one PR per member

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PromptRepoDifficultyPriorityStatus
autofit_assistant: a skill that owns loading the user's data and its…autofit_assistantsmallmedium-
wiki-currency's --check-version gate rots on every library main mergecimediumnormalformalised
Checkerboard PSF-mismatch residual diagnostic — research + document +…pyautomemorymediumnormalformalised
Assistants: regime-aware routing for multi_galaxy / group / cluster…workspacesmediumlowin progress — autolens_assistant leg…
-
-
-autofit — bundle 1 — 4 task(s) · 7 pts · auto — proposed -

Run this bundle — one session, one issue and one PR per member

- - - - - - - - - - - - - - - - - - - - - - - - - - -
PromptDifficultyPriorityStatus
EP test suite is not xdist-safe: tests share one on-disk output…smallmediumformalised
Visualization warm-up swallowed for ellipse and point-source analyseslargemediumformalised
Assertion repr recurses foreversmallnormalformalised
af.Model(function) cannot resolve config priorssmallnormalformalised
-
-

Showing 8 of 39 auto bundles — pin one in bundles.md to keep it on the page.

-

Recent markdown version

-

The 50 newest things to happen to the work in hand, newest first — issued, parked, filed. Every other section on this page is laid out by state, which is exactly why none of them can answer “what has been happening?”. Shipped work is not here: it is read from complete/index.md, and a thousand records deep it would crowd out everything anyone can still act on. Showing the newest 10; … opens the next 10.

+

Recent markdown version

50
+

The 50 newest things to happen to the work in hand, newest first — issued, filed, flagged for review. Every other section on this page is laid out by state, which is exactly why none of them can answer “what has been happening?”. Shipped work is not here: it is read from complete/index.md, and a thousand records deep it would crowd out everything anyone can still act on. Showing the newest 10; … opens the next 10.

@@ -1050,18 +689,6 @@

PyAutoNerves

- - - - - - - - - - - - @@ -1078,13 +705,13 @@

PyAutoNerves

- + - + @@ -1170,12 +797,6 @@

PyAutoNerves

- - - - - - @@ -1318,9 +939,27 @@

PyAutoNerves

+ + + + + + + + + + + + + + + + + +
2026-10-07
2026-10-02parkedcolab-refinement-throughout
2026-10-02parkedbootstrap-smoke-codex
2026-10-02 filed Fix Sibson interpolation at internal edges Sparse interferometer terms: NUFFT ignores the mask origin and…
2026-10-01 filed Interferometer log_evidence fails (LinAlgError / NaN) at large…
2026-10-01 filed Interferometer galaxy_image_dict drops a mixed galaxy's ordinary…
-

Epics markdown version

+

Epics markdown version

15

Long-running multi-phase programmes — 📋 copies a prompt that works out where the epic stands from its ledger and continues it from the next logical point. Members are worked in order through the epic's ledger — continue the epic rather than starting one standalone.

Search extensibility — a PyAutoFit search framework for many samplers, a unified JAX contract, generated search docs, and the autofit_inference / autofit_profiling benchmark repos — 1 queued prompt(s), in order diff --git a/dashboard.md b/dashboard.md index 8aac240a3..3328c976f 100644 --- a/dashboard.md +++ b/dashboard.md @@ -40,11 +40,13 @@ anything you could not verify. | Where | Count | |-------|------:| -| [In flight](#in-flight) (`active/`) | 2 | -| [Human review](#human-review) (`draft/human_review/`) | 2 | -| [Parked](#parked) (`parked.md`) | 5 | -| [Planned](#planned) (`planned.md`) | 7 | -| [Backlog](#backlog) (`draft/`) | 234 | +| [Start here](#start-here) | 24 | +| [In flight](#in-flight) | 2 | +| [Planned](#planned) | 7 | +| [Backlog](#backlog) | 236 | +| [Pending release](#pending-release) | 5 | +| [Recent](#recent) | 50 | +| [Epics](#epics) | 15 | > **No batch in flight.** @@ -305,170 +307,125 @@ Library PRs the ledger records as merged but not yet released, and the in-flight - [PyAutoNerves#195](https://github.com/PyAutoLabs/PyAutoNerves/pull/195) — `complete/2026/10/setuptools-include-packages.md` - [PyAutoNerves#192](https://github.com/PyAutoLabs/PyAutoNerves/pull/192) — `complete/2026/10/workspace-version-warning-outside-workspace.md` -## Human review - -Shipped work waiting on **you** — tasks a human asked to check before calling them done. Nothing lands here on its own: a task only gets a review row when someone files one (`/intake` with `Type: human review`), so an empty section means nothing has been flagged, not that nothing shipped. - -
📋 Human review: multi-plane cross-validation (library tests + workspace guide) — autolens · normal — flagged for review 2026-08-29 +## Planned -``` -Walk me through the completed work described in `draft/human_review/autolens/multi_plane_cross_validation_review.md` so I can sign it off. +Scoped but not started; some are not yet prompt files. Full detail in [`planned.md`](planned.md). -1. Read the prompt: what was asked, and what it claims shipped. -2. Find the evidence — the merged PR(s), the commits, the `complete/` record — - and read the actual diff, not the description of it. -3. Report what changed, what it does NOT cover, and anything you would have - done differently. Call out behaviour changes and test gaps explicitly. +
+7 task(s) -Change nothing while reviewing. When I sign it off, retire the prompt from the -PyAutoMind checkout (`python3 scripts/lifecycle.py record --date - --from-file --apply`, then `git rm` the prompt) and -regenerate the dashboard. If I do not sign it off, file the follow-up with -`/intake` instead. +
📋 isothermal-ell-sph-oversampling-at-the-cusp — found 2026-08-09 — planned — NOT yet a prompt file; file one via /intake before starting +``` +Use the route skill. start the planned PyAutoMind task isothermal-ell-sph-oversampling-at-the-cusp — its record is in planned.md ```
-
📋 Human review: the scaling_relation slam parks (imaging un-parked, multi_galaxy kept) — autolens_workspace · normal — flagged for review 2026-08-29 +
📋 remote-mcp-deployment-tiers — issue #20 — filed 2026-07-21 — DESIGN-COMPLETE, build BLOCKED-ON-DEMAND — issue #20 holds the full auth/transport/hosting design + Richard/PyAutoMCP… ``` -Walk me through the completed work described in `draft/human_review/autolens_workspace/scaling_relation_slam_parks_review.md` so I can sign it off. - -1. Read the prompt: what was asked, and what it claims shipped. -2. Find the evidence — the merged PR(s), the commits, the `complete/` record — - and read the actual diff, not the description of it. -3. Report what changed, what it does NOT cover, and anything you would have - done differently. Call out behaviour changes and test gaps explicitly. - -Change nothing while reviewing. When I sign it off, retire the prompt from the -PyAutoMind checkout (`python3 scripts/lifecycle.py record --date - --from-file --apply`, then `git rm` the prompt) and -regenerate the dashboard. If I do not sign it off, file the follow-up with -`/intake` instead. - +Use the start-dev skill. draft/feature/autofit_assistant/remote_mcp_deployment_tiers.md ```
-## Parked - -Started or scoped, not currently in flight — resume by moving the row back to `active.md`. Full detail in [`parked.md`](parked.md). - -
-5 task(s) - -
📋 single-source-density-design — issue #1500 — parked 2026-08-18 +
📋 samples-parameter-paths — issue #1327 — filed 2026-07-08 — parked ``` -Use the start-dev skill. draft/bug/priors/12_single_source_density_refactor.md +Use the start-dev skill. draft/bug/health_fixes/samples_parameter_paths.md ```
-
📋 prior-message-collapse-design — issue #1500 — parked 2026-08-18 +
📋 piemass-potential — filed 2026-06-05 — planned ``` -Use the start-dev skill. draft/bug/priors/13_collapse_prior_and_message.md +Use the start-dev skill. draft/feature/autogalaxy/piemass_potential.md ```
-
📋 fixed-light-numba-s7 — parked 2026-09-18 +
📋 latent-nan-guard-honest-run — planned 2026-07-22 ``` -Use the route skill. resume the parked PyAutoMind task fixed-light-numba-s7 — its record is in parked.md +Use the route skill. start the planned PyAutoMind task latent-nan-guard-honest-run — its record is in planned.md ```
-
📋 bootstrap-smoke-codex — issue #144 — parked 2026-10-02 — queued (human-deferred) — requested quicker wrap after inference PR +
📋 knn-partial-point-block — issue #609 — filed 2026-10-02 ``` -Use the start-dev skill. active/bootstrap_smoke_codex_and_bench_pr.md +Use the start-dev skill. draft/bug/autoarray/fix_knn_neighbor_search_for_a_partial.md ```
-
📋 colab-refinement-throughout — issue #145 — parked 2026-10-02 — queued (human-deferred) — requested quicker wrap after inference PR +
📋 sibson-internal-edge-continuity — issue #610 — filed 2026-10-02 ``` -Use the start-dev skill. active/colab_refinement_throughout.md +Use the start-dev skill. draft/bug/autoarray/fix_sibson_interpolation_at_internal_edges.md ```
-## Planned +## Backlog -Scoped but not started; some are not yet prompt files. Full detail in [`planned.md`](planned.md). +**234** unstarted prompts and **2** awaiting human review. Unstarted prompts are sorted most-pickable first (priority, then size). **47** of them belong to an epic and are listed only under [Epics](#epics) below. +
-7 task(s) - -
📋 isothermal-ell-sph-oversampling-at-the-cusp — found 2026-08-09 — planned — NOT yet a prompt file; file one via /intake before starting - -``` -Use the route skill. start the planned PyAutoMind task isothermal-ell-sph-oversampling-at-the-cusp — its record is in planned.md -``` - -
- -
📋 remote-mcp-deployment-tiers — issue #20 — filed 2026-07-21 — DESIGN-COMPLETE, build BLOCKED-ON-DEMAND — issue #20 holds the full auth/transport/hosting design + Richard/PyAutoMCP… - -``` -Use the start-dev skill. draft/feature/autofit_assistant/remote_mcp_deployment_tiers.md -``` - -
- -
📋 samples-parameter-paths — issue #1327 — filed 2026-07-08 — parked - -``` -Use the start-dev skill. draft/bug/health_fixes/samples_parameter_paths.md -``` +Human review — 2 -
+Shipped work waiting on **you** — tasks a human asked to check before calling them done. Nothing lands here on its own: a task only gets a review row when someone files one (`/intake` with `Type: human review`), so an empty section means nothing has been flagged, not that nothing shipped. -
📋 piemass-potential — filed 2026-06-05 — planned +
📋 Human review: multi-plane cross-validation (library tests + workspace guide) — autolens · normal — flagged for review 2026-08-29 ``` -Use the start-dev skill. draft/feature/autogalaxy/piemass_potential.md -``` +Walk me through the completed work described in `draft/human_review/autolens/multi_plane_cross_validation_review.md` so I can sign it off. -
+1. Read the prompt: what was asked, and what it claims shipped. +2. Find the evidence — the merged PR(s), the commits, the `complete/` record — + and read the actual diff, not the description of it. +3. Report what changed, what it does NOT cover, and anything you would have + done differently. Call out behaviour changes and test gaps explicitly. -
📋 latent-nan-guard-honest-run — planned 2026-07-22 +Change nothing while reviewing. When I sign it off, retire the prompt from the +PyAutoMind checkout (`python3 scripts/lifecycle.py record --date + --from-file --apply`, then `git rm` the prompt) and +regenerate the dashboard. If I do not sign it off, file the follow-up with +`/intake` instead. -``` -Use the route skill. start the planned PyAutoMind task latent-nan-guard-honest-run — its record is in planned.md ```
-
📋 knn-partial-point-block — issue #609 — filed 2026-10-02 +
📋 Human review: the scaling_relation slam parks (imaging un-parked, multi_galaxy kept) — autolens_workspace · normal — flagged for review 2026-08-29 ``` -Use the start-dev skill. draft/bug/autoarray/fix_knn_neighbor_search_for_a_partial.md -``` +Walk me through the completed work described in `draft/human_review/autolens_workspace/scaling_relation_slam_parks_review.md` so I can sign it off. -
+1. Read the prompt: what was asked, and what it claims shipped. +2. Find the evidence — the merged PR(s), the commits, the `complete/` record — + and read the actual diff, not the description of it. +3. Report what changed, what it does NOT cover, and anything you would have + done differently. Call out behaviour changes and test gaps explicitly. -
📋 sibson-internal-edge-continuity — issue #610 — filed 2026-10-02 +Change nothing while reviewing. When I sign it off, retire the prompt from the +PyAutoMind checkout (`python3 scripts/lifecycle.py record --date + --from-file --apply`, then `git rm` the prompt) and +regenerate the dashboard. If I do not sign it off, file the follow-up with +`/intake` instead. -``` -Use the start-dev skill. draft/bug/autoarray/fix_sibson_interpolation_at_internal_edges.md ```
-## Backlog - -**234** filed prompts, not started. Each section is sorted most-pickable first (priority, then size). **47** of them belong to an epic and are listed only under [Epics](#epics) below. -
bug — 70 @@ -2010,279 +1967,9 @@ Use the start-dev skill. draft/triage/autolens/jit_fit_from_is_vacuous.md
-## Bundles - -Sets of INDEPENDENT tasks that make sense in one orchestrated session: an architect session plans them, subagents implement them, and every member still gets its own issue and its own PR — so the prm skill closes each one out unchanged. Not an epic: nothing here is ordered or phase-gated, and every member also appears in its usual section above — a bundle is an extra view of the backlog, never a replacement. Pinned bundles are the human record in `bundles.md`; auto bundles are recomputed from the backlog every time this page is rendered and are proposals, never records. Full record in [`bundles.md`](bundles.md). - -
-autoarray — bundle 1 — 4 task(s) · 7 pts · auto — proposed - -
📋 Run this bundle — one session, one issue and one PR per member - -``` -You are the judgment tier for the PyAutoMind bundle 'autoarray — bundle 1' — 4 INDEPENDENT tasks run in one orchestrated session. - -Members: -- draft/bug/autoarray/fix_knn_neighbor_search_for_a_partial.md -- draft/bug/autoarray/fix_sibson_interpolation_at_internal_edges.md -- draft/maintenance/autoarray/files_experiment_scripts_import_a_removed_module.md -- draft/maintenance/autoarray/small_datasets_followups_after_8c.md - -Contract (the `start-bundle` skill is the full body): -1. Read each member prompt above in full, and plan all of them before editing anything. The members are independent — if any turns out to depend on another, say so and drop it from the bundle. -2. Use the start-dev skill for EACH member prompt: one plan, one issue, one registry entry per member. Never file them as a bulk issue queue and never merge them into one issue. -3. One shared worktree per repo, not one per member: run the start-library skill (or the start-workspace skill) once, naming the bundle as the task and listing every member's repos. A worktree holds one branch at a time, so inside it members are worked one at a time, each on its own `feature/` branch cut from `origin/main`; members in different repos may run in parallel. -4. For each member, resolve the execution tier from `PyAutoBrain/skills/WORKFLOW.md`, then delegate implementation through the current harness's native subagent mechanism, one execution delegate per member, with the member's issue plan, the worktree path and the branch to use. If that mechanism is unavailable, follow WORKFLOW's direct-execution fallback. The current session plans, judges and talks to the user; the execution delegate edits, tests and reports back. -5. Ship each member on its own: the ship-library skill or the ship-workspace skill, ONE PR per task, so the prm skill closes each member out unchanged. Never one PR for the bundle. -6. Report per member: issue, branch, PR, and pass/fail counts. -``` - -
- -| Prompt | Difficulty | Priority | Status | -|--------|------------|----------|--------| -| Fix KNN neighbor search for a partial final point block | small | high | formalised | -| Fix Sibson interpolation at internal edges | large | high | formalised | -| files/*_experiment.py import a module that no longer exists… | small | low | formalised | -| After the phase-8c releases: bump the autonerves floor, drop the… | small | low | formalised | - -
- -
-euclid — 4 task(s) · 5 pts · auto — proposed — ⚠️ theme(s) not in `themes.md`: catalogue, euclid, jax, latent - -
📋 Run this bundle — one session, one issue and one PR per member - -``` -You are the judgment tier for the PyAutoMind bundle 'euclid' — 4 INDEPENDENT tasks run in one orchestrated session. - -Members: -- draft/bug/euclid/latent_total_source_flux_jax_vs_numpy_regression.md -- draft/bug/euclid/bundle_sersic_products_read_output_dir_not_sed_output_dir.md -- draft/bug/euclid/vis_lp_batch_size_kwarg_silently_ignored.md -- draft/feature/euclid/upstream_dr1_final_catalogue_tooling.md - -Contract (the `start-bundle` skill is the full body): -1. Read each member prompt above in full, and plan all of them before editing anything. The members are independent — if any turns out to depend on another, say so and drop it from the bundle. -2. Use the start-dev skill for EACH member prompt: one plan, one issue, one registry entry per member. Never file them as a bulk issue queue and never merge them into one issue. -3. One shared worktree per repo, not one per member: run the start-library skill (or the start-workspace skill) once, naming the bundle as the task and listing every member's repos. A worktree holds one branch at a time, so inside it members are worked one at a time, each on its own `feature/` branch cut from `origin/main`; members in different repos may run in parallel. -4. For each member, resolve the execution tier from `PyAutoBrain/skills/WORKFLOW.md`, then delegate implementation through the current harness's native subagent mechanism, one execution delegate per member, with the member's issue plan, the worktree path and the branch to use. If that mechanism is unavailable, follow WORKFLOW's direct-execution fallback. The current session plans, judges and talks to the user; the execution delegate edits, tests and reports back. -5. Ship each member on its own: the ship-library skill or the ship-workspace skill, ONE PR per task, so the prm skill closes each member out unchanged. Never one PR for the bundle. -6. Report per member: issue, branch, PR, and pass/fail counts. -``` - -
- -| Prompt | Repo | Difficulty | Priority | Status | -|--------|------|------------|----------|--------| -| test_latent_euclid_variables_traces_under_jax_jit went red on main… | euclid | small | high | draft | -| Bundle stages 1/5/6 read OUTPUT_DIR, but the SED chain writes… | euclid | small | medium | draft | -| vis_lp passes batch_size=50 to af.Nautilus, which has no such… | euclid | small | medium | formalised | -| Upstream the DR1 final-catalogue tooling to the pipeline, with a… | euclid | medium | normal | formalised | - -
- -
-euclid — bundle 2 — 3 task(s) · 5 pts · auto — proposed — ⚠️ theme(s) not in `themes.md`: catalogue, docs, euclid, hpc - -
📋 Run this bundle — one session, one issue and one PR per member - -``` -You are the judgment tier for the PyAutoMind bundle 'euclid — bundle 2' — 3 INDEPENDENT tasks run in one orchestrated session. - -Members: -- draft/bug/euclid/sed_chain_waveband_fit_can_spin_forever.md -- draft/bug/euclid/euclid_dr1_flip_rgb_jpg_upside_down.md -- draft/maintenance/euclid/skip_fit_output_no_longer_gates_save_results_docs_drift.md - -Contract (the `start-bundle` skill is the full body): -1. Read each member prompt above in full, and plan all of them before editing anything. The members are independent — if any turns out to depend on another, say so and drop it from the bundle. -2. Use the start-dev skill for EACH member prompt: one plan, one issue, one registry entry per member. Never file them as a bulk issue queue and never merge them into one issue. -3. One shared worktree per repo, not one per member: run the start-library skill (or the start-workspace skill) once, naming the bundle as the task and listing every member's repos. A worktree holds one branch at a time, so inside it members are worked one at a time, each on its own `feature/` branch cut from `origin/main`; members in different repos may run in parallel. -4. For each member, resolve the execution tier from `PyAutoBrain/skills/WORKFLOW.md`, then delegate implementation through the current harness's native subagent mechanism, one execution delegate per member, with the member's issue plan, the worktree path and the branch to use. If that mechanism is unavailable, follow WORKFLOW's direct-execution fallback. The current session plans, judges and talks to the user; the execution delegate edits, tests and reports back. -5. Ship each member on its own: the ship-library skill or the ship-workspace skill, ONE PR per task, so the prm skill closes each member out unchanged. Never one PR for the bundle. -6. Report per member: issue, branch, PR, and pass/fail counts. -``` - -
- -| Prompt | Repo | Difficulty | Priority | Status | -|--------|------|------------|----------|--------| -| SED chain waveband fit can spin forever in Nautilus exploration… | euclid | small | high | formalised | -| euclid_dr1: every dataset rgb.jpg is upside down relative to the VIS… | euclid | - | - | - | -| euclid pipeline: skip_fit_output docs say it gates the whole of… | euclid | low | low | draft | - -
- -
-pyautoheart — bundle 1 — 3 task(s) · 5 pts · auto — proposed - -
📋 Run this bundle — one session, one issue and one PR per member - -``` -You are the judgment tier for the PyAutoMind bundle 'pyautoheart — bundle 1' — 3 INDEPENDENT tasks run in one orchestrated session. - -Members: -- draft/bug/pyautoheart/smoke_install_flat_pip_chain_breaks_local_env_creation.md -- draft/bug/pyautoheart/heart_smoke_runner_deletes_the_tracked_output.md -- draft/bug/pyautoheart/release_integrate_analyze_path_filter_and_workspace_lint.md - -Contract (the `start-bundle` skill is the full body): -1. Read each member prompt above in full, and plan all of them before editing anything. The members are independent — if any turns out to depend on another, say so and drop it from the bundle. -2. Use the start-dev skill for EACH member prompt: one plan, one issue, one registry entry per member. Never file them as a bulk issue queue and never merge them into one issue. -3. One shared worktree per repo, not one per member: run the start-library skill (or the start-workspace skill) once, naming the bundle as the task and listing every member's repos. A worktree holds one branch at a time, so inside it members are worked one at a time, each on its own `feature/` branch cut from `origin/main`; members in different repos may run in parallel. -4. For each member, resolve the execution tier from `PyAutoBrain/skills/WORKFLOW.md`, then delegate implementation through the current harness's native subagent mechanism, one execution delegate per member, with the member's issue plan, the worktree path and the branch to use. If that mechanism is unavailable, follow WORKFLOW's direct-execution fallback. The current session plans, judges and talks to the user; the execution delegate edits, tests and reports back. -5. Ship each member on its own: the ship-library skill or the ship-workspace skill, ONE PR per task, so the prm skill closes each member out unchanged. Never one PR for the bundle. -6. Report per member: issue, branch, PR, and pass/fail counts. -``` - -
- -| Prompt | Difficulty | Priority | Status | -|--------|------------|----------|--------| -| Local smoke env creation fails: smoke_install.sh flat pip chain vs… | medium | high | formalised | -| Heart smoke runner deletes the tracked output/.gitignore when wiping… | small | medium | formalised | -| release-integrate: analyze-side foreign-path filter and a… | medium | low | formalised | - -
- -
-workspaces — bundle 1 — 3 task(s) · 5 pts · auto — proposed - -
📋 Run this bundle — one session, one issue and one PR per member - -``` -You are the judgment tier for the PyAutoMind bundle 'workspaces — bundle 1' — 3 INDEPENDENT tasks run in one orchestrated session. - -Members: -- draft/test/workspaces/physical_model_check_when_speeding_up_smoke.md -- draft/bug/workspaces/rectangular_parity_absolute_bound_and_x64_import_order.md -- draft/maintenance/workspaces/sync_remaining_workspace_config_priors_copies.md - -Contract (the `start-bundle` skill is the full body): -1. Read each member prompt above in full, and plan all of them before editing anything. The members are independent — if any turns out to depend on another, say so and drop it from the bundle. -2. Use the start-dev skill for EACH member prompt: one plan, one issue, one registry entry per member. Never file them as a bulk issue queue and never merge them into one issue. -3. One shared worktree per repo, not one per member: run the start-library skill (or the start-workspace skill) once, naming the bundle as the task and listing every member's repos. A worktree holds one branch at a time, so inside it members are worked one at a time, each on its own `feature/` branch cut from `origin/main`; members in different repos may run in parallel. -4. For each member, resolve the execution tier from `PyAutoBrain/skills/WORKFLOW.md`, then delegate implementation through the current harness's native subagent mechanism, one execution delegate per member, with the member's issue plan, the worktree path and the branch to use. If that mechanism is unavailable, follow WORKFLOW's direct-execution fallback. The current session plans, judges and talks to the user; the execution delegate edits, tests and reports back. -5. Ship each member on its own: the ship-library skill or the ship-workspace skill, ONE PR per task, so the prm skill closes each member out unchanged. Never one PR for the bundle. -6. Report per member: issue, branch, PR, and pass/fail counts. -``` - -
- -| Prompt | Difficulty | Priority | Status | -|--------|------------|----------|--------| -| Physical model check when speeding up smoke tests | medium | high | formalised | -| rectangular.py parity contract: absolute-nats bound, and import… | easy | medium | formalised | -| Sync remaining workspace config/priors copies | small | medium | formalised | - -
- -
-ci — 3 task(s) · 3 pts · auto — proposed — ⚠️ theme(s) not in `themes.md`: ci, robustness - -
📋 Run this bundle — one session, one issue and one PR per member - -``` -You are the judgment tier for the PyAutoMind bundle 'ci' — 3 INDEPENDENT tasks run in one orchestrated session. - -Members: -- draft/bug/pyautoheart/reusable_smoke_workflow_relevance_gate_skips_custom_runner_tests.md -- draft/bug/pyautomind/arxiv_edge_refuses_the_stdlib_urllib_client.md -- draft/bug/pyautomemory/arxiv_refs_swallows_every_api_error_silently.md - -Contract (the `start-bundle` skill is the full body): -1. Read each member prompt above in full, and plan all of them before editing anything. The members are independent — if any turns out to depend on another, say so and drop it from the bundle. -2. Use the start-dev skill for EACH member prompt: one plan, one issue, one registry entry per member. Never file them as a bulk issue queue and never merge them into one issue. -3. One shared worktree per repo, not one per member: run the start-library skill (or the start-workspace skill) once, naming the bundle as the task and listing every member's repos. A worktree holds one branch at a time, so inside it members are worked one at a time, each on its own `feature/` branch cut from `origin/main`; members in different repos may run in parallel. -4. For each member, resolve the execution tier from `PyAutoBrain/skills/WORKFLOW.md`, then delegate implementation through the current harness's native subagent mechanism, one execution delegate per member, with the member's issue plan, the worktree path and the branch to use. If that mechanism is unavailable, follow WORKFLOW's direct-execution fallback. The current session plans, judges and talks to the user; the execution delegate edits, tests and reports back. -5. Ship each member on its own: the ship-library skill or the ship-workspace skill, ONE PR per task, so the prm skill closes each member out unchanged. Never one PR for the bundle. -6. Report per member: issue, branch, PR, and pass/fail counts. -``` - -
- -| Prompt | Repo | Difficulty | Priority | Status | -|--------|------|------------|----------|--------| -| The reusable smoke workflow's relevance gate skips the unit /… | pyautoheart | small | high | formalised | -| arXiv's Fastly edge refuses urllib.request outright — retrying a… | pyautomind | small | high | formalised | -| arxiv_refs.py swallows every API error, so an arXiv outage resolves… | pyautomemory | small | medium | formalised | - -
- -
-assistants — 4 task(s) · 7 pts · auto — proposed - -
📋 Run this bundle — one session, one issue and one PR per member - -``` -You are the judgment tier for the PyAutoMind bundle 'assistants' — 4 INDEPENDENT tasks run in one orchestrated session. - -Members: -- draft/feature/autofit_assistant/data_loading_and_selection_cuts_skill.md -- draft/maintenance/ci/wiki_currency_check_version_gate.md -- draft/research/pyautomemory/checkerboard_psf_mismatch_residual_diagnostic.md -- draft/docs/workspaces/assistants_regime_extension.md - -Contract (the `start-bundle` skill is the full body): -1. Read each member prompt above in full, and plan all of them before editing anything. The members are independent — if any turns out to depend on another, say so and drop it from the bundle. -2. Use the start-dev skill for EACH member prompt: one plan, one issue, one registry entry per member. Never file them as a bulk issue queue and never merge them into one issue. -3. One shared worktree per repo, not one per member: run the start-library skill (or the start-workspace skill) once, naming the bundle as the task and listing every member's repos. A worktree holds one branch at a time, so inside it members are worked one at a time, each on its own `feature/` branch cut from `origin/main`; members in different repos may run in parallel. -4. For each member, resolve the execution tier from `PyAutoBrain/skills/WORKFLOW.md`, then delegate implementation through the current harness's native subagent mechanism, one execution delegate per member, with the member's issue plan, the worktree path and the branch to use. If that mechanism is unavailable, follow WORKFLOW's direct-execution fallback. The current session plans, judges and talks to the user; the execution delegate edits, tests and reports back. -5. Ship each member on its own: the ship-library skill or the ship-workspace skill, ONE PR per task, so the prm skill closes each member out unchanged. Never one PR for the bundle. -6. Report per member: issue, branch, PR, and pass/fail counts. -``` - -
- -| Prompt | Repo | Difficulty | Priority | Status | -|--------|------|------------|----------|--------| -| autofit_assistant: a skill that owns loading the user's data and its… | autofit_assistant | small | medium | - | -| wiki-currency's --check-version gate rots on every library main merge | ci | medium | normal | formalised | -| Checkerboard PSF-mismatch residual diagnostic — research + document +… | pyautomemory | medium | normal | formalised | -| Assistants: regime-aware routing for multi_galaxy / group / cluster… | workspaces | medium | low | in progress — autolens_assistant leg… | - -
- -
-autofit — bundle 1 — 4 task(s) · 7 pts · auto — proposed - -
📋 Run this bundle — one session, one issue and one PR per member - -``` -You are the judgment tier for the PyAutoMind bundle 'autofit — bundle 1' — 4 INDEPENDENT tasks run in one orchestrated session. - -Members: -- draft/bug/autofit/ep_test_suite_is_not_xdist_safe.md -- draft/bug/autofit/visualization_warmup_swallowed_exception.md -- draft/bug/autofit/assertion_repr_recurses_forever.md -- draft/bug/autofit/model_function_cannot_resolve_config_priors.md - -Contract (the `start-bundle` skill is the full body): -1. Read each member prompt above in full, and plan all of them before editing anything. The members are independent — if any turns out to depend on another, say so and drop it from the bundle. -2. Use the start-dev skill for EACH member prompt: one plan, one issue, one registry entry per member. Never file them as a bulk issue queue and never merge them into one issue. -3. One shared worktree per repo, not one per member: run the start-library skill (or the start-workspace skill) once, naming the bundle as the task and listing every member's repos. A worktree holds one branch at a time, so inside it members are worked one at a time, each on its own `feature/` branch cut from `origin/main`; members in different repos may run in parallel. -4. For each member, resolve the execution tier from `PyAutoBrain/skills/WORKFLOW.md`, then delegate implementation through the current harness's native subagent mechanism, one execution delegate per member, with the member's issue plan, the worktree path and the branch to use. If that mechanism is unavailable, follow WORKFLOW's direct-execution fallback. The current session plans, judges and talks to the user; the execution delegate edits, tests and reports back. -5. Ship each member on its own: the ship-library skill or the ship-workspace skill, ONE PR per task, so the prm skill closes each member out unchanged. Never one PR for the bundle. -6. Report per member: issue, branch, PR, and pass/fail counts. -``` - -
- -| Prompt | Difficulty | Priority | Status | -|--------|------------|----------|--------| -| EP test suite is not xdist-safe: tests share one on-disk output… | small | medium | formalised | -| Visualization warm-up swallowed for ellipse and point-source analyses | large | medium | formalised | -| Assertion repr recurses forever | small | normal | formalised | -| af.Model(function) cannot resolve config priors | small | normal | formalised | - -
- -_Showing 8 of 39 auto bundles — pin one in `bundles.md` to keep it on the page._ - ## Recent -The 50 newest things to happen to the work in hand, newest first — issued, parked, filed. Every other section on this page is laid out by state, which is exactly why none of them can answer “what has been happening?”. Shipped work is not here: it is read from `complete/index.md`, and a thousand records deep it would crowd out everything anyone can still act on. Showing the newest 10; … opens the next 10. +The 50 newest things to happen to the work in hand, newest first — issued, filed, flagged for review. Every other section on this page is laid out by state, which is exactly why none of them can answer “what has been happening?”. Shipped work is not here: it is read from `complete/index.md`, and a thousand records deep it would crowd out everything anyone can still act on. Showing the newest 10; … opens the next 10. | Date | Event | Task | |------|-------|------| @@ -2291,18 +1978,16 @@ The 50 newest things to happen to the work in hand, newest first — issued, par | 2026-10-07 | issued | Community pages + merged "Community & Contributing" sections across… | | 2026-10-02 | filed | sibson-internal-edge-continuity | | 2026-10-02 | filed | knn-partial-point-block | -| 2026-10-02 | parked | colab-refinement-throughout | -| 2026-10-02 | parked | bootstrap-smoke-codex | | 2026-10-02 | filed | Fix Sibson interpolation at internal edges | | 2026-10-02 | filed | Fix KNN neighbor search for a partial final point block | | 2026-10-01 | filed | Sparse interferometer terms: NUFFT ignores the mask origin and… | +| 2026-10-01 | filed | Interferometer log_evidence fails (LinAlgError / NaN) at large… | +| 2026-10-01 | filed | Interferometer galaxy_image_dict drops a mixed galaxy's ordinary… |
… 10 more (40 left) | Date | Event | Task | |------|-------|------| -| 2026-10-01 | filed | Interferometer log_evidence fails (LinAlgError / NaN) at large… | -| 2026-10-01 | filed | Interferometer galaxy_image_dict drops a mixed galaxy's ordinary… | | 2026-09-29 | filed | PlotterEllipse.fit_ellipse writes every variant to… | | 2026-09-29 | filed | Regenerate the 28 drifted .claude/hooks/session-start.sh copies… | | 2026-09-27 | filed | Sparse interferometer inversion: jax.grad of the log-evidence terms… | @@ -2311,29 +1996,28 @@ The 50 newest things to happen to the work in hand, newest first — issued, par | 2026-09-27 | filed | HPC campaign epic: run large modelling campaigns efficiently… | | 2026-09-27 | filed | Building a JAX Fitness then calling register_tracer_classes raises… | | 2026-09-26 | filed | bump_colab_urls.sh: cover autolens_assistant Colab links | +| 2026-09-26 | filed | Repo cleanup: retire the Abell 1201 worktree and local raw data | +| 2026-09-25 | filed | test_latent_euclid_variables_traces_under_jax_jit went red on main… |
… 10 more (30 left) | Date | Event | Task | |------|-------|------| -| 2026-09-26 | filed | Repo cleanup: retire the Abell 1201 worktree and local raw data | -| 2026-09-25 | filed | test_latent_euclid_variables_traces_under_jax_jit went red on main… | | 2026-09-25 | filed | Keep caches off $HOME on HPC — phase 2 remainder: euclid pipeline… | | 2026-09-24 | filed | euclid_dr1: run the positions gate over DR1 and submit the remodel set | | 2026-09-23 | filed | multi_dataset/jax_likelihood/delaunay.py asserts the wrong likelihood… | -| 2026-09-18 | parked | fixed-light-numba-s7 | | 2026-09-18 | filed | autolens_workspace: __Model__ bullets whose profiles or parameter… | | 2026-09-18 | filed | arXiv's Fastly edge refuses urllib.request outright — retrying a… | | 2026-09-18 | filed | arxiv_refs.py swallows every API error, so an arXiv outage resolves… | | 2026-09-18 | filed | The latent smoke's empty-block assertion names one cause… | +| 2026-09-18 | filed | Profile multi_galaxy/start_here.py's release cost and retire its… | +| 2026-09-17 | filed | vmap(jit) likelihood recompiles once per distinct Nautilus batch… | +| 2026-09-17 | filed | rectangular.py parity contract: absolute-nats bound, and import… |
… 10 more (20 left) | Date | Event | Task | |------|-------|------| -| 2026-09-18 | filed | Profile multi_galaxy/start_here.py's release cost and retire its… | -| 2026-09-17 | filed | vmap(jit) likelihood recompiles once per distinct Nautilus batch… | -| 2026-09-17 | filed | rectangular.py parity contract: absolute-nats bound, and import… | | 2026-09-17 | filed | SED chain waveband fit can spin forever in Nautilus exploration… | | 2026-09-17 | filed | Reduce the organism's per-session and per-task token load by half | | 2026-09-17 | filed | Nautilus as an EP default_optimiser crashes on PriorFactors (reads… | @@ -2341,14 +2025,14 @@ The 50 newest things to happen to the work in hand, newest first — issued, par | 2026-09-17 | filed | LensCalc tangential caustic on a masked grid differs ~27 % in… | | 2026-09-17 | filed | EP: cache the compiled JAX likelihood on the Analysis across factor… | | 2026-09-17 | filed | Bundle stages 1/5/6 read OUTPUT_DIR, but the SED chain writes… | +| 2026-09-16 | filed | euclid pipeline: skip_fit_output docs say it gates the whole of… | +| 2026-09-16 | filed | Inversion.source_clumps_from needs a robust scale — thresholding… | +| 2026-09-16 | filed | The reusable smoke workflow's relevance gate skips the unit /… |
… 10 more (10 left) | Date | Event | Task | |------|-------|------| -| 2026-09-16 | filed | euclid pipeline: skip_fit_output docs say it gates the whole of… | -| 2026-09-16 | filed | Inversion.source_clumps_from needs a robust scale — thresholding… | -| 2026-09-16 | filed | The reusable smoke workflow's relevance gate skips the unit /… | | 2026-09-16 | filed | COOLEST: export MGE lens light and pixelized sources as pixel grids | | 2026-09-16 | filed | Adaptive Delaunay mesh places two mesh pixels 0.001" apart — a… | | 2026-09-15 | filed | The workspace staleness warning keys off a value documented never to… | @@ -2356,6 +2040,9 @@ The 50 newest things to happen to the work in hand, newest first — issued, par | 2026-09-15 | filed | HowToFit tutorial 4 promises "under a minute" and takes six | | 2026-09-14 | filed | imaging/start_here: 26-minute XLA compile of the 48-start Prodigy… | | 2026-09-14 | filed | PyAutoFit — two stale "HowToFit chapter 3" references after the… | +| 2026-09-14 | filed | Emcee/Zeus: thin can be 0, and check_size blows up on short chains | +| 2026-09-13 | filed | cluster/mass_parameterizations*.py promise model.info prints (and… | +| 2026-09-13 | filed | SimulatorImaging draws Poisson noise before checking… |
diff --git a/parked.md b/parked.md index 4d4b044fd..73f36e108 100644 --- a/parked.md +++ b/parked.md @@ -55,7 +55,6 @@ write the dated `complete///.md` record instead. - prompt: active/bootstrap_smoke_codex_and_bench_pr.md - classification: workspace - suggested-branch: feature/bootstrap-smoke-codex -- bundle: assistant - affected-repos: - autolens_assistant - resume: Plan approved and issue created; implementation not started. Reuse approved issue plan, survey current claims, and resume through start_workspace. No branch or PR created for this member. @@ -68,7 +67,6 @@ write the dated `complete///.md` record instead. - prompt: active/colab_refinement_throughout.md - classification: workspace - suggested-branch: feature/colab-refinement-throughout -- bundle: assistant - affected-repos: - autolens_assistant - resume: Plan approved and issue created; implementation not started. Reuse approved issue plan, survey current claims, and resume through start_workspace. No branch or PR created for this member. diff --git a/scripts/ledger_merge.py b/scripts/ledger_merge.py index 10161052e..a226ddaae 100755 --- a/scripts/ledger_merge.py +++ b/scripts/ledger_merge.py @@ -83,7 +83,6 @@ "parked.md", "condemned.md", "epics.md", - "bundles.md", "ideas.md", "autonomy_log.md", "dashboard.md", diff --git a/scripts/spawn.py b/scripts/spawn.py index cf30ec1da..b28e61d00 100644 --- a/scripts/spawn.py +++ b/scripts/spawn.py @@ -83,8 +83,7 @@ ("AI_POLICY.md", "KEEP_SUB"), ("CONTRIBUTING.md", "KEEP_SUB"), ("repos.yaml", "SPECIAL:body_map"), ("active.md", "EMPTY"), ("planned.md", "EMPTY"), ("epics.md", "EMPTY"), - ("bundles.md", "EMPTY"), - # `themes.md` is the `Themes:` vocabulary the dashboard groups bundles on. + # `themes.md` is the vocabulary for optional topical metadata. # EMPTY rather than KEEP: the keyword list is this org's science and # tooling domains ("mge", "cti", "docs-hub"), so shipping it verbatim would # stamp our subject matter into somebody else's fresh-slate Mind. An empty @@ -302,7 +301,6 @@ "dashboard.md": "# PyAutoMind Dashboard", "active.md": "# Active Tasks", "epics.md": "# Epics", - "bundles.md": "# Bundles", "themes.md": "# Themes", "planned.md": "# Planned", "parked.md": "# Parked tasks", diff --git a/state.json b/state.json index 84f7199ab..51122a91b 100644 --- a/state.json +++ b/state.json @@ -4,7 +4,7 @@ "repo": "PyAutoMind", "status": "yellow", "headline": "YELLOW \u2014 24 picks \u00b7 2 in flight", - "updated": "2026-10-07T15:37:56Z", + "updated": "2026-10-07T16:21:49Z", "pages_url": "https://pyautolabs.github.io/PyAutoMind/", "items": [ { diff --git a/tests/test_ledger_merge.py b/tests/test_ledger_merge.py index a20d52107..7852b2c78 100644 --- a/tests/test_ledger_merge.py +++ b/tests/test_ledger_merge.py @@ -35,7 +35,6 @@ def test_ledger_dirs_and_registry_files_are_ledger(): "parked.md", "condemned.md", "epics.md", - "bundles.md", "ideas.md", "autonomy_log.md", "dashboard.md", diff --git a/themes.md b/themes.md index a6a7e25cc..ded80c7aa 100644 --- a/themes.md +++ b/themes.md @@ -2,10 +2,7 @@ The controlled vocabulary for a prompt's optional `Themes:` header — *what the work is about*, as opposed to `Target:`, which is only *where the code lives*. -Themes are the key the dashboard's auto-bundler groups on, so they are -deliberately few, deliberately topical, and deliberately cross-repo: "three -things about MGE" is a session, "three things that live in autoarray" is a -directory listing. +Themes describe related work across repositories and help with explicit task selection. Usage, in a prompt's light header (see `REFERENCE.md`, "Prompt file format"): @@ -15,15 +12,8 @@ Themes: - jax-gradient ``` -The **first** bullet is the primary theme and is the grouping key; the rest are -affinity keywords that decide which prompts pack together inside that group. -One to three keywords is the intended shape. A keyword that is not in the list -below still renders — loudly, with a ⚠️ on the dashboard and a Hygiene count — -so a typo is visible rather than silently becoming a free-text tag. - -This file is the source of truth and is meant to be edited by hand: adding a -keyword here is the whole of adding a theme, and PyAutoBrain reads it rather -than holding its own copy. +The **first** bullet is the primary theme. One to three keywords is the +intended shape; unknown keywords are reported in dashboard Hygiene. ## Vocabulary From 921d1d6cd5686a267701e23735ec2f22972647c6 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Wed, 7 Oct 2026 17:45:39 +0100 Subject: [PATCH 2/3] mind: record PRs Brain#497 then Mind#489 in task entry (#488) Co-Authored-By: Claude Opus 5.5 --- active.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/active.md b/active.md index 642fca89f..70914b475 100644 --- a/active.md +++ b/active.md @@ -76,13 +76,15 @@ ## mind-dashboard-simplify - issue: https://github.com/PyAutoLabs/PyAutoMind/issues/488 - issued: 2026-10-07 -- session: Codex (session ID unavailable) -- status: library-dev +- session: Codex (session ID unavailable); PRs opened by Claude Opus 5.5 2026-10-07 +- status: awaiting-merge — merge PyAutoBrain#497 first (Mind dashboard workflow reads Brain main), then refresh #489's generated pages and merge it; human /prm - worktree: /home/jammy/Code/PyAutoLabs/.worktrees/mind-dashboard-simplify - repos: - PyAutoMind: feature/mind-dashboard-simplify - PyAutoBrain: feature/mind-dashboard-simplify -- summary: Implementation complete in task worktrees; Brain 1271 tests and Mind 696 tests passed, browser/freshness/policy checks passed. Heart YELLOW acknowledged; PR creation authorized, awaiting a GitHub-write-capable session; human /prm merge. +- prs: + - PyAutoBrain: https://github.com/PyAutoLabs/PyAutoBrain/pull/497 + - PyAutoMind: https://github.com/PyAutoLabs/PyAutoMind/pull/489 +- summary: Seven-card Mind navigation (Human Review nested under Backlog, Parked hidden); persistent Bundles registry, parser and start-bundle skill retired. Brain 1271 tests and Mind 696 tests passed, browser/freshness/policy checks passed. - heart-ack: manifest drift: workspace checkouts (manifest ↔ disk) — 2 mismatch(es) vs PyAutoMind/repos.yaml — acknowledged by the human on 2026-10-07 before shipping. -- blocked: GitHub writes unavailable in current session; shell DNS restricted and connector tool approval disabled. PR creation authorized. - evidence: PyAutoBrain/tmp/handoff.md and each repo tmp/full-tests-clean-env.log in the task worktree; issue #488 carries the handoff. From 3890b8c42c87624f1024027ba4023fbaec1bc35f Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Wed, 7 Oct 2026 17:57:47 +0100 Subject: [PATCH 3/3] mind: add library-pr keys to mind-dashboard-simplify entry (#488) Co-Authored-By: Claude Opus 5.5 --- active.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/active.md b/active.md index 70914b475..5da02f582 100644 --- a/active.md +++ b/active.md @@ -82,6 +82,8 @@ - repos: - PyAutoMind: feature/mind-dashboard-simplify - PyAutoBrain: feature/mind-dashboard-simplify +- library-pr: https://github.com/PyAutoLabs/PyAutoBrain/pull/497 +- library-pr: https://github.com/PyAutoLabs/PyAutoMind/pull/489 - prs: - PyAutoBrain: https://github.com/PyAutoLabs/PyAutoBrain/pull/497 - PyAutoMind: https://github.com/PyAutoLabs/PyAutoMind/pull/489