+ itemprop="mainContentOfPage">
@@ -41,8 +40,8 @@

Looking for a Team to Take You to the Next - Level?Write Rails You Would Sign Your Name + To

@@ -439,7 +438,7 @@

{{ $image := .Page.Resources.Get .Page.Params.testimonial.image }} - {{ $title := "John Doe" }} + {{ $title := .Page.Params.testimonial.name | default "JetThoughts team member" }} {{ partial "img/testimonial.html" (dict "image" $image "title" $title) }}
From cb8a973f8c42434a2fb78a41b63d1877ee18a5a8 Mon Sep 17 00:00:00 2001 From: Paul Keen <125715+pftg@users.noreply.github.com> Date: Fri, 14 Aug 2026 13:08:10 +0200 Subject: [PATCH 5/5] voice: channel registers with a shared anti-slop core (Paul 2026-08-14) Each channel gets its own voice; all channels share the anti-slop core. One house voice flattened across four channels is how the site ended up sounding like a whitepaper below a hero that sounded like a person. 90.11 gains section 1b: a register table for website / blog / course / LinkedIn with each one's signature move, then the explicit list of what never varies - banned words, banned structural patterns, the who/show/practitioner tests, sourced numbers. A shorter register is not a licence to slop; marketing copy is where tells hide best because nobody reads a 20-word card closely enough to spot a rule of three inside it. Also records the enforcement asymmetry honestly: word-level bans are mechanised, the structural patterns where this guide says the real tells live are still review-only, and review under-counts - a test found ~18 more than a careful read, and a wrapped phrase hid from the gate entirely until the matcher was fixed. Treat any review-only rule as advisory until it has a test. .okf/content/voice-rules.md mirrors the model and links the claims canon. /okf:validate .okf --strict - conformant. Co-Authored-By: Claude Opus 5 (1M context) --- .okf/content/voice-rules.md | 10 ++++ .../strategy-analysis/90.11-voice-guide.md | 46 +++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/.okf/content/voice-rules.md b/.okf/content/voice-rules.md index ba90f7f6d..dbadef258 100644 --- a/.okf/content/voice-rules.md +++ b/.okf/content/voice-rules.md @@ -12,6 +12,16 @@ Full guides: `docs/90-99-content-strategy/strategy-analysis/90.11-voice-guide.md and the course-specific rules in `CLAUDE.md`. This concept records the rules that recur in review sprints. +**Channel registers (Paul, 2026-08-14).** Each channel gets its own voice; all +channels share the anti-slop core. Website is plain and load-bearing with every +claim showing a mechanic or linking proof; blog teaches with worked examples; +course is patient and second-person with first-mention glossing (this concept); +LinkedIn is first-person and committed - Register B, hammering one idea. What +never varies: the banned words, the banned structural patterns, the +who/show/practitioner tests, and sourced numbers +([claims canon](claims-canon.md)). A shorter register is not a licence to slop. +Full table in 90.11 §1b. + # Core rules - **Write for Sam, not Paul.** Sam is an idea-stage non-technical founder. diff --git a/docs/90-99-content-strategy/strategy-analysis/90.11-voice-guide.md b/docs/90-99-content-strategy/strategy-analysis/90.11-voice-guide.md index 11f816550..147acdf97 100644 --- a/docs/90-99-content-strategy/strategy-analysis/90.11-voice-guide.md +++ b/docs/90-99-content-strategy/strategy-analysis/90.11-voice-guide.md @@ -41,6 +41,52 @@ Direct (Walling) + vulnerable ("we've seen this") + specific ($80K, 2%, 48 hours --- +## 1b. Channel registers (Paul, 2026-08-14) + +**Each channel gets its own voice. All channels share the anti-slop core.** + +One house voice flattened across four channels is how the site ended up sounding +like a whitepaper below the hero while the hero sounded like a person. The +register should move with the reader and the surface; what must never move is +§3 (banned words) and §3's structural-patterns table. + +| Channel | Reader | Register | Signature move | +|---|---|---|---| +| **Website / marketing** | Alex - burned non-technical founder, deciding | Plain, load-bearing, short. Every claim either shows a mechanic or links proof. | Replace the promise with the mechanic: not "on-demand CTO access" but "a senior engineer reads your codebase and tells you what to fix first, $5K-$15K/month". | +| **Blog** | Practitioners + founders, researching | Teaching. Longer runway, worked examples, real numbers, code where it earns its place. | Name the specific failure: "anyone could read another user's data by changing the ID in the URL." | +| **Course** | Sam - idea-stage founder, learning | Patient, second-person, one idea per beat. Glossary on first mention. | Translate operator shorthand; never assume the reader knows what a staging environment is. | +| **LinkedIn (Paul)** | Peers + founders, scrolling | First-person, committed, opinionated. Register B - hammering one idea, not surveying three. | An actual encounter, stated flatly, with the reader left to draw the conclusion. | + +### What is shared, always + +The anti-slop core is channel-independent and non-negotiable: + +- §3 banned words, openings, transitions, closings, verbs, phrases. +- §3 banned structural patterns - rule of three, negative parallelism, + signposting, sustained staccato, anaphora pairs, "The..." opener density, + slogany reveal-twists, cute aphoristic closers, fake-authority + generalisation, fabricated specificity. +- The who / show / practitioner tests. +- Claims discipline: every number sourced + (see [claims canon](/.okf/content/claims-canon.md)). + +A shorter register is not a licence to slop. Marketing copy is where the tells +hide best, because nobody reads a 20-word card closely enough to notice the +rule of three inside it - and a ratchet does. + +### Enforcement asymmetry (the honest bit) + +The word-level bans are mechanised for course content +(`data/course_banned_strings.yaml`) and marketing surfaces +(`test/unit/marketing_copy_test.rb`). The **structural** patterns - where this +guide says the real AI tells live - are still enforced by review only. Review +under-counts badly: a 2026-08-14 pass found ~18 more violations by test than by +someone reading with this guide open, and a phrase wrapped across two template +lines hid from the gate entirely until the matcher was fixed. Treat any +review-only rule as advisory until it has a test. + +--- + ## 2. Sentence-Level Rules ### DO