ktg-plugin-marketplace/plugins/linkedin-studio/hooks/prompts/voice-guardian.md
Kjell Tore Guttormsen e2ed3eb0aa feat(linkedin-studio): short-form de-AI gate via differentiation-checker + voice-guardian
Wire the orphan differentiation-checker (#10) into the five short-form
creation commands (post/quick/react/carousel/video) as a De-AI /
Differentiation Gate at each command's quality-check step: confirm the
LinkedIn-named substance signals (personal substance, original thinking,
concrete specifics, genuine voice) + a soft engagement-bait check, and
delegate an originality pass to linkedin-studio:differentiation-checker
when the angle risks commodity content. Add Task to allowed-tools in
quick/react/carousel (post/video already had it from Step 13).

Extend (not duplicate) hooks/prompts/voice-guardian.md's AI-pattern
section with the same named signals from research/01 D8 + research/03 D4.
Runtime-loaded prompt — no compile-hooks.py, no hooks.json change
(verified: compile-hooks --check reports no drift).

Test: new hooks/scripts/__tests__/linkedin-content-filter.test.mjs pins
the content/non-content boundary the gate is scoped by (14 tests).
Full hook suite 76/76, structure lint 61/61.

Plan Step 14 (Wave 4 S2). Counts unchanged (26 commands / 19 agents).
[skip-docs]: tre-doc + version bump deferred to Step 21 per remediation plan.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 02:31:41 +02:00

4.5 KiB

VOICE GUARDIAN — DRIFT SCORING & AI AUTHENTICITY CHECK: If the file being written/edited is LinkedIn content (post draft, article, or content file — NOT config, state, scripts, docs), perform both AI detection and voice drift scoring:

1. AI Pattern Detection

Scan for these common AI writing patterns:

  • Generic openings: 'In today's rapidly evolving...', 'As we navigate...', 'In the ever-changing landscape...'
  • Filler phrases: 'It's worth noting that', 'It goes without saying', 'At the end of the day'
  • Overused transitions: 'Furthermore', 'Moreover', 'Additionally', 'In conclusion'
  • AI superlatives: 'game-changing', 'revolutionary', 'transformative', 'groundbreaking'
  • List padding: Adding obvious points just to fill a list
  • Hedging language: 'It could be argued', 'One might say', 'Perhaps'
  • Perfect structure: Every paragraph exactly the same length

If 3+ AI patterns detected, flag: 'Voice Guardian Alert: This content scores below authenticity threshold. AI patterns found: [list specific patterns]. Suggested fixes: [specific rewrites using natural language].'

LinkedIn-named substance signals (official de-AI down-rank)

LinkedIn confirmed (VP Laura Lorenzetti, 2026-05-19) an active program that reach-suppresses generic AI posts/comments and attention-bait — down to first-degree connections, not deletion — using ML trained on human-annotated "original thinking" vs "lacking substance." Beyond the generic tells above, check the draft for the four signals LinkedIn named. This is the differentiation surface, not an unverified SEO tell-list:

  • Personal substance — a lived detail, stake, or first-hand observation only this author has. Generic advice anyone could have written is the failure mode.
  • Original thinking — a take or synthesis, not a restatement of the consensus.
  • Concrete specifics — named tools, real numbers, a dated example — not abstract nouns.
  • Genuine voice — reads as the author, not a model-default cadence.

If two or more of these are missing, flag it alongside the AI-pattern alert: the post risks the low-substance down-rank, not merely sounding generic.

Soft engagement-bait check: block mechanical-response CTAs — "Comment YES", "Like for Part 2", "DM me 'X'", "Repost if you agree" — which trigger a post-level throttle. A genuine open question is not penalized; the line is a real answer vs a reflexive token.

2. Six-Dimension Voice Drift Scoring

Read the voice profile and collected post samples from ${CLAUDE_PLUGIN_ROOT}/assets/voice-samples/authentic-voice-samples.md.

Score the draft against these 6 dimensions (0 = perfect match, 1 = minor drift per dimension):

Dimension What to Compare
Sentence structure Average length, complexity, use of fragments vs. compound sentences
Word choice Vocabulary level, preferred/avoided words from voice profile
Opening patterns Hook style — does it match the user's signature openers?
Storytelling Anecdote usage, narrative arc, concrete vs. abstract
Tone markers Humor, directness, formality level, empathy signals
Formatting Paragraph length, whitespace, emoji usage, punctuation habits

Sum the 6 scores (0-6 total) and output a verdict:

Score Verdict Action
0-1 AUTHENTIC No changes needed
2-3 CAUTION Flag specific dimensions that drifted, suggest fixes
4-5 ALERT Significant drift — list all deviating dimensions with rewrites
6 REWRITE Content doesn't sound like the user — recommend starting over

Confidence gate: If ## Collected Post Samples has fewer than 5 posts, perform ONLY the AI Pattern Detection (section 1). Skip the Six-Dimension Voice Drift Scoring entirely — there is insufficient data for meaningful drift analysis. Do NOT output "LOW CONFIDENCE" messages. Instead, silently skip drift scoring and only flag if 3+ AI patterns are detected.

Output format (always include at end of system message):

Voice Drift: [VERDICT] ([score]/6) [confidence: HIGH/LOW]
[If CAUTION+: list dimensions that scored 1 with brief fix suggestion]

3. Humanization Tips (for CAUTION or higher)

  • Add specific personal anecdotes or observations
  • Use conversational contractions (I've, don't, it's)
  • Include imperfect/real-world examples
  • Vary paragraph and sentence length naturally
  • Reference specific people, tools, or experiences

Skip this check if the file is config, state (.local.md), script, hook, JSON, or documentation.