create-voice

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Create Voice

语音配置文件创建

Create a complete voice profile from writing samples through a 7-phase pipeline. This skill is the user-facing entry point for the voice system. It orchestrates existing tools (voice_analyzer.py, voice_validator.py, voice-calibrator template) into a guided, phase-gated workflow.
Architecture: This skill is a GUIDE and ORCHESTRATOR. It delegates all deterministic work to existing scripts and all template structure to the voice-calibrator skill. It does not duplicate or replace any existing component.

通过7阶段流程从写作样本创建完整的语音配置文件。本技能是语音系统的用户入口,将现有工具(voice_analyzer.py、voice_validator.py、voice-calibrator模板)编排为一个引导式的、分阶段准入的工作流。
架构:本技能是一个引导器和编排器。它将所有确定性工作委托给现有脚本,所有模板结构委托给voice-calibrator技能。它不会重复或替换任何现有组件。

Operator Context

操作者上下文

This skill operates as an operator for voice creation workflows, configuring Claude's behavior for guiding users through the complete pipeline from raw writing samples to a validated, authorship-matching voice skill.
本技能作为语音创建工作流的操作者,配置Claude的行为,引导用户完成从原始写作样本到经过验证、匹配作者风格的语音技能的完整流程。

Hardcoded Behaviors (Always Apply)

硬编码行为(始终适用)

  • CLAUDE.md Compliance: Read and follow repository CLAUDE.md before starting any work
  • No Existing File Modification: NEVER modify voice_analyzer.py, voice_validator.py, banned-patterns.json, voice-calibrator, voice-orchestrator, or any existing skill/script. The existing tools work. This skill only creates new files in
    skills/voice-{name}/
  • Wabi-Sabi Throughout: Natural imperfections are features, not bugs. This principle applies at EVERY phase, not as an afterthought. See
    skills/shared-patterns/wabi-sabi-authenticity.md
  • 50-Sample Minimum: Do not proceed past Step 1 without 50+ writing samples. The system tried with 3-10 and FAILED. 50+ is where it starts working. WHY: LLMs are pattern matchers, and rules tell AI what to do but samples show AI what the voice looks like. V7-V9 had correct rules but failed authorship matching (0/5 roasters). V10 passed 5/5 because it had 100+ categorized samples.
  • Deterministic Before AI: Always run script-based analysis before AI interpretation. WHY: Scripts produce reproducible, quantitative baselines. AI interpretation without data drifts toward generic patterns.
  • Artifacts Over Memory: Save outputs to files at every phase. Context is ephemeral; files persist.
  • CLAUDE.md合规性:开始任何工作前,请阅读并遵循仓库中的CLAUDE.md
  • 禁止修改现有文件:绝不能修改voice_analyzer.py、voice_validator.py、banned-patterns.json、voice-calibrator、voice-orchestrator或任何现有技能/脚本。现有工具运行正常。本技能仅在
    skills/voice-{name}/
    目录下创建新文件
  • 全程遵循Wabi-sabi原则:自然瑕疵是特色,而非缺陷。这一原则适用于每个阶段,而非事后补充。请参考
    skills/shared-patterns/wabi-sabi-authenticity.md
  • 最少50份样本:在步骤1完成前,样本数量不得少于50份。系统曾尝试3-10份样本,但以失败告终。50份以上样本才是系统有效运行的起点。原因:大语言模型是模式匹配器,规则告诉AI该做什么,但样本展示AI语音的实际形态。V7-V9版本规则正确,但作者身份匹配测试未通过(5名鉴定者全部不认可)。V10版本因拥有100+分类样本,通过了全部5名鉴定者的测试。
  • 先确定性分析后AI解读:始终先运行基于脚本的分析,再进行AI解读。原因:脚本可生成可复现的量化基准。无数据支撑的AI解读会偏向通用模式。
  • 优先留存产出物:在每个阶段都将输出保存到文件中。上下文是临时的,文件是持久的。

Default Behaviors (ON unless disabled)

默认行为(除非禁用否则启用)

  • Communication Style: Report progress with phase status banners. Be direct about what passed or failed, not congratulatory
  • Phase Gates: Enforce GATE checkpoints between all phases. Do not proceed if the gate condition is unmet
  • Iteration Limits: Maximum 3 validation/refinement iterations before escalating to user
  • Validation Pipeline: Run both
    voice_validator.py validate
    and
    voice_validator.py check-banned
    during Step 6
  • Reference Loading: Show users any existing voice implementation as a concrete example of "done"
  • 沟通风格:通过阶段状态横幅报告进度。直接说明通过或失败的内容,无需祝贺
  • 阶段准入检查:在所有阶段之间强制执行准入检查点。若未满足准入条件,不得进入下一阶段
  • 迭代限制:验证/优化迭代最多3次,之后需升级给用户处理
  • 验证流程:在步骤6中同时运行
    voice_validator.py validate
    voice_validator.py check-banned
  • 参考示例加载:向用户展示任何已有的语音实现,作为「完成状态」的具体示例

Optional Behaviors (OFF unless enabled)

可选行为(默认禁用,需启用)

  • Strict Mode: Require 5/5 roaster match instead of 4/5 minimum
  • Verbose Analysis: Show full voice_analyzer.py JSON output inline instead of summary
  • Cross-Voice Comparison: Compare new profile against existing voice profiles
  • Batch Sample Import: Automated scraping/organization of samples from a single source
  • 严格模式:要求5/5的鉴定者匹配,而非最低4/5的要求
  • 详细分析:直接展示voice_analyzer.py的完整JSON输出,而非摘要
  • 跨语音对比:将新配置文件与现有语音配置文件进行对比
  • 批量样本导入:从单一来源自动抓取/整理样本

What This Skill CAN Do

本技能可实现的功能

  • Guide users through the complete 7-phase voice creation pipeline
  • Organize writing samples into the correct directory structure
  • Run deterministic analysis via
    scripts/voice_analyzer.py
  • Identify voice patterns, phrase fingerprints, and wabi-sabi markers using AI interpretation of samples + metrics
  • Generate complete voice skill files (SKILL.md, profile.json, config.json) following the voice-calibrator template
  • Validate generated content against the new profile using
    scripts/voice_validator.py
  • Iterate on failures with targeted fixes (max 3 iterations)
  • 引导用户完成完整的7阶段语音创建流程
  • 将写作样本整理为正确的目录结构
  • 通过
    scripts/voice_analyzer.py
    运行确定性分析
  • 结合样本和指标,通过AI解读识别语音模式、短语特征和Wabi-sabi标记
  • 遵循voice-calibrator模板生成完整的语音技能文件(SKILL.md、profile.json、config.json)
  • 使用
    scripts/voice_validator.py
    验证生成的内容是否符合新配置文件
  • 针对失败内容进行定向修复迭代(最多3次)

What This Skill CANNOT Do

本技能不可实现的功能

  • Generate content in a voice (use
    voice-orchestrator
    after creation)
  • Modify existing voice skills or profiles (use
    voice-calibrator
    )
  • Scrape writing samples from the internet automatically (user must provide samples)
  • Guarantee authorship matching will pass (depends on sample quality and quantity)
  • Skip deterministic analysis (scripts MUST run before AI interpretation)
  • Create a voice from fewer than 50 samples (hard minimum, see Hardcoded Behaviors)

  • 在现有语音中生成内容(创建完成后请使用
    voice-orchestrator
  • 修改现有语音技能或配置文件(请使用
    voice-calibrator
  • 自动从互联网抓取写作样本(需用户提供样本)
  • 保证作者身份匹配测试通过(取决于样本的质量和数量)
  • 跳过确定性分析(必须先运行脚本,再进行AI解读)
  • 用少于50份样本创建语音配置文件(硬限制,请参考硬编码行为)

Instructions

操作指南

Overview

概述

The pipeline has 7 phases. Each phase produces artifacts and has a gate that must pass before proceeding.
PhaseNameArtifactGate
1COLLECT
skills/voice-{name}/references/samples/*.md
50+ samples exist
2EXTRACT
skills/voice-{name}/profile.json
Script exits 0, metrics present
3PATTERNPattern analysis document10+ phrase fingerprints identified
4RULEVoice rules documentRules have contrastive examples
5GENERATE
skills/voice-{name}/SKILL.md
+
config.json
SKILL.md has 2000+ lines, samples section has 400+ lines
6VALIDATEValidation reportScore >= 70, no banned pattern violations
7ITERATEFinal validated skill4/5 authorship match (or 3 iteration limit reached)

该流程包含7个阶段。每个阶段都会产生产出物,且必须通过准入检查才能进入下一阶段。
阶段名称产出物准入条件
1收集
skills/voice-{name}/references/samples/*.md
存在50+份样本
2提取
skills/voice-{name}/profile.json
脚本执行成功,指标完整
3模式识别模式分析文档识别出10+个短语特征
4规则制定语音规则文档规则包含对比示例
5生成
skills/voice-{name}/SKILL.md
+
config.json
SKILL.md不少于2000行,样本部分不少于400行
6验证验证报告得分≥70,无禁用模式违规
7迭代最终验证通过的技能4/5的鉴定者匹配作者风格(或达到3次迭代限制)

Step 1: COLLECT -- Gather 50+ Writing Samples

步骤1:收集 — 收集50+份写作样本

Goal: Build a corpus of real writing that captures the full range of the person's voice.
Why 50+ samples: The voice system learned this the hard way. 3-10 samples capture IDEAS but not EXECUTION STYLE. Authorship matching detects execution style. V7-V9 had the right rules but failed 0/5 because the model had too few examples to absorb the actual texture of the writing. V10 passed 5/5 with 100+ categorized samples. More is better; 50 is the minimum where it starts working.
目标:构建一个真实写作语料库,完整捕捉目标人物的语音风格。
为什么需要50+份样本:语音系统通过实践总结出这一标准。3-10份样本只能捕捉观点,无法捕捉执行风格。作者身份匹配检测的是执行风格。V7-V9版本规则正确,但因模型缺乏足够示例来吸收写作的实际质感,5名鉴定者全部不认可。V10版本因拥有100+分类样本,通过了全部5名鉴定者的测试。样本越多越好,50份是系统开始有效运行的最低要求。

Where to Find Samples

样本来源

SourceWhat to Look ForFile Naming
Reddit historyComments, posts, replies
reddit-samples-YYYY-MM-DD.md
Hacker NewsComments, Ask HN answers
hn-samples-YYYY-MM-DD.md
Blog postsPublished articles
blog-samples.md
Forum postsAny discussion forum
forum-samples-YYYY-MM-DD.md
EmailsProfessional and casual
email-samples.md
Chat logsSlack, Discord, iMessage
chat-samples.md
Social mediaTwitter/X threads
social-samples.md
来源筛选标准文件命名规则
Reddit历史记录评论、帖子、回复
reddit-samples-YYYY-MM-DD.md
Hacker News评论、Ask HN问答
hn-samples-YYYY-MM-DD.md
博客文章已发布的文章
blog-samples.md
论坛帖子任何讨论论坛的内容
forum-samples-YYYY-MM-DD.md
电子邮件专业和非正式邮件
email-samples.md
聊天记录Slack、Discord、iMessage对话
chat-samples.md
社交媒体Twitter/X线程
social-samples.md

Sample Quality Guidelines

样本质量指南

  • Mix of lengths: Very short (1 sentence), short (2-3 sentences), medium (paragraph), long (multi-paragraph). The distribution matters because most people write short responses most of the time.
  • Mix of contexts: Technical, casual, disagreement, agreement, teaching, joking, emotional. Different contexts reveal different facets of voice.
  • Mix of topics: Not all about the same subject. Topic diversity reveals stable voice patterns vs topic-specific patterns.
  • DO NOT clean up samples: Typos, run-on sentences, fragments, loose punctuation ARE the voice. Cleaning destroys authenticity markers. This is the wabi-sabi principle in action at the very first step.
  • DO NOT cherry-pick: Include mediocre posts alongside great ones. The mundane reveals default patterns.
  • 长度混合:包含极短(1句话)、短(2-3句话)、中等(段落)、长(多段落)的样本。分布情况很重要,因为大多数人平时的写作以短内容为主。
  • 场景混合:包含技术、非正式、反驳、赞同、教学、玩笑、情绪化等不同场景的内容。不同场景能展现语音的不同侧面。
  • 主题混合:不要局限于同一主题。主题多样性能区分稳定的语音模式与特定主题的模式。
  • 请勿清理样本:拼写错误、连写句、断句、松散的标点就是语音的一部分。清理会破坏真实性标记。这是Wabi-sabi原则在第一步的实际应用。
  • 请勿刻意挑选:既包含优质内容,也包含普通内容。日常内容能展现默认模式。

Directory Setup

目录设置

bash
mkdir -p skills/voice-{name}/references/samples/
Place all sample files in
skills/voice-{name}/references/samples/
. Each file should contain multiple samples, separated by
---
or clear headers.
bash
mkdir -p skills/voice-{name}/references/samples/
将所有样本文件放入
skills/voice-{name}/references/samples/
目录。每个文件可包含多个样本,用
---
或清晰的标题分隔。

Sample File Format

样本文件格式

Each sample file should preserve the original writing exactly:
markdown
undefined
每个样本文件应完全保留原始写作内容:
markdown
undefined

Reddit Samples - 2025-12-30

Reddit样本 - 2025-12-30

r/subreddit - Thread Title

r/subreddit - 帖子标题

[Exact text of comment, typos and all]

[评论的准确文本,包含所有拼写错误]

r/subreddit - Another Thread

r/subreddit - 另一帖子

[Exact text]


**GATE**: Count the samples. If fewer than 50 distinct writing samples exist across all files, STOP. Tell the user how many more are needed and where to find them. Do NOT proceed.
Phase 1/7: COLLECT Samples: {count} across {file_count} files Sources: {list of source types} GATE: {PASS if >= 50 / FAIL if < 50}

---
[准确文本]


**准入检查**:统计样本数量。若所有文件中的独立写作样本少于50份,**停止操作**。告知用户还需要多少样本,以及可从哪些来源获取。不得进入下一阶段。
阶段 1/7: 收集 样本数量:{count}份,分布在{file_count}个文件中 来源类型:{来源类型列表} 准入检查:{若≥50则显示PASS,若<50则显示FAIL}

---

Step 2: EXTRACT -- Run Deterministic Analysis

步骤2:提取 — 运行确定性分析

Goal: Extract quantitative voice metrics from the samples using
voice_analyzer.py
.
Why deterministic first: Scripts produce reproducible numbers. AI interpretation without data drifts toward "sounds like a normal person" rather than capturing what makes THIS person distinctive. The numbers ground everything that follows.
目标:使用
voice_analyzer.py
从样本中提取量化的语音指标。
为什么先做确定性分析:脚本可生成可复现的数值。无数据支撑的AI解读会偏向「听起来像普通人」,而非捕捉该用户的独特之处。这些数值是后续所有工作的基础。

Run the Analyzer

运行分析器

bash
python3 ~/.claude/scripts/voice_analyzer.py analyze \
  --samples skills/voice-{name}/references/samples/*.md \
  --output skills/voice-{name}/profile.json
bash
python3 ~/.claude/scripts/voice_analyzer.py analyze \
  --samples skills/voice-{name}/references/samples/*.md \
  --output skills/voice-{name}/profile.json

Also Get the Text Report

同时生成文本报告

bash
python3 ~/.claude/scripts/voice_analyzer.py analyze \
  --samples skills/voice-{name}/references/samples/*.md \
  --format text
The text report gives a human-readable summary. Save it for reference during Steps 3-4.
bash
python3 ~/.claude/scripts/voice_analyzer.py analyze \
  --samples skills/voice-{name}/references/samples/*.md \
  --format text
文本报告提供人类可读的摘要。请保存该报告,供步骤3-4参考。

What the Analyzer Extracts

分析器提取的内容

CategoryMetricsWhy It Matters
Sentence metricsLength distribution, average, varianceRhythm fingerprint
PunctuationComma density, question rate, exclamation rate, em-dash count, semicolonsPunctuation signature
Word metricsContraction rate, first-person rate, second-person rateFormality and perspective
StructureFragment rate, sentence starters by typeStructural patterns
Function wordsTop 20 function word frequenciesUnconscious language fingerprint
类别指标重要性
句子指标长度分布、平均值、方差节奏特征
标点指标逗号密度、疑问句占比、感叹句占比、破折号数量、分号数量标点特征
词汇指标缩写占比、第一人称占比、第二人称占比正式程度和视角
结构指标断句占比、句子开头类型结构模式
功能词频率前20的功能词无意识语言特征

Verify the Output

验证输出

Read
profile.json
and confirm it contains all expected sections. If the script exits non-zero, check:
  1. Python 3 is available
  2. Sample files are readable
  3. File paths are correct (glob expansion can be tricky)
GATE:
profile.json
exists, is valid JSON, and contains
sentence_metrics
,
punctuation_metrics
,
word_metrics
, and
structure_metrics
sections. Script exit code was 0.
Phase 2/7: EXTRACT
  Profile: skills/voice-{name}/profile.json
  Samples analyzed: {N}
  Total words: {N}
  Total sentences: {N}
  Average sentence length: {X} words
  GATE: {PASS/FAIL}

读取
profile.json
,确认包含所有预期部分。若脚本执行失败(退出码非0),请检查:
  1. 是否安装了Python 3
  2. 样本文件是否可读
  3. 文件路径是否正确(通配符扩展在不同shell中可能有差异)
准入检查
profile.json
存在、格式为有效JSON,且包含
sentence_metrics
punctuation_metrics
word_metrics
structure_metrics
部分。脚本退出码为0。
阶段 2/7: 提取
  配置文件:skills/voice-{name}/profile.json
  分析样本数量:{N}
  总词汇量:{N}
  总句子数:{N}
  平均句子长度:{X}个单词
  准入检查:{PASS/FAIL}

Step 3: PATTERN -- Identify Voice Patterns (AI-Assisted)

步骤3:模式识别 — 识别语音模式(AI辅助)

Goal: Using the samples + profile.json, identify the distinctive patterns that make this voice THIS voice and not generic writing.
Why AI-assisted: The script extracts WHAT (numbers). This step identifies WHY those numbers are what they are and what distinctive PATTERNS produce them. A high contraction rate is a number; "uses contractions even in technical explanations, creating casual authority" is a pattern.
目标:结合样本和profile.json,识别出该语音区别于通用写作的独特模式。
为什么需要AI辅助:脚本提取的是「是什么」(数值)。本步骤要识别「为什么会是这样」,以及是什么独特模式产生了这些数值。高缩写率是一个数值;「即使在技术解释中也使用缩写,营造非正式的权威感」则是一种模式。

Phrase Fingerprints (CRITICAL)

短语特征(关键)

Read through ALL samples and identify 10+ distinctive phrases that recur. These are what authorship-matching roasters use to confirm identity.
Look for:
  • Signature openers: How do they start responses? ("I think the issue is...", "So basically...", "Here's what I've found...")
  • Signature closers: How do they end? ("but we'll see", "does that help?", "anyway, that's my take")
  • Filler phrases: Verbal tics that appear across contexts ("For what it's worth", "to be fair", "honestly")
  • Hedging patterns: How they express uncertainty ("probably", "I suspect", "my guess is")
  • Emphasis patterns: How they stress a point ("the key thing is", "the part people miss")
Document each fingerprint with 2-3 exact quotes from the samples showing it in context.
通读所有样本,识别10+个重复出现的独特短语。这些是鉴定者用于确认作者身份的关键依据。
寻找以下类型:
  • 标志性开头:他们如何开启回复?(如「我认为问题在于...」「简单来说...」「这是我的发现...」)
  • 标志性结尾:他们如何结束回复?(如「但我们拭目以待」「这有帮助吗?」「无论如何,这是我的观点」)
  • 填充短语:跨场景出现的口语化表达(如「不管怎样」「公平地说」「老实说」)
  • 模糊表达模式:他们如何表达不确定性?(如「可能」「我猜测」「我觉得」)
  • 强调模式:他们如何强调观点?(如「关键是」「人们忽略的点是」)
记录每个特征,并附上2-3个来自样本的准确引用,展示其使用场景。

Thinking Patterns

思维模式

How does this person reason? This is deeper than style; it's cognitive architecture.
Common patterns to check for:
  • Concede-then-assert: "That's fair, but..." (acknowledges opposing view, then states own position)
  • Hypothesis-experiment: "My theory is... I tried... and found..."
  • Systems framing: "The way this works is..." (explains mechanisms, not just opinions)
  • Experience-based: "In my experience..." (grounds claims in personal observation)
  • Question-led: "The question is..." (frames issues as questions to investigate)
  • Analogy-driven: Uses metaphors and comparisons from specific domains
这个人的推理方式是怎样的?这比表面风格更深层,是认知架构。
常见的模式类型:
  • 先让步后主张:「这很合理,但...」(先认可对立观点,再陈述自己的立场)
  • 假设-实验:「我的理论是...我尝试了...发现...」
  • 系统框架:「它的工作原理是...」(解释机制,而非仅表达观点)
  • 经验导向:「根据我的经验...」(将主张基于个人观察)
  • 问题引领:「问题在于...」(将问题框定为需要调查的问题)
  • 类比驱动:使用来自特定领域的隐喻和类比

Response Length Distribution

回复长度分布

From the samples, estimate what percentage of responses fall into each bucket:
  • Very short (1 sentence): ____%
  • Short (2-3 sentences): ____%
  • Medium (4-6 sentences): ____%
  • Long (paragraph+): ____%
This distribution is critical because most people write short responses most of the time, and AI tends to generate medium-to-long responses by default.
从样本中估算不同长度回复的占比:
  • 极短(1句话):____%
  • 短(2-3句话):____%
  • 中等(4-6句话):____%
  • 长(段落及以上):____%
这一分布至关重要,因为大多数人平时的写作以短内容为主,而AI默认倾向于生成中等至长篇内容。

Natural Typos (Authenticity Markers)

自然拼写错误(真实性标记)

Scan samples for 5+ real typos. Document them with the correct spelling. These become wabi-sabi markers that signal authenticity.
Examples of what to look for:
  • Missing apostrophes ("dont" instead of "don't")
  • Common word swaps ("there" for "their")
  • Dropped letters ("probabl" for "probably")
  • Double-typed characters ("tthe")
  • Missing spaces after punctuation ("works.But")
在样本中查找5+个真实的拼写错误。记录错误拼写和正确拼写。这些将作为Wabi-sabi标记,体现内容的真实性。
查找方向:
  • 缺失撇号(如将"don't"写成"dont")
  • 常见词汇混淆(如将"their"写成"there")
  • 漏写字母(如将"probably"写成"probabl")
  • 重复输入字符(如"tthe")
  • 标点后缺失空格(如"works.But")

Wabi-Sabi Markers

Wabi-sabi标记

Identify which "imperfections" ARE the voice. These are not bugs to fix; they are features to preserve.
  • Run-on sentences: Does this person chain clauses with commas?
  • Fragments: Do they use sentence fragments for emphasis?
  • Loose punctuation: Is comma usage inconsistent? Is that part of the texture?
  • Self-corrections: Do they change direction mid-sentence? ("Well, actually..." or "I mean,")
  • Tangential asides: Do they go on tangents? (Parenthetical digressions?)
识别哪些「瑕疵」是该语音的一部分。这些不是需要修复的bug,而是需要保留的特色。
  • 连写句:这个人是否用逗号连接多个从句?
  • 断句:他们是否用句子断句来强调观点?
  • 松散标点:逗号使用是否不一致?这是否是其风格的一部分?
  • 自我修正:他们是否会在句子中途改变方向?(如「嗯,实际上...」或「我的意思是,」)
  • 题外话:他们是否会跑题?(如括号内的题外话)

Linguistic Architectures

语言架构

Beyond sentence-level patterns, identify the structural moves that operate across sentences and paragraphs. These are what AI erases most aggressively — the model defaults to claim → evidence → hedged conclusion regardless of the writer's actual architecture.
Analyze ALL samples (not just a few) for each dimension:
Argument Architecture — How does the writer build a case?
  • Direction: Inductive (examples → conclusion) vs deductive (claim → evidence) vs mixed? Where does the main claim appear relative to supporting evidence?
  • Escalation: Do stakes increase through the piece? Narrow → broad? Low → high severity?
  • Ending reframe: Does the ending restate the opening, or transform it into something new?
Document with exact quotes: "In {N} of {M} samples, the writer builds inductively — evidence first, conclusion last. Example from sample X: [quote showing the build]"
Concession Architecture — How does the writer handle "yes, but"?
  • Structure: Short admission → pivot? Long qualification → reversal? Never concedes?
  • Pivot markers: Which words signal the turn? ("but", "though", "the thing is", "and yet", "that said")
  • Position: Where do concessions appear? Opening? Mid-argument? Never at the end?
Document with exact quotes: "Concessions follow a [short admission → blunt pivot] pattern. Example: [quote showing concession shape]"
Analogy Architecture — Where do metaphors and references come from?
  • Source domains: Which fields? (cooking, construction, sports, warfare, nature, machinery, music, software, etc.)
  • Deployment: Are analogies used to open? To explain mid-section? To close with a memorable image?
  • Density: Every post? Rarely? Only for technical concepts?
Document with exact quotes: "Analogies cluster around {domains}. Example: [quote showing analogy from that domain]"
Bookend Architecture — How do pieces open and close?
  • Opening moves: Question? Declarative claim? Anecdote? Provocation? Scene-setting?
  • Closing moves: Reframe? Fragment punch? Circle back to opening? Call to action? Open question?
  • Symmetry: Does the closing echo or answer the opening?
Document with exact quotes: "Opens with [pattern] in {N}/{M} samples. Closes with [pattern]. Opening and closing are [symmetric/independent]."
Note: Not all writers exhibit all 4 architectures. Tweet-only writers may not have argument or bookend architecture. The gate requires 2 of 4, not 4 of 4.
GATE: At least 10 phrase fingerprints documented with exact quotes. At least 3 thinking patterns identified. Response length distribution estimated. At least 5 natural typos found. Wabi-sabi markers identified. At least 2 of 4 linguistic architectures documented with evidence quotes.
Phase 3/7: PATTERN
  Phrase fingerprints: {count}
  Thinking patterns: {count}
  Linguistic architectures: {count}/4 documented
  Length distribution: {very short}% / {short}% / {medium}% / {long}%
  Natural typos: {count}
  Wabi-sabi markers: {list}
  GATE: {PASS/FAIL}

除句子层面的模式外,识别跨句子和段落的结构行为。这些是AI最容易抹除的部分——模型默认采用「主张→证据→模糊结论」的结构,无论作者实际的架构是什么。
针对每个维度分析所有样本(而非仅部分样本):
论证架构 — 作者如何构建论点?
  • 方向:归纳(示例→结论)、演绎(主张→证据)还是混合?主要主张相对于支持性证据的位置在哪里?
  • 递进:内容的重要性是否逐渐提升?从具体到宽泛?从低到高严重性?
  • 结尾重构:结尾是重述开头,还是将其转化为新内容?
用准确引用记录:「在{M}份样本中的{N}份里,作者采用归纳式构建——先给出证据,最后得出结论。样本X中的示例:[展示该模式的引用]」
让步架构 — 作者如何处理「是的,但是」的情况?
  • 结构:简短认可→转向?长篇限定→反转?从不认可?
  • 转向标记:用哪些词汇表示转向?(如「但是」「不过」「关键是」「然而」「话虽如此」)
  • 位置:让步出现在开头?论点中间?从不出现结尾?
用准确引用记录:「让步遵循[简短认可→直接转向]模式。示例:[展示让步结构的引用]」
类比架构 — 隐喻和参考来自哪些领域?
  • 来源领域:哪些领域?(烹饪、建筑、体育、战争、自然、机械、音乐、软件等)
  • 使用场景:类比用于开头?解释中间部分?结尾留下难忘的印象?
  • 密度:每篇帖子都用?很少用?仅用于技术概念?
用准确引用记录:「类比集中在{领域}。示例:[展示该领域类比的引用]」
首尾架构 — 内容的开头和结尾是怎样的?
  • 开头方式:提问?陈述主张?轶事?挑衅?场景设定?
  • 结尾方式:重构?简短有力的断句?回到开头?呼吁行动?开放式问题?
  • 对称性:结尾是否呼应或回答开头?
用准确引用记录:「{M}份样本中的{N}份以[模式]开头。以[模式]结尾。开头和结尾[对称/独立]。」
注意:并非所有作者都会展现全部4种架构。仅发布推文的作者可能没有论证或首尾架构。准入要求是4种中的2种,而非全部4种。
准入检查:记录至少10个带准确引用的短语特征。识别至少3种思维模式。估算回复长度分布。找到至少5个自然拼写错误。识别Wabi-sabi标记。记录至少2种语言架构,并附上证据引用。
阶段 3/7: 模式识别
  短语特征:{count}
  思维模式:{count}
  语言架构:已记录{count}/4种
  长度分布:{极短}% / {短}% / {中等}% / {长}%
  自然拼写错误:{count}
  Wabi-sabi标记:{列表}
  准入检查:{PASS/FAIL}

Step 4: RULE -- Build Voice Rules

步骤4:规则制定 — 构建语音规则

Goal: Transform the patterns identified in Step 3 into actionable rules for the voice skill.
Why rules AND samples: Rules set boundaries. Samples show execution. You need both, but samples do the heavy lifting. Rules prevent the worst failures (AI phrases, wrong structure). Samples guide the model toward authentic output. The voice-calibrator learned this through 10 versions of iteration.
目标:将步骤3中识别的模式转化为语音技能的可操作规则。
为什么需要规则和样本:规则设定边界。样本展示执行方式。两者都需要,但样本起到主要作用。规则防止最严重的失败(AI式短语、错误结构)。样本引导模型生成真实的输出。voice-calibrator通过10次迭代总结出这一点。

What This Voice IS (Positive Identity)

该语音的特征(正向定位)

Write 4-6 core traits with examples from the samples. Use probability dampening to avoid caricature:
  • "subtly" skeptical not "skeptical" -- dampens the trait so it appears naturally, not performatively
  • "generally" conversational not "conversational" -- allows for variation
  • "slightly" self-deprecating not "self-deprecating" -- prevents over-application
For each trait, include 2-3 exact quotes from samples that demonstrate it.
WHY probability dampening: Without adverb modifiers, the model cranks traits to 100%. "Skeptical" becomes every-sentence-is-a-challenge. "Conversational" becomes aggressively casual. The dampening keeps traits at natural frequency.
撰写4-6个核心特征,并附上样本中的示例。使用概率弱化词避免 caricature(夸张模仿):
  • 「略带」怀疑 而非「怀疑」——弱化特征,使其自然呈现,而非刻意表现
  • 「通常」非正式 而非「非正式」——允许变化
  • 「轻微」自嘲 而非「自嘲」——防止过度应用
每个特征都要附上来自样本的2-3个准确引用,以作证明。
为什么需要概率弱化:如果没有副词修饰,模型会将特征拉满。「怀疑」会变成每句话都在质疑。「非正式」会变成极具侵略性的随意。弱化词能让特征保持自然的出现频率。

What This Voice IS NOT (Contrastive Identity)

该语音的非特征(对比定位)

Build a contrastive table showing THIS voice vs Generic AI for at least 6 aspects:
AspectThis VoiceGeneric AI
Opening[Example from samples]"In today's rapidly evolving landscape..."
Uncertainty[How they express doubt]"It's worth noting that perspectives may vary"
Agreement[How they agree]"I absolutely agree with your insightful point"
Disagreement[How they disagree]"While there are valid concerns, I would respectfully suggest..."
Conclusion[How they end]"In conclusion, we have explored..."
Technical[Technical style]"This represents a robust paradigm for..."
构建对比表格,展示该语音与通用AI在至少6个方面的区别:
方面该语音通用AI
开头[来自样本的示例]"在当今快速发展的环境中..."
不确定性表达[他们如何表达怀疑]"值得注意的是,观点可能存在差异"
同意[他们如何表示同意]"我完全同意你的深刻观点"
不同意[他们如何表示不同意]"虽然存在合理担忧,但我谨建议..."
结论[他们如何结尾]"总之,我们探讨了..."
技术风格[技术表达风格]"这代表了一种稳健的范式..."

Hard Prohibitions

严格禁止项

Identify patterns this voice NEVER uses. Apply attention anchoring (bold) to all negative constraints because the model pays more attention to bolded text:
Common prohibitions to evaluate:
  • Em-dashes: Does this person ever use them? If not, FORBIDDEN
  • Formal transitions: "However", "Furthermore", "Moreover", "Additionally", "Consequently"
  • AI-typical phrases: "Let's dive in", "Here's the thing", "delve", "robust", "leverage", "ecosystem"
  • The "It's not X. It's Y" pattern: Signature AI structure. Almost always prohibited
  • Excessive hedging: "It's worth noting", "One might argue", "At the end of the day"
For each prohibition, explain WHY it's prohibited for this specific voice (not just "because it's AI-sounding").
识别该语音从不使用的模式。对所有负面约束使用注意力锚定(加粗),因为模型会更关注加粗文本:
常见的禁止项:
  • 破折号:这个人是否使用破折号?如果不使用,禁止使用
  • 正式过渡词:「然而」「此外」「而且」「另外」「因此」
  • 典型AI短语:「让我们深入探讨」「关键是」「深入研究」「稳健」「利用」「生态系统」
  • 「不是X,而是Y」模式:标志性AI结构。几乎总是被禁止
  • 过度模糊表达:「值得注意的是」「有人可能会说」「归根结底」
每个禁止项都要解释为什么该语音禁止使用(不仅仅是「因为听起来像AI」)。

Wabi-Sabi Rules

Wabi-sabi规则

Which "errors" MUST be preserved? This is the inversion of typical quality rules:
  • If they write run-on sentences: "Allow comma-chain sentences up to {N} words when expressing enthusiasm or building arguments"
  • If they use fragments: "Target {X}% fragment rate for emphasis and pacing"
  • If punctuation is loose: "Do not standardize comma usage; match the inconsistent pattern from samples"
  • If they self-correct: "Include at least one visible direction change per long-form response"
哪些「错误」必须保留?这与典型的质量规则相反:
  • 如果他们写连写句:「当表达热情或构建论点时,允许最多{N}个单词的逗号连接句」
  • 如果他们使用断句:「为了强调和调整节奏,目标断句率为{X}%」
  • 如果标点使用松散:「不要标准化逗号使用;匹配样本中的不一致模式」
  • 如果他们自我修正:「每个长篇回复中至少包含一次可见的方向转变」

Anti-Essay Patterns

反论文模式

Most voices are NOT essay-writers. Identify the structural anti-patterns:
  • Staccato rhythm? (Short sentences dominating)
  • No signposting? (No "First... Second... Third...")
  • Single-sentence paragraphs? (Common in chat/forum)
  • No introduction/conclusion structure? (Just starts talking)
  • Abrupt endings? (No wrap-up, just stops)
大多数语音并非论文写作风格。识别结构上的反模式:
  • 断奏节奏?(以短句为主)
  • 无标记?(没有「第一...第二...第三...」)
  • 单句段落?(在聊天/论坛中常见)
  • 无引言/结论结构?(直接开始说话)
  • 突兀结尾?(没有总结,直接停止)

Architectural Patterns

架构模式

Translate the linguistic architectures discovered in Step 3 into actionable rules for the voice skill. These go in a dedicated
## Architectural Patterns
section in the generated SKILL.md, between the identity rules and banned patterns.
For each documented architecture, write a rule:
markdown
undefined
将步骤3中发现的语言架构转化为语音技能可操作的规则。这些规则要放在生成的SKILL.md中的
## 架构模式
部分,位于身份规则和禁止模式之间。
针对每个已记录的架构,编写一条规则:
markdown
undefined

Architectural Patterns

架构模式

Argument Flow

论证流程

[Inductive/Deductive/Mixed] — [one-sentence description] Build arguments by [specific instruction]. The main claim should appear [position]. Example from samples: "[exact quote showing the pattern]"
[归纳/演绎/混合] — [一句话描述] 通过[具体指令]构建论点。主要主张应出现在[位置]。 样本示例:"[展示该模式的准确引用]"

Concessions

让步

Structure: [short admission → pivot / long qualification → reversal / never concedes] Pivot markers: [list of words this voice uses] Example: "[exact quote]"
结构:[简短认可→转向 / 长篇限定→反转 / 从不认可] 转向标记:[该语音使用的词汇列表] 示例:"[准确引用]"

Analogy Domains

类比领域

Primary: [domain1, domain2] Deployment: [where analogies appear — openers? mid-section? closers?] Density: [frequency] NEVER draw analogies from: [domains this voice avoids] Example: "[exact quote]"
主要领域:[领域1, 领域2] 使用场景:[类比出现的位置——开头?中间?结尾?] 密度:[频率] 绝对禁止从以下领域提取类比:[该语音避免的领域] 示例:"[准确引用]"

Bookends

首尾结构

Opening move: [pattern] Closing move: [pattern] Symmetry: [yes/no/sometimes] Example opening: "[quote]" Example closing: "[quote]"

Omit any architecture that wasn't documented in Step 3. A missing section is better than a fabricated one.

**GATE**: Positive identity has 4+ traits with dampening adverbs. Contrastive table covers 6+ aspects. At least 3 hard prohibitions defined. Wabi-sabi rules specify which imperfections to preserve. Anti-essay patterns documented. Architectural patterns documented for each architecture identified in Step 3.
Phase 4/7: RULE Positive traits: {count} (with dampening) Contrastive aspects: {count} Hard prohibitions: {count} Wabi-sabi rules: {count} Anti-essay patterns: {list} Architectural patterns: {count} GATE: {PASS/FAIL}

---
开头方式:[模式] 结尾方式:[模式] 对称性:[是/否/有时] 开头示例:"[引用]" 结尾示例:"[引用]"

省略任何未在步骤3中记录的架构。缺失的部分比编造的部分更好。

**准入检查**:正向定位包含4+个带弱化副词的特征。对比表格覆盖6+个方面。定义至少3个严格禁止项。Wabi-sabi规则明确了需要保留的瑕疵。记录反论文模式。为步骤3中识别的每个架构记录了架构模式。
阶段 4/7: 规则制定 正向特征:{count}个(带弱化词) 对比维度:{count} 严格禁止项:{count} Wabi-sabi规则:{count} 反论文模式:{列表} 架构模式:{count} 准入检查:{PASS/FAIL}

---

Step 5: GENERATE -- Create the Voice Skill

步骤5:生成 — 创建语音技能

Goal: Generate the complete voice skill files following the voice-calibrator template.
Why the template matters: The template structure (lines 1063-1512 of
pipelines/voice-calibrator/SKILL.md
) was refined over 10 iterations. It embeds prompt engineering best practices (attention anchoring, probability dampening, XML context tags, few-shot examples for prohibitions). Deviating from the template means losing those lessons.
目标:遵循voice-calibrator模板生成完整的语音技能文件。
为什么模板很重要:模板结构(
pipelines/voice-calibrator/SKILL.md
的1063-1512行)经过10次迭代优化。它嵌入了提示工程的最佳实践(注意力锚定、概率弱化、XML上下文标签、禁止项的少样本示例)。偏离模板意味着放弃这些经验。

Files to Create

要创建的文件

  1. skills/voice-{name}/SKILL.md
    -- The voice skill itself (2000+ lines)
  2. skills/voice-{name}/config.json
    -- Validation configuration
  3. skills/voice-{name}/profile.json
    -- Already created in Step 2
  1. skills/voice-{name}/SKILL.md
    — 语音技能本身(2000+行)
  2. skills/voice-{name}/config.json
    — 验证配置
  3. skills/voice-{name}/profile.json
    — 已在步骤2中创建

SKILL.md Structure

SKILL.md结构

Follow the template from voice-calibrator. The sections, in order of importance by line count:
SectionTarget LinesWhy This Size
Extensive Authentic Samples400+THIS IS WHAT MAKES AUTHORSHIP MATCHING WORK. V7-V9 failed with rules-only. V10 passed with 100+ samples.
Voice Metrics (from profile.json)~100Quantitative targets give the model measurable goals, not vague aspirations
Rules and Prohibitions~200Hard constraints prevent the worst AI tells
Phrase Fingerprints~50Exact phrases that roasters use to confirm identity
Generation Protocol~100Pre/During/Post checklists keep output consistent
Natural Typos~20Authenticity markers that signal human-ness
Contrastive Examples~50Shows the model what NOT to do with concrete alternatives
Thinking Patterns~80Cognitive architecture, not just surface style
Total: 2000+ lines minimum. Most should be SAMPLES, not rules.
遵循voice-calibrator的模板。各部分按行数重要性排序:
部分目标行数为什么需要这个长度
大量真实样本400+这是作者身份匹配成功的关键。V7-V9版本仅靠规则失败。V10版本因包含100+样本而成功。
语音指标(来自profile.json)~100量化目标为模型提供可衡量的目标,而非模糊的期望
规则和禁止项~200严格约束防止最严重的AI特征
短语特征~50鉴定者用于确认身份的准确短语
生成协议~100生成前/中/后的检查清单保证输出一致性
自然拼写错误~20体现人类特征的真实性标记
对比示例~50用具体替代方案展示模型不该做什么
思维模式~80认知架构,而非仅表面风格
总计:至少2000行。大部分内容应为样本,而非规则。

SKILL.md Frontmatter

SKILL.md前置元数据

yaml
---
name: voice-{name}
user-invocable: false
allowed-tools:
  - Read
  - Write
  - Bash
  - Grep
  - Glob
  - Edit
  - Task
  - Skill
description: |
  Apply {Name}'s voice profile for content generation: [2-3 key traits],
  and modal writing. Use when generating content that must match {Name}'s
  distinctive voice. Do NOT use for voice analysis, voice profile creation,
  or generating content in other voices.
version: 1.0.0
command: /voice-{name}
---
yaml
---
name: voice-{name}
user-invocable: false
allowed-tools:
  - Read
  - Write
  - Bash
  - Grep
  - Glob
  - Edit
  - Task
  - Skill
description: |
  应用{Name}的语音配置文件生成内容:[2-3个核心特征],
  以及模态写作。适用于必须匹配{Name}独特风格的内容生成场景。请勿用于语音分析、语音配置文件创建或生成其他风格的内容。
version: 1.0.0
command: /voice-{name}
---

SKILL.md Operator Context

SKILL.md操作者上下文

Include standard operator context sections:
  • Hardcoded Behaviors: CLAUDE.md compliance, voice fidelity, wabi-sabi principle, data integrity (never modify curated content)
  • Default Behaviors: Voice validation via script, em-dash prohibition (if applicable), mode selection
  • Optional Behaviors: Strict mode, A/B testing
包含标准的操作者上下文部分:
  • 硬编码行为:CLAUDE.md合规性、语音保真度、Wabi-sabi原则、数据完整性(绝不修改整理好的内容)
  • 默认行为:通过脚本进行语音验证、破折号禁止(如适用)、模式选择
  • 可选行为:严格模式、A/B测试

Sample Organization (THE MOST IMPORTANT SECTION)

样本组织(最重要的部分)

Organize samples from Step 1 into the SKILL.md following this structure:
By Response Length:
  • Very short (1 sentence, ~{X}% of responses): Include 10+ samples
  • Short (2-3 sentences, ~{X}% of responses): Include 15+ samples
  • Medium (4-6 sentences, ~{X}% of responses): Include 10+ samples
  • Long (paragraph+, ~{X}% of responses): Include 5+ samples
By Pattern Type:
  • Admitting Mistakes: 5+ samples
  • Acknowledging Limits: 5+ samples
  • Respectful Disagreement: 5+ samples
  • Technical Expertise (delivered casually): 5+ samples
  • Strong Opinions (unhedged): 5+ samples
  • Casual Closers: 5+ samples
  • Sarcasm/Wit (if applicable): examples
按照以下结构将步骤1中的样本整理到SKILL.md中:
按回复长度分类:
  • 极短(1句话,约{X}%的回复):包含10+个样本
  • 短(2-3句话,约{X}%的回复):包含15+个样本
  • Medium(4-6句话,约{X}%的回复):包含10+个样本
  • 长(段落及以上,约{X}%的回复):包含5+个样本
按模式类型分类:
  • 承认错误:5+个样本
  • 承认局限性:5+个样本
  • 尊重地反对:5+个样本
  • 技术专长(以非正式方式表达):5+个样本
  • 强烈观点(不模糊):5+个样本
  • 非正式结尾:5+个样本
  • 讽刺/机智(如适用):示例

Voice Metrics Section

语音指标部分

Transfer the profile.json data into human-readable tables with targets and tolerances:
markdown
| Metric | Target | Tolerance | Notes |
|--------|--------|-----------|-------|
| Average sentence length | {X} words | +/- 2 words | Primary rhythm indicator |
| Short sentences (3-10 words) | {X}% | +/- 5% | For emphasis and pacing |
将profile.json中的数据转换为带目标值和容差的人类可读表格:
markdown
| 指标 | 目标值 | 容差 | 说明 |
|--------|--------|-----------|-------|
| 平均句子长度 | {X}个单词 | +/- 2个单词 | 主要节奏指标 |
| 短句(3-10个单词) | {X}% | +/- 5% | 用于强调和调整节奏 |

Two-Layer Architecture

双层架构

Design the skill with two layers:
  • Layer A (Always-On Base Voice): Core traits, sentence rhythm, punctuation signature, contraction rate, function word signature. These apply to ALL content regardless of mode.
  • Layer B (Mode-Specific Overlays): Different modes (e.g., technical, casual, opinion, review) that adjust tone, formality, and structure while keeping Layer A constant.
将技能设计为两层:
  • A层(始终启用的基础语音):核心特征、句子节奏、标点特征、缩写率、功能词特征。无论模式如何,这些都适用于所有内容。
  • B层(特定模式覆盖):不同模式(如技术、非正式、观点、评论)调整语气、正式程度和结构,同时保持A层不变。

Prompt Engineering Techniques (Apply Throughout)

提示工程技术(全程应用)

These techniques were validated over 10 iterations of a reference voice:
  1. Probability Dampening: Use "subtly", "slightly", "generally" before traits. WHY: Without dampening, the model cranks traits to 100%
  2. Attention Anchoring: Bold all negative constraints. WHY: The model pays more attention to formatted text
  3. XML Context Tags: Use
    <context type="static-instructions">
    for directives and
    <context type="safety-guardrails">
    for prohibitions. WHY: Structured tags signal instruction priority to the model
  4. Few-Shot Examples: Include 3+ examples for every prohibition (especially "It's not X. It's Y"). WHY: Rules without examples are abstract; examples are concrete
  5. Contrastive Pairs: For every "DO" include a "DON'T" with concrete text. WHY: The model needs to see both sides of the boundary
这些技术经过10次参考语音迭代验证:
  1. 概率弱化:在特征前使用「略带」「轻微」「通常」。原因:没有弱化词,模型会将特征拉满
  2. 注意力锚定加粗所有负面约束。原因:模型会更关注格式化文本
  3. XML上下文标签:用
    <context type="static-instructions">
    表示指令,用
    <context type="safety-guardrails">
    表示禁止项。原因:结构化标签向模型指示指令优先级
  4. 少样本示例:每个禁止项包含3+个示例(尤其是「不是X,而是Y」模式)。原因:没有示例的规则是抽象的;示例是具体的
  5. 对比对:每个「要做」都包含一个「不要做」,并附上具体文本。原因:模型需要看到边界的两面

config.json

config.json

Create the validation configuration:
json
{
  "name": "{Name}",
  "version": "1.0.0",
  "description": "{Brief voice description}",
  "modes": ["technical", "casual", "opinion"],
  "validation": {
    "strict_banned_patterns": true,
    "em_dash_forbidden": true,
    "metric_tolerance": 0.20,
    "required_checks": ["banned_phrases", "punctuation", "rhythm"],
    "optional_checks": ["metrics", "sentence_starters", "opening_pattern"]
  },
  "thresholds": {
    "pass_score": 70,
    "error_max": 0,
    "warning_max": 3
  },
  "voice_specific_patterns": []
}
Adjust
em_dash_forbidden
,
modes
, and
pass_score
based on the specific voice's characteristics.
GATE:
SKILL.md
exists with 2000+ lines. Samples section has 400+ lines. All template sections present (samples, metrics, rules, fingerprints, protocol, typos, contrastive examples, thinking patterns).
config.json
exists with valid JSON. Frontmatter has correct fields.
Phase 5/7: GENERATE
  SKILL.md: {line_count} lines
  Samples section: {line_count} lines
  config.json: created
  Template sections: {present_count}/{required_count}
  GATE: {PASS/FAIL}

创建验证配置:
json
{
  "name": "{Name}",
  "version": "1.0.0",
  "description": "{简短语音描述}",
  "modes": ["technical", "casual", "opinion"],
  "validation": {
    "strict_banned_patterns": true,
    "em_dash_forbidden": true,
    "metric_tolerance": 0.20,
    "required_checks": ["banned_phrases", "punctuation", "rhythm"],
    "optional_checks": ["metrics", "sentence_starters", "opening_pattern"]
  },
  "thresholds": {
    "pass_score": 70,
    "error_max": 0,
    "warning_max": 3
  },
  "voice_specific_patterns": []
}
根据特定语音的特征调整
em_dash_forbidden
modes
pass_score
准入检查:SKILL.md存在且不少于2000行。样本部分不少于400行。所有模板部分均存在(样本、指标、规则、特征、协议、拼写错误、对比示例、思维模式)。config.json存在且为有效JSON。前置元数据包含正确字段。
阶段 5/7: 生成
  SKILL.md:{line_count}行
  样本部分:{line_count}行
  config.json:已创建
  模板部分:{已存在数量}/{要求数量}
  准入检查:{PASS/FAIL}

Step 6: VALIDATE -- Test Against Profile

步骤6:验证 — 对照配置文件测试

Goal: Generate test content using the new skill, then validate it against the profile using deterministic scripts.
Why validate with scripts, not self-assessment: Self-assessment drifts. The model will convince itself the output sounds right. Scripts measure whether sentence length, punctuation density, and contraction rate actually match the targets. Objective measurement prevents rationalization.
目标:使用新技能生成测试内容,然后通过确定性脚本对照配置文件验证。
为什么用脚本验证而非自我评估:自我评估会有偏差。模型会说服自己输出听起来正确。脚本会测量句子长度、标点密度和缩写率是否真的匹配目标值。客观测量防止合理化。

Generate Test Content

生成测试内容

Using the new voice skill, generate 3 test pieces:
  1. A short response (2-3 sentences) to a casual prompt
  2. A medium response (paragraph) to a technical question
  3. A long response (multi-paragraph) to an opinion question
Save each to a temp file.
使用新的语音技能生成3份测试内容:
  1. 对非正式提示的短回复(2-3句话)
  2. 对技术问题的中等回复(段落)
  3. 对观点问题的长回复(多段落)
将每份内容保存到临时文件。

Run Validation

运行验证

For each test piece:
bash
python3 ~/.claude/scripts/voice_validator.py validate \
  --content /tmp/voice-test-{name}-{N}.md \
  --profile skills/voice-{name}/profile.json \
  --voice {name} \
  --format text \
  --verbose
对每份测试内容:
bash
python3 ~/.claude/scripts/voice_validator.py validate \
  --content /tmp/voice-test-{name}-{N}.md \
  --profile skills/voice-{name}/profile.json \
  --voice {name} \
  --format text \
  --verbose

Run Banned Pattern Check

运行禁止模式检查

bash
python3 ~/.claude/scripts/voice_validator.py check-banned \
  --content /tmp/voice-test-{name}-{N}.md \
  --voice {name}
bash
python3 ~/.claude/scripts/voice_validator.py check-banned \
  --content /tmp/voice-test-{name}-{N}.md \
  --voice {name}

Interpret Results

解读结果

ScoreStatusAction
60+ with 0 errorsPASSProceed to Step 7. The script's pass threshold is 60 (calibrated against real human writing which scored ~66). 70+ is ideal but not required.
50-59 with warnings onlyMARGINALReview warnings, fix if simple, or proceed
< 50 or errors presentFAILIdentify top 3 violations, fix in SKILL.md, regenerate, revalidate
Important wabi-sabi check: If validation flags natural imperfections as errors (run-on sentences, fragments, loose punctuation that match the samples), the validator threshold needs adjusting in config.json, NOT the content. The authentic writing scored what it scored; synthetic content should match, not exceed.
得分状态操作
60+且无错误通过进入步骤7。脚本的通过阈值为60(根据真实人类写作校准,人类写作得分约66)。70+为理想值,但非必须。
50-59且仅警告边缘查看警告,若简单则修复,否则继续
<50或存在错误失败识别前3个严重违规,在SKILL.md中修复,重新生成,重新验证
重要Wabi-sabi检查:如果验证将自然瑕疵标记为错误(连写句、断句、与样本匹配的松散标点),则需要调整config.json中的验证阈值,而非修改内容。真实写作的得分就是如此;合成内容应匹配,而非超过。

If Validation Fails

若验证失败

  1. Read the violation report carefully
  2. Identify the top 3 violations by severity
  3. For each violation, determine if it's:
    • A real problem (AI phrase, wrong structure) -- fix in SKILL.md rules or add more samples
    • A false positive (natural imperfection flagged as error) -- adjust config.json thresholds
  4. Make targeted fixes (one at a time, not wholesale rewrites)
  5. Regenerate test content and revalidate
  6. Maximum 3 iterations
GATE: At least one test piece scores 60+ with 0 errors (script pass threshold is 60, calibrated against real human writing). No banned pattern violations. If failed after 3 iterations, proceed to Step 7 with best score and report issues.
Phase 6/7: VALIDATE
  Test 1 (short): {score}/100 - {PASS/FAIL}
  Test 2 (medium): {score}/100 - {PASS/FAIL}
  Test 3 (long): {score}/100 - {PASS/FAIL}
  Banned patterns: {CLEAN/violations found}
  Iterations: {N}/3
  GATE: {PASS/FAIL}

  1. 仔细阅读违规报告
  2. 识别前3个最严重的违规
  3. 对每个违规,判断是:
    • 真实问题(AI短语、错误结构)——在SKILL.md规则中修复,或添加更多样本
    • 误报(自然瑕疵被标记为错误)——调整config.json中的阈值
  4. 进行定向修复(一次修复一个问题,而非全面重写)
  5. 重新生成测试内容并重新验证
  6. 最多迭代3次
准入检查:至少一份测试内容得分60+且无错误(脚本通过阈值为60,根据真实人类写作校准)。无禁止模式违规。若3次迭代后仍失败,则以最佳得分进入步骤7,并报告问题。
阶段 6/7: 验证
  测试1(短):{score}/100 - {PASS/FAIL}
  测试2(中等):{score}/100 - {PASS/FAIL}
  测试3(长):{score}/100 - {PASS/FAIL}
  禁止模式:{无违规/发现违规}
  迭代次数:{N}/3
  准入检查:{PASS/FAIL}

Step 7: ITERATE -- Refine Until Authentic

步骤7:迭代 — 优化至真实可信

Goal: Test the voice against human judgment through authorship matching. This is the ultimate quality gate.
Why authorship matching: Metrics measure surface features. Humans detect deeper patterns -- the "feel" of a voice. A piece can pass all metrics and still feel synthetic. Authorship matching catches what metrics miss.
目标:通过作者身份匹配测试,让人类判断语音的真实性。这是最终的质量关卡。
为什么需要作者身份匹配:指标测量的是表面特征。人类能检测到更深层的模式——语音的「感觉」。内容可能通过所有指标,但仍感觉是合成的。作者身份匹配能捕捉指标遗漏的部分。

The Authorship Matching Test

作者身份匹配测试

  1. Select 3-5 original writing samples that were NOT included in the SKILL.md (hold-out samples)
  2. Generate 3-5 new pieces using the voice skill on similar topics
  3. Present both sets (mixed, unlabeled) to 5 "roasters" (people familiar with the original voice)
  4. Ask each roaster: "Were these written by the same person?"
  5. Target: 4/5 roasters say "SAME AUTHOR"
  1. 选择3-5份未包含在SKILL.md中的原始写作样本(保留样本)
  2. 使用语音技能生成3-5份关于相似主题的新内容
  3. 将两组内容混合、匿名后,展示给5名「鉴定者」(熟悉原始语音的人)
  4. 询问每位鉴定者:「这些是同一个人写的吗?」
  5. 目标:4/5的鉴定者回答「是同一作者」

If Authorship Matching Fails

若作者身份匹配失败

The answer is almost always MORE SAMPLES, not more rules.
Failure PatternDiagnosisFix
"Ideas match but style doesn't"Insufficient samples in SKILL.mdAdd 20-50 more samples, especially short responses
"Too polished, too perfect"Wabi-sabi not applied strongly enoughIncrease fragment rate target, add more typos, loosen punctuation rules
"Phrases feel generic"Phrase fingerprints not prominent enoughBold the fingerprints, add more examples of each
"Wrong rhythm"Sentence length distribution offCheck profile.json targets against generated metrics
"Right voice, wrong length"Response length distribution wrongAdjust default mode or add stronger length constraints
答案几乎总是添加更多样本,而非更多规则。
失败模式诊断修复方案
「观点匹配,但风格不匹配」SKILL.md中样本不足添加20-50个更多样本,尤其是短回复
「太流畅,太完美」Wabi-sabi原则应用不够提高断句率目标,添加更多拼写错误,放宽标点规则
「短语感觉通用」短语特征不够突出加粗特征,为每个特征添加更多示例
「节奏错误」句子长度分布不符检查profile.json目标值与生成内容的指标
「语音正确,但长度错误」回复长度分布错误调整默认模式,或添加更严格的长度约束

The V10 Lesson

V10版本的经验教训

One voice went through 10 versions during development:
  • V1-V6: Incremental rule improvement. Modest gains.
  • V7-V9: Rules were correct but authorship matching failed 0/5. The voice had the right CONSTRAINTS but not enough EXAMPLES.
  • V10: Added 100+ samples organized by pattern. Passed 5/5.
The breakthrough was not better rules. It was more samples.
If you find yourself tweaking rules and not improving, step back and ask: "Do I need more samples in the SKILL.md?" The answer is almost certainly yes.
在开发过程中,某语音经历了10个版本:
  • V1-V6:逐步优化规则。提升有限。
  • V7-V9:规则正确,但作者身份匹配测试0/5失败。该语音有正确的约束,但缺乏足够的示例
  • V10:添加了100+按模式分类的样本。5/5通过。
突破点不是更好的规则,而是更多的样本。
如果你发现自己一直在调整规则,但没有提升,请退一步问自己:「我需要在SKILL.md中添加更多样本吗?」答案几乎肯定是需要。

Wabi-Sabi Final Check

Wabi-sabi最终检查

Before declaring the voice complete, verify:
  • Generated content contains natural imperfections from the samples (not manufactured imperfections)
  • Run-on sentences appear at approximately the same rate as in the original samples
  • Fragments appear for emphasis, matching sample patterns
  • Typos from the natural typos list appear occasionally (not forced)
  • Content does NOT read like polished professional writing (unless the original voice IS polished)
  • If content is too perfect, the skill needs MORE samples and LOOSER constraints, not fewer
GATE: 4/5 roasters say SAME AUTHOR. If roaster test is not feasible, use self-assessment checklist: Does the generated content feel like reading the original samples? Could you tell them apart? If yes (you can tell them apart), more work is needed.
Phase 7/7: ITERATE
  Authorship match: {X}/5 roasters
  Iterations completed: {N}
  Final validation score: {X}/100
  GATE: {PASS/FAIL}

在宣布语音完成前,验证:
  • 生成内容包含来自样本的自然瑕疵(而非人工制造的瑕疵)
  • 连写句的出现率与原始样本大致相同
  • 断句用于强调,与样本模式匹配
  • 自然拼写错误列表中的拼写错误偶尔出现(而非强制添加)
  • 内容读起来不像经过润色的专业写作(除非原始语音本身就是专业风格)
  • 如果内容太完美,技能需要更多样本和更宽松的约束,而非更少
准入检查:4/5的鉴定者回答「是同一作者」。若无法进行鉴定者测试,则使用自我评估清单:生成的内容读起来像原始样本吗?你能区分它们吗?如果能区分,还需要更多工作。
阶段 7/7: 迭代
  作者身份匹配:{X}/5鉴定者
  已完成迭代次数:{N}
  最终验证得分:{X}/100
  准入检查:{PASS/FAIL}

Final Output

最终输出

After all phases complete:
===============================================================
 VOICE CREATION COMPLETE: {name}
===============================================================
 Files created:
   skills/voice-{name}/SKILL.md              (voice skill)
   skills/voice-{name}/profile.json          (metrics)
   skills/voice-{name}/config.json           (validation config)
   skills/voice-{name}/references/samples/   (organized samples)

 Validation: {PASSED/FAILED} (score: {X}/100)
 Authorship Match: {X}/5 roasters
===============================================================

所有阶段完成后:
===============================================================
 语音配置文件创建完成:{name}
===============================================================
 创建的文件:
   skills/voice-{name}/SKILL.md              (语音技能)
   skills/voice-{name}/profile.json          (指标)
   skills/voice-{name}/config.json           (验证配置)
   skills/voice-{name}/references/samples/   (整理后的样本)

 验证:{通过/失败} (得分:{X}/IOO)
 作者身份匹配:{X}/5鉴定者
===============================================================

Error Handling

错误处理

Error: "Insufficient samples" (< 50)

错误:「样本不足」(<50份)

Cause: User provided fewer than 50 writing samples. Solution:
  1. Count current samples and report the gap
  2. Suggest specific sources based on what's already provided (e.g., "You have 20 Reddit comments. Try also pulling from HN history, blog posts, or email")
  3. Do NOT proceed past Step 1. The system does not work with fewer than 50 samples.
原因:用户提供的写作样本少于50份。 解决方案
  1. 统计当前样本数量,报告缺口
  2. 根据已提供的样本,建议特定来源(如「你已有20条Reddit评论。尝试同时从HN历史记录、博客文章或电子邮件中获取」)
  3. 不得进入步骤1之后的阶段。样本不足50份时,系统无法正常工作。

Error: "voice_analyzer.py fails"

错误:「voice_analyzer.py执行失败」

Cause: Script execution error. Solution:
  1. Check Python 3 is available:
    python3 --version
  2. Check script exists:
    ls scripts/voice_analyzer.py
  3. Check file paths: Glob expansion may not work as expected in all shells. Try listing files first:
    ls skills/voice-{name}/references/samples/*.md
  4. Try with explicit file list instead of glob:
    --samples file1.md file2.md file3.md
原因:脚本执行错误。 解决方案
  1. 检查是否安装了Python 3:
    python3 --version
  2. 检查脚本是否存在:
    ls scripts/voice_analyzer.py
  3. 检查文件路径:通配符扩展在不同shell中可能无法按预期工作。先尝试列出文件:
    ls skills/voice-{name}/references/samples/*.md
  4. 尝试使用明确的文件列表而非通配符:
    --samples file1.md file2.md file3.md

Error: "Validation score too low" (< 50 after 3 iterations)

错误:「验证得分过低」(3次迭代后仍<50)

Cause: Generated content does not match voice profile metrics. Solution:
  1. Check if profile.json metrics are achievable (some metrics from small sample sets may be skewed)
  2. Review banned patterns for false positives specific to this voice
  3. Consider relaxing
    metric_tolerance
    in config.json from 0.20 to 0.25
  4. Check if the SKILL.md has enough samples (the answer is usually: add more samples)
  5. Manual review of SKILL.md instructions for contradictory rules
原因:生成内容不符合语音配置文件的指标。 解决方案
  1. 检查profile.json的指标是否可实现(小样本集的某些指标可能存在偏差)
  2. 针对该语音,检查禁止模式是否存在误报
  3. 考虑将config.json中的
    metric_tolerance
    从0.20放宽到0.25
  4. 检查SKILL.md是否有足够样本(答案通常是:添加更多样本)
  5. 手动检查SKILL.md指令是否存在矛盾规则

Error: "Authorship matching fails" (< 4/5 roasters)

错误:「作者身份匹配失败」(<4/5鉴定者)

Cause: Generated content does not sound like the original author. Solution: See the failure pattern table in Step 7. The fix is almost always more samples, not more rules.
原因:生成内容听起来不像原始作者。 解决方案:参考步骤7中的失败模式表。修复方案几乎总是添加更多样本,而非更多规则。

Error: "SKILL.md too short" (< 2000 lines)

错误:「SKILL.md过短」(<2000行)

Cause: Not enough samples or sections in the generated skill. Solution:
  1. Check that all sample categories are populated (length-based AND pattern-based)
  2. Verify all template sections are present
  3. Add more samples -- they are the bulk of the line count
  4. Do NOT pad with verbose rules. The goal is 2000+ lines of USEFUL content, primarily samples.
原因:生成的技能中样本或部分不足。 解决方案
  1. 检查所有样本类别是否已填充(按长度和模式分类)
  2. 验证所有模板部分是否存在
  3. 添加更多样本——它们是行数的主要来源
  4. 不要用冗长的规则填充。目标是2000+行有用内容,主要是样本。

Error: "Wabi-sabi violations flagged as errors"

错误:「Wabi-sabi违规被标记为错误」

Cause: Validator is flagging natural imperfections that are actually part of the voice. Solution: Adjust config.json thresholds, NOT the content. If the authentic writing "fails" validation, the validator is wrong, not the writing. See
skills/shared-patterns/wabi-sabi-authenticity.md
for the full pattern.

原因:验证器将实际属于语音的自然瑕疵标记为错误。 解决方案:调整config.json的阈值,而非修改内容。如果真实写作「未通过」验证,那是验证器的问题,而非写作的问题。请参考
skills/shared-patterns/wabi-sabi-authenticity.md
中的完整模式。

Anti-Patterns

反模式

Do Not Clean Up Samples

请勿清理样本

What it looks like: Fixing typos, completing fragments, or reformatting samples before analysis. Why it's wrong: Those "imperfections" ARE the voice. Cleaning them removes authenticity markers and produces a sanitized profile that generates sterile content. Do instead: Keep samples exactly as written. Document the imperfections as features in Step 3.
表现:在分析前修复拼写错误、补全断句或重新格式化样本。 为什么错误:这些「瑕疵」就是语音的一部分。清理会破坏真实性标记,生成一个经过 sanitized( sanitized 意为「消毒的,经过净化的」,这里指去除了特色的)的配置文件,进而生成 sterile( sterile 意为「无菌的,缺乏生气的」)内容。 正确做法:完全保留样本的原始状态。在步骤3中将这些瑕疵记录为特色。

Do Not Skip Deterministic Analysis

请勿跳过确定性分析

What it looks like: Going straight from samples to AI pattern identification without running voice_analyzer.py. Why it's wrong: Without quantitative baselines, AI interpretation drifts toward "sounds like a normal person" rather than capturing what's distinctive. Numbers ground the analysis. Do instead: Always run the script first. Use the numbers to guide pattern identification.
表现:不运行voice_analyzer.py,直接从样本进入AI模式识别。 为什么错误:没有量化基准,AI解读会偏向「听起来像普通人」,而非捕捉独特之处。数值为分析提供基础。 正确做法:始终先运行脚本。用数值指导模式识别。

Do Not Over-Rule, Under-Sample

请勿规则过多,样本不足

What it looks like: Writing 500 lines of rules and including 100 lines of samples. Why it's wrong: V7-V9 had 500+ lines of rules and failed authorship matching. V10 had 100+ samples and passed 5/5. LLMs are pattern matchers -- they learn from examples, not instructions. Do instead: Target 400+ lines of samples, 200 lines of rules. Samples are the bulk.
表现:写500行规则,仅包含100行样本。 为什么错误:V7-V9版本有500+行规则,但作者身份匹配失败。V10版本有100+样本,5/5通过。大语言模型是模式匹配器——它们从示例中学习,而非从指令中学习。 正确做法:目标是400+行样本,200行规则。样本是主体。

Do Not Manufacture Imperfections

请勿人工制造瑕疵

What it looks like: Adding random typos or fragments that don't appear in the original samples. Why it's wrong: Manufactured imperfections feel forced. Authentic imperfections have patterns (the same typos recur, fragments appear in specific contexts). Forced imperfections are as detectable as forced perfection. Do instead: Only include imperfections observed in the actual samples. Document where each one came from.
表现:添加原始样本中不存在的随机拼写错误或断句。 为什么错误:人工制造的瑕疵感觉很刻意。真实瑕疵有模式(相同的拼写错误重复出现,断句出现在特定场景)。刻意的瑕疵和刻意的完美一样容易被检测到。 正确做法:仅包含在实际样本中观察到的瑕疵。记录每个瑕疵的来源。

Do Not Skip Authorship Matching

请勿跳过作者身份匹配

What it looks like: Declaring the voice complete after validation passes without testing against human judgment. Why it's wrong: Metrics measure surface features. A piece can pass all metrics and still feel synthetic to a human reader. The metrics are necessary but not sufficient. Do instead: Always run the authorship matching test, even informally. If roasters aren't available, do a self-assessment: shuffle generated and original samples, then try to sort them. If you can easily tell them apart, more work is needed.

表现:验证通过后,未进行人类判断测试就宣布语音完成。 为什么错误:指标测量的是表面特征。内容可能通过所有指标,但人类读者仍会觉得是合成的。指标是必要的,但不充分。 正确做法:始终进行作者身份匹配测试,即使是非正式的。如果没有鉴定者,可进行自我评估:将生成内容与原始样本混合,然后尝试分类。如果能轻松区分,还需要更多工作。

Anti-Rationalization

反合理化

RationalizationWhy It's WrongRequired Action
"30 samples should be enough"The system tried with 3-10 and FAILED. 50 is the empirically validated minimum.Collect 50+ samples before proceeding past Step 1
"The rules are detailed enough, samples are optional"V7-V9 had detailed rules and failed 0/5 authorship matching. V10 passed with samples.Samples are mandatory. 400+ lines in SKILL.md
"I'll clean up the samples for consistency"Cleaning removes authenticity markers. Typos and fragments ARE the voiceKeep samples exactly as written
"Validation passed, so the voice is done"Metrics measure surface. Humans detect deeper patterns. Passing metrics != sounding authenticRun authorship matching or self-assessment
"I can skip the analyzer and identify patterns manually"AI interpretation without data drifts toward generic patternsRun voice_analyzer.py FIRST, always
"The imperfections make it look bad"Perfection is the enemy of authenticity. Sterile content is an AI tellPreserve wabi-sabi markers from samples
"Just one more rule will fix the authorship matching"The answer is almost always more samples, not more rulesAdd 20-50 more samples before adding rules
"The generated content is too rough"If it matches the original samples' roughness, it's correct. Over-polishing destroys the voiceCompare against samples, not against "good writing"

合理化借口为什么错误必须采取的行动
「30份样本应该足够」系统尝试过3-10份样本,失败了。50份是经验证的最低要求。在进入步骤1之前,收集50+份样本
「规则足够详细,样本是可选的」V7-V9版本规则详细,但作者身份匹配0/5失败。V10版本因样本通过。样本是强制性的。SKILL.md中需包含400+行样本
「我会清理样本以保持一致性」清理会破坏真实性标记。拼写错误和断句就是语音的一部分完全保留样本的原始状态
「验证通过,所以语音完成了」指标测量表面特征。人类能检测到更深层的模式。通过指标≠听起来真实进行作者身份匹配或自我评估
「我可以跳过分析器,手动识别模式」无数据支撑的AI解读会偏向通用模式始终先运行voice_analyzer.py
「瑕疵看起来不好」完美是真实性的敌人。缺乏生气的内容是AI的特征保留样本中的Wabi-sabi标记
「再添加一条规则就能修复作者身份匹配」答案几乎总是添加更多样本,而非更多规则在添加规则前,先添加20-50个更多样本
「生成内容太粗糙」如果它与原始样本的粗糙程度匹配,那就是正确的。过度润色会破坏语音与样本对比,而非与「好写作」对比

Reference Implementations

参考实现

Study any existing voice profile in
skills/voice-*/
to understand what "done" looks like. A complete voice profile contains:
FileTypical SizeWhat to Learn
skills/voice-{name}/SKILL.md
2000+ linesVoice rules, samples, patterns, metrics
skills/voice-{name}/references/samples/
5-10 filesHow samples should be organized by source and date
skills/voice-{name}/config.json
~20 linesValidation configuration structure
skills/voice-{name}/profile.json
~80 linesProfile structure from voice_analyzer.py
Create your own voice profiles with
/create-voice
.
研究
skills/voice-*/
中的任何现有语音配置文件,了解「完成状态」是什么样的。完整的语音配置文件包含:
文件典型大小学习要点
skills/voice-{name}/SKILL.md
2000+行语音规则、样本、模式、指标
skills/voice-{name}/references/samples/
5-10个文件样本应如何按来源和日期组织
skills/voice-{name}/config.json
~20行验证配置结构
skills/voice-{name}/profile.json
~80行voice_analyzer.py生成的配置文件结构
使用
/create-voice
创建你自己的语音配置文件。

Components This Skill Delegates To

本技能委托的组件

ComponentTypeWhat It DoesWhen Called
scripts/voice_analyzer.py analyze
ScriptExtract quantitative metrics from writing samplesStep 2: EXTRACT
scripts/voice_analyzer.py compare
ScriptCompare two voice profilesOptional (cross-voice comparison)
scripts/voice_validator.py validate
ScriptValidate generated content against voice profileStep 6: VALIDATE
scripts/voice_validator.py check-banned
ScriptQuick banned pattern checkStep 6: VALIDATE
scripts/data/banned-patterns.json
DataAI pattern database used by validatorStep 6 (via validator)
pipelines/voice-calibrator/SKILL.md
SkillVoice skill template (lines 1063-1554, including the validation checklist)Step 5: GENERATE (template reference)
skills/shared-patterns/wabi-sabi-authenticity.md
PatternWabi-sabi principle referenceAll steps
组件类型功能调用时机
scripts/voice_analyzer.py analyze
脚本从写作样本中提取量化指标步骤2:提取
scripts/voice_analyzer.py compare
脚本对比两个语音配置文件可选(跨语音对比)
scripts/voice_validator.py validate
脚本对照语音配置文件验证生成内容步骤6:验证
scripts/voice_validator.py check-banned
脚本快速检查禁止模式步骤6:验证
scripts/data/banned-patterns.json
数据验证器使用的AI模式数据库步骤6(通过验证器)
pipelines/voice-calibrator/SKILL.md
技能语音技能模板(1063-1554行,包含验证清单)步骤5:生成(模板参考)
skills/shared-patterns/wabi-sabi-authenticity.md
模式Wabi-sabi原则参考所有步骤