| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
| |
artifact budgets
Two patterns kept failing in practice despite being documented (#40 praise asymmetry and the #38 terse cut), so I made the walk verifiable and closed the content gap behind tangled review text.
The high-recurrence set (#13, #37, #38, #40, #42) now gets per-pattern attestation receipts. The anti-AI audit runs after the terse pass so the audited text is the text that ships. Short personal-mode artifacts get a compact output format, and a write-back step puts the voiced text in the file the publish flow posts from.
Four patterns are new: #42 finding stems (one claim per sentence in review findings), #43 single-sentence paragraph cadence, #44 parenthetical asides, #45 declarative register marker. #37 exempts verdict formulas. #40 covers verification narration. #13 and #33 carry the self-discipline framing. A per-artifact budgets table makes terse a checkable budget instead of an adjective.
The profile gains paired entries with the approved worked examples, and commits.md plus no-approvals.org drop hardcoded pattern counts so the next addition doesn't re-drift them.
|
| |
|
|
|
|
|
|
| |
Pattern #38 (omit needless words) was one of 41 walked mid-list, so it got glossed as a checkbox instead of the real "cut it in half" sweep. A commit message went out today needing two manual Orwell-walk requests before it read terse, even though /voice personal had run.
The rule already said to cut hard. The gap was position. Buried in the middle of the walk, #38 lost to the categorical detectors that come back clean while the text still runs a third too long.
I moved it to an explicit standalone last step in the SKILL.md Process, run after every other pattern and right before the draft is shown. Now the first draft the user sees is already terse, not terse only after they ask. Profile §38 gains an execution-position rule and a history entry. The commits.md publish gate points at #38 as the last pass.
|
| |
|
|
| |
§38 was a wordlist match against named padding ("worth noting", "obviously"). A PR-review comment cleared that list and still ran a third too long on ordinary verbosity the list never names: "is the same change that already merged via" for "landed on", restated subjects, throat-clearing lead-ins. So §38 becomes two passes. The named list runs first, then a real per-sentence sweep whose forcing test is to delete half the sentence and keep only what changes meaning. I renamed "Rhetorical Padding" to "Omit Needless Words" and added a generic-verbosity example pair that carries no padding word. I updated SKILL.md and voice-profile.org together per the pairing rule.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Backfills the remaining 40 patterns into the paired source-of-truth
shape Pattern 13 demonstrated in 296b2e6. Each pattern in SKILL.md
now collapses to a mode-tagged header plus a one-line Rule plus a
profile pointer. The full Problem, Basis, Before/After, Detection,
and History land in the corresponding voice-profile.org §N section.
Sizes:
- voice/SKILL.md: 678 to 437 lines.
- voice/references/voice-profile.org: 134 to 1311 lines.
- Net: 1297 insertions, 360 deletions across both files.
Mode-tag conventions: general-only patterns (#1-12, 14-16, 18-31)
tagged [general]. Prose+personal patterns (#33-38, 41) tagged [prose
· personal]. Personal-only patterns (#32, 39, 40) tagged [personal].
Pattern 13 keeps its dual-mode tag (general overuse-reduction vs
prose/personal zero-tolerance).
Corpus-confirmed Basis entries cite the Phase 1 measurements for
patterns 7, 17, 22, 32, 33, 34, 38. All other patterns are tagged
observation-derived with the appropriate source (Wikipedia Signs of
AI Writing, Strunk and White, Orwell, Plain English, Garner, or
Craig's commits.md / interaction.md rules).
Seven em-dashes were caught in the new SKILL.md Rule lines during a
post-migration spot-check and rewritten as periods or colons. The
em-dash on Pattern 13's Rule line stays because the rule references
the symbol literally.
Known follow-up: the profile's prose sections (Problem, Basis,
History) still contain em-dashes carried over from the original
SKILL.md Problem paragraphs. They don't break the loading model but
they do violate the rule the file documents. A separate hygiene pass
can scrub them. The em-dash sweep was not bundled here so the
migration shape stays the deliverable.
Bulk migration was dispatched to a subagent with strict format
requirements. Spot-checks of patterns 1, 13, 17, 32, and 41
confirmed the shape lands correctly across all four mode-tag
conventions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
source-of-truth, Pattern 13 worked example
This is option C from the structural-split proposal. SKILL.md becomes
the thin rule-set. voice-profile.org becomes the canonical home for
rationale, basis, examples, and per-pattern history. Pattern 13 is
migrated as the worked example to confirm the form. The remaining 40
patterns are scheduled for a backfill pass.
SKILL.md gains a Source of Truth section near the top stating the
pairing rule. Every change to a pattern must land in both files. A
SKILL.md edit without a profile update is incomplete. A profile
update without a SKILL.md edit is fine.
Pattern 13 in SKILL.md collapses to a single Rule line plus mode tags
plus a pointer to voice/references/voice-profile.org §13. The Problem
paragraph, the Mode-dependent-strength paragraph, the Note-on-basis
paragraph, and the Before/After examples all move to the profile.
voice-profile.org gains a How this combines with SKILL.md preamble
that names the pairing rule explicitly. Pattern §13 lands with all
the migrated content plus a History section recording the prior
commits (original SKILL.md entry, the 2026-05-26 prose-mode addition
in 4fac2a0, the 2026-05-29 basis note in c3cf9a5, and this
migration).
If Craig confirms the shape, the next pass backfills patterns 1
through 12 and 14 through 41 in the same form.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Three rationale-honesty edits land. Craig confirmed (vacation chat
2026-05-29) that the em-dash and semicolon zero-tolerance rules are
intentional self-discipline, not codified habit. He also confirmed
he's trying to use "comprehensive" sparingly despite its high natural
rate in his prose.
Pattern 13 (em-dash) gained a Note-on-basis paragraph naming the
3.49-per-1000-words corpus rate. The note states the rule is
self-discipline, not habit-reflection. The zero-tolerance directive
itself is unchanged.
Pattern 33 (semicolons) gained the same shape. The note names the
3.16-per-1000-words rate. The directive is unchanged. One em-dash in
the existing Problem paragraph that contradicted the rule was
replaced with a comma.
Pattern 7 (AI vocabulary watch-list) gained "comprehensive" as an
entry. A note explains the rationale. The corpus shows 42 uses vs
zero-or-one for every other watch-word, but Craig is consciously
reducing his use, so flag-and-suggest is the right action.
Three of the six proposed deltas from voice-profile.org are now
applied. The other three (new positive patterns: single-sentence
paragraph cadence, parenthetical density, declarative-default
register) await Craig's call.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
fragments, formatting
The personal voice patterns only ran for commits and PRs, so the emails and documents I author never got my actual writing voice. General mode deliberately skips them. I added a third mode, prose, that applies my voice patterns to prose I write or send without dragging in the publish-artifact mechanics that misfire on free text.
The modes now nest. General (#1-31) handles anyone's prose, prose adds my voice patterns (em-dash zero-tolerance, contractions, semicolons to periods, sentence-split, felt-experience cut, fragment rewrite, terse-cut, no-emphasis-formatting), and personal adds the three artifact-mechanics patterns on top (first-person rewrite, public-artifact scope flag, praise/correction asymmetry). Those three stay personal-only because they assume a commit or PR: a document is legitimately third-person, a journal has no public-scope concern, and praise/correction asymmetry is a PR-review rule.
Three gaps closed along the way. #13 (em-dash) was "use fewer". It's now zero-tolerance in prose and personal modes, and the rule holds inside examples and quoted text, not just running prose. #37 (every prose sentence needs a subject and a verb) was locked to personal mode. It now applies to my prose too. And #41 is new: I make points with words, not bold or italics or underscores, so emphasis markup gets rephrased so the stress lives in the wording.
I updated commits.md to match. The publish flow still uses personal mode, but the pattern count is now 41 and the personal-only set is the three artifact-mechanics patterns.
|
| |
|
|
|
|
| |
Voice gains pattern #40: strip the "why" from praise on an approve, since the author already knows why their change is good and the justification reads as flattery. Always keep the why on a finding or change-request, delivered gently. Behavior only changes when the reason lands.
review-code now runs a praise/correction gate before posting any summary, and its inline-comment guidance is tightened so the why-it-matters survives the brevity cuts. The reviewer states the stakes (a user hits a 500, a screen reader announces nothing), not just the mechanism.
|
| |
|
|
| |
Added more clichés to pattern #29 (keep it loose, touch base, circle up, hit the ground running, move the needle, on the same page, no-brainer, win-win, and others) and a note that a casual or conversational register isn't a license to keep one — cut it there too. Prompted by "keep it loose" slipping through as "acceptable casual," which is exactly the miss the note guards against.
|
|
|
I built voice as a single skill that walks 39 numbered prose-editing patterns. The first 25 patterns come straight from the existing humanizer skill (Wikipedia's Signs of AI Writing). Patterns 26-31 add universal good-writing rules from Strunk & White, Orwell, the Plain English Campaign, and Garner — long-word → short-word, active-over-passive, comma splices, cliché flag, jargon-fragment-in-prose rewrite, and corporate-speak nominalizations. Patterns 32-39 are tagged "personal only" and cover first-person rewrite, semicolon swaps, contractions, sentence-split on conjunctions, felt-experience cut, sentence-fragment-in-prose rewrite, terse cut for rhetorical padding, and a public-artifact scope flag.
Two modes determine which patterns get walked. General mode (default) walks 1-31 and is the right fit for research notes, philosophy and history essays, emails, README prose, journal entries, anything that isn't a commit, PR, or PR review comment. Personal mode walks all 39 patterns and is invoked explicitly by the publish flow in commits.md (and similar callers) so first-person and contraction enforcement don't leak into academic or literary writing where they don't belong.
The follow-up commits migrate callers to /voice and remove the standalone humanizer skill.
|