Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .github/workflows/dashboard_refresh.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ on:
- "parked.md"
- "planned.md"
- "dashboard.md"
- "dashboard.html"
pull_request:
paths:
- "draft/**"
Expand All @@ -36,6 +37,7 @@ on:
- "parked.md"
- "planned.md"
- "dashboard.md"
- "dashboard.html"
workflow_dispatch:

# contents: write is needed by the self-heal push on main; PR runs never push.
Expand Down Expand Up @@ -100,8 +102,8 @@ jobs:
echo "::error::'--apply dashboard' did not converge β€” renderer bug, repair by hand"
exit 1
fi
git add dashboard.md
git commit -m "mind: self-heal stale dashboard.md"
git add dashboard.md dashboard.html
git commit -m "mind: self-heal stale dashboard pages"
if git push origin HEAD:main; then
echo "healed on attempt ${attempt}"
exit 0
Expand Down
55 changes: 55 additions & 0 deletions .github/workflows/pages_dashboard.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
name: Pages Dashboard

# Serves the generated `dashboard.html` β€” the task dashboard's one-tap-copy
# twin β€” at this repo's GitHub Pages URL (as the site's index page).
#
# Why a twin exists at all: GitHub's markdown rendering strips JavaScript, so
# `dashboard.md` can never write to the clipboard β€” on the GitHub mobile app
# its fenced blocks have no copy affordance at all, leaving long-press text
# selection as the only way to grab a task's `/start_dev` command. The HTML
# page carries a real copy button per task instead: one tap and the command
# is on the clipboard, ready to paste into a Claude Code chat.
#
# The file itself is rendered by PyAutoBrain's intake conductor alongside
# `dashboard.md` (one census, two pages) and kept fresh by the same
# self-heal in `dashboard_refresh.yml`; this workflow only publishes it.
# Only the uploaded file is served β€” nothing else in the repo reaches Pages.

on:
push:
branches: [main]
paths:
- "dashboard.html"
workflow_dispatch:

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: pages
cancel-in-progress: true

jobs:
deploy:
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/checkout@v4
# enablement: true creates the Pages site on first run, so no manual
# Settings β†’ Pages step is needed.
- uses: actions/configure-pages@v5
with:
enablement: true
- name: stage the dashboard as the site index
run: |
mkdir -p _site
cp dashboard.html _site/index.html
- uses: actions/upload-pages-artifact@v3
with:
path: _site
- id: deployment
uses: actions/deploy-pages@v4
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@
πŸ“‹ **[Task dashboard β†’ `dashboard.md`](dashboard.md)** β€” every task the Mind is
holding, on one page: what to pick up now, what is in flight, and the whole
backlog. Reads on a phone; regenerated from this repo, so it is never a
second copy of the truth.
second copy of the truth. On a phone, prefer the
**[one-tap copy version](https://pyautolabs.github.io/PyAutoMind/)** β€” tap a
task's πŸ“‹ and its `/start_dev` command is on your clipboard, ready to paste
into a Claude Code chat.

The Mind of the PyAuto organism: every piece of work in the ecosystem starts
here, as a markdown file describing what you want in plain English. An AI
Expand Down
Loading
Loading