aboutsummaryrefslogtreecommitdiff
path: root/claude-templates
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-28 03:31:59 -0500
committerCraig Jennings <c@cjennings.net>2026-05-28 03:31:59 -0500
commitaf9316c03a8699ddd49e9206578da86c5e8b9347 (patch)
tree2a616648aa90c0828e1d07006d08ac4540d70cbe /claude-templates
parent684b27360320868ce2c24b4513c1f806ac4b6b7e (diff)
downloadrulesets-af9316c03a8699ddd49e9206578da86c5e8b9347.tar.gz
rulesets-af9316c03a8699ddd49e9206578da86c5e8b9347.zip
chore(session): snapshot WIP, session-context, and inbox arrivals
Bundles end-of-session state across three concerns. claude-templates/.ai/workflows/open-tasks.org: in-flight restructure of Next Mode into a two-question output (cascade + friction filter), +62 lines. Separate from the iteration-history work that landed in 55adf6e and 684b273. .ai/session-context.org: live session record covering startup through the iteration-history backfill. Captures the no-approvals mode and the full spec-review/spec-response cycle on the working draft. inbox/: five new arrivals from this session: four pearl notes (pattern catalog, prompts-ux, spec-review implementation, prompt collapse) plus one .emacs.d note (whats-next + task-audit). A sixth file, PROCESSED-prefixed, represents mid-handling state on the open-tasks friction-cascade suggestion from earlier in the session.
Diffstat (limited to 'claude-templates')
-rw-r--r--claude-templates/.ai/workflows/open-tasks.org62
1 files changed, 46 insertions, 16 deletions
diff --git a/claude-templates/.ai/workflows/open-tasks.org b/claude-templates/.ai/workflows/open-tasks.org
index b07f352..7143aea 100644
--- a/claude-templates/.ai/workflows/open-tasks.org
+++ b/claude-templates/.ai/workflows/open-tasks.org
@@ -118,61 +118,89 @@ For tasks Craig says are NOT done, leave them as-is.
** Next Mode
-Apply the prioritization cascade in order. Stop at the first matching step:
+Next Mode answers two questions in one output: "what matters most right now?" (the cascade, importance/urgency) and "what shape of task can I actually finish?" (the friction filter, effort + autonomy). The user picks the row that matches the state of their day.
-*** 1. In-Progress Tasks
+*** Step 1 — Cascade recommendation (importance/urgency)
+
+Apply the prioritization cascade in order. Stop at the first matching step. This is the importance/urgency answer.
+
+**** 1. In-Progress Tasks
- Look for tasks marked =DOING= or partially complete.
- *If found:* Recommend that task (always finish what's started).
- *If user declines:* Continue to next step.
-*** 2. Active Reminders
+**** 2. Active Reminders
- Review notes.org Active Reminders (already in the Phase A snapshot).
- *If found:* Recommend reminder task.
- *If user declines:* Add to =todo.org= per Phase B (if not already there), then continue.
-*** 3. Deadline-Driven Tasks
+**** 3. Deadline-Driven Tasks
- Scan =todo.org= for tasks with explicit deadlines.
- *If found:* Recommend the task with the closest deadline.
- *If none:* Continue to next step.
-*** 4. V2MOM Method Order (if applicable)
+**** 4. V2MOM Method Order (if applicable)
If =todo.org= is structured with V2MOM methods:
- Method 1 priority A tasks first.
- Then Method 2 priority A, Method 3 priority A, etc.
- Then Method 1 priority B, Method 2 priority B, etc.
- Continue pattern through priorities C and D.
-*** 5. Simple Priority Order
+**** 5. Simple Priority Order
If =todo.org= is a flat list:
- Evaluate all priority A tasks, pick most important.
- If no priority A, evaluate priority B tasks.
- Continue through priorities C and D.
-*** 6. All Tasks Complete
+**** 6. All Tasks Complete
If no tasks remain: report "All done — no open tasks in =todo.org=."
-*** Handling Multiple Tasks at Same Level
+**** Handling Multiple Tasks at Same Level
When multiple tasks share priority/method position, pick one based on:
1. *Blocks other work* — dependencies matter.
2. *Recently discussed* — mentioned in recent conversation.
3. *Most foundational* — enables other tasks.
-4. *If truly uncertain* — show 2-3 options and let Craig choose.
+4. *If truly uncertain* — show 2-3 options and let the user choose.
+
+*** Step 2 — Friction filter (effort + autonomy)
+
+Independently of the cascade, scan the open-task set for tasks tagged =:quick:= and =:solo:=. Build three ranked picks:
+
+- *Quick + solo* — the top task carrying BOTH tags. Smallest effort × highest autonomy = lowest friction. Ideal for a 20-minute window or a flagging-energy moment.
+- *Quick only* — the top task carrying =:quick:= but not =:solo:=. Small but needs the user's preference / hardware / sign-off.
+- *Solo only* — the top task carrying =:solo:= but not =:quick:=. Bounded scope that Claude can finish end-to-end, but not a short job.
+
+Within each row, pick a single task per the same-level tie-breakers above (blocks-other-work, recently-discussed, most-foundational). If a row has no tasks, omit it rather than padding.
+
+The friction filter is the override path. When the cascade winner is partially blocked, hardware-dependent, or simply too large for the user's current state, one of the friction rows is what they pick instead.
*** Output Format
-Keep the recommendation concise but informative:
+Pair the cascade recommendation with the friction block beneath it. Recommendation-at-item-1 convention applies to the friction rows — quick+solo first, since it's the strongest low-friction pick.
#+begin_example
-Next: Fix org-noter reliability (Method 1, Priority A, 8/18 complete)
-Reason: Blocks daily reading/annotation workflow
+Cascade recommendation (importance/urgency):
+- Fix org-noter reliability — [#A], Method 1, 8/18 complete, blocks daily reading/annotation
+
+If you want lower friction instead:
+1. Quick + solo: Bump linter config — [#C] :quick:solo:, ~15 min
+2. Quick: Confirm new dirvish setup — [#B] :quick:, needs your eye
+3. Solo: Refactor config-utilities — [#B] :solo:, bounded but multi-hour
#+end_example
-Include:
+Include for each row:
- Task name / description.
-- One-line reasoning (which cascade step matched and why).
-- Progress indicator (for V2MOM-structured todos).
+- Priority + tag cluster.
+- One-line reasoning. For the cascade row, name which cascade step matched. For friction rows, an effort hint when one is obvious.
+- Progress indicator (for V2MOM-structured todos) on the cascade row only.
+
+**** Edge cases
+
+- *Empty friction block.* If no =:quick:= or =:solo:= tagged tasks exist in the open set, omit the friction block entirely. Present only the cascade recommendation.
+- *Dedupe.* If the cascade recommendation IS the same task as one of the friction rows (e.g. it's =:quick:solo:= and also won the cascade), show it once at the top with both labels. Don't list it twice.
+- *Decline behavior.* If the user declines the cascade recommendation, drop straight to the friction block as the natural next prompt. Do not fall through to lower-cascade-tier tasks; the friction filter IS the override.
* Resolving a Task — Format Reference
@@ -204,8 +232,10 @@ Key elements:
4. *Creating =todo.org= entries for pure informational reminders* — use judgment in Phase B.
5. *Using a table for the task list* — Craig prefers flat bulleted lists in list mode.
6. *Skipping the cascade order in next mode* — the cascade exists to override subjective choice with objective criteria; respect it.
-7. *Recommending more than one task in next mode* — be decisive. Only show 2-3 if truly uncertain after applying the same-level tie-breakers.
+7. *Recommending more than one task in the cascade row* — be decisive on the cascade. The friction block is a 3-row choice by design, but the cascade row is single-pick.
8. *Re-querying =todo.org= during Phase C* — the snapshot from Phase A is canonical; don't re-read.
+9. *Skipping the friction block when the cascade winner isn't actionable.* The friction filter is the override path; don't fall through to lower-cascade-tier tasks if a =:quick:= or =:solo:= task is what's actually needed.
+10. *Padding the friction block when a row is empty.* If no task carries both =:quick:= and =:solo:=, omit that row entirely. Don't promote a =:quick:=-only task into the =:quick:solo:= slot.
* Living Document