Communityライティング&編集github.com

product-on-purpose/writing-style-catalog

AIエージェント向けの、4つの直交軸(Voice、Tone、Style、Format)に基づく、組み合わせ可能なライティング指示。初期段階・実験的。product-on-purposeマーケットプレイスからインストール可能。

writing-style-catalog とは?

このスキルは、AIエージェントがライティング指示を柔軟に構成するためのカタログです。Voice(声)、Tone(調子)、Style(文体)、Format(形式)の4つの軸からそれぞれエントリを選択・組み合わせることで、目的に合った詳細なライティング指示を生成します。各エントリは「llm_instruction_phrasing」という形で具体的な指示文を持ち、選択されたエントリ同士の競合(avoid_withやpairs_well_with)を自動でチェックし、警告を出力します。競合があってもブロックはせず、優先順位(Voice→Tone→Style→Format)に従って合成を続行するため、意図的な緊張感を保った指示も作成可能です。Claude CodeやCodex、Cursorなど、スラッシュコマンドをサポートするAIエージェントプラットフォームで利用でき、生成された指示はそのまま任意のLLMプロンプトに貼り付けて使用できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add product-on-purpose/writing-style-catalog

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Compose Writing Instruction

Voice(声)、Tone(調子)、Style(文体)、Format(形式)の各軸からタクソノミエントリを組み合わせて、ライティング指示を構成します。

使用方法

/writing-style-catalog:writing-instruction-builder [voice=<id>] [tone=<id>] [style=<id>] [format=<id>] [topic=<text>] [audience=<text>]

すべてのパラメータはオプションです。省略した場合、スキルが適切なデフォルト値を選択します。

パラメータ

  • voice - VoiceエントリID(例:pragmatic-architect、pastoral、columnist)
  • tone - ToneエントリID(例:candid、warm、matter-of-fact)
  • style - StyleエントリID(例:problem-solution、devotional-reflection)
  • format - FormatエントリID(例:adr、blog-post-long-form、slack-message)
  • topic - 書きたいトピックまたは主題(オプション。より具体的な合成指示を行う場合に使用)
  • audience - 対象読者(オプション。デフォルトは一般)

スキルの機能

  1. 指定された各エントリIDをタクソノミカタログに対して検証します
  2. 一致した各エントリから llm_instruction_phrasing を読み取ります
  3. 固定の優先順位(Voice → Tone → Style → Format)で合成指示文字列を組み立てます
  4. 選択されたエントリ同士の関係フィールドを相互にチェックし、競合があれば警告を出力します(ブロックはしません)
  5. 合成された指示を返します。そのまま任意のLLMプロンプトに貼り付けて使用できます

実装

合成処理は、このスキルフォルダ内のヘルパースクリプト scripts/build-instruction.py によって実装されています。スクリプトはプラグインルートの taxonomy/ ディレクトリからカタログを読み取るため、このディレクトリはプラグインに同梱されています。スラッシュコマンドは key=value 引数を受け取りますが、スクリプト自体は --flag value 引数を受け取ります。スラッシュコマンドを使わずに直接実行することも可能です。例:

python scripts/build-instruction.py --voice pragmatic-architect --tone candid --format adr

競合を考慮した合成

ビルダーは、選択された各エントリの avoid_with および pairs_well_with 関係を読み取り、それらを報告するため、合成結果は単なる盲目的な連結ではなく、チェック済みの保証が付与されます。ルール(ADR 0016参照):

  • 競合は対称的です。 どちらかのエントリが他方を avoid_with にリストしている場合、そのペアはフラグが立てられます。これにより、警告がどの作成者がリンクを記録したかに依存することはありません。
  • 警告は出しますが、ブロックはしません。 競合するペアでも合成は行われます(意図的な緊張感を残したい場合があるため)。ビルダーは警告を出力し、Voice → Tone → Style → Format の優先順位を適用して、上位の軸が主導するようにします。
  • 肯定関係。 pairs_well_with に一致するものは、確認メモとして表示されます。

合成された指示は標準出力に出力され、競合警告と確認メモは標準エラー出力に出力されます。そのため、標準出力はパイプ可能なクリーンなプロンプトとして使い続けられます。例えば、pragmatic-architect ボイスと、それが avoid_with にリストしている reverent トーンを組み合わせた場合でも、指示は返され、以下のように出力されます:

warning: conflict - pragmatic-architect (voice) and reverent (tone) are marked avoid_with.
Composing anyway with voice -> tone -> style -> format precedence; expect tension.

使用例

pragmatic-architectボイス、candidトーンでADRを構成する:

/writing-style-catalog:writing-instruction-builder voice=pragmatic-architect tone=candid format=adr

pastoralなデボーショナルを構成する:

/writing-style-catalog:writing-instruction-builder voice=pastoral tone=reverent style=devotional-reflection format=devotional-entry topic="休息の訓練"

利用可能なエントリ

引数なしで実行すると、軸ごとにグループ化されたすべての利用可能なエントリが表示されます。

関連スキル