Repository navigation
Description
Overview
The Cortex dashboard opens with every phase of every active project, so a reader scrolls past the whole Euclid plan before reaching what needs a verdict, and nothing on the page says when the science state was last refreshed. This task reorders the board around the reader's morning: a copyable check-in prompt and a last-check-in stamp (red after an hour) on top, a one-row-per-project summary, a compact Projects section (active → planned → dormant) that routes to follow-up work, then Awaiting ruling first among the state sections. The Cortex Epics section and epics.md are discarded — science projects are long exploratory programmes by nature; epics stay a Mind concept for chaining development tasks.
Plan
- Put a 📋 check-in chip first on the page: the paste for the laptop science chat that pulls, scores, moves, re-renders and pushes, then reads back the by-project summary.
- Beside it, a "Last check-in" stamp read from a committed
checkin.yaml; the HTML twin colours it red on view when older than 60 minutes. - Add a summary table: one row per active project — next phase and state, awaiting / running / ready counts, last ruling.
- Replace the leading "By project" wall and the trailing "Projects" table with one Projects section ordered active → planned → dormant; each card shows Local / RAL on their own bold lines, phase counts, the next phase with its own chip, and folds the remaining open phases behind links (phase files,
phases/<project>/, the project repo's issues). - Awaiting ruling follows, unchanged; Running / submitted drops the "run it again" chip; Ready shows one visible phase per project with the rest folded; Gated and Recent rulings unchanged.
- Remove the Epics section,
parse_epics,PyAutoCortex/epics.mdand its doc mentions; keep the optionalEpic:phase header as a join key to Mind epics. - Rewrite the pinned tests, regenerate
dashboard.md/dashboard.html, ship PyAutoBrain first and PyAutoCortex second.
Detailed implementation plan
Affected Repositories
- PyAutoBrain (primary — renderer + tests + cortex skill doc)
- PyAutoCortex (epics.md removal, docs,
checkin.yaml, regenerated pages)
Branch Survey
| Repository | Current Branch | Dirty? |
|---|---|---|
| ./PyAutoBrain | main (2 behind origin, board-family helper) | clean |
| ./PyAutoCortex | main | clean |
Suggested branch: feature/cortex-dashboard-projects-first
Implementation Steps
PyAutoBrain/agents/conductors/cortex/_cortex.pycensus(): read<root>/checkin.yaml(refreshed: <UTC ISO>) intoc["checkin"](empty when missing); dropparse_epicsandc["epics"].cmd_checkin(andcollect --apply): write the refresh stamp tocheckin.yamlbefore rendering sopush_ledgercarries it;dirty_pathsmust include it.- New
_checkin_payload(c)— the paste prompt naming the last stamp; rendered as the first task row in both twins, followed by the "Last check-in" line (<time datetime>+ inline script in HTML: red + "stale, paste the check-in" when older than 60 min on the viewer's clock; "never checked in" in red when the file is missing). - New
summary_rows(c)→ table (project, next phase + state, awaiting / running / ready, last ruling date) for active projects. SECTIONS→ projects, awaiting, live, ready, gated, rulings (by_project and epics removed; blurbs updated;REFRESH_BLURBno longer names epics.md).project_pathsreturns separate lines with bold labels;project_card(key, c): next open phase vianext_open_phase(awaiting > live > ready > gated > planned, lowest phase number) with itsphase_chips, then a<details>fold of the remaining open phases as links plusphases/<project>/and<remote>/issues; no where-to-look bullets. Order by status rank active < planned < dormant; dormant projects with nothing open stay one folded line.phase_chips: no rerun chip forLIVE_STATES(Awaiting keeps it).- Ready: group by project, first (lowest phase) row visible with the submit chip, rest in a
<details>. emit_census/emit_by_project/ check-in printout keep the full per-phase tree — only the page shrinks.
PyAutoBrain/tests/test_cortex_conductor.py: replace the by-project-leads and epics-schema pins with: check-in chip is the first task row; stamp rendered fromcheckin.yamland "never checked in" without it; the stale script is present in the HTML twin; summary table present; Projects precedes Awaiting; active before planned before dormant; Local/RAL on separate bold lines; one visible Ready row per project with the rest folded; no rerun chip in the live section; no Epics section;censustolerates a missingepics.md.PyAutoBrain/skills/cortex/cortex.mdandagents/conductors/cortex/AGENTS.md: drop epics.md mentions; documentcheckin.yaml.- PyAutoCortex: delete
epics.md; strip references fromAGENTS.md,README.md,REFERENCE.md,scripts/ledger_merge.py,.github/workflows/dashboard_refresh.ymlpaths (addcheckin.yaml); addcheckin.yamlwith the current stamp; regeneratedashboard.md/dashboard.htmlwithPYAUTO_CORTEXpointed at the worktree.
Key Files
PyAutoBrain/agents/conductors/cortex/_cortex.py— both renderers,SECTIONS,phase_chips,census,cmd_checkinPyAutoBrain/tests/test_cortex_conductor.py— section-order and payload pinsPyAutoCortex/epics.md— removed;PyAutoCortex/checkin.yaml— newPyAutoCortex/.github/workflows/dashboard_refresh.yml— path triggers
Original Prompt
Click to expand starting prompt
PyAutoMind/draft/feature/pyautobrain/cortex_dashboard_projects_first.md (the full text, including the verbatim feedback and the freshness-stamp addendum, moves to active/ with this issue).
🤖 Generated with Claude Code
Activity
Jammy2211 commentedon Sep 4, 2026
Shipped
checkin.yamlfreshness stamp (age computed on view, red after 60 min), a per-project summary table, Projects first (active → planned → dormant) with next-phase chip, Awaiting next, rerun chips off the live section, Ready folded per project; Cortex epics discarded (theEpic:phase header survives as an optional join key to a Mind epic).epics.mdremoved,checkin.yamladded and carried bypush_ledger, dashboard pages regenerated projects-first. Itsrefreshcheck was red until feat(cortex): board leads with the check-in prompt, a freshness stamp and projects; epics discarded #355 landed (renders against Brain main); re-run green after the merge.Follow-up the human may want: an
Issue:header on phases so the per-project fold can link a phase's own issue rather than the repo's issue list.