본문으로 건너뛰기
cccskills
무료GitHub에 공개

voice-gate

Line-editor pass on any content draft against a client voice guide. Flags cadence issues, signature-move overuse, voice-guide violations, receipt gaps — things a rule-based gate can't catch. Use after /content-gate and before human review.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(6)

  • SKILL.md8.8 KB
  • examples/example-blog-voice-gate-report.md27.5 KB
  • judge-prompt.md13.5 KB
  • README.md3.8 KB
  • run-log.md242 B
  • TUNING-LOG.md3.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

/voice-gate — The Line Editor

Run a subjective-voice review of a drafted piece against a client's voice guide. Produces a structured editorial report with severity-ranked issues, verbatim quotes, rule citations, and direction for human-editor fixes.

This is the complementary pass to /content-gate. Rule-based gates (Four U's, banned words, SEO lint) catch mechanical quality issues. Voice Gate catches what they can't: sing-songy cadence, signature-move overuse, voice-guide violations that require interpretation, receipt gaps, and flow. Claude Code's session executes the judge prompt inline — no external API, no script wrapper, no env vars.

Preamble

source "$(dirname "$0")/../lib/preamble.sh"

Arguments

Required:

  • file path: Path to the draft markdown file to review.

Optional:

  • --voice-guide <path>: Path to the client's writing guide. If omitted, auto-discovered (see Step 1).
  • --persona <path>: Path to the writer persona file for extra biographical context. Optional but improves flag specificity.
  • --max-issues <n>: Cap the number of issues in the report. Default 30.

Example: /voice-gate clients/GrowthModeOn/outputs/blog-posts/how-to-write-a-podcast-pitch.md Example: /voice-gate path/to/draft.md --voice-guide path/to/writing-guide.md --persona path/to/persona.md

The Skill

Step 1: Resolve Arguments

Parse ARGUMENTS. The first positional argument is the draft file path. Use the Read tool to validate it exists. If the draft is not a readable markdown file, stop and tell the user: "Draft not found: {path}. Pass a valid markdown file path."

Resolve the voice guide:

  • If --voice-guide <path> is provided, use that path.
  • Otherwise, auto-discover. Walk up from the draft's directory until you find an outputs/personas/ directory (or a plain personas/ directory). Inside, look for a file matching *-writing-guide.md. The canonical convention is clients/<client>/outputs/personas/<writer>-writing-guide.md. Pick the first match in the closest candidate directory.
  • If no match is found, stop and tell the user: "No voice guide found. Pass --voice-guide <path> explicitly, or place a *-writing-guide.md file in the nearest outputs/personas/ directory."

Resolve the persona (optional):

  • If --persona <path> is provided, use it.
  • Otherwise, look in the same directory as the resolved voice guide for a sibling *-persona.md whose basename prefix matches the writing guide (e.g. lexie-smith-writing-guide.md → lexie-smith-persona.md). If found, use it. If not, proceed without a persona.

Resolve max-issues: default 30. Parse --max-issues <n> if present and coerce to an integer.

Step 2: Read Inputs

Use the Read tool to load:

  • The draft file (full text).
  • The voice guide (full text).
  • The persona file (full text, if resolved).

If any required file fails to read, surface the error and stop.

Step 3: Load the Judge Prompt

Use the Read tool to load voice-gate/judge-prompt.md from this skill's own directory. This is the rubric Claude applies to produce the editorial report. If the file is missing, stop and tell the user: "Voice Gate judge prompt missing at voice-gate/judge-prompt.md. Re-install the skill."

Step 4: Execute the Judge Prompt (inline)

You (Claude) are the judge. There is no external API call. Apply the judge prompt against the three inputs: the draft text, the voice guide text, and (if present) the persona text. Produce a structured editorial report that conforms to the output contract defined in judge-prompt.md.

Hard requirements on the report — these are non-negotiable:

  • Every issue cites a verbatim quote from the draft (never a paraphrase).
  • Every issue references a specific rule — a numbered section of the voice guide (e.g., "Voice guide §11 DO #4"), a named signature-move cap ("I repeat — cap 1, count 3"), or a named editorial principle when the voice guide is silent ("Editorial: triple-list cadence monotony").
  • Severity is one of: High (publish-blocking), Medium (meaningful craft issue), Low (polish).
  • Recommended fixes are direction only, never rewrites. The human editor owns the rewrite.
  • If the total issue count exceeds max_issues, include only the top max_issues by severity and note in the Summary Table that the cap was hit.

Step 5: Write the Report

Derive the report path: <draft-path-without-extension>.VOICE-GATE.md. Example: .../how-to-write-a-podcast-pitch.md → .../how-to-write-a-podcast-pitch.VOICE-GATE.md.

Use the Write tool to save the report at that path.

Step 6: Compute the Verdict

Count issues by severity. Apply the verdict logic:

  • PASS: 0 High issues AND ≤3 Medium issues. Message: "Ready for human review."

  • HOLD: 1–2 High issues OR >3 Medium issues (and no FAIL triggers). Message: "Moderate edits needed. See report."

  • FAIL: 3+ High issues OR any voice-guide hard-rule violation. Hard-rule violation triggers:

    • A Tier 1 banned word from the voice guide's DON'T list appears in the draft.
    • A year-count canonicalization rule is violated (e.g., the guide canonicalizes "15+ years" but draft says "13 years" or "11 years").
    • An AI-slop phrase the guide explicitly flags appears ("In conclusion," "delve," "innovative," "disruptive," "holistic," etc., per the guide's forbidden list).
    • The cold-open rule for SEO posts is violated (e.g., "Hey guys" opening a blog post).

    Message: "Blocking issues. Fix before human review."

Step 7: Display the Summary

Print a concise scorecard:

VOICE GATE REPORT
═══════════════════════════════════════════
File:        {draft_filename}
Voice guide: {voice_guide_filename}
Persona:     {persona_filename or "—"}
Report:      {report_path}

Issues:      {total} total
  High:      {high}
  Medium:    {medium}
  Low:       {low}

VERDICT: {PASS | HOLD | FAIL}
{verdict_message}

Top 3 issues:
  1. [{severity}] {category} — {one_line_summary}
  2. [{severity}] {category} — {one_line_summary}
  3. [{severity}] {category} — {one_line_summary}

Full report: {report_path}

Step 8: Save the Gate Log

Append a log entry to ~/.kai-marketing/gates/{date}-{slug}-voice.json — where {date} is today's date in YYYY-MM-DD and {slug} is the draft filename stem. One log file per draft per day (overwrite if the file already exists).

{
  "file": "{draft_path}",
  "voice_guide": "{voice_guide_path}",
  "persona": "{persona_path or null}",
  "report_path": "{report_path}",
  "verdict": "{PASS|HOLD|FAIL}",
  "high_count": {n},
  "medium_count": {n},
  "low_count": {n},
  "total_count": {n},
  "timestamp": "{ISO datetime}"
}

Error Handling

  • Draft file not found: Stop. Tell user the exact path checked.
  • Voice guide not resolvable: Stop. Tell user to pass --voice-guide <path> explicitly.
  • Judge prompt file missing: Install error. Tell user: "Voice Gate judge prompt missing at voice-gate/judge-prompt.md. Re-install the skill."
  • Draft exceeds ~40K words: Proceed, but add a note at the top of the report: "Draft exceeds the comfortable review window; the report may be partial."
  • Voice guide lacks numbered rules: The judge falls back to editorial-principle citations. Add a note at the top of the report: "Voice guide lacks numbered rules — citations use editorial principles only."

Chain State

Reads from: the draft, the voice guide, the persona (if present), voice-gate/judge-prompt.md Writes to:

  • <draft-path-stem>.VOICE-GATE.md — the editorial report (alongside the draft)
  • ~/.kai-marketing/gates/{date}-{slug}-voice.json — log entry

Read by: Human editor who opens the report for triage. Optionally re-read by /content-retro downstream.

When to Use This Skill

Use it:

  • For any client with a written voice guide (outputs/personas/*-writing-guide.md).
  • After /content-gate passes — it is the subjective complement to the rule-based gate.
  • On blog posts, LinkedIn articles, newsletters, long-form content.
  • Any time a reviewer has flagged "this doesn't sound like them" on prior drafts.

Skip it:

  • Ad copy (voice matters less than claim-compliance; /content-gate is enough).
  • Technical documentation, product release notes.
  • Content without a written voice standard — the gate has nothing to score against.
  • When the voice owner is about to read the draft themselves within an hour.

Pipeline Position

draft agent  →  /content-gate (rule-based)  →  /voice-gate (subjective)  →  human review  →  publish

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

ad-copy

무료

Write platform-compliant ad copy for Meta, Google, TikTok, LinkedIn, Pinterest, Snapchat, Amazon, or X. Loads TOS rules automatically. Shows char counts and format preview.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

cgallic/kai-cmo-harness582026년 10월 19일 업데이트

ad-render

무료

Render video ads using Remotion. Scaffolds a project from brand tokens + creative brief, generates scene compositions for 4 archetypes, renders to MP4 in multiple formats.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

cgallic/kai-cmo-harness582026년 10월 19일 업데이트

Research competitor ads using Meta Ad Library, Google Ads Transparency Center, and TikTok Creative Center. Analyze creative patterns, hooks, offers, and landing pages.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

cgallic/kai-cmo-harness582026년 10월 19일 업데이트

checklist

무료

Surface the right marketing checklist for any task. Covers content, SEO, ads, email, press, landing pages, launches, and technical audits. 17+ checklists indexed by task type.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

cgallic/kai-cmo-harness582026년 10월 19일 업데이트

Generate a strategic content brief from format + site + keyword. Auto-resolves persona, pulls GSC data, generates hooks, angles, and competitor weakness via LLM.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

cgallic/kai-cmo-harness582026년 10월 19일 업데이트

Run the full quality gate on any content file. Score against 28 rules, apply policy, show detailed scorecard with fix suggestions. Works on any markdown file.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

cgallic/kai-cmo-harness582026년 10월 19일 업데이트

cgallic의 스킬 모두 보기

이 스킬의 문제 신고