mind: CTI CI standardisation Phase 5 — two tasks shipped, one in flight - #297
Merged
Merged
Conversation
…70) → start_library Feature Agent: maintenance/ci, combined workflow, difficulty medium (declared). Prompt advanced draft/ → active/ and registered in active.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018nDAxBEavkzb6Zkz1cYHef
…52rxw Generated dashboard pages regenerated from the merged state rather than hand-resolved (pyauto-brain intake --apply dashboard). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018nDAxBEavkzb6Zkz1cYHef
…mplete wiki-currency was red on autocti_assistant main independently of any PR. Reproduced the run locally (the drift-report artifact's blob host is blocked by this session's network policy) and identified the single failing sub-check: --check-version, on the autoarray and autofit API-surface hashes. Proved it was baseline staleness rather than a stale doc claim by diffing the public symbol sets at the baseline's own commits (PyAutoFit daa4e39, PyAutoArray 85c57eb) against today's main. Two symbols were removed, so the drift was not blindly additive — but neither is cited by the assistant, all 31 cited symbols resolve, and the autonerves/autocti/autocti.plot hashes were byte-identical. Baseline regenerated; wiki-currency green in CI on the PR. Also records two defects that had made the check undiagnosable: the report claimed `stack_version: latest released` when the native path installs from main source clones (the mislabel that sent the original diagnosis to the wrong hypothesis), and it recorded no source refs at all. Recommends against the prompt's suggested remedy of pinning to a released stack version, and leaves the --check-version-gates-on-removals proposal open. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018nDAxBEavkzb6Zkz1cYHef
…plete One canonical Heart-owned arcticpy install (composite action at .github/actions/install-arcticpy, holding the single arcticpy==2.6 pin), consumed by every CTI repo, replacing four divergent shell copies. Five PRs merged; four documented recipes fixed. Record captures three corrections to the prompt's own premises, all found by building arcticpy rather than reading about it: - The site list was wrong: PyAutoCTI has no recipe of its own (its main.yml is a thin caller of Heart's lib-tests.yml, which carries two copies), so there were four shell copies, not two. - smoke_install.sh was not one runner-image change from breaking — Heart's smoke-tests.yml installs setuptools immediately before invoking it. The real defect was the undeclared cross-repo coupling. - The specified recipe and assertion were both incomplete: --no-deps suppresses arcticpy's runtime imports (scipy, matplotlib) so `import arcticpy` fails without them, and arcticpy exposes no __version__ attribute, so the specified assertion raises AttributeError on a healthy install. Also records the measured answer to the caching question (compile is ~14s of a ~52s step — do not cache) and the negative case (a fresh Python 3.12 venv ships no setuptools; the build then dies at BackendUnavailable). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018nDAxBEavkzb6Zkz1cYHef
…52rxw Generated files (complete/index.md, dashboard.md, dashboard.html) regenerated from the merged state with lifecycle.py index --apply and pyauto-brain intake --apply dashboard, rather than hand-resolved. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018nDAxBEavkzb6Zkz1cYHef
…space#27) → PR open CTI epic Phase 5. PR autocti_workspace#28 open. The prompt's premise did not hold: autocti_workspace has no smoke_tests.txt and never had one — no .github/, no config/build/, and nothing deleted in history. So the task creates the repo's first CI rather than re-enabling coverage. That also closes pre-existing drift, since PyAutoHeart/config/repos.yaml already lists the repo under `workspaces`, whose required checks are "Smoke Tests" and "Navigator Check", with neither workflow present. All nine modeling/start_here.py-class scripts verified running bypassed against PyAutoFit 438f56fac. A curated three promoted (132s cold) rather than all nine (~522s), following the CTI repos' keep-it-small convention; per-script timings recorded in the workspace's AGENTS.md. Navigator Check deliberately out of scope. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018nDAxBEavkzb6Zkz1cYHef
The dashboard_refresh check went red: the pages were generated by a local PyAutoBrain checkout that was three commits behind Brain's main, missing PyAutoBrain#265 (the dashboard now states its own freshness). CI regenerates with Brain@main, so the committed pages read as stale even though they were correct for the generator that wrote them. Brain checkout fast-forwarded to main and the pages regenerated. The delta is purely the new freshness block. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018nDAxBEavkzb6Zkz1cYHef
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mind state for the CTI CI standardisation Phase 5 session. Two tasks shipped and recorded, one issued with its PR open.
Completion records
complete/2026/08/arcticpy-install-standardisation.md— PyAutoHeart#170. One canonical Heart-owned arcticpy install (composite action at.github/actions/install-arcticpy, holding the singlearcticpy==2.6pin), consumed by every CTI repo, replacing four divergent shell copies. Five PRs merged: PyAutoHeart#171, autocti_workspace_test#18, autocti_assistant#22, PyAutoCTI#109, autocti_workspace#26.The record keeps three corrections to the task's own premises, all found by building arcticpy rather than reading about it:
main.ymlis a thin caller of Heart'slib-tests.yml, which carries two copies), so there were four shell copies, not two.smoke_install.shwas not one runner-image change from breaking — Heart'ssmoke-tests.ymlinstalls setuptools immediately before invoking it. The real defect was the undeclared cross-repo coupling.--no-depssuppresses arcticpy's runtime imports (scipy,matplotlib) soimport arcticpyfails without them; and arcticpy exposes no__version__attribute, so the specified assertion raisesAttributeErroron a healthy install — a broken command that was already shipped in the assistant's setup skill.Plus the measured answer to the caching question (the compile is ~14 s of a ~52 s step — don't cache) and the reproduced negative case (a fresh Python 3.12 venv ships no setuptools; the build then dies at
BackendUnavailable).complete/2026/08/wiki-currency-baseline-drift.md— autocti_assistant#24, PR #23 merged.wiki-currencywas red onmainindependently of any PR. The drift-report artifact's blob host is blocked by this session's network policy, so the run was reproduced locally to find the single failing sub-check (--check-version, on the autoarray and autofit API-surface hashes).Proved it was staleness rather than a stale doc claim by diffing the public symbol sets at the baseline's own commits (PyAutoFit
daa4e39, PyAutoArray85c57eb) against today'smain. Two symbols were removed, so the drift was not blindly additive — but neither is cited, all 31 cited symbols resolve, and theautonerves/autocti/autocti.plothashes were byte-identical.The record also keeps the finding that the report was lying about what it installed (
stack_version: latest releasedwhen the native path builds frommainsource clones) — the mislabel that sent the original diagnosis to the wrong hypothesis — and recommends against the task's suggested remedy of pinning to a released stack version.Issued, in flight
active/phase5_smoke_reenable_ordered_trap_scripts.md→ autocti_workspace#27, PR #28 open.The task's premise did not hold:
autocti_workspacehas nosmoke_tests.txtand never had one — no.github/, noconfig/build/, nothing deleted in history. So it creates the repo's first CI rather than re-enabling coverage, which also closes pre-existing drift (Heart'sconfig/repos.yamlalready lists the repo underworkspaces, whose required checks are "Smoke Tests" + "Navigator Check", with neither present).All nine
modeling/start_here.py-class scripts verified running bypassed against PyAutoFit438f56fac. A curated three promoted (132 s cold) rather than all nine (~522 s), per the CTI repos' no-mass-promote convention; full per-script timings recorded in the workspace'sAGENTS.md.Generated files
active.md,complete/index.md,dashboard.mdanddashboard.htmlregenerated with the repo's own tooling (lifecycle.py record/index --apply,pyauto-brain intake --apply dashboard).lifecycle.py checkandindex --checkboth OK. Merge conflicts againstmainon the generated pages were resolved by regeneration, never by hand.Generated by Claude Code