aboutsummaryrefslogtreecommitdiff
path: root/inbox
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-28 08:23:58 -0500
committerCraig Jennings <c@cjennings.net>2026-05-28 08:23:58 -0500
commite8702d211da9b77f4600f9117859b3823ca62c2f (patch)
treed4595e233d1e339183cfb7c2b2d3d2a3d394e26a /inbox
parent4a7beecc11438930448281ae3dacebaf78526010 (diff)
downloadrulesets-e8702d211da9b77f4600f9117859b3823ca62c2f.tar.gz
rulesets-e8702d211da9b77f4600f9117859b3823ca62c2f.zip
feat(workflows): promote no-approvals.org to template, merge pearl framing
Pearl independently built its own no-approvals workflow (handoff in this morning's inbox) and asked rulesets to take the best from both. That's cross-project signal that the workflow earns a place at the template tier. Promoted from =.ai/project-workflows/= to =claude-templates/.ai/workflows/= with a mirror under =.ai/workflows/=. INDEX entry added under "Tools and meta" listing the full set of trigger phrases. Merged from pearl's draft: the prominent "What's Suspended" / "What Stays On" split (same content as the prior "Contract" section, easier to scan), wider trigger phrases (the project-only version had fewer), the mode-resets-when-Craig-switches-topics guard, an explicit destructive-action carve-out as its own bullet rather than buried in the "real question" section, and a subagent-review-gate callout. Kept from the rulesets version: the Session Log update emphasis between items, the real-question include/exclude lists, and the don't-auto-wrap-up guard. A History section at the bottom records the merge for future archaeology.
Diffstat (limited to 'inbox')
-rw-r--r--inbox/2026-05-28-0814-from-pearl-no-approvals.org98
1 files changed, 0 insertions, 98 deletions
diff --git a/inbox/2026-05-28-0814-from-pearl-no-approvals.org b/inbox/2026-05-28-0814-from-pearl-no-approvals.org
deleted file mode 100644
index e61b69d..0000000
--- a/inbox/2026-05-28-0814-from-pearl-no-approvals.org
+++ /dev/null
@@ -1,98 +0,0 @@
-#+TITLE: No-Approvals Mode
-#+AUTHOR: Craig Jennings & Claude
-#+DATE: 2026-05-28
-
-* Heads-up from pearl (2026-05-28)
-
-Craig flagged that he plans to use a "no-approvals" mode and the rulesets project is already building one. He drafted this in pearl as a project-workflow (=.ai/project-workflows/no-approvals.org=) and asked that a copy come here so rulesets can compare with whatever is in flight there and take the best from both.
-
-Source path in pearl: =/home/cjennings/code/pearl/.ai/project-workflows/no-approvals.org=.
-
-Key points Craig dictated, in his own framing:
-- Explicit way to signal there are no approval gates until he turns them back on.
-- Don't stop at any approval gate. Finish each task fully, then start the next. Continue until a question arises or the next work item is unknown.
-- Triggers he'll use: queuing several tasks in =todo.org= then "do all =:quick:solo:= with no-approval", or just "no-approval" / "no approvals" / "no need for approval gates" in a command.
-- Engineering discipline still applies. He named specifically: =/code-review= before every commit and =/voice personal= on every commit message (he flagged this as by far the most common). The rest of CLAUDE.md / commits.md / testing.md / verification.md still binds.
-
-Action: review against rulesets' draft, merge the better framing of each section, decide where the canonical version lives (rulesets' workflow vs claude-rules vs both).
-
-* Overview
-
-A mode Craig switches on to drop the approval gates between work items, so a pre-agreed batch of tasks runs straight through without "OK to proceed?" interruptions. Stays on until Craig turns it off, until a genuine question arises, or until the queue runs out.
-
-The point is throughput on work where the approval has already been earned upfront — a queue of tagged tasks Craig has already triaged, a "do all the =:quick:solo:= ones" sweep, a multi-step refactor with no design calls left. Approval gates are valuable when judgment is uncertain. They are friction when the decision is already made.
-
-This is *not* a license to skip the engineering discipline that keeps work shippable. Code review, voice pass, testing, and verification all stay on. The gates this turns off are the *interaction* gates — "I drafted a commit message, approve?" / "Plan looks like X, OK to start?" / "Ready to push?"
-
-* When to Use This Workflow
-
-Craig activates it with any of:
-- "no-approval" / "no approvals"
-- "no need for approval gates"
-- "do all <selector> with no-approval" (e.g. "do all =:quick:solo:= tasks with no-approval")
-- Queuing several tasks in =todo.org= followed by any phrase above
-- Any equivalent phrasing that signals he does not want to be re-asked between items
-
-Deactivates when:
-- Craig says it is back on (any explicit "approvals back on" signal)
-- A new top-level user message arrives that does not reaffirm no-approvals — assume the mode resets when Craig switches topics
-- A genuine question or unknown next step is hit — return control to Craig and exit the batch
-
-* What's Suspended
-
-Approval gates that step the workflow back to Craig for an "OK to proceed?" check:
-
-- The commit-message gate in =commits.md= Step 2 (draft inline, get approval, commit). Print the final commit message inline, then commit immediately. No "approve / request changes / open in editor" prompt.
-- The PR-description gate in the same flow. Print the final body, then create the PR.
-- The PR-review-reply gate. Print the final reply, then post.
-- "Ready to start?" / "Plan looks like X, proceed?" gates before implementation work begins.
-- "Move on to the next task?" gates between items in a queued batch.
-- Per-task summary prompts at the end of each item. Give one short result line and proceed to the next.
-
-* What Stays On
-
-Engineering discipline gates that protect quality, not Craig's interaction time:
-
-- =/code-review= against the staged diff before every commit. Critical and Important findings still block. Minor findings still surface. No "proceed anyway" override unless Craig has given it explicitly for this batch.
-- =/voice personal= against every publish artifact (commit messages, PR titles + bodies, PR review comments). The 41-pattern walk happens. The printed result just does not wait for approval.
-- The full test suite + lint + compile before commit (=verification.md=).
-- Fetch-and-reconcile in =commits.md= Step 0.
-- Any destructive or irreversible operation per =CLAUDE.md= "Executing actions with care". Those need explicit consent regardless of the mode — force push, =rm -rf=, dropping a column. No-approvals is for *interaction* gates, not destructive-action consent.
-- Anything specifically requiring Craig's design call, preference, or sign-off. Stop and ask. The batch ends here.
-- Subagent review-gate cadence (=subagents.md=). Review each subagent's output before the next dispatch.
-
-* When to Break Out of the Batch
-
-Even with no-approvals on, return control to Craig immediately if:
-
-- A genuine ambiguity surfaces (multiple ways to do the next step, no clear default).
-- A finding suggests the user's stated goal is wrong (e.g. the "fix" reveals the bug is elsewhere).
-- =/code-review= surfaces a Critical or Important finding the batch cannot resolve safely.
-- Tests fail in a way that needs Craig's judgment.
-- The queued work is done and no obvious next item exists.
-- Any guideline above says "stop and ask" — that wins over no-approvals.
-
-When breaking out, say so explicitly: "Pausing no-approvals batch — <reason>. Decision needed: <question>."
-
-* Activation Pattern
-
-When Craig invokes no-approvals (with one of the phrases above):
-
-1. Acknowledge the mode is on and name the scope ("no-approvals for the =:quick:solo:= tasks; stays on until done or until I hit a question").
-2. Identify the queue — the tasks named explicitly, or the org-tag selector, or "the next N tasks in todo.org".
-3. Walk them in order. For each: do the work, run =/code-review= + =/voice personal= + tests as required, commit, move to the next.
-4. Brief one-line status between items ("Task X done, on to Y").
-5. At the end of the queue: summarize what shipped, confirm batch is complete, return control.
-
-* Common Mistakes
-
-1. *Bypassing =/code-review= or =/voice personal=* — these are not approval gates, they are quality gates. They stay on.
-2. *Plowing through a Critical finding* — Critical and Important findings still block. The batch pauses, the issue gets fixed, the batch resumes.
-3. *Skipping destructive-action consent* — force push, =rm -rf=, dropping production data still need explicit consent per =CLAUDE.md= "Executing actions with care". No-approvals does not cover these.
-4. *Continuing past genuine ambiguity* — if there are two reasonable ways forward, stop and ask. The batch's purpose is to skip *redundant* approvals, not to invent decisions Craig did not pre-agree to.
-5. *Forgetting to surface progress* — Craig still wants the one-line status between items so he knows what is happening.
-6. *Carrying no-approvals across sessions or unrelated user messages* — assume it resets when the work it was scoped for finishes, or when Craig moves to a different topic.
-
-* Living Document
-
-If a recurring pattern emerges (e.g. Craig wants the one-line status to include the commit SHA, or wants per-task tests skipped because the suite runs once at the end), fold it in. The mode is shaped by use — refine as the dogfooding signal arrives.