style-learner について
style-learnerは、サンプル文から定量的な特徴を抽出し、代表的な文章を選んで再利用可能なスタイルプロファイルを作成します。文章作成やコンテンツ生成で一貫した文体を適用し、新しい文章で検証するためのスキルです。
主な機能
- 01定量的な文体指標の抽出
- 02代表的な文章の選定
- 03再利用可能なプロファイル作成
- 04新しい文章を使った検証
- 05slop-detectorとの連携
活用シーン
- 01サンプル文から文体ガイドを作成
- 02目標の語調に沿った文書生成
- 03生成文とプロファイルの照合
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ athola/ claude-night-market --skill style-learnerインストール後、Claude Code で/style-learnerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
modules/exemplar-reference.mdfeature-extraction.mdstyle-application.md詳細
スタイル学習スキル
スタイルプロファイルは、指標と例文で構成されます。どちらか一方だけでは、文体を再現するには不十分です。
例文からスタイルを抽出し、後続のスキル(scribe:doc-generator、
scribe:voice-generate)が一貫して適用できるプロファイルとして体系化します。
使用しない場合
- サンプルから特定の人物の文体を抽出する場合(
scribe:voice-extractを使用してください) - プロファイルに照らしてテキストをレビューする場合(
scribe:voice-reviewを使用してください)
アプローチ:特徴抽出と例文参照
このスキルでは、どちらの手法も単独では不十分なため、2つを組み合わせます。
- 特徴抽出:定量化できる指標(文の長さの分布、語彙の複雑さ、構造的なパターンなど)を測定します。再現性はありますが、無味乾燥です。
- 例文参照:対象のスタイルを示す具体的な文章を参照します。生き生きとしていますが、大規模に適用するのは困難です。
組み合わせることで、新しいテキストを評価するのに十分な精度と、書き直しの指針となる豊かさを備えたプロファイルになります。指標は例文が見落とすものを捉えます。例文は指標によって平坦化されるものを伝えます。
必須のTodoWrite項目
style-learner:exemplar-collected- ソーステキストを収集済みstyle-learner:features-extracted- 定量指標を算出済みstyle-learner:exemplars-selected- 代表的な文章を特定済みstyle-learner:profile-generated- スタイルガイドを作成済みstyle-learner:validation-complete- 新しいコンテンツでプロファイルをテスト済み
手順1:例文を収集する
対象のスタイルを代表するサンプルを収集します。
最小要件:
- 例文は合計1000語以上
- 複数のサンプルが望ましい(一貫性を確認できます)
- 出力対象と同じジャンル/文脈
## Exemplar Sources
| Source | Word Count | Type |
|--------|------------|------|
| README.md | 850 | Technical |
| blog-post-1.md | 1200 | Narrative |
| api-guide.md | 2100 | Reference |
手順2:特徴を抽出する
読み込み:@modules/feature-extraction.md
語彙指標
| 指標 | 測定方法 | 示す内容 |
|---|---|---|
| 平均語長 | 文字数/語 | 複雑さのレベル |
| 異なり語比率 | 異なり語数/総語数 | 語彙の広さ |
| 専門用語の密度 | 100語あたりの専門用語数 | 読者層のレベル |
| 短縮形の割合 | 文あたりの短縮形数 | 文体の形式度 |
文の指標
| 指標 | 測定方法 | 示す内容 |
|---|---|---|
| 平均文長 | 文あたりの語数 | 複雑さ |
| 長さのばらつき | 文長の標準偏差 | 自然な変化 |
| 疑問文の頻度 | 100文あたりの疑問文数 | 読者への働きかけ方 |
| 断片文の使用頻度 | 100文あたりの断片文数 | 文体上のキレ |
構造指標
| 指標 | 測定方法 | 示す内容 |
|---|---|---|
| 段落の長さ | 段落あたりの文数 | 密度 |
| リストの割合 | 全行に占める箇条書き行の割合 | 書式の好み |
| 見出しの深さ | 見出しレベルの最大値 | 構成スタイル |
| コードブロックの頻度 | 1000語あたりのコードブロック数 | 技術的な密度 |
句読点プロファイル
| 指標 | 通常の範囲 | スタイルの指標 |
|---|---|---|
| ダッシュの使用頻度 | 1000語あたり0~3回 | 挿入句のスタイル |
| セミコロンの使用頻度 | 1000語あたり0~2回 | 形式的な複雑さ |
| 感嘆符の使用頻度 | 1000語あたり0~1回 | 熱意の度合い |
| 省略記号の使用頻度 | 1000語あたり0~1回 | 思考を余韻として残すスタイル |
手順3:例文を選択する
読み込み:@modules/exemplar-reference.md
対象のスタイルを最もよく表す文章を3~5つ選びます(各50~150語)。
選定基準:
- 特徴的な文のリズムを示している
- 典型的な語彙の選択を示している
- 目標とするトーンを表している
- 例外的または特異な文章を避けている
例文テンプレート
### Exemplar 1: [Label]
**Source**: [filename, lines X-Y]
**Demonstrates**: [what aspect of style]
> [Quoted passage]
**Key characteristics**:
- [Observation 1]
- [Observation 2]
手順4:スタイルプロファイルを生成する
抽出した特徴と例文を組み合わせて、実用的なスタイルガイドを作成します。
プロファイルの形式
# Style Profile: [Name]
# Generated: [Date]
# Exemplar sources: [List]
voice:
tone: [professional/casual/academic/conversational]
perspective: [first-person/third-person/second-person]
formality: [formal/neutral/informal]
vocabulary:
average_word_length: X.X
jargon_level: [none/light/moderate/heavy]
contractions: [avoid/occasional/frequent]
preferred_terms:
- "use" over "utilize"
- "help" over "facilitate"
avoided_terms:
- delve
- leverage
- comprehensive
sentences:
average_length: XX words
length_variance: [low/medium/high]
fragments_allowed: [yes/no/sparingly]
questions_used: [yes/no/sparingly]
structure:
paragraphs: [short/medium/long] (X-Y sentences)
lists: [prefer prose/balanced/prefer lists]
headers: [descriptive/terse/question-style]
punctuation:
em_dashes: [avoid/sparingly/freely]
semicolons: [avoid/sparingly/freely]
oxford_comma: [yes/no]
exemplars:
- label: "[Exemplar 1 label]"
text: |
[Quoted passage]
- label: "[Exemplar 2 label]"
text: |
[Quoted passage]
anti_patterns:
- [Pattern to avoid 1]
- [Pattern to avoid 2]
手順5:検証する
新しいコンテンツでプロファイルをテストします。
- プロファイルを使ってサンプルコンテンツを生成します
- 指標を抽出済みの特徴と比較します
- 文体やトーンが一致しているか、ユーザーに評価してもらいます
- フィードバックに基づいてプロファイルを改善します
検証チェックリスト
- 指標が模範例の平均値から20%以内
- アンチパターンへの違反がない
- トーンがユーザーの期待に合っている
- 語彙が模範例に沿っている
- 構成がプロファイルのガイドラインに従っている
生成での使用
新しいコンテンツを生成する際は、プロファイルを参照してください。
Generate [content type] following the style profile:
- Voice: [from profile]
- Sentence length: target ~[X] words, vary between [Y-Z]
- Use exemplar passage as tone reference:
> [exemplar quote]
- Avoid: [anti-patterns from profile]
モジュールリファレンス
- 新しいコンテンツに学習したスタイルを適用する方法については、
modules/style-application.mdを参照してください。
slop-detectorとの統合
コンテンツを生成した後、slop-detectorを実行して次の項目を確認します。
- AIマーカーが追加されていない
- スタイル指標がプロファイルに一致している
- アンチパターンが回避されている
完了条件
- スタイルプロファイルのドキュメントが作成されている
- 3つ以上の模範的な文章が含まれている
- 定量的な指標が抽出されている
- slop-detectorによるアンチパターンが統合されている
- 検証テストに合格している