Skip to content

prompt: navigator-check close-out, the Heart required-workflow check, and two retirements - #351

Merged
Jammy2211 merged 7 commits into
mainfrom
claude/autocti-workspace-navigator-check-93ri3a
Aug 27, 2026
Merged

prompt: navigator-check close-out, the Heart required-workflow check, and two retirements#351
Jammy2211 merged 7 commits into
mainfrom
claude/autocti-workspace-navigator-check-93ri3a

Conversation

@Jammy2211

Copy link
Copy Markdown
Collaborator

Mind-side state for one arc that started as /start_dev on a prompt whose work was already merged. Five commits, no code — records, registries and the generated pages.

What happened

/start_dev draft/maintenance/ci/autocti_workspace_navigator_check.md found the task already shipped — autocti_workspace#30 merged as 4b162ae on 2026-08-24, issue #29 closed the same day. The prompt was never advanced out of draft/, so it kept rendering on the dashboard as pickable backlog. Retired with a retrospective record (b3a7dd89), and the acceptance criterion re-verified rather than taken from the issue: both required workflows are success on autocti_workspace's current main HEAD, so rollup()'s on_head condition holds and the repo reads conclusion: success.

Its work item 4 — the general case — was proposed on the issue but never filed. Filed here as a prompt (f8b43367), then issued, implemented and merged in the same session: PyAutoHeart#188 / PR #189 (2a1391f), heart/checks/required_workflow_drift.py. Registered and recorded in 11f0898f and 25d82e5e.

A second stale draft was retired (ed3ec5f0): run_smoke_copy_drift.md is a strict prefix of the prompt already folded into complete/2026/08/smoke-runner-delegation.md — the task was issued from a copy rather than moved. Retired against the merged end state, not the record: both workspace runners are 119-line shims on origin/main with the vestigial _BUILD_DIR gone, and the timeout the consolidation could have destroyed is enforced through build_util.execute_scripts_in_folderexecute_scripttimeout_for(env). Noted in the existing record rather than written as a second one for the same task.

The drift class this PR is mostly about

Both retirements are the same failure: a prompt that shipped and was never retired renders faithfully, as pickable backlog, and no workflow can tell the difference. lifecycle.py check reports OK throughout, because a draft/ prompt with no registry entry is a valid state. Two instances found in one folder; intake reconcile draft/maintenance/ci is now clean (0 suspects of 133).

Verification

  • lifecycle.py check, lifecycle.py index --check, intake dashboard --check all clean at HEAD.
  • dashboard.md + dashboard.html regenerated in the same commit as every change that touches them; backlog 135 → 133.

Generated by Claude Code

claude added 7 commits August 27, 2026 17:10
…, never recorded

/start_dev on draft/maintenance/ci/autocti_workspace_navigator_check.md found the
work already done: autocti_workspace#30 merged as 4b162ae on 2026-08-24 and
issue #29 closed the same day. The prompt was never advanced out of draft/, so it
kept rendering on the dashboard as pickable backlog.

Retires it with a retrospective completion record built from the merged PR, the
closed issue and its three comments: what landed, the untracked-catalogue trap
(git diff --exit-code exits 0 on untracked paths, so the staleness job would have
gone green while checking nothing), the roll-up acceptance criterion, and the
15-repo survey behind work item 4.

Acceptance criterion re-verified against main HEAD ea3e424 (2026-08-27): Navigator
Check and Smoke Tests both success on that sha, so rollup()'s on_head condition
still holds and autocti_workspace reads conclusion: success.

Work item 4 — a Heart-side "every repo in a required group has a workflow file for
each required workflow" drift check — remains proposed but unfiled.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmWbYJw4cJJnt4eK6NoZjL
…check work item 4)

The general case behind autocti_workspace#29/#30: heart/checks/ci_status.rollup()
scores a repo over its group's required_workflows, and a required workflow with no
runs is never scored as a failure — it just never satisfies all_green, so the repo
sits at {"conclusion": "", "status": "in_progress"} forever. On the dashboard that
is indistinguishable from a run in flight.

The 2026-08-24 survey found autocti_workspace was the only instance across all 15
repos in the four required groups, and #30 removed it. The prompt is a guard
against the hole reopening: every edit to config/repos.yaml that adds a repo to a
group, or a workflow to a group's required list, silently makes repos un-greenable
and produces no red anything.

Corrects the original proposal on one point. It assumed a periodic Actions-API
sweep or sibling checkouts; ci_status.sh already loops every polled repo in
parallel making two cheap gh api metadata calls each, so a third
(actions/workflows, the only call that tells "missing file" from "never ran") is
the same shape and cost — measure it against the <30s tick before falling back to
a deep tier. manifest_drift.py is the precedent for classifying it as a YELLOW
configuration finding rather than red CI.

Filed at draft/feature/pyautoheart/ rather than the intake router's suggested
draft/feature/autocti/: the classifier read the autocti_workspace context
references as the target, but the work is entirely in PyAutoHeart.

Cross-referenced from the navigator-check completion record.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmWbYJw4cJJnt4eK6NoZjL
Advances the prompt filed earlier this session from draft/ to active/: issue
PyAutoHeart#188 created, registered in active.md at status ready-to-ship with
the pushed branch feature/required-workflow-file-drift, dashboard regenerated.

The implementation landed in the same session — heart/checks/required_workflow_drift.py
plus its wiring in state.py, tick.sh and readiness.py, 15 new tests, full Heart
suite 656 passed. The branch is pushed with no PR opened.

The entry records worktree: none — this ran in a remote web session, where
PyAutoHeart is a flat clone rather than a ~/Code/PyAutoLabs-wt/ worktree, so a
later session resuming this task should not go looking for one.

Also repoints the navigator-check completion record's work-item-4 cross-link
from the draft path to the issue, now that the prompt has moved.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmWbYJw4cJJnt4eK6NoZjL
…9 MERGED

Close-out for PyAutoHeart#188. PR #189 merged as 2a1391f with both Heart Tests
legs green (pytest 3.12, 3.13); issue commented and closed.

active/ -> complete/2026/08/required-workflow-file-drift.md, active.md section
removed, complete/index.md and both dashboard pages regenerated.

The record keeps three things worth re-reading before the next Heart change:
the tenant firewall scans docstrings and test fixtures, not just code, so a
module that recounts an incident by name reddens CI — name no instance fact
rather than growing FIREWALL_ALLOWLIST; Heart's own gate reads YELLOW in a
remote session purely from the environment (no gh, and add_repo's lowercase
clone URL vs the body map's PyAutoHeart); and a --depth 1 clone is single-branch,
so push -u leaves no origin/feature/* tracking ref and a local git-state check
misreads a pushed branch as unpushed.

Sweep found no stale references to the slug or prompt filename. Reconcile over
draft/maintenance/ci flagged run_smoke_copy_drift.md, left standing: it is
resemblance, not proof — this merge is entirely PyAutoHeart's required-workflow
check and covers none of that prompt's smoke-runner scope.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmWbYJw4cJJnt4eK6NoZjL
… task

The prompt was issued from a copy rather than moved, so
draft/maintenance/ci/run_smoke_copy_drift.md stayed behind when the task went to
active/ and then into complete/2026/08/smoke-runner-delegation.md. It is a strict
prefix of the copy that record folds — identical through the re-scoped task list,
missing only the Issued:/Filed: headers and the 2026-08-24 re-measurement — so it
kept rendering on the dashboard as pickable backlog for work already merged.

Proof, not resemblance. Verified against the merged end state rather than the
record: autolens_workspace and autogalaxy_workspace .github/scripts/run_smoke.py
are both 119-line shims on origin/main and the vestigial _BUILD_DIR line the
prompt's step 4 asked about is gone; and the acceptance criterion that
consolidation must not cost autolens_workspace_test its per-script timeout holds
through the shared path, build_util.execute_scripts_in_folder -> execute_script ->
timeout_for(env) with run_capped(timeout=...) and TimeoutExpired handling.

Recorded in the existing completion record rather than writing a second one for
the same task. Reconcile over draft/maintenance/ci is now clean (0 suspects of
133); dashboard and complete/index.md regenerated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmWbYJw4cJJnt4eK6NoZjL
The branch was behind main by PyAutoMind#348/#349/#350. Merged, never rebased.

All three conflicts were in generated files — complete/index.md, dashboard.md,
dashboard.html — and were resolved by regenerating from the merged sources
(lifecycle.py index --apply, pyauto-brain intake --apply dashboard), never by
hand-editing. No source-of-truth file conflicted.

All four PR gates re-run green after the merge: lifecycle check, lifecycle index
--check, registry_toc --check, intake dashboard --check, plus the spawn privacy
suite (240 passed).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmWbYJw4cJJnt4eK6NoZjL
Main moved again during the run (PyAutoMind#352). Merged, never rebased. The one
conflict was complete/index.md — generated — resolved by regenerating with
lifecycle.py index --apply, and the dashboard pages regenerated alongside it.

All gates re-run green: lifecycle check, lifecycle index --check, registry_toc
--check, intake dashboard --check, spawn privacy suite (240 passed).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KmWbYJw4cJJnt4eK6NoZjL
@Jammy2211
Jammy2211 merged commit 1f541a2 into main Aug 27, 2026
4 checks passed
@Jammy2211
Jammy2211 deleted the claude/autocti-workspace-navigator-check-93ri3a branch August 27, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants