Skip to content

feat(cortex): big green/red check-in stamp, no blurbs, readable project names, nothing-open table #356

Closed

Description

@Jammy2211

Overview

First-look feedback on the projects-first Cortex board shipped in #355 / PyAutoCortex#14. The two explanatory blurbs ("This page is generated from…", "The science body map, active first…") are noise on a phone; the check-in stamp is a small bold line where it should be the one thing the eye lands on; project names inherit the shared theme's small h3; and the eight projects with nothing open trail the Projects section as one ·-joined line.

Plan

  • Drop the Cortex REFRESH_BLURB and the Projects section blurb; keep the one-line Last updated <date> so the dashboard_body drift normaliser still strips it.
  • Turn the HTML check-in stamp into a large boxed date whose colour is decided on the viewer's clock: green ✓ "fresh" within 3 hours, red ✗ "stale, paste the check-in" beyond (single threshold, replacing the 60-minute rule). Markdown twin renders ### Last check-in: <stamp>.
  • Wrap each project card in <section class="project"> with a cortex-local .project h3 rule (larger, bold, accent underline); the shared board/_theme.py is untouched.
  • Move the nothing-open projects out of Projects into a Project | Status | Phases table under Summary, ordered active → planned → dormant.
  • Rewrite the affected test pins, regenerate PyAutoCortex/dashboard.md / .html, ship Brain PR first then Cortex PR (its refresh check renders against Brain main).
Detailed implementation plan

Affected Repositories

  • PyAutoBrain (primary) — agents/conductors/cortex/_cortex.py, tests/test_cortex_conductor.py
  • PyAutoCortex — regenerated dashboard.md, dashboard.html

Branch Survey

Repository Current Branch Dirty?
./PyAutoBrain main clean
./PyAutoCortex main clean

Suggested branch: feature/cortex-checkin-stamp-prominent

Implementation Steps

  1. _cortex.py l.254 delete REFRESH_BLURB; l.976 markdown → > **Last updated {generated}.**; l.1194 HTML → <div class="fresh"><p class="muted">Last updated {generated}.</p></div> (both prefixes preserved for dashboard_body l.1353). Drop the _FRESH_CSS left border.
  2. l.1212-1214 HTML stamp → <div class="checkin" id="checkin-box"><span class="mark" id="checkin-mark"></span><div><span class="label">Last check-in</span><time id="checkin" datetime="…">…</time><span class="note" id="checkin-note"></span></div></div>; CSS: flex box, 2px border, time ~1.6rem bold tabular; .fresh-ok / .fresh-bad on var(--ok) / var(--bad) (board/_theme.py l.333, dark l.338-339); keep .stale.
  3. _CHECKIN_JS l.1133-1140: CHECKIN_FRESH_MINUTES = 180 interpolated; unparseable/empty or age>180 → fresh-bad, .stale, ✗, "stale, paste the check-in" / "never checked in"; else fresh-ok, ✓, "fresh · N min ago" (hours ≥60). Age on view only.
  4. Markdown l.993 → ### Last check-in: {stamp}.
  5. Comments at l.1131-1132, l.1207-1210: "an hour" → 3 h.
  6. HTML l.1237 wrap each shown project in <section class="project">…</section>; add .project h3{font-size:1.35rem;font-weight:700;padding-bottom:.2rem;border-bottom:2px solid var(--accent);letter-spacing:.01em} to _FRESH_CSS.
  7. SECTIONS[0] blurb (l.230-235) → ""; h2() at l.951 and l.1154 render only the markdown-version link when the blurb is empty (no dangling " — ").
  8. Remove the folded-projects line at markdown l.1043-1048 and HTML l.1275; after the Summary table (markdown ~l.1005, HTML ~l.1230) add a "Nothing open" sub-head and a Project | Status | Phases table over project_order(folded, c) using projects[key]['status'] and project_counts(key, c); nothing when folded is empty.
  9. Tests: l.268/275/353/1032 **Last check-in:** → ### Last check-in:; l.292-301 pin /60000>180, fresh-ok, fresh-bad, ✓, stale text, and absence of "only as current as they are" and "science body map"; l.450/452 the folded project is a Summary table row and absent from Projects; pin .project h3{ and <section class="project">; new test that dashboard_body equalises two renders with different generated dates.
  10. PYAUTO_CORTEX=<worktree>/PyAutoCortex python -m pytest tests/test_cortex_conductor.py -q; then PYAUTO_CORTEX=<worktree>/PyAutoCortex pyauto-brain cortex dashboard --apply + --check.

Key Files

  • PyAutoBrain/agents/conductors/cortex/_cortex.py — both renderers, CSS, JS, SECTIONS, dashboard_body
  • PyAutoBrain/tests/test_cortex_conductor.py — section/stamp pins
  • PyAutoBrain/board/_theme.py — read-only: --ok / --bad tokens, shared h3
  • PyAutoCortex/dashboard.md, dashboard.html — regenerated

Original Prompt

Click to expand starting prompt

We dont need this text for a dashboard it too much info "This page is generated from phases/, rulings/ and projects.yaml, so it is only as current as they are. dashboard_refresh.yml re-renders it on every push to main.". Also make the date larger, and some sort of obvious green box or tick if its within 3 hours of now.

Project names are small text and hard to read, euclid / inference programme etc. Make them larger and ideally underline or something to help? This is also superflous "The science body map, active first: where each project lives, what it is holding, and the one phase of it to act on next. The plans and the issues are one click away — this page routes to them rather than reprinting them; census --by-project and the check-in printout keep the full per-phase tree." This should be in summary: 8 project(s) with nothing open: euclid_dr1_prelim (planned · none) · concr (dormant · none) · cowls_diana (dormant · none) · ic50_workspace (dormant · planned 1) · pj011646 (dormant · none) · profiling (dormant · none) · slope_hierarchy (dormant · planned 2) · subhalo_simulations (dormant · none) make it a table for clarity Do all this too.

Prompt file: PyAutoMind/draft/feature/pyautobrain/cortex_checkin_stamp_prominent.md

🤖 Generated with Claude Code

https://claude.ai/code/session_01JYs4cX2wT5vsZScjLNLZif

Activity

  1. Jammy2211 commented on Sep 4, 2026

    @Jammy2211
    ContributorAuthor

    Both PRs are open, review-ready, and merge in this order:

    1. feat(cortex): the check-in stamp is a box, the map is a map #357 — the renderer. feat(cortex): the check-in stamp is a box, the map is a map #357
    2. chore(dashboard): regenerate for the prominent check-in stamp PyAutoCortex#15 — the regenerated dashboard.md + dashboard.html. chore(dashboard): regenerate for the prominent check-in stamp PyAutoCortex#15

    Cortex#15's refresh check renders the pages against PyAutoBrain main, so it is red until #357 merges — re-run it afterwards.

    What shipped: the check-in stamp is a bordered box (mark, label, 1.6rem tabular stamp, note) that the page's own script paints on the reader's clock — green ✓ fresh · N min ago under 3 h (the new CHECKIN_FRESH_MINUTES = 180, up from a hard-coded hour), red ✗ stale, paste the check-in over it, never checked in with no stamp. The age is still computed on load and nowhere else. The markdown twin renders ### Last check-in: <stamp>.

    The refresh blurb and the Projects blurb are gone from the Cortex page (the Mind keeps its own REFRESH_BLURB); the Last updated footnote and the line prefixes dashboard_body strips are unchanged, so --check drift behaviour is untouched. Each project card is wrapped in <section class="project"> so .project h3 can size the project's name at 1.35rem with an accent rule, without touching the shared theme h3. Projects with nothing open move out of a fold at the foot of the map into a Project | Status | Phases table under the Summary.

    Tests: tests/test_cortex_conductor.py 81 passed; full Brain suite 910 passed. cortex dashboard --check prints current.

    🤖 Generated with Claude Code

    https://claude.ai/code/session_01JYs4cX2wT5vsZScjLNLZif

  2. Jammy2211 commented on Sep 4, 2026

    @Jammy2211
    ContributorAuthor

    Shipped

    • PyAutoBrain#357 — merged (a800366): both board blurbs gone (the refresh sentence and the Projects "science body map" paragraph; the one-line Last updated stays so the drift normaliser keeps stripping it); the check-in stamp is a large boxed date coloured on the viewer's clock — green ✓ "fresh · N min ago" within 3 hours, red ✗ "stale, paste the check-in" beyond, "never checked in" when absent (CHECKIN_FRESH_MINUTES = 180); project cards wrapped in <section class="project"> with a larger, accent-underlined h3 (shared theme untouched); the nothing-open projects moved out of Projects into a Project | Status | Phases table under Summary. 81 conductor tests, 910 full-suite.
    • PyAutoCortex#15 — merged: dashboard.md / dashboard.html regenerated. Its refresh check was red until feat(cortex): the check-in stamp is a box, the map is a map #357 landed (renders against Brain main); re-run green, then merged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions