aboutsummaryrefslogtreecommitdiff
path: root/.ai/workflows/work-the-backlog.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-02 01:16:07 -0400
committerCraig Jennings <c@cjennings.net>2026-07-02 01:16:07 -0400
commit263138a696a62f8b4b81867f1fdb49f84dc79f02 (patch)
tree076151d46d3ee1a4d7425c341ac62bc5885a9d1b /.ai/workflows/work-the-backlog.org
parentd379a23953166a2c95d20da5098426cbf49a510f (diff)
downloadrulesets-263138a696a62f8b4b81867f1fdb49f84dc79f02.tar.gz
rulesets-263138a696a62f8b4b81867f1fdb49f84dc79f02.zip
feat(backlog): wire the two callers into work-the-backlog
inbox.org's auto mode regains its "run this batch next?" ask, now chaining into work-the-backlog as an explicit second step after routing: the eligibility query over the queued batch, file-only, paging off, cap 1. Startup and wrap-up still never execute. The no-approvals speedrun lands as the named preset: an explicit ordered list run under autonomous-commit + always-push + paging-on, every approval front-loaded into the seven-step pre-flight. Any phrase containing "speedrun" routes to the preset, with disambiguation notes in no-approvals.org and the index. The finer Q&A mechanics land with Phase 4. I scoped the chain's task set to the queued batch rather than all of todo.org. The ask is "run this batch next?", and a batch-yes running an unrelated higher-priority task would be surprising.
Diffstat (limited to '.ai/workflows/work-the-backlog.org')
-rw-r--r--.ai/workflows/work-the-backlog.org33
1 files changed, 31 insertions, 2 deletions
diff --git a/.ai/workflows/work-the-backlog.org b/.ai/workflows/work-the-backlog.org
index 8b69d8e..787fd4e 100644
--- a/.ai/workflows/work-the-backlog.org
+++ b/.ai/workflows/work-the-backlog.org
@@ -15,7 +15,10 @@ This workflow owns the execution logic — eligibility gate, defer checklist, qu
* When to Use This Workflow
-Invoked by its callers, not usually by phrase. The caller wiring (the auto-loop chain step and the speedrun preset's trigger phrases) lands with the feature's Phase 2.
+Invoked by its two callers, or directly by phrase:
+
+- *Speedrun triggers:* "speedrun", "no approvals speedrun", "speedrun these: <task set>" — run the no-approvals speedrun preset (below). The word "speedrun" always routes here, even when the phrase also says "no approvals": plain =no-approvals.org= is the general session mode; the speedrun is this workflow's preset over an explicit task set.
+- *Loop caller:* =inbox.org= auto mode chains here after its routing (below). Not phrase-triggered.
Manual fallback: "work the backlog" / "work the backlog with <task set>" — gather the three inputs below (ask for whichever are missing, defaulting to file-only mode; default cap is the list length for an explicit set, 1 for a query) and run the loop.
@@ -123,6 +126,32 @@ notify alarm "Page" "<project>: <N> done, <M> remaining — <one-line summary>"
Each task outcome appends one JSONL record to =.ai/metrics/work-the-backlog.jsonl= (git-tracked). Logging is a side effect that never alters execution. The record schema lands with the feature's Phase 5.
+* Caller: the inbox auto-loop
+
+=inbox.org= auto mode chains here as an explicit second step *after* its routing completes — never as a phase inside inbox processing. When a cycle files new items and Craig answers "run this batch next?" with yes, auto mode invokes this workflow with:
+
+- *Task set:* the eligibility query over the queued/filed items — status =TODO= + =:solo:= per the scheme header, priority-ordered.
+- *Session mode:* =file-only=, paging off. (A project whose waiver opts the loop into commits can override once the Phase 3 waiver read lands.)
+- *Cap: 1.* The highest-priority eligible candidate runs, gets recorded, and the loop's next tick (or the next yes) continues from there.
+
+The loop has no human at kickoff of each task, so a needs-quick-decisions task defers with a =VERIFY= — the pre-flight Q&A is a speedrun capability, not a loop one. Startup and wrap-up never invoke this workflow.
+
+* Preset: the no-approvals speedrun
+
+The named preset is a label for one flag combination, not a second code path: *explicit ordered list + =autonomous-commit= + always-push + paging-on*, with every approval front-loaded into a single pre-flight step. "No approvals" means all input first, then hands-off — not no input ever. =autonomous-commit= still requires the project's commit waiver; without it the preset degrades to =file-only= and says so.
+
+When Craig names a task set and says "speedrun":
+
+1. *Gather* the named task set.
+2. *Scope-read and classify* each task against the eligibility gate + defer checklist: *ready* (clears everything), *needs-quick-decisions* (one or two upfront-answerable questions — checklist item 1 or 4), or *drop* (data-loss/irreversible, or deliberation that isn't a quick question).
+3. *Order* the list — priority, then the author's ordering / =:next:=.
+4. *Intro the work* — present the ordered plan: what will run, what was dropped and why, and the batched questions for the needs-quick-decisions tasks.
+5. *Craig answers each question or says "skip this"* — a skip removes the task (recorded =dropped-by-craig=); an answer is recorded so implementation works from the decision, not a guess.
+6. *Run the finalized list autonomously* — no further approvals until done. Cap = the list length (the human bounded the set by naming it), still one commit per logical change, always-push per the project's flow.
+7. *End-of-set page* with completed + remaining + skipped.
+
+The finer pre-flight mechanics (classification guidance, the answer-recording contract, the =VERIFY= filing shape) land with the feature's Phase 4.
+
* Common Mistakes
1. *Implementing a =VERIFY= or =DOING= task.* The gate is status =TODO= only — a =VERIFY= exists precisely because Craig's input is pending.
@@ -142,4 +171,4 @@ Refine as the dogfooding signal arrives — the metrics log and the corrections-
* History
-Created 2026-07-02 as Phase 1 of the autonomous-batch execution spec, reconciling the inbox-zero "Phase E" proposal and the =.emacs.d= speedrun proposal into one execution loop. The auto-inbox-zero execute step in =inbox.org= reverted to routing-only in the same change so this file is the loop's only home.
+Created 2026-07-02 as Phase 1 of the autonomous-batch execution spec, reconciling the inbox-zero "Phase E" proposal and the =.emacs.d= speedrun proposal into one execution loop. The auto-inbox-zero execute step in =inbox.org= reverted to routing-only in the same change so this file is the loop's only home. Phase 2 (same day) wired both callers: the auto-loop chain step and the speedrun preset's trigger phrases.