subjects / SUB-004
  SUB-004

errands afk queue.

open opened 2026-05-06 · touched 2026-05-06 · m5
#infra#automation#adhd#off-keyboard

# SUB-004 — Errands AFK queue

Story

When Ishai steps away from the keyboard (meetings, lunch, car, breaks), Claude should be able to keep working on pre-baked jobs. Solution: a list of self-contained prompts in vault/00-Errands.md, each with an ID, estimate, prereqs, status. Studio renders them at /errands with a copy button per card. User copies a prompt before stepping away, pastes into chat, walks away, comes back to a result.

Different from Active Board (your work) and Subjects (conversation threads). Errands are my work, queued by you.

Decisions made

  • 2026-05-06. Storage = single markdown file vault/00-Errands.md with ## ERR-NNN · </code> sections. Mirrors AB-NNN / SUB-NNN / M1-M5 ID pattern.</li> <li><strong>2026-05-06.</strong> Each entry needs: estimate (light/medium/heavy), requires (any context), status (ready/running/done/stale), prompt (fenced code block, self-contained text).</li> <li><strong>2026-05-06.</strong> Prompt must be self-contained — no conversation-history dependency. Anyone running it cold should understand.</li> <li><strong>2026-05-06.</strong> Studio <code>/errands</code> page surfaces ready queue with copy buttons. Topbar count + home dashboard tile.</li> <li><strong>2026-05-06.</strong> Name = "Errands" (not AFK Queue, Standby, Off-keyboard). Editorial vibe matches Studio aesthetic.</li> </ul><h2>Open threads</h2> <ul><li class="todo"><input type="checkbox" disabled /> Decide whether failed errands archive automatically or stay as <code>running</code> forever (status drift risk)</li> <li class="todo"><input type="checkbox" disabled /> Decide if errands should auto-mark as <code>done</code> when I report completion in chat, or stay manual</li> <li class="todo"><input type="checkbox" disabled /> Should errands have priority labels too (must/should/could) or is "ready" the only meaningful state?</li> <li class="todo"><input type="checkbox" disabled /> Recurring errands (weekly DS sync, daily ingest) — separate concept or same file with <code>recurring: weekly</code> field?</li> </ul><h2>Raw refs</h2> <ul><li><code>vault/00-Errands.md</code> — 5 seeded errands (ERR-001..005)</li> <li><code>sites/studio/src/pages/errands.astro</code> — gallery page</li> <li>chat: "every time I'm off keyboard you can be doing something that I need you to do"</li> </ul><h2>Last activity</h2> <p>2026-05-06 15:40 — Page shipped, 5 errands seeded. Open threads pending decisions. </p></div> <div style="margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--line); display: flex; gap: 12px; align-items: center; flex-wrap: wrap"> <span style="font-family: var(--mono); font-size: 11px; color: var(--fg-3); text-transform: uppercase; letter-spacing: 0.12em">context-shift</span> <button class="copy-id" data-id="SUB-004"> <svg width="11" height="11" viewBox="0 0 24 24" fill="none"><rect x="9" y="9" width="11" height="11" rx="1" stroke="currentColor" stroke-width="1.4"></rect><path d="M5 15V5h10" stroke="currentColor" stroke-width="1.4"></path></svg> SUB-004 </button> <span style="font-family: var(--mono); font-size: 11px; color: var(--fg-4)">paste this id into chat to resume on this thread</span> </div> </div> </section> </main> <footer class="foot"> <div class="foot-inner"> <span><span class="acc">studio</span> · personal hub for ishai</span> <span>·</span> <span>m5 · personal cockpit site</span> <span style="flex: 1"></span> <span>vault: <span style="color: var(--fg-2)">~/Freelance-work/Sett</span></span> </div> </footer> </div> </div> <script> (function () { var row = document.getElementById('sb-theme-row'); if (!row) return; var html = document.documentElement; function mark() { var current = html.getAttribute('data-theme'); row.querySelectorAll('[data-theme-pick]').forEach(function (b) { b.classList.toggle('is-active', b.getAttribute('data-theme-pick') === current); }); } row.addEventListener('click', function (e) { var btn = e.target.closest('[data-theme-pick]'); if (!btn) return; var t = btn.getAttribute('data-theme-pick'); html.setAttribute('data-theme', t); try { localStorage.setItem('studio-theme', t); } catch (err) {} mark(); }); mark(); })(); </script> </body> </html>