From a5ca32f693920c88dc78abaf5927cfe283634159 Mon Sep 17 00:00:00 2001
From: Claude
Date: Sun, 23 Aug 2026 16:16:11 +0000
Subject: [PATCH 1/2] =?UTF-8?q?mind:=20Brain-board=20assessment=20?=
=?UTF-8?q?=E2=80=94=20the=20dashboardify-the-Brain=20investigation=20reso?=
=?UTF-8?q?lved?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The human's call unparks the research prompt: build the PyAutoBrain
dashboard, move the /wake_up routine onto it, make it the morning
starting point, run the local sync as a terminal command. The write-up
the prompt asked for is docs/pyautobrain/brain_board_assessment.md β
the inventory of wake_up's legs and where each landed, what was
deliberately NOT dashboarded (local-metric dashboards, the full
issue-audit), and the sibling-board architecture. Implementation is on
PyAutoBrain branch claude/pyautobrain-dashboard-o33z4r; the draft
prompt carries the addendum pointing at both.
Co-Authored-By: Claude
---
docs/pyautobrain/brain_board_assessment.md | 88 +++++++++++++++++++
...ashboardify_the_brain_s_operational_sur.md | 12 +++
2 files changed, 100 insertions(+)
create mode 100644 docs/pyautobrain/brain_board_assessment.md
diff --git a/docs/pyautobrain/brain_board_assessment.md b/docs/pyautobrain/brain_board_assessment.md
new file mode 100644
index 00000000..4935788b
--- /dev/null
+++ b/docs/pyautobrain/brain_board_assessment.md
@@ -0,0 +1,88 @@
+# The Brain board β assessment and design record
+
+Date: 2026-08-23. The investigation write-up for
+`draft/research/pyautobrain/explore_dashboardify_the_brain_s_operational_sur.md`
+("dashboardify the Brain's operational surfaces"), resolved by the human's
+direction: **build the PyAutoBrain dashboard, move the /wake_up routine onto
+it, and make it the morning and general starting point** β with the local repo
+sync run as a terminal command rather than a Claude chat. Implementation:
+PyAutoBrain branch `claude/pyautobrain-dashboard-o33z4r`.
+
+## What was decided
+
+The sixth one-tap board, at `https://pyautolabs.github.io/PyAutoBrain/`. Same
+pattern as the five live boards (Mind tasks, Heart health, Hands release,
+Memory knowledge, Scientist umbrella): a generated page + one-tap π
+copy-for-Claude payloads + `badge.json` as the cross-board headline contract.
+Where the Heart board answers "is it safe to release?" and the Mind board
+"what could I work on?", the Brain board answers **"what needs me this
+morning?"** β the operational glance `/wake_up` used to assemble by driving
+doors in sequence.
+
+### Inventory: wake_up's legs β their new home
+
+| /wake_up leg | On the board? | How |
+|---|---|---|
+| Sync (`pull_all_main.sh`) | β¨ chip only | stays local β `bin/morning.sh` (sync + clean in one terminal command; the board's top row carries it as a copyable **terminal** chip, visually distinct from Claude chips) |
+| Clean slate (`clean_slate.sh`) | β¨ chip only | same β inside `morning.sh`; orphan-dataset calls remain terminal output |
+| Overnight sweep (`overnight_status.sh`) | β | rendered rows incl. the βΈ blocked-at-a-gate refinement; each β carries a `/bug β¦ β ` chip |
+| Health/release verdict | β | read from the **Heart board's badge.json** (compose, don't recompute) + `/health` chip; nightly-release outcome is an overnight row |
+| Version drift (`version_drift.sh`) | β | consensus check rendered; drift rows carry `/bug` chips |
+| Community scan | β | imports the Ears' `build_scan()` wholesale; awaiting-response rows carry `/community triage ` chips; replies stay human-gated in `/community` |
+| Issue-tracker drift | β (count only) | org-wide open-issue count + `/issue_cleanup` chip; the two-evidence audit stays that skill's confirmation-gated job |
+| Resume context | β | the Mind's own generated dashboard counts + `active/` task files (`/start_dev` chips) + pending-release PRs (`/prm ` chips) |
+| Hygiene | πͺ door only | `/hygiene` chip β the sweep itself needs local timings, so it stays a door, not a board section (see "not dashboarded" below) |
+| The digest card | β | the whole page *is* the card; `pyauto-brain board` prints the identical markdown digest in a terminal, and badge.json carries the "N need you / clear to work" verdict |
+
+`/wake_up` survives as a fallback door only (board stale/unreachable, or
+explicit ask); its body now says so and delegates to `morning.sh` + the board
+CLI. The passive morning Slack webhooks are unchanged.
+
+### Architecture (mirrors the sibling boards)
+
+- **`PyAutoBrain/board/_board.py`** β thin collect (read-only `gh` + the
+ sibling boards' published badges) + pure render (`--md/--html/--json/--badge`,
+ `--apply` writes the Pages payload). A **surface**, not an agent: it neither
+ acts nor opines, so it sits outside the conductor/faculty tiers (precedent:
+ the Mind renderer living with the intake conductor). `pyauto-brain board`
+ dispatches to it; `/board` is the chat-side wrapper (the mobile fallback).
+- **Vocabulary in `config/policy.yaml` under `board:`** (declared config
+ surface): overnight job list, version-stamp list, reference release repo,
+ sibling-board map. Org/owner derived from `repos.yaml` at runtime β tenant
+ firewall clean (gate run green).
+- **`brain_board.yml`** publishes daily at 05:30 UTC (after the Heart's 05:00
+ badge refresh) + on dispatch: Pages artifact only (`index.html`,
+ `badge.json`, `board.json`, `board.md`) β **nothing committed**, since the
+ data is time-varying and a daily self-heal commit would be pure noise. This
+ is the one deliberate divergence from the Mind board's committed-page shape,
+ and matches Heart/Hands.
+- The umbrella router can consume `brain | N need you / clear to work` from
+ `badge.json` like the other boards' headlines (follow-up, not wired here).
+- 413 Brain tests pass (8 new hermetic board tests: stub gh, fabricated Mind,
+ file:// badges; read-only proof; html self-containment).
+
+### Considered and NOT dashboarded (the research prompt allowed "none")
+
+- **Hygiene / profiling / import-time metric dashboards** (the prompt's axis
+ 2): their measurements are local-machine facts the cloud render cannot
+ observe honestly. The Heart's devbox-publish pattern could feed them later;
+ deferred until a real morning need shows up β the board carries their doors.
+- **The full issue_cleanup audit half**: needs the Mind completion records +
+ per-issue evidence; too heavy and too judgment-laden for a generated page.
+ Count + door is the honest surface.
+- **A conductor-roster page of its own** (axis 1's "per-conductor sections"):
+ folded into the board as the collapsed "All doors" section, generated from
+ the dispatcher registry β no second roster copy anywhere.
+
+### Post-merge, once (operational notes)
+
+1. If the first `brain_board.yml` run fails at configure-pages ("Resource not
+ accessible by integration" β the Hands hit this), create the site once:
+ `gh api -X POST repos/PyAutoLabs/PyAutoBrain/pages -f build_type=workflow`,
+ then re-dispatch.
+2. Retire the muscle-memory: mornings are `bash PyAutoBrain/bin/morning.sh`
+ in a terminal + the board, not `/wake_up`.
+3. Candidate follow-ups to file via `/intake` if wanted: umbrella-router card
+ for the Brain badge; `overnight_status.sh`/`version_drift.sh` reading the
+ `board:` policy block instead of their own lists; devbox-published hygiene
+ metrics on the board.
diff --git a/draft/research/pyautobrain/explore_dashboardify_the_brain_s_operational_sur.md b/draft/research/pyautobrain/explore_dashboardify_the_brain_s_operational_sur.md
index 454b7562..4f9be152 100644
--- a/draft/research/pyautobrain/explore_dashboardify_the_brain_s_operational_sur.md
+++ b/draft/research/pyautobrain/explore_dashboardify_the_brain_s_operational_sur.md
@@ -21,3 +21,15 @@ Exploratory research, deliberately unscoped β a plan-and-consider investigatio
Deliverable: an investigation write-up reviewed with a human β inventory which conductor runs and which standardised metrics exist, which genuinely benefit from a phone-readable surface versus staying CLI output, how this relates to the one-tap dashboard rollout (Heart board shipped β complete/2026/08/actionable-health-board.md; remaining surfaces in draft/feature/pyautobrain/one_tap_dashboard_more_surfaces.md) and to /wake_up, and which candidates (if any) earn their own feature prompts. Recommending only a subset, or none, is a valid outcome. Supervision required: this shapes the command surface humans drive.
+
+---
+
+**2026-08-23 β investigation resolved; implementation begun.** The human
+unparked this with direction: build the PyAutoBrain dashboard, move the
+/wake_up routine onto it, make it the morning starting point, and run the
+local repo sync as a terminal command. The write-up this prompt asked for is
+[`docs/pyautobrain/brain_board_assessment.md`](../../../docs/pyautobrain/brain_board_assessment.md)
+(inventory of wake_up's legs and where each landed, what was deliberately NOT
+dashboarded, architecture on the sibling-board pattern). Implementation on
+PyAutoBrain branch `claude/pyautobrain-dashboard-o33z4r`
+(`board/_board.py` + `brain_board.yml` + `bin/morning.sh` + wake_up repoint).
From 63dfbcb07074d11b88f08fb56c9dda29371d690f Mon Sep 17 00:00:00 2001
From: Claude
Date: Sun, 23 Aug 2026 16:17:21 +0000
Subject: [PATCH 2/2] mind: file the Brain-board follow-ups prompt (umbrella
card, single-source sweep lists, devbox metrics)
Co-Authored-By: Claude
---
dashboard.html | 81 ++---
dashboard.md | 278 +++++++++---------
.../pyautobrain/brain_board_follow_ups.md | 36 +++
3 files changed, 220 insertions(+), 175 deletions(-)
create mode 100644 draft/feature/pyautobrain/brain_board_follow_ups.md
diff --git a/dashboard.html b/dashboard.html
index 2a9c196d..b98d4ec4 100644
--- a/dashboard.html
+++ b/dashboard.html
@@ -51,7 +51,7 @@
π PyAutoMind Dashboard
Every task the Mind is holding. Tap a task's π and its /start_dev command is on your clipboard β paste it into a Claude Code chat to route Claude straight to that task. Recent is the same work by date β what has been happening rather than what to do next.
-
In flight 1 Β· Parked 3 Β· Planned 6 Β· Backlog 152 Β· markdown version
+
In flight 1 Β· Parked 3 Β· Planned 6 Β· Backlog 153 Β· markdown version
Start here
Highest priority (filed as high) β showing 12 of 17
152 filed prompts, not started β sorted most-pickable first (priority, then size). 23 of them belong to an epic and are listed only under Epics below.
+
153 filed prompts, not started β sorted most-pickable first (priority, then size). 23 of them belong to an epic and are listed only under Epics below.