diff --git a/.github/workflows/dashboard_refresh.yml b/.github/workflows/dashboard_refresh.yml index b82e44bc..f679c544 100644 --- a/.github/workflows/dashboard_refresh.yml +++ b/.github/workflows/dashboard_refresh.yml @@ -35,6 +35,7 @@ on: - "parked.md" - "planned.md" - "condemned.md" + - "bundles.md" - "dashboard.md" - "dashboard.html" pull_request: @@ -45,6 +46,7 @@ on: - "parked.md" - "planned.md" - "condemned.md" + - "bundles.md" - "dashboard.md" - "dashboard.html" workflow_dispatch: diff --git a/REFERENCE.md b/REFERENCE.md index 38863884..be44af9c 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -304,6 +304,8 @@ Free-form markdown. Strong conventions: Filed: 2026-07-09 # optional; the day the prompt was written 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 @@ -339,6 +341,18 @@ Free-form markdown. Strong conventions: had closed without anyone noticing — including one whose exit condition was met the same day it was written. + **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. + The optional `Difficulty:` / `Autonomy:` / `Priority:` keys let both people and PyAutoBrain see, at a glance, how hard a task is, whether an agent can safely take it on, and how urgent it is. What each `Autonomy:` level *does* at every @@ -497,7 +511,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`, `ideas.md`, `autonomy_log.md` | `repos.yaml`, `README.md`, `AGENTS.md`, `REFERENCE.md`, `ROUTING.md`, … | +| `active.md`, `planned.md`, `parked.md`, `condemned.md`, `epics.md`, `bundles.md`, `ideas.md`, `autonomy_log.md` | `repos.yaml`, `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 diff --git a/bundles.md b/bundles.md new file mode 100644 index 00000000..1f554083 --- /dev/null +++ b/bundles.md @@ -0,0 +1,34 @@ +# 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 4a82e16c..38b166e0 100644 --- a/dashboard.html +++ b/dashboard.html @@ -408,6 +408,327 @@

Backlog

CTI release-train wiring — first modern autocti release🚀 releaseautoctimediumhuman-requirednormal

+

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 /prm 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 — 3 task(s) · 8 pts · auto — proposed +

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

+ + + + + + + + + + + + + + + + + + + + +
PromptDifficultyPriorityStatus
Rectangular mesh split: Bilinear (fast CPU default) vs RTU…mediumhigh-
Vendor bessel_kve into autoarray and drop the…largemediumformalised
Delaunay-family JAX modules never hit the persistent compilation cachemediummediumformalised
+
+
+autolens — bundle 1 — 3 task(s) · 8 pts · auto — proposed +

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

+ + + + + + + + + + + + + + + + + + + + +
PromptDifficultyPriorityStatus
multi_galaxy package: new regime package in autolens_workspacelargehighin progress — core landed 2026-07-25…
Quick-update plotting cost — minutes per update, and it is not JAX…mediummediumdraft
JIT cache not hit in modeling_visualization delaunay/rectangular…mediumnormaldraft
+
+
+autogalaxy — bundle 1 — 3 task(s) · 7 pts · auto — proposed +

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

+ + + + + + + + + + + + + + + + + + + + +
PromptDifficultyPriorityStatus
LensCalc NumPy Hessian step is too coarse for multi-plane tracerslargehighformalised
Claude Development Prompt: Joint ell_comps Disk Constraintmediumnormalformalised
dPIE: optional central-dispersion (sigma_0) parameterizationsmalllowdraft
+
+
+autolens — bundle 2 — 3 task(s) · 7 pts · auto — proposed +

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

+ + + + + + + + + + + + + + + + + + + + +
PromptDifficultyPriorityStatus
Cross-validate multi-plane ray tracinglargehighformalised
One construction path for plane-bound lensing quantitiesmediumnormalformalised
PyAutoLens test data_temp/ write paths are not gitignoredsmalllowformalised
+
+
+autofit — bundle 1 — 3 task(s) · 5 pts · auto — proposed +

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

+ + + + + + + + + + + + + + + + + + + + +
PromptDifficultyPriorityStatus
Which other searches need prior-support handling — coverage audit…mediummediumformalised
Give PyAutoFit searches a seed — today no search can be made…mediummediumformalised
Split Fitness.batch_size into lh_batch_size and…smallnormalformalised
+
+
+autoarray — bundle 2 — 3 task(s) · 8 pts · auto — proposed +

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

+ + + + + + + + + + + + + + + + + + + + +
PromptDifficultyPriorityStatus
PROBE: is Adapt's 4th-power coefficient dependence (double square)…mediumnormaldraft
Claude Development Prompt: Arcsecond Tick Label Decimal Placementlargenormalformalised
Can create a list of InversionMatrix objects for each datasetmediumnormalformalised
+
+
+autolens_profiling — bundle 1 — 4 task(s) · 8 pts · auto — proposed +

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

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
PromptDifficultyPriorityStatus
Search settings-estimation + profiling infrastructure (n_starts /…largenormalformalised
dataset/imaging/jwst_lw is untracked because the gitignore was never…smalllowformalised
Multi-band compile census completion — A100/multi-core + hetero GPU…smalllowformalised
Cluster-scale gradient-search benchmark (Prodigy vs Nautilus…---
+
+
+ci — bundle 1 — 3 task(s) · 8 pts · auto — proposed +

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

+ + + + + + + + + + + + + + + + + + + + +
PromptDifficultyPriorityStatus
Auto-request GitHub Copilot code review on every PR, org-widelargenormalplanned
Heart's local smoke runner cannot run any CTI workspace — no autocti…mediumnormalformalised
wiki-currency's --check-version gate rots on every library main mergemediumnormalformalised
+
+

Showing 8 of 20 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.

diff --git a/dashboard.md b/dashboard.md index 7b333022..45200e65 100644 --- a/dashboard.md +++ b/dashboard.md @@ -1182,6 +1182,270 @@ Scoped but not started; some are not yet prompt files. Full detail in [`planned. +## 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 `/prm` 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 — 3 task(s) · 8 pts · auto — proposed + +
📋 Run this bundle — one session, one issue and one PR per member + +``` +You are the architect (Fable) for the PyAutoMind bundle 'autoarray — bundle 1' — 3 INDEPENDENT tasks run in one orchestrated session. + +Members: +- draft/feature/autoarray/rectangular_bilinear_rtu_mesh_split.md +- draft/refactor/autoarray/matern_vendor_bessel_kve.md +- draft/research/autoarray/delaunay_callback_persistent_cache_miss.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. Run `/start_dev ` for EACH member: 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 `/start_library` (or `/start_workspace`) 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. Delegate the implementation of each member to an Opus subagent via the Agent tool (`Agent(model="opus", …)`), one subagent per member, with the member's issue plan, the worktree path and the branch to use. You plan, judge and talk to the user; the subagents edit, test and report back. +5. Ship each member on its own: `/ship_library` or `/ship_workspace`, ONE PR per task, so `/prm` 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 | +|--------|------------|----------|--------| +| Rectangular mesh split: Bilinear (fast CPU default) vs RTU… | medium | high | - | +| Vendor bessel_kve into autoarray and drop the… | large | medium | formalised | +| Delaunay-family JAX modules never hit the persistent compilation cache | medium | medium | formalised | + +
+ +
+autolens — bundle 1 — 3 task(s) · 8 pts · auto — proposed + +
📋 Run this bundle — one session, one issue and one PR per member + +``` +You are the architect (Fable) for the PyAutoMind bundle 'autolens — bundle 1' — 3 INDEPENDENT tasks run in one orchestrated session. + +Members: +- draft/docs/autolens/multi_galaxy_package.md +- draft/research/autolens/quick_update_plotting_cost.md +- draft/bug/autolens/jit_cache_not_hit_modeling_visualization.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. Run `/start_dev ` for EACH member: 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 `/start_library` (or `/start_workspace`) 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. Delegate the implementation of each member to an Opus subagent via the Agent tool (`Agent(model="opus", …)`), one subagent per member, with the member's issue plan, the worktree path and the branch to use. You plan, judge and talk to the user; the subagents edit, test and report back. +5. Ship each member on its own: `/ship_library` or `/ship_workspace`, ONE PR per task, so `/prm` 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 | +|--------|------------|----------|--------| +| multi_galaxy package: new regime package in autolens_workspace | large | high | in progress — core landed 2026-07-25… | +| Quick-update plotting cost — minutes per update, and it is not JAX… | medium | medium | draft | +| JIT cache not hit in modeling_visualization delaunay/rectangular… | medium | normal | draft | + +
+ +
+autogalaxy — bundle 1 — 3 task(s) · 7 pts · auto — proposed + +
📋 Run this bundle — one session, one issue and one PR per member + +``` +You are the architect (Fable) for the PyAutoMind bundle 'autogalaxy — bundle 1' — 3 INDEPENDENT tasks run in one orchestrated session. + +Members: +- draft/bug/autogalaxy/lenscalc_numpy_hessian_step_is_too_coarse.md +- draft/feature/autogalaxy/ell_comps_joint_disk_constraint.md +- draft/feature/autogalaxy/dpie_sigma0_parameterization.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. Run `/start_dev ` for EACH member: 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 `/start_library` (or `/start_workspace`) 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. Delegate the implementation of each member to an Opus subagent via the Agent tool (`Agent(model="opus", …)`), one subagent per member, with the member's issue plan, the worktree path and the branch to use. You plan, judge and talk to the user; the subagents edit, test and report back. +5. Ship each member on its own: `/ship_library` or `/ship_workspace`, ONE PR per task, so `/prm` 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 | +|--------|------------|----------|--------| +| LensCalc NumPy Hessian step is too coarse for multi-plane tracers | large | high | formalised | +| Claude Development Prompt: Joint ell_comps Disk Constraint | medium | normal | formalised | +| dPIE: optional central-dispersion (sigma_0) parameterization | small | low | draft | + +
+ +
+autolens — bundle 2 — 3 task(s) · 7 pts · auto — proposed + +
📋 Run this bundle — one session, one issue and one PR per member + +``` +You are the architect (Fable) for the PyAutoMind bundle 'autolens — bundle 2' — 3 INDEPENDENT tasks run in one orchestrated session. + +Members: +- draft/test/autolens/cross_validate_multi_plane_ray_tracing.md +- draft/refactor/autolens/one_construction_path_for_plane_bound_lensing.md +- draft/maintenance/autolens/data_temp_write_paths_not_ignored.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. Run `/start_dev ` for EACH member: 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 `/start_library` (or `/start_workspace`) 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. Delegate the implementation of each member to an Opus subagent via the Agent tool (`Agent(model="opus", …)`), one subagent per member, with the member's issue plan, the worktree path and the branch to use. You plan, judge and talk to the user; the subagents edit, test and report back. +5. Ship each member on its own: `/ship_library` or `/ship_workspace`, ONE PR per task, so `/prm` 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 | +|--------|------------|----------|--------| +| Cross-validate multi-plane ray tracing | large | high | formalised | +| One construction path for plane-bound lensing quantities | medium | normal | formalised | +| PyAutoLens test data_temp/ write paths are not gitignored | small | low | formalised | + +
+ +
+autofit — bundle 1 — 3 task(s) · 5 pts · auto — proposed + +
📋 Run this bundle — one session, one issue and one PR per member + +``` +You are the architect (Fable) for the PyAutoMind bundle 'autofit — bundle 1' — 3 INDEPENDENT tasks run in one orchestrated session. + +Members: +- draft/feature/autofit/prior_exit_sampler_coverage.md +- draft/feature/autofit/search_seed_reproducibility.md +- draft/refactor/autofit/split_fitness_batch_size_lh_vs_latent.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. Run `/start_dev ` for EACH member: 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 `/start_library` (or `/start_workspace`) 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. Delegate the implementation of each member to an Opus subagent via the Agent tool (`Agent(model="opus", …)`), one subagent per member, with the member's issue plan, the worktree path and the branch to use. You plan, judge and talk to the user; the subagents edit, test and report back. +5. Ship each member on its own: `/ship_library` or `/ship_workspace`, ONE PR per task, so `/prm` 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 | +|--------|------------|----------|--------| +| Which other searches need prior-support handling — coverage audit… | medium | medium | formalised | +| Give PyAutoFit searches a seed — today no search can be made… | medium | medium | formalised | +| Split Fitness.batch_size into lh_batch_size and… | small | normal | formalised | + +
+ +
+autoarray — bundle 2 — 3 task(s) · 8 pts · auto — proposed + +
📋 Run this bundle — one session, one issue and one PR per member + +``` +You are the architect (Fable) for the PyAutoMind bundle 'autoarray — bundle 2' — 3 INDEPENDENT tasks run in one orchestrated session. + +Members: +- draft/bug/autoarray/PROBE_adapt_double_square_coefficient.md +- draft/feature/autoarray/arcsecond_to_decimal.md +- draft/feature/autoarray/multiwavelength_inversion.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. Run `/start_dev ` for EACH member: 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 `/start_library` (or `/start_workspace`) 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. Delegate the implementation of each member to an Opus subagent via the Agent tool (`Agent(model="opus", …)`), one subagent per member, with the member's issue plan, the worktree path and the branch to use. You plan, judge and talk to the user; the subagents edit, test and report back. +5. Ship each member on its own: `/ship_library` or `/ship_workspace`, ONE PR per task, so `/prm` 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 | +|--------|------------|----------|--------| +| PROBE: is Adapt's 4th-power coefficient dependence (double square)… | medium | normal | draft | +| Claude Development Prompt: Arcsecond Tick Label Decimal Placement | large | normal | formalised | +| Can create a list of InversionMatrix objects for each dataset | medium | normal | formalised | + +
+ +
+autolens_profiling — bundle 1 — 4 task(s) · 8 pts · auto — proposed + +
📋 Run this bundle — one session, one issue and one PR per member + +``` +You are the architect (Fable) for the PyAutoMind bundle 'autolens_profiling — bundle 1' — 4 INDEPENDENT tasks run in one orchestrated session. + +Members: +- draft/feature/autolens_profiling/search_settings_estimation_infrastructure.md +- draft/maintenance/autolens_profiling/jwst_lw_untracked_gitignore_gap.md +- draft/research/autolens_profiling/multiband_compile_census_completion.md +- draft/research/autolens_profiling/cluster_gradient_search_benchmark.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. Run `/start_dev ` for EACH member: 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 `/start_library` (or `/start_workspace`) 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. Delegate the implementation of each member to an Opus subagent via the Agent tool (`Agent(model="opus", …)`), one subagent per member, with the member's issue plan, the worktree path and the branch to use. You plan, judge and talk to the user; the subagents edit, test and report back. +5. Ship each member on its own: `/ship_library` or `/ship_workspace`, ONE PR per task, so `/prm` 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 | +|--------|------------|----------|--------| +| Search settings-estimation + profiling infrastructure (n_starts /… | large | normal | formalised | +| dataset/imaging/jwst_lw is untracked because the gitignore was never… | small | low | formalised | +| Multi-band compile census completion — A100/multi-core + hetero GPU… | small | low | formalised | +| Cluster-scale gradient-search benchmark (Prodigy vs Nautilus… | - | - | - | + +
+ +
+ci — bundle 1 — 3 task(s) · 8 pts · auto — proposed + +
📋 Run this bundle — one session, one issue and one PR per member + +``` +You are the architect (Fable) for the PyAutoMind bundle 'ci — bundle 1' — 3 INDEPENDENT tasks run in one orchestrated session. + +Members: +- draft/maintenance/ci/copilot_auto_review.md +- draft/maintenance/ci/heart_smoke_table_autocti.md +- draft/maintenance/ci/wiki_currency_check_version_gate.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. Run `/start_dev ` for EACH member: 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 `/start_library` (or `/start_workspace`) 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. Delegate the implementation of each member to an Opus subagent via the Agent tool (`Agent(model="opus", …)`), one subagent per member, with the member's issue plan, the worktree path and the branch to use. You plan, judge and talk to the user; the subagents edit, test and report back. +5. Ship each member on its own: `/ship_library` or `/ship_workspace`, ONE PR per task, so `/prm` 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 | +|--------|------------|----------|--------| +| Auto-request GitHub Copilot code review on every PR, org-wide | large | normal | planned | +| Heart's local smoke runner cannot run any CTI workspace — no autocti… | medium | normal | formalised | +| wiki-currency's --check-version gate rots on every library main merge | medium | normal | formalised | + +
+ +_Showing 8 of 20 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. diff --git a/scripts/ledger_merge.py b/scripts/ledger_merge.py index 528acd45..ebd0f0c5 100755 --- a/scripts/ledger_merge.py +++ b/scripts/ledger_merge.py @@ -57,6 +57,7 @@ "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 36cd559b..95e3bd3c 100644 --- a/scripts/spawn.py +++ b/scripts/spawn.py @@ -80,6 +80,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"), ("parked.md", "EMPTY"), ("condemned.md", "EMPTY"), ("ideas.md", "EMPTY"), ("queue.md", "EMPTY"), ("autonomy_log.md", "SPECIAL:autonomy_log"), # Prompt-file lifecycle (issue #71): draft/ (not-started) -> active/ @@ -250,6 +251,7 @@ "dashboard.md": "# PyAutoMind Dashboard", "active.md": "# Active Tasks", "epics.md": "# Epics", + "bundles.md": "# Bundles", "planned.md": "# Planned", "parked.md": "# Parked tasks", "condemned.md": "# Condemned material",