Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion archive/tasks/analytic_gaussian/ensemble_parity.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ relax so a wave can pass; changing one is its own task, with the reason in the r
| 3 | autofit EP, leg A | ≥ 95% of seeds within (a 0.01, b 0.02) on **every** row, and no seed worse than a = 0.10 |
| 4 | autofit EP, leg B | ≥ 90% of seeds within (a 0.15, b 0.25); E[sigma] inside the closed-form [q05, q95] for ≥ 90%; scale-collapse rate (sigma < 0.1) = 0 |
| 5 | autofit graphical | ≥ 90% of seeds within (a 0.10, b 0.15) on both legs; scatter coverage ≥ 0.85 |
| 6 | EP flag health | no seed in which any factor ends the run with zero SUCCESS updates — the STALE state #1562/#1574/#1576/#1580 taught the library to report |
| 6 | EP flag health | no seed in which any factor ends the run without a completed update — no SUCCESS and no NO_CHANGE (the STALE state #1562/#1574/#1576/#1580 taught the library to report). Amended 2026-10-23 (PyAutoFit#1711): NO_CHANGE is a converged update — the factor's Laplace optimiser met its stop condition at the start point (`iter=0`) and the projection was accepted and the message updated — so a factor whose updates are all NO_CHANGE is not stale (leg A seed 140: the mu prior, whose posterior mean 50.0018 lies within the gradient tolerance of the prior mean; leg B: the sigma prior, whose cavity is still the prior because the mode path never moved the scatter). A BAD_PROJECTION-only factor remains a miss — that is the #1405 scatter state, cured by `projection="moments"` (#1656). The original wording counted SUCCESS only and scored 19/400 seed-legs as misses: 13 were NO_CHANGE-only prior factors (pass under the amended rule), 6 were BAD_PROJECTION-only hierarchical factors (still misses under the mode path; seeds 29 and 71 pass under moments) |

Deliverable: `results/ens_n5/summary.json` (the witness file) and `parity_ensemble.md` committed
in `analytic_gaussian`, carrying every criterion's measured number — including a Wilson interval
Expand Down
12 changes: 6 additions & 6 deletions dashboard.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>PyAutoCortex Dashboard</title>
<!-- generated by `pyauto-brain cortex dashboard --apply` on 2026-10-21 — regenerate, do not hand-edit -->
<!-- generated by `pyauto-brain cortex dashboard --apply` on 2026-10-23 — regenerate, do not hand-edit -->
<style>:root{color-scheme:light dark;--bg:#fff;--fg:#1f2328;--muted:#59636e;
--board-max:77.5rem;--board-gutter:1rem;--board-measure:65ch;
--line:#d8dee4;--btn:#f6f8fa;--ok:#1a7f37;--warn:#9a6700;--bad:#d1242f;
Expand Down Expand Up @@ -334,7 +334,7 @@
- Open autofit_inference: https://github.com/PyAutoLabs/autofit_inference
- Open euclid_detailed: https://github.com/PyAutoLabs/euclid_detailed
- Open cowls: https://github.com/PyAutoLabs/cowls
- Open cowls_ansofi: https://github.com/PyAutoLabs/cowls_ansofi</textarea></details><div class="orchestration-freshness" data-freshness="grey"><details data-freshness-stamp data-refreshed-at="2026-10-21T19:12:01Z"><summary><span data-freshness-label>Last updated 2026-10-21 19:12:01 UTC</span></summary><time datetime="2026-10-21T19:12:01Z">2026-10-21 19:12:01 UTC</time></details><a data-refresh-link href="https://github.com/PyAutoLabs/PyAutoCortex/actions/workflows/dashboard_refresh.yml" title="Open the dashboard refresh controls">↻ Update</a></div></div><p class="orchestration-status" role="status" aria-live="polite"></p></section>
- Open cowls_ansofi: https://github.com/PyAutoLabs/cowls_ansofi</textarea></details><div class="orchestration-freshness" data-freshness="grey"><details data-freshness-stamp data-refreshed-at="2026-10-23T14:36:18Z"><summary><span data-freshness-label>Last updated 2026-10-23 14:36:18 UTC</span></summary><time datetime="2026-10-23T14:36:18Z">2026-10-23 14:36:18 UTC</time></details><a data-refresh-link href="https://github.com/PyAutoLabs/PyAutoCortex/actions/workflows/dashboard_refresh.yml" title="Open the dashboard refresh controls">↻ Update</a></div></div><p class="orchestration-status" role="status" aria-live="polite"></p></section>
<nav class="board-nav" aria-label="Board sections"><a class="board-nav-card" href="#summary"><span class="board-nav-count">16</span><span class="board-nav-label">Running</span></a><a class="board-nav-card" href="#summary"><span class="board-nav-count">47</span><span class="board-nav-label">Open</span></a><a class="board-nav-card" href="#projects"><span class="board-nav-count">12</span><span class="board-nav-label">Projects</span></a><a class="board-nav-card" href="#orchestration-cortex"><span class="board-nav-label">Check in</span></a></nav>

<p class="muted mdsrc"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/dashboard.md" class="board-source-link" title="Markdown version" aria-label="Markdown version"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M14 3H6a1 1 0 0 0-1 1v16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V8Z"/><path d="M14 3v5h5M8 12h8M8 16h6"/></svg></a></p>
Expand All @@ -344,7 +344,7 @@
<tr><td><b>subhalo_validation</b></td><td>0</td><td>5</td><td>2026-09-07</td></tr>
<tr><td><b>subhalo</b></td><td>0</td><td>0</td><td>2026-10-15</td></tr>
<tr><td><b>euclid_dr1</b></td><td>16</td><td>42</td><td>2026-10-10</td></tr>
<tr><td><b>analytic_gaussian</b></td><td>0</td><td>0</td><td>2026-10-14</td></tr>
<tr><td><b>analytic_gaussian</b></td><td>0</td><td>0</td><td>2026-10-23</td></tr>
<tr><td><b>ep_toy_gaussian</b></td><td>0</td><td>0</td><td>2026-10-14</td></tr>
<tr><td><b>slope_hierarchy_scale</b></td><td>0</td><td>0</td><td>2026-10-14</td></tr>
<tr><td><b>ic50_workspace</b></td><td>0</td><td>0</td><td>2026-10-14</td></tr>
Expand Down Expand Up @@ -504,7 +504,7 @@ <h4>Runs (58)</h4>
</div>
</details>
<details class="project" id="project-analytic_gaussian">
<summary><h3>analytic_gaussian</h3><span class="purpose">Graphical and EP against a closed-form Gaussian posterior, at ensemble scale</span><span class="meta">no runs recorded · updated 2026-10-14</span></summary>
<summary><h3>analytic_gaussian</h3><span class="purpose">Graphical and EP against a closed-form Gaussian posterior, at ensemble scale</span><span class="meta">no runs recorded · updated 2026-10-23</span></summary>
<div class="project-body">
<dl class="where">
<dt>Registered:</dt><dd>not recorded</dd>
Expand All @@ -517,13 +517,13 @@ <h4>Current position</h4>
</div>
<h4>Runs (0)</h4>
<p class="muted">nothing on the cluster</p>
<details class="sub"><summary>Recent log — 5 of 7 entries</summary>
<details class="sub"><summary>Recent log — 5 of 8 entries</summary>
<ul class="log">
<li>2026-10-23 — <i>note</i> — <details class="full"><summary><span class="clip">criterion 6 amended (PyAutoFit#1711, PR #1712): the 19/400 zero-SUCCESS seed-legs of wave 1 split into 13 NO_CHANGE-only prior factors (zero-iteration Laplace convergence at the start point, projection accepted, closed-form match a 5e-5 /…</span><span class="less">show less</span></summary><p>criterion 6 amended (PyAutoFit#1711, PR #1712): the 19/400 zero-SUCCESS seed-legs of wave 1 split into 13 NO_CHANGE-only prior factors (zero-iteration Laplace convergence at the start point, projection accepted, closed-form match a 5e-5 / b 2e-5 on seed 140 leg A — a converged update, not stale; library reporting aligned, no EP maths changed) and 6 BAD_PROJECTION-only hierarchical factors (the #1405 scatter state, cured by projection="moments" #1656; seeds 29 and 71 re-run under moments give HierarchicalFactor SUCCESS 28 and 23). Criterion 6 now counts SUCCESS or NO_CHANGE as a completed update; the matching ensemble_seed.py any_factor_never_succeeded change is the human's to apply in the science checkout. Side finding: seed 29 leg B under moments still misses the sigma cell (a 0.225 / b 0.416) while sigma stays inside [q05, q95].</p></details></li>
<li>2026-10-14 — <i>note</i> — <details class="full"><summary><span class="clip">PyAutoFit#1656 (merged 2026-09-30, released 2026.10.7.1) ports the minimal-EP referee's moment matching as LaplaceOptimiser(projection="moments"); on analytic_gaussian.py leg B autofit EP sigma 6.3401 ± 2.4609 vs closed form 6.5667 ± 2.883…</span><span class="less">show less</span></summary><p>PyAutoFit#1656 (merged 2026-09-30, released 2026.10.7.1) ports the minimal-EP referee's moment matching as LaplaceOptimiser(projection="moments"); on analytic_gaussian.py leg B autofit EP sigma 6.3401 ± 2.4609 vs closed form 6.5667 ± 2.8832 (mode path 9.3722, BAD_PROJECTION=19). A wave-2 ensemble on the moments path needs a private PyAutoFit checkout on RAL: the shared mirror is 404b3e5f7 and lacks it. The criterion-2 mu-threshold diagnostic is still unrun.</p></details></li>
<li>2026-10-14 — <i>note</i> — output/ vaulted to z_vault/ on laptop and RAL (mv, nothing deleted), anticipating reruns; output/ left empty, results/ untouched; z_vault/ gitignored locally</li>
<li>2026-09-30 — <i>note</i> — <details class="full"><summary><span class="clip">astra (Codex gpt-6-astra) on criterion 2, verbatim: 'Neither is established as "wrong" by this result alone. I favour inadequate calibration of the threshold, with moderate confidence, but would not yet certify the control.' Decisive diagn…</span><span class="less">show less</span></summary><p>astra (Codex gpt-6-astra) on criterion 2, verbatim: 'Neither is established as "wrong" by this result alone. I favour inadequate calibration of the threshold, with moderate confidence, but would not yet certify the control.' Decisive diagnostic: independently reconstruct the same EP factorisation at the fixed point on a passing, an edge and the worst mu seed and compare tilted vs q moments; audit the per-site sigma&gt;0 clip (analytic_ep_minimal.py:333). Opus reviewer concurs independently (a_mu = 0.041*(E_ref[mu]-m0)/std_ref over 200 seeds, corr 0.98; calibration seeds 0-4 had |a_mu| 0.002-0.020 vs 95th pct 0.077). Full answer: PyAutoCortex#50 comment https://github.com/PyAutoLabs/PyAutoCortex/issues/50#issuecomment-5908448194</p></details></li>
<li>2026-09-10 — <i>result</i> — accepted ensemble_parity (R-20260910-04): ok accept and intake the things to address. we can do another run down the line so also achieve the results in the analytic_gaussian project for future comparison</li>
<li>2026-09-10 — <i>note</i> — question: Is criterion 2's mu threshold or the minimal-EP control wrong — planned, never run [archive/tasks/analytic_gaussian/minimal_ep_legb_mu_threshold.md]</li>
</ul>
<p class="muted"><a href="https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/analytic_gaussian.md">full log</a></p>
<p class="muted">active · ral · <a href="https://github.com/PyAutoLabs/PyAutoCortex/issues/34">PyAutoCortex#34</a></p>
Expand Down
12 changes: 6 additions & 6 deletions dashboard.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# PyAutoCortex Dashboard

<!-- generated by `pyauto-brain cortex dashboard --apply` on 2026-10-21 — regenerate, do not hand-edit -->
<!-- generated by `pyauto-brain cortex dashboard --apply` on 2026-10-23 — regenerate, do not hand-edit -->

This is the markdown version of the [PyAutoCortex Dashboard](https://pyautolabs.github.io/PyAutoCortex/), which puts the check-in and each project's resume prompt on your clipboard with a single tap of 📋.

One ledger per science project: what is on the cluster right now, what the human said they would do next, and the last few things they wrote down. Nothing here is inferred from a result — the board hands you the check-in and the resume prompt; what a run meant is yours to log.

> **Last updated 2026-10-21.**
> **Last updated 2026-10-23.**

| Where | Count |
|-------|------:|
Expand Down Expand Up @@ -45,7 +45,7 @@ Last check-in: 2026-10-17T11:18Z.
| subhalo_validation | 0 | 5 | 2026-09-07 |
| subhalo | 0 | 0 | 2026-10-15 |
| euclid_dr1 | 16 | 42 | 2026-10-10 |
| analytic_gaussian | 0 | 0 | 2026-10-14 |
| analytic_gaussian | 0 | 0 | 2026-10-23 |
| ep_toy_gaussian | 0 | 0 | 2026-10-14 |
| slope_hierarchy_scale | 0 | 0 | 2026-10-14 |
| ic50_workspace | 0 | 0 | 2026-10-14 |
Expand Down Expand Up @@ -297,7 +297,7 @@ active · ral · no issue yet

</details>

<details id="project-analytic_gaussian"><summary><b>analytic_gaussian</b> — Graphical and EP against a closed-form Gaussian posterior, at ensemble scale · no runs recorded · updated 2026-10-14</summary>
<details id="project-analytic_gaussian"><summary><b>analytic_gaussian</b> — Graphical and EP against a closed-form Gaussian posterior, at ensemble scale · no runs recorded · updated 2026-10-23</summary>

**Registered:** not recorded

Expand All @@ -321,13 +321,13 @@ Use the cortex skill. — resume analytic_gaussian: read PyAutoCortex projects/a

_nothing on the cluster_

<details><summary>Recent log — 5 of 7 entries</summary>
<details><summary>Recent log — 5 of 8 entries</summary>

- 2026-10-23 — *note* — criterion 6 amended (PyAutoFit#1711, PR #1712): the 19/400 zero-SUCCESS seed-legs of wave 1 split into 13 NO_CHANGE-only prior factors (zero-iteration Laplace convergence at the start point, projection accepted, closed-form match a 5e-5 / b 2e-5 on seed 140 leg A — a converged update, not stale; library reporting aligned, no EP maths changed) and 6 BAD_PROJECTION-only hierarchical factors (the #1405 scatter state, cured by projection="moments" #1656; seeds 29 and 71 re-run under moments give HierarchicalFactor SUCCESS 28 and 23). Criterion 6 now counts SUCCESS or NO_CHANGE as a completed update; the matching ensemble_seed.py any_factor_never_succeeded change is the human's to apply in the science checkout. Side finding: seed 29 leg B under moments still misses the sigma cell (a 0.225 / b 0.416) while sigma stays inside [q05, q95].
- 2026-10-14 — *note* — PyAutoFit#1656 (merged 2026-09-30, released 2026.10.7.1) ports the minimal-EP referee's moment matching as LaplaceOptimiser(projection="moments"); on analytic_gaussian.py leg B autofit EP sigma 6.3401 ± 2.4609 vs closed form 6.5667 ± 2.8832 (mode path 9.3722, BAD_PROJECTION=19). A wave-2 ensemble on the moments path needs a private PyAutoFit checkout on RAL: the shared mirror is 404b3e5f7 and lacks it. The criterion-2 mu-threshold diagnostic is still unrun.
- 2026-10-14 — *note* — output/ vaulted to z_vault/ on laptop and RAL (mv, nothing deleted), anticipating reruns; output/ left empty, results/ untouched; z_vault/ gitignored locally
- 2026-09-30 — *note* — astra (Codex gpt-6-astra) on criterion 2, verbatim: 'Neither is established as "wrong" by this result alone. I favour inadequate calibration of the threshold, with moderate confidence, but would not yet certify the control.' Decisive diagnostic: independently reconstruct the same EP factorisation at the fixed point on a passing, an edge and the worst mu seed and compare tilted vs q moments; audit the per-site sigma>0 clip (analytic_ep_minimal.py:333). Opus reviewer concurs independently (a_mu = 0.041*(E_ref[mu]-m0)/std_ref over 200 seeds, corr 0.98; calibration seeds 0-4 had |a_mu| 0.002-0.020 vs 95th pct 0.077). Full answer: PyAutoCortex#50 comment https://github.com/PyAutoLabs/PyAutoCortex/issues/50#issuecomment-5908448194
- 2026-09-10 — *result* — accepted ensemble_parity (R-20260910-04): ok accept and intake the things to address. we can do another run down the line so also achieve the results in the analytic_gaussian project for future comparison
- 2026-09-10 — *note* — question: Is criterion 2's mu threshold or the minimal-EP control wrong — planned, never run [archive/tasks/analytic_gaussian/minimal_ep_legb_mu_threshold.md]

[full log](https://github.com/PyAutoLabs/PyAutoCortex/blob/main/projects/analytic_gaussian.md)

Expand Down
1 change: 1 addition & 0 deletions projects/analytic_gaussian.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Wave 1 (342413, 200 seeds at N=5) is accepted as the baseline: autofit EP is exa

## Log

- 2026-10-23 — note — criterion 6 amended (PyAutoFit#1711, PR #1712): the 19/400 zero-SUCCESS seed-legs of wave 1 split into 13 NO_CHANGE-only prior factors (zero-iteration Laplace convergence at the start point, projection accepted, closed-form match a 5e-5 / b 2e-5 on seed 140 leg A — a converged update, not stale; library reporting aligned, no EP maths changed) and 6 BAD_PROJECTION-only hierarchical factors (the #1405 scatter state, cured by projection="moments" #1656; seeds 29 and 71 re-run under moments give HierarchicalFactor SUCCESS 28 and 23). Criterion 6 now counts SUCCESS or NO_CHANGE as a completed update; the matching ensemble_seed.py any_factor_never_succeeded change is the human's to apply in the science checkout. Side finding: seed 29 leg B under moments still misses the sigma cell (a 0.225 / b 0.416) while sigma stays inside [q05, q95].
- 2026-10-14 — note — PyAutoFit#1656 (merged 2026-09-30, released 2026.10.7.1) ports the minimal-EP referee's moment matching as LaplaceOptimiser(projection="moments"); on analytic_gaussian.py leg B autofit EP sigma 6.3401 ± 2.4609 vs closed form 6.5667 ± 2.8832 (mode path 9.3722, BAD_PROJECTION=19). A wave-2 ensemble on the moments path needs a private PyAutoFit checkout on RAL: the shared mirror is 404b3e5f7 and lacks it. The criterion-2 mu-threshold diagnostic is still unrun.
- 2026-10-14 — note — output/ vaulted to z_vault/ on laptop and RAL (mv, nothing deleted), anticipating reruns; output/ left empty, results/ untouched; z_vault/ gitignored locally
- 2026-09-30 — note — astra (Codex gpt-6-astra) on criterion 2, verbatim: 'Neither is established as "wrong" by this result alone. I favour inadequate calibration of the threshold, with moderate confidence, but would not yet certify the control.' Decisive diagnostic: independently reconstruct the same EP factorisation at the fixed point on a passing, an edge and the worst mu seed and compare tilted vs q moments; audit the per-site sigma>0 clip (analytic_ep_minimal.py:333). Opus reviewer concurs independently (a_mu = 0.041*(E_ref[mu]-m0)/std_ref over 200 seeds, corr 0.98; calibration seeds 0-4 had |a_mu| 0.002-0.020 vs 95th pct 0.077). Full answer: PyAutoCortex#50 comment https://github.com/PyAutoLabs/PyAutoCortex/issues/50#issuecomment-5908448194
Expand Down
2 changes: 1 addition & 1 deletion state.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"repo": "PyAutoCortex",
"status": "yellow",
"headline": "YELLOW \u2014 12 active \u00b7 16 running",
"updated": "2026-10-21T19:12:01Z",
"updated": "2026-10-23T14:36:18Z",
"pages_url": "https://pyautolabs.github.io/PyAutoCortex/",
"items": [
{
Expand Down
Loading