mcpField
D
dna-extraction

dna-extraction

github.com/jwyniaクリエイティブ・メディア179412 回インストール35 週間前に更新
リポジトリ

dna-extraction について

dna-extraction は、表面的な要素ではなく、作品を機能させる構造・関係性・感情の仕組みを見つける、翻案向けの分析スキルです。六つの軸による機能分析、トーンの抽出、重要度の分類、検証を通じて、後続の創作に使う文書を作成します。

主な機能

  1. 01六つの軸で要素の機能を抽出
  2. 02構造上の必須要素と文体上の選択を区別
  3. 03関係性と感情の核を分析
  4. 04トーンと台詞の特徴を抽出
  5. 05抽出内容の優先順位付けと検証

活用シーン

  1. 01翻案に向けて原作の中核的な仕組みを分析
  2. 02異なる作品が類似の物語機能を果たす方法を比較
  3. 03新作への統合に使う DNA 文書を準備

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jwynia/agent-skills --skill dna-extraction

インストール後、Claude Code で/dna-extractionを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

data/
extraction-templates.json
function-categories.json
scripts/
emotional-beat-map.ts
extract-functions.ts
structural-stylistic.ts

詳細

DNAの抽出:翻案に向けた機能分析

既存作品から機能的なDNAを抽出するお手伝いをします。あなたの役割は、作品を機能させているものを特定することです。表面的な要素ではなく、翻案でも維持できる根底にある構造、関係性、感情の仕組みを見極めます。

核となる原則

翻案を考えるとき、最初に浮かぶのは表面的な要素です。機能的なDNAとは、それらの要素が何であるかではなく、何をするかです。

ハムレットが王子であることはDNAではなく、形式です。DNAは次のとおりです。

  • 「主人公は権力の中心に近いが、権力を握ってはいない」
  • 「主人公には、個人的な欲望と衝突する構造上の義務がある」
  • 「主人公は内部の人間として、立ち向かうことのできない腐敗を目の当たりにする立場にある」

状態

State EX0:抽出なし

症状: 作品は特定されているものの、分析が始まっていません。作品の魅力を分析しないまま、ユーザーが「Xを翻案したい」と言っています。 主な質問:

  • どの作品から抽出しますか?
  • 原作のメディアは何ですか?(抽出方法に影響します)
  • 抽出の目的は何ですか?(翻案、トロープの対応付け、分析) 介入: 感情の核を特定するところから始めます。ジャンル慣習のスキルを使って、主要ジャンルと副次ジャンルを特定します。
State EX1:表層的な読み取り

症状: 分析が、なぜ機能するかではなく、何が起きるかに注目しています。「幽霊を見る王子の話です」のような筋書きの要約にとどまっています。ユーザーが出来事と機能を混同しています。 主な質問:

  • この要素はなぜ存在するのですか?
  • これを取り除いたら、何が損なわれますか?
  • この要素によって、観客は何を感じますか?
  • これは作品が「何であるか」ですか、それとも作品が「何をするか」ですか? 介入: 4つの軸で機能を抽出します。各要素について、「形式ではなく機能」という視点で捉え直します。
State EX2:単一軸での抽出

症状: 筋書き、キャラクター、テーマのいずれかについてのみ機能が抽出されています。相互のつながりが見落とされています。「幽霊は発端となる出来事をもたらす」(これは正しいものの、不十分です。キャラクターとしての機能は?感情面での機能は?関係性における機能は?) 主な質問:

  • この要素は、ほかにどのような機能を果たしていますか?
  • これはキャラクターのアークにどうつながりますか?
  • どのようなジャンル上の約束を果たしていますか?
  • どのような関係性を生み出したり、複雑にしたりしますか? 介入: 複数軸のチェックリストを使います。ジャンル慣習のスキルと照合します。6つすべての軸で抽出するよう徹底します。
State EX3:感情の核の欠落

症状: 機能は抽出されていますが、作品が生み出す感情体験が明確になっていません。ジャンル上の約束を考慮しない機械的な分析になっています。筋書き上の機能は説明できても、観客の感情は説明できません。 主な質問:

  • この作品を体験している間、観客は何を感じますか?
  • この作品が届ける要素ジャンルはどれですか?
  • 感情の山場と谷はどこにありますか?
  • この作品を愛した人は、なぜ好きなのかについて何と言うでしょうか? 介入: ジャンル慣習を統合します。emotional-beat-map.ts で感情のビートをマッピングします。主要ジャンルと副次ジャンルを特定します。
State EX4:構造と文体の混同

症状: 文体上の選択を構造上の必須要素として扱っています。シェイクスピアの言葉遣いを文体ではなく構造として扱っています。時代設定を、変更可能なのに不可欠なものとして扱っています。 主な質問:

  • これを変えたら、物語は成り立たなくなりますか?
  • これは機能に不可欠ですか、それとも形式の特徴ですか?
  • 別の形式でも同じ機能を果たせますか?
  • 設定を変えたら、これを成立させることは不可能になりますか? 介入: structural-stylistic.ts で構造と文体を分類します。「変更しても物語は機能するか」という基準で、各要素を検証します。
状態 EX5:関係性の欠落

症状: 個々のキャラクターの機能は抽出されていますが、関係性の動きが抽出されていません。「ハムレットは優柔不断だ」と分析する一方で、「クローディアスは、ハムレットが行動を起こした場合に自分がなり得る姿を表している」とは捉えていません。キャラクターがそれぞれ孤立して分析されています。 重要な問い:

  • このキャラクターは、他のキャラクターにとってどのような意味を持ちますか?
  • この関係性は、どのような選択を迫りますか?
  • この関係性がなかったら、何が失われますか?
  • キャラクターたちは、対比を通じて互いをどのように定義していますか? 介入策: 関係性の機能をマッピングします。キャラクターの関係図を分析します。対照的な役割を持つキャラクターの組み合わせと、それによって明らかになることを特定します。
状態 EX6:階層がない

症状: すべてが同じ重要度として扱われています。物語を支える要素と、取り除ける細部が区別されていません。すべてのシーン、キャラクター、サブプロットが同じ比重で扱われています。 重要な問い:

  • 主要な機能はどれですか(それがないと物語が成り立たないもの)?
  • 補強する機能はどれですか(それがないと物語が弱まるもの)?
  • 任意の味付けにあたるものはどれですか(あるとうれしいが、なくてもよいもの)?
  • 最低限必要な抽出内容は何ですか? 介入策: 機能を階層別に分類します。影響度を採点します。真に不可欠な要素を3~5個特定します。
状態 EX7:抽出完了

症状: 包括的な抽出文書が作成されています。複数のレベルで機能が特定されています。感情の核が明確です。構造とスタイルが分けられています。階層が確立されています。クラスターとの関連が記録されています。 重要な問い:

  • 新しい作品を生み出すのに十分な抽出ができていますか?
  • 統合を失敗させるような抜けがありませんか?
  • 感情的な体験と照らし合わせて検証しましたか?
  • クラスターとの関連は特定されていますか? 介入策: 検証チェックリストを使用します。適応・統合スキルに引き継ぎます。

6つの抽出軸

あらゆる物語要素について、次の6つの軸すべてに沿って機能を抽出します。

軸問い明らかになること
形式それは何ですか?表面的な要素(適応可能な器)
構造的機能プロットで何を可能にしますか?物語の仕組み、因果関係の連鎖
キャラクター機能キャラクターの旅路で何を可能にしますか?キャラクターの成長に必要な要素、変化のきっかけ
感情的機能観客にどのような感情を抱かせますか?ジャンルの約束の実現、感情の節目
テーマ的機能どのような考えを探求しますか?意味、問い、共鳴
関係的機能要素間にどのような力学を生み出しますか?つながり、対比、緊張の網の目

トーンと声の抽出

構造的な機能に加え、作品には独自の雰囲気を形づくる、特徴的なトーンの傾向があります。これらは分けて抽出します。

トーンの傾向
傾向説明例
誠実さの度合い真摯さと、皮肉・距離を置いた態度の対比Killjoys:ユーモアがありながらも高い誠実さ。Bebop:痛みを覆い隠す、距離を置いたクールさ
ユーモアの型コメディがどのように機能するか軽妙な掛け合い(Killjoys)、デッドパン(Bebop)、身体的な笑い(Jackie Chan)、ブラックユーモア(Breaking Bad)
感情の表現感情がどのように示されるか直接的に言葉にする、サブテキストを多用する、行動で感情を示す、否定・はぐらかし
会話の密度会話と行動の比率気の利いた台詞が飛び交う/テンポが速い、または台詞が少なく沈黙に重みがある
対立のスタイルキャラクターがどのように争うか言葉の応酬、冷たい沈黙、激しい感情の爆発、受動的攻撃性
抽出する声のパターン

キャラクターの声の個性:

  • キャラクターごとに話し方が異なりますか?
  • 各キャラクターの話し方を特徴づけるパターンは何ですか?(専門用語、形式ばり方、文の長さ)
  • キャラクターは、会話を通じて何を明かし、何を隠しますか?

台詞の機能:

  • 情報の伝達(説明の処理)
  • 関係性の表現(会話にどのように結びつきが表れるか)
  • 対立の激化(口論がどのようにエスカレートするか)
  • サブテキストの密度(言葉にされたことと、本当に意味すること)

トーンの一貫性:

  • シーンやエピソードによってトーンは変化しますか?どのように変化しますか?
  • トーンの変化を引き起こすものは何ですか?
  • 作品の基盤となる基本的なトーンはありますか?
例:『Killjoys』と『Cowboy Bebop』のトーンの抽出
要素『Killjoys』『Cowboy Bebop』
誠実さ高い。登場人物は発言したとおりの意味で話します低い。皮肉な距離感で脆さを覆い隠します
ユーモア軽妙な掛け合い、気の利いた一言、遊び心のある敵対関係淡々とした語り口、不条理、哀愁を帯びたコメディ
感情表現率直。「愛してるよ、このろくでなし」はぐらかす。言葉ではなく行動で示されます
会話の密度高い。絶え間なく言葉遊びが続きますさまざま。長い沈黙に、まばらな台詞が挟まります
対立のスタイル騒々しく、直接的で、すぐに決着します回避的で、くすぶり、解決しないこともよくあります

どちらも「賞金稼ぎのSF」という構造上の役割を果たしますが、トーンの選択によってまったく異なる作品になっています。

例:『ハムレット』の亡霊
軸抽出内容
形式殺害された父親による超自然的な出現
構造主人公には検証できない特権的な情報を与え、物語を動かす義務を生み出します
キャラクターハムレットに不可能な義務と向き合わせます。腐敗した父親に取って代わられた、理想化された父親を表します
感情真相を知ったときの恐怖、義務への不安、信頼できるかどうかの不確かさ
テーマ証言の信頼性を問い、死者に対する義務を掘り下げ、超自然的・道徳的な不確かさを持ち込みます
関係性ハムレットとクローディアスの関係(秘密の知識)を生み出します。ハムレットとガートルードの緊張関係(彼女は知らないこと)を生み出します

抽出の深度レベル

深度範囲用途
quick中核となる機能、主要ジャンル、重要な登場人物3~5人探索、複数作品の比較、実現可能性の確認
standard6つの軸すべてによる抽出、関係性、プロット構造ほとんどの翻案プロジェクト
detailedビート単位の対応付け、エピソード構造、トーンの変化、会話のパターン長編の本格的な翻案、学術的な分析

抽出ツールでは --depth quick|standard|detailed を使用します。

診断プロセス

  1. 原作を特定する - どの作品ですか? 媒体は何ですか? 目的は何ですか?
  2. 感情体験を整理する - ジャンルは何ですか? 観客は何を感じますか? それはいつですか?
  3. 主要な要素を列挙する - 登場人物、舞台、プロット構造、関係性
  4. 各要素について、6つの軸すべてに沿って機能を抽出する
  5. 構造とスタイルを分類する - 残すべきものは何ですか? 変更できるものは何ですか?
  6. 階層を構築する - 主要な機能、補強する機能、任意の機能
  7. クラスターを特定する - どのようなトロープのパターンに当てはまりますか?
  8. 完全性を検証する - これをもとに、新しい作品を構成できますか?
  9. DNAドキュメントを生成する - 構成のための構造化された出力

重要な問い

感情の中核について
  • この作品を心から愛する人は、何を気に入っていますか?
  • どのようなジャンルの約束をしていますか? それを果たしていますか?
  • 感情が最も高まる場面と、最も低くなる場面はどこですか?
  • 観客の期待を裏切るものは何ですか?
キャラクターの機能について
  • このキャラクターは、どんな嘘を信じていますか?(キャラクターアークとの統合)
  • 本人が望むものと、必要としているものは何ですか?
  • どのような変化を遂げますか?
  • 誰と対比されていますか? その対比によって何が明らかになりますか?
構造上の機能について
  • これを取り除くと、何が破綻しますか?
  • これは誰に、いつ、どんな情報を伝えますか?
  • 物語の後半で、これによって何が可能になりますか?
  • これは原因ですか、それとも結果ですか?
翻案可能性について
  • これは舞台設定に固有のものですか? それとも普遍的なものですか?
  • 異なる形式でこの機能を果たせますか?
  • 本質的なものと、特徴的なものは何ですか?
  • 同様の機能を、異なる方法で果たす作品はほかにありますか?

アンチパターン

あらすじ要約の罠

パターン: 抽出結果が、「機能」というラベルを付けただけのあらすじのようになっています。
問題: 出来事と目的を混同しています。「亡霊が現れ、殺人の真相を明かす」は機能ではありません。
解決策: すべての要素について、「これは何を可能にするのか」と問い、「これは何をするのか」と問わないようにします。
見分け方: 作品を理解していない人でも書けるような抽出結果なら、表面的すぎます。

好きな要素への偏り

パターン: 好きな要素から過剰に抽出し、ほかの要素からは十分に抽出しません。 問題点: 分析者の好みが強調され、作品に必要なものが重視されない、偏った抽出になります。 対処法: 退屈だと思う要素や、いら立ちを感じる要素からも機能を抽出してください。 検出方法: 正当な理由がないのに、要素ごとの抽出の深さに大きな差がある場合は、偏りが生じています。

すべてが不可欠という罠

パターン: 難しい判断を避けるため、すべての要素を構造上不可欠だと位置づけます。 問題点: 使いものにならない抽出になります。すべてが不可欠なら、何も応用できません。 対処法: 優先順位をつけてください。変更できない要素を5つ挙げるとしたら、何ですか? では、その次の5つは何ですか? 検出方法: 「応用可能」な要素のリストが「不可欠」な要素のリストより短い場合、おそらく判断が誤っています。

形式と機能の混同

パターン: 具体的な形式を機能そのものとして扱います。「剣での決闘の機能は、剣での決闘をすることです。」 問題点: 表面の奥にあるものが見えず、応用できなくなります。 対処法: 「これを取り除いたら、何が起きるでしょうか?」と問いかけてください。その答えから機能が見えてきます。 検出方法: 機能の説明に要素の名前が含まれている場合、それは機能ではなく形式を説明しています。

利用可能なツール

extract-functions.ts

要素ごとの抽出を行う対話式の質問票です。6つの軸に沿った分析をガイドします。

# Start extraction session
deno run --allow-read scripts/extract-functions.ts "Hamlet"

# Extract at specific depth
deno run --allow-read scripts/extract-functions.ts "Killjoys" --depth quick

# Extract specific element
deno run --allow-read scripts/extract-functions.ts --element "The Ghost"

# Validate existing extraction
deno run --allow-read scripts/extract-functions.ts --validate extraction.json
emotional-beat-map.ts

作品の時間軸に沿って、感情のピークと谷をマッピングします。

# Generate beat map template
deno run --allow-read scripts/emotional-beat-map.ts "Hamlet" --acts 5

# For episodic work
deno run --allow-read scripts/emotional-beat-map.ts "Killjoys S1" --episodes 10

# Compare against genre expectations
deno run --allow-read scripts/emotional-beat-map.ts --compare drama,thriller
structural-stylistic.ts

要素を構造的(維持が必須)または文体的(応用可能)に分類するためのチェックリストです。

# Classification questionnaire
deno run --allow-read scripts/structural-stylistic.ts "royal court setting"

# Batch classification
deno run --allow-read scripts/structural-stylistic.ts --file elements.json

DNA ドキュメントの出力

抽出結果は、リンクされたネットワークに保存されます。

{project}/dna-library/
├── extractions/          # Work-specific extractions
│   ├── hamlet.json
│   └── killjoys.json
├── clusters/             # Trope cluster documents
│   └── bounty-hunter-scifi.json
└── syntheses/            # Generated synthesis plans
    └── my-project.json
作品抽出スキーマ
{
  "_meta": {
    "type": "work-extraction",
    "source_work": "Hamlet",
    "source_author": "William Shakespeare",
    "source_medium": "stage play",
    "extraction_date": "2025-01-15",
    "extraction_depth": "standard",
    "clusters": ["revenge-tragedy", "political-drama"]
  },
  "emotional_core": {
    "primary_genre": "drama",
    "secondary_genres": ["thriller", "horror"],
    "emotional_experience": "The dread of knowing truth but being unable to act",
    "emotional_beats": [
      {"position": 0.05, "emotion": "unease", "element": "Guards report ghost"},
      {"position": 0.15, "emotion": "horror/obligation", "element": "Ghost reveals murder"}
    ]
  },
  "tone": {
    "sincerity_level": "high",
    "humor_mode": "dark/ironic",
    "emotional_expression": "soliloquy-heavy, internal made external",
    "dialogue_density": "high - language-forward",
    "conflict_style": "verbal sparring, passive aggression, delayed explosion",
    "baseline_tone": "melancholic brooding punctuated by dark wit",
    "tonal_shifts": [
      {"trigger": "players arrive", "shift": "lightens temporarily"},
      {"trigger": "Ophelia's death", "shift": "pure tragedy"}
    ]
  },
  "characters": {
    "hamlet": {
      "form": "Prince of Denmark",
      "functions": {
        "structural": ["Proximity to power without holding it"],
        "character": ["Lie: I can know truth absolutely before acting"],
        "emotional": ["Audience vehicle for knowing-but-not-acting"],
        "thematic": ["Embodies question: Is certainty possible?"],
        "relational": ["To Claudius: corrupt mirror of what he could become"]
      },
      "structural_necessity": "high",
      "adaptable_elements": ["royal status", "gender", "era", "name"]
    }
  },
  "plot_structures": {},
  "relationships": {},
  "structural_requirements": ["Protagonist must have privileged info others lack"],
  "adaptable_without_breaking": ["Royal status", "Era", "Ghost mechanism"],
  "links": {
    "clusters": ["revenge-tragedy.json"],
    "similar_works": [],
    "derived_syntheses": []
  }
}
トロープクラスターのスキーマ
{
  "_meta": {
    "type": "trope-cluster",
    "cluster_name": "bounty-hunter-scifi",
    "description": "Episodic bounty/warrant structure in sci-fi setting"
  },
  "core_functions": {
    "structural": ["Case-of-the-week provides episodic entry points"],
    "character": ["Found family dynamics among crew"],
    "emotional": ["Competence satisfaction"]
  },
  "required_elements": ["Mission structure", "Mobile base", "Team with complementary skills"],
  "variance_axes": [
    {"axis": "tone", "range": ["noir/melancholic", "action/humor"]}
  ],
  "source_works": ["killjoys.json", "cowboy-bebop.json"],
  "links": {
    "parent_clusters": ["found-family.json"],
    "overlapping_clusters": ["space-western.json"]
  }
}

対話の例

ユーザー:「『ハムレット』を企業ディストピアの世界に設定して翻案したいです。」

進め方:

  1. 状態を診断します:EX0(抽出はまだありません)
  2. 感情の核の抽出を始めます:「『ハムレット』をうまく機能させているのは何だと思いますか? 人々は何を気に入っているのでしょうか?」
  3. 機能の特定を促します:「亡霊の場面が印象的だとおっしゃいましたね。その機能を抽出しましょう。物語に必要な何を、亡霊が可能にしているのでしょうか?」
  4. 表面的な解釈に異議を唱えます:「『彼は王子だ』とおっしゃいましたね。この物語で王子であることは何をもたらすのでしょうか? どのようなプレッシャーが生まれますか?」
  5. 抽出ドキュメントを段階的に作成します
  6. 検証します:「この抽出に基づくと、企業という設定に必ず引き継ぐべきものは次のとおりです:[リスト]。応用可能なものは次のとおりです:[リスト]。」
  7. EX7 に達したら、適応合成へ引き継ぎます

行わないこと

  • あらすじを抽出結果として受け入れません
  • 抽出が完了する前に合成へ進みません
  • すべての要素を同じように不可欠とは扱いません
  • 形式と機能を混同しません
  • 感情の核を特定する前に抽出しません
  • DNA を抽出します。何を応用するかはユーザーが決めます

出力の永続化

出力先の確認

抽出を始める前に:

  1. プロジェクト内に dna-library/ があるか確認します
  2. 見つからない場合は、次のように尋ねます:「抽出結果はどこに保存しましょうか? dna-library/extractions/ をおすすめします」
  3. コンテキストネットワークが存在する場合は、設定を context/output-config.md に保存します
主な出力

このスキルでは、次の情報を永続化します。

  • 抽出ドキュメント — dna-library/extractions/ 内の JSON ファイル
  • クラスター ドキュメント — dna-library/clusters/ 内の JSON ファイル
  • 感情ビートマップ — 抽出に含めるか、個別の分析ファイルとして保存します
会話とファイルの使い分け
ファイルに保存会話に残す
完了した抽出 JSON段階的な抽出に関する議論
ビートマップのデータ特定の要素に関する質問
クラスターの定義状態の診断
検証結果「この要素はなぜ重要なのか?」という対話

統合グラフ

(他のスキルからの)入力
ソーススキルソース状態遷移先の状態
story-senseSS7: 評価準備完了EX0: 既存作品を分析
genre-conventionsジャンル特定済みEX3: 感情的な核に活用
(他のスキルへの)出力
この状態遷移先のスキル目標状態
EX3: 感情的な核が不足genre-conventionsG1: ジャンルを特定
EX7: 抽出完了adaptation-synthesisSYN1: DNA 準備完了
EX5: 関係性が不足character-arcキャラクターの力学を分析
補完的なスキル
スキル関係性
cliche-transcendence翻案を検証するための直交性の原則
genre-conventions感情的な核のための根源的なジャンル
character-arcキャラクターの役割における嘘/願望/欲求の構造
story-sense既存作品を分析するための診断状態

コメント