|
134 | 134 | .boards a:hover{opacity:1;text-decoration:none} |
135 | 135 | .mdsrc{font-size:.85em} |
136 | 136 | .boards a[data-organ="mind"]{color:#0a7d72}@media(prefers-color-scheme:dark){.boards a[data-organ="mind"]{color:#2ee6cf}}.boards a[data-organ="brain"]{color:#2159c9}@media(prefers-color-scheme:dark){.boards a[data-organ="brain"]{color:#6f9dff}}.boards a[data-organ="heart"]{color:#b50f1a}@media(prefers-color-scheme:dark){.boards a[data-organ="heart"]{color:#ff6b73}}.boards a[data-organ="hands"]{color:#9a5400}@media(prefers-color-scheme:dark){.boards a[data-organ="hands"]{color:#ffa733}}.boards a[data-organ="memory"]{color:#6b34d6}@media(prefers-color-scheme:dark){.boards a[data-organ="memory"]{color:#b37eff}}.boards a[data-organ="organism"]{color:#0b6fa4}@media(prefers-color-scheme:dark){.boards a[data-organ="organism"]{color:#5ec7f5}} |
| 137 | +.fresh{margin:0 0 1.2rem;padding:.7rem .9rem .4rem;border:1px solid var(--edge); |
| 138 | + border-radius:11px;background:var(--tint)} |
| 139 | +.fresh>p{margin:0 0 .3rem} |
| 140 | +.fresh .task{border-bottom:0} |
137 | 141 | </style> |
138 | 142 | </head> |
139 | 143 | <body> |
140 | 144 | <header class="hero"><span class="orb"><svg class="mark" viewBox="0 0 48 48" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="24" cy="24" r="20.4"/><path d="M20.2,37.6 L20.2,33.6 C20.2,32.4 19.4,31.6 18.4,30.8 C16.8,29.6 15.8,28.2 15.6,26.6 C15.5,25.6 14.9,25.2 13.9,24.9 C12.6,24.5 12.3,23.7 13.0,22.7 C13.8,21.6 14.5,20.6 14.6,19.4 C15.0,15.4 18.2,12.2 22.4,11.8 C27.2,11.3 31.6,14.6 32.3,19.2 C32.8,22.4 31.6,25.0 30.6,27.0 C29.9,28.4 29.6,29.6 29.6,31.2 L29.6,37.6"/><circle cx="24.6" cy="19.6" r="4.4"/><path d="M22.5,19.7 L24.0,21.3 L26.8,18.1"/><path d="M34.2,16.5 L38.8,16.5 M35.2,21.0 L39.4,21.0 M33.6,25.5 L37.2,25.5"/><g fill="currentColor" stroke="none"><circle cx="40.1" cy="16.5" r="1.4"/><circle cx="40.7" cy="21.0" r="1.4"/><circle cx="38.5" cy="25.5" r="1.4"/></g></svg></span><h1>PyAuto<b>Mind</b><span class="kind">Dashboard</span></h1><div class="rule"></div><p class="tag">Intent. Priority. Flow.</p></header><p class="lede">Every task the Mind is holding. Tap a task's 📋 and its <code>/start_dev</code> command is on your clipboard — paste it into a Claude Code chat to route Claude straight to that task. <a href="#recent">Recent</a> is the same work by date — what has been happening rather than what to do next.</p> |
141 | 145 | <ul class="stats"><li><b>2</b><span>In flight</span></li><li><b>3</b><span>Parked</span></li><li><b>5</b><span>Planned</span></li><li><b>139</b><span>Backlog</span></li></ul> |
| 146 | +<div class="fresh"><p><b>Last updated 2026-08-24.</b> This page is generated from <code>active/</code>, <code>draft/</code> and the registry files, so it is only as current as they are. <code>dashboard_refresh.yml</code> re-renders it on every push to <code>main</code> — that heals a stale page, but not a stale prompt: a task that shipped without its prompt advancing to <code>complete/</code> keeps rendering here as pickable backlog. Reconciling those is the refresh below.</p> |
| 147 | +<div class="task"><button class="copy" data-cmd="Bring the PyAutoMind dashboard up to date. Work in the PyAutoMind checkout: |
| 148 | +
|
| 149 | +1. `git fetch origin && git status`. If behind `origin/main`, `git pull --ff-only` |
| 150 | + before touching anything. |
| 151 | +2. `python3 scripts/lifecycle.py check`, `orphans`, and `index --check`. Fix |
| 152 | + whatever drift they report. |
| 153 | +3. Reconcile finished work — this is the part nothing automates. For every prompt |
| 154 | + under `draft/` and `active/`, decide whether it is already done: a `Status:` |
| 155 | + header saying shipped/superseded/absorbed, a merged PR named in its body, or a |
| 156 | + record in `complete/` whose scope already covers it (check `complete/index.md` |
| 157 | + and grep the dated buckets). Treat a same-subject record as evidence, not |
| 158 | + proof — read both and confirm the scope really matches before retiring a |
| 159 | + prompt. |
| 160 | +4. For each one that IS done, write its record and retire the prompt: |
| 161 | + `python3 scripts/lifecycle.py record <slug> --date <YYYY-MM-DD> --from-file |
| 162 | + <body> --apply`, where <body> ends with `## Original prompt` followed by the |
| 163 | + prompt's full text. Then `git rm` the prompt file and repoint every |
| 164 | + cross-reference to it (grep the slug across `draft/`, `active/`, `epics.md` |
| 165 | + and the registry files). |
| 166 | +5. Regenerate the page: `pyauto-brain intake --apply dashboard`. Never hand-edit |
| 167 | + `dashboard.md` or `dashboard.html` — they are generated. |
| 168 | +6. Commit and push to `main`, so `dashboard_refresh.yml` agrees with the tree. |
| 169 | +
|
| 170 | +Report what you retired, what you deliberately left in the backlog and why, and |
| 171 | +anything you could not verify." aria-label="Copy the Claude command">📋</button><p><b>Refresh this page</b> — reconcile finished prompts, then regenerate</p></div> |
| 172 | +</div> |
142 | 173 | <p class="muted mdsrc"><a href="https://github.com/PyAutoLabs/PyAutoMind/blob/main/dashboard.md">markdown version</a></p> |
143 | 174 | <h2>Start here</h2> |
144 | 175 | <h3>Highest priority <span class="facets">(filed as high) — showing 12 of 14</span></h3> |
|
0 commit comments