diff options
| -rw-r--r-- | claude-rules/commits.md | 2 | ||||
| -rw-r--r-- | voice/SKILL.md | 4 | ||||
| -rw-r--r-- | voice/references/voice-profile.org | 4 |
3 files changed, 8 insertions, 2 deletions
diff --git a/claude-rules/commits.md b/claude-rules/commits.md index 412b610..2ce871e 100644 --- a/claude-rules/commits.md +++ b/claude-rules/commits.md @@ -414,7 +414,7 @@ conversation (e.g. "commit this as `chore: bump version`", "reply just `/review-code` in Step 1 still runs when it applies; Phase 0 of that skill handles trivial diffs, and acknowledgment-only replies don't need it at all. -**Single-skill gate.** Each of the three subflows above runs `/voice personal` before printing the draft — 41 patterns covering AI-writing signs, universal good-writing rules, Craig's voice patterns, and the three artifact-mechanics patterns (first-person rewrite, public-artifact scope flag, praise/correction asymmetry). Publish artifacts (commits, PR titles + bodies, PR review comments) always use personal mode; the `.ai/`-tracking check at the top of Step 2 decides only whether the approval gate fires, not which patterns run. Running the skill is mandatory; the printed draft must have been through it. When the user asks mid-flow for "the voice pass" on an in-progress draft, that means re-run the full 41-pattern walk — not a subset. Always state that the skill ran when announcing the printed draft (e.g. "/voice personal — 41 patterns walked"). Skipping the pass without flagging it is a defect. +**Single-skill gate.** Each of the three subflows above runs `/voice personal` before printing the draft — 41 patterns covering AI-writing signs, universal good-writing rules, Craig's voice patterns, and the three artifact-mechanics patterns (first-person rewrite, public-artifact scope flag, praise/correction asymmetry). Publish artifacts (commits, PR titles + bodies, PR review comments) always use personal mode; the `.ai/`-tracking check at the top of Step 2 decides only whether the approval gate fires, not which patterns run. Running the skill is mandatory; the printed draft must have been through it. When the user asks mid-flow for "the voice pass" on an in-progress draft, that means re-run the full 41-pattern walk — not a subset. Always state that the skill ran when announcing the printed draft (e.g. "/voice personal — 41 patterns walked"). Skipping the pass without flagging it is a defect. The terse/omit-needless-words cut (pattern #38) is the *last* thing the skill does before the draft is printed: read each sentence and cut it in half, keeping only what changes meaning. The draft the user first sees must already be terse — if they have to ask for an Orwell pass after seeing it, the pass was skipped. **If `/voice` is unavailable.** The skill should be installed (it ships with rulesets), but a fresh or partial environment may not have it. Don't let that block the publish, and don't skip the discipline silently. Walk the same patterns inline — they're documented in the skill, and the publish flow already names which ones matter (first-person rewrite, semicolons → periods/commas, contractions, sentence-split, felt-experience cut, fragment rewrite, terse cut, the pattern #39 public-artifact scope flag, plus the AI-writing and good-writing passes). Then state that the skill was unavailable and the pass was applied by hand (e.g. "/voice unavailable — patterns walked inline"). The gate is the pattern walk, not the tooling; the skill is the convenient way to run it, not the only way. Flag the missing skill so it gets installed. diff --git a/voice/SKILL.md b/voice/SKILL.md index 1ed40a4..664a6a6 100644 --- a/voice/SKILL.md +++ b/voice/SKILL.md @@ -355,7 +355,8 @@ See `voice/references/voice-profile.org` §41 for problem, basis, examples, and - Maintains appropriate tone for the register 5. Present a draft humanized version. 6. Run a final anti-AI pass: prompt "What makes the below so obviously AI generated?" Answer briefly with remaining tells. Then prompt "Now make it not obviously AI generated" and revise. -7. Present the final version. +7. **Terse pass — mandatory and last (prose + personal modes).** Before presenting any draft, walk pattern #38 again as a standalone final action: read each sentence and try to cut it in half, keeping only the words that change meaning. Run it on its own here, not folded into step 3's walk — it is the most-skipped pattern and the bloat it catches is the first thing a reader notices, so a draft that cleared the other 40 patterns still routinely runs a third too long. A draft that has not been through this pass is not ready to show; presenting one is a defect in the same class as skipping the skill. General mode skips this step — academic and third-party registers keep their transition markers. +8. Present the final version. ## Output Format @@ -366,6 +367,7 @@ Provide: 4. **Final rewrite** — revised after the anti-AI audit 5. **Pattern-39 warnings** (personal mode only) — any public-artifact scope flags 6. **Summary of changes** — list of patterns that fired (e.g., "patterns 4, 7, 13, 22 in general mode") +7. **Terse pass** (prose + personal) — state that the mandatory final #38 cut ran on the draft being presented. ## Full Example — Personal Mode diff --git a/voice/references/voice-profile.org b/voice/references/voice-profile.org index 1490fae..ab37ba1 100644 --- a/voice/references/voice-profile.org +++ b/voice/references/voice-profile.org @@ -1232,6 +1232,9 @@ Prose and personal modes. General mode keeps the softer §22 because academic re *** Rule Two cuts. First strip the soft rhetorical padding ("worth noting", "it's important to understand", "as you can see", "needless to say", "obviously", "of course", "in essence", "fundamentally"). Then run the general omit-needless-words sweep the padding list only samples: read each sentence and cut or collapse every word and clause that can go without losing meaning, not only the named phrases. Forcing test, per sentence: try to delete half of it and keep only what changes meaning. +*** Execution position (prose + personal) +§38 is not just one pattern in the walk — it is the mandatory *last* pass before any draft is presented. The SKILL.md Process makes it an explicit standalone final step, run after every other pattern. The reason is empirical: a draft that cleared the other 40 patterns still routinely runs a third too long, because ordinary verbosity matches no named trigger and the categorical detectors come back clean while the text is still bloated. Folded into the general walk, §38 gets glossed as a wordlist match. As a separate final step it gets the real per-sentence "delete half of it" sweep. A public draft shown without this pass is a defect in the same class as skipping the skill entirely. + *** Problem Tier 1 omit-needless-words (§26) catches rigid offenders ("the fact that", "in order to"). The original §38 added a named padding list ("worth noting", "obviously"). But a draft can clear both and still run a third too long, because ordinary verbosity matches no named trigger: "that already merged via" for "landed on", "with it still in the PR, the same fix lands" for "keeping it re-lands the fix", restated subjects, throat-clearing lead-ins, clauses the reader already has. Those slip the categorical detectors silently — the walk comes back clean while the text is still bloated. So §38 is a real walk step, not a wordlist match: after the named padding, read each sentence and try to delete half of it. Academic registers keep the transition markers, so the aggressive cut stays prose and personal only. @@ -1267,6 +1270,7 @@ Two passes. (1) Named padding phrases: "worth noting", "it's important to unders - Original SKILL.md entry: rhetorical-padding cut for Craig's authored prose. - 2026-05-29: migrated to this file as the canonical home per the pairing rule. - 2026-06-02: generalized from a named-padding-list detector to a real omit-needless-words walk step. A PR-review comment cleared the §22/§23/§26/§38-padding patterns yet still ran a third too long on ordinary verbosity; the wordlist matched none of it. Renamed "Rhetorical Padding" to "Omit Needless Words", added the per-sentence "delete half of it" forcing test and the generic-verbosity example pair above. Craig's call. +- 2026-06-05: elevated to the mandatory final pass in the SKILL.md Process (new step 7). The pattern existed and was being walked, but got glossed as one of 41; a commit message went out needing two manual Orwell-walk requests before it read terse. Made it an explicit standalone last step that runs before any draft is shown, so the terse cut happens before Craig sees the draft rather than after he asks for it. Added the "Execution position" subsection above. Craig's call. ** §39 Public-Artifact Scope Check |
