Skip to content

feat: release board — what shipped, one-tap prompts, Pages twin #239

Description

@Jammy2211

Overview

Dashboard-ify the Hands (fourth repo of the readability arc; from the intake prompt "Implement a PyAutoHands build dashboard with one-tap copy-for-Claude commands"). A phone-readable release board — what the Hands shipped: current library versions, the release train's recent outcomes, nightly cadence — each actionable item carrying a one-tap 📋 copy block (/release, /release rehearse, /release validate, /build; failed runs copy a /bug … prompt with the run URL). Past-tense record only — readiness verdicts stay with the Heart, which the board links.

Plan

  • API-first data (the intake prompt's scoping question, answered): run_logs/ is gitignored/machine-local/currently absent, so v1 renders from verified-live sources — release.yml run history + Brain nightly-release.yml outcomes via gh, git tags on the 5 libraries (authoritative version record), PyPI JSON (liveness/yanks), GitHub Releases links. Degraded API sections say so honestly.
  • New autohands/board.py: thin collect() + pure render(fmt=md|md-brief|html|json|badge) on the Heart dashboard.py pattern (📋 clipboard JS, dark aesthetic, self-contained html); bin/autohands board verb.
  • New .github/workflows/release_board.yml: workflow_run after "PyAuto Release" + daily cron + dispatch → Pages (configure-pages enablement: true) + badge.json + README strip between <!-- hands:begin/end -->.
  • README on the arc pattern (drop the stale "Formerly PyAutoBuild" banners — rename shipped 2026-07-23; released badge; Latest release auto-strip; How PyAutoHands works; CLI examples); AGENTS.md verb-list prose fixed to the real dispatcher registry; AI_POLICY.md/CONTRIBUTING.md.github/.
  • Tenant firewall: owner derived from git remote (release_run.py precedent); repo/package lists from a declared config surface (workspaces.yaml libraries: — falling back to board.yaml if manifest-drift objects); test fixtures use fake names.
Detailed implementation plan

Affected Repositories

  • PyAutoHands (primary)
  • PyAutoMind (prompt lifecycle)

Branch Survey

Repository Current Branch Dirty?
./PyAutoHands main clean

Suggested branch: feature/release-board

Implementation Steps

  1. autohands/config gains the declared libraries: list (name+package) — verify heart/checks/manifest_drift.py + repos_sync.py --check tolerance first.
  2. autohands/board.py collect + render; tests/test_board.py (render fixtures with fake org, degraded-section honesty, html self-containment, badge shape).
  3. bin/autohands board (4-touch dispatcher convention).
  4. release_board.yml publisher; README markers + rewrite; AGENTS.md prose fix; pointer-doc move.
  5. PR → CI (pytest + tenant firewall) → merge → dispatch → verify live page/badge/strip.

Boundary honoured

Pure executor: the board records execution, never gates. run_logs paths untouched (Heart reads them); all autohands/ primitives untouched (Heart's workflows reuse them).

Original Prompt

Click to expand starting prompt

See PyAutoMind/active/release_board.md (carries the verbatim intake text + agreed scope).

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