curiosity-framework
コア的な6層分解フレームワークです。ユーザーがトピック、技術、市場シグナル、グローバルイベントについて説明した場合、またはシナリオカードをクリックしてsendPromptが実行された場合、あるいは/curiosity-stack:decomposeコマンドが実行された場合に起動します。ソクラテス式の対話を用いて、L0からL6まで段階的にユーザーをガイドします。
description の原文を見る
The core 6-layer decomposition framework. Activates when a user describes any topic, technology, market signal, or global event. Also activates when a scenario card is clicked via sendPrompt, or when /curiosity-stack:decompose is run. Guides the user through L0 to L6 using Socratic conversation — one layer at a time.
SKILL.md 本文
キュリオシティ・フレームワーク — コア分解スキル
重要 — アーティファクト形式ルール
<!DOCTYPE html>、<html>、<head>、または<body>タグで出力をラップしないでください。CoworkアーティファクトはHTMLフラグメントのみです。完全なドキュメントではありません。 アーティファクトを<!DOCTYPE html>で開始すると、生のコードが表示され、レンダリングされなくなります。 常に<style>または<div>から直接開始してください。
間違い: <!DOCTYPE html><html><head>... 正解: <style>...</style><div>...
6つのレイヤー
| レイヤー | ラベル | 質問 |
|---|---|---|
| L0 | シグナル | 何が起きており、なぜ今なのか? |
| L1 | メカニクス | これは技術レベルで本当は何か? |
| L2 | 因果ツリー | 根本原因は何か — 構造的か周期的か? |
| L3 | ソリューション空間 | 各原因はどの業界を生み出すか? |
| L4 | ビルド要件 | 各ソリューションはどのような入力とインフラが必要か? |
| L5 | バリューチェーン・アクター | 誰がこの仕事を行うか — グローバルおよびインド? |
| L6 | リサーチランドスケープ | 投資家はこの分野にどのようにアクセスするか? |
会話モード — L6までテキストのみ
重要なトークンルール: 分解会話中にHTMLアーティファクトを生成しないでください。 すべてのレイヤー(L0からL6)はチャットでプレーンテキストで配信されます。 フロー中にアーティファクト、HTML、CSSはありません。
アーティファクトは1回だけ生成されます — L6が完了してユーザーが要求した後のみです。 これにより出力トークンの60~70%が削減されます。
各レイヤーの配信方法 — プレーンテキスト形式
チャット内の各レイヤー応答は以下の構造に従います:
**L[N] · [レイヤー名]**
[このトピックに対する2~3文の回答 — 実質的で具体的]
→ [主要な洞察1]
→ [主要な洞察2]
→ [主要な洞察3 — 常に自明でない点を含める]
*[L N of 6 — 最後にビジュアルアーティファクトが生成されます]*
下部のイタリック体の進捗行はすべてのレイヤーで必須です。 ビジュアルが生成されることをユーザーに思い出させ、フロー内に留めておきます。
L5 — インドプロキシエージェント申し込みは必須
L5プレーンテキストを配信した後、常にこの正確なプロンプトを表示してください:
このチェーンの各レイヤーのインド企業を見つけたいですか?
インドプロキシエージェントを実行できます — NASSCOM、DPIIT、
アナリストレポート、VCポートフォリオを検索して、
Google検索では見つからないリスト企業、SMEリスト企業、
プライベート企業を明らかにします。
「find India proxies」または「yes」と言うだけで実行します。
または「continue」と言ってL6に進みます。
重要なルーティングルール — ユーザーが「yes」「find India proxies」「yes find them」 またはうえのプロンプトへのいかなる肯定を言った場合: → インドプロキシエージェントを直ちに起動 → 独自に企業カードを生成しない → プレーンテキストで企業をリストしない → インドプロキシエージェントのみがインド企業を表示する唯一のもの → ドメイン知識フォームを備えた独自の構造化テーブルアーティファクトを生成します
いかなるレイヤーでもインド企業の独自のリストを生成しないでください。 ユーザーがいかなる時点でインド企業について質問する場合、常に インドプロキシエージェントにルーティングしてください — 自分で答えないでください。
ソクラティック・トランジション
各レイヤーのプレーンテキスト応答の後(独自のプロンプトを持つL5を除く)、 次のレイヤーに移動するための1つの焦点を当てた質問を尋ねます。 短く、会話的に保ってください。 質問は1つだけです。ユーザー応答を待ってから続行してください。
L6後 — チャットのアクションメニュー
L6プレーンテキスト応答の後、チャットにこれを表示します(アーティファクトではなく):
分解完了 — [トピック]全6レイヤー。
次にどうしたいですか?
→ **ビジュアルアーティファクトを生成** — 統計カード、
因果ツリー、バリューチェーンテーブルを備えた
完全な6レイヤードキュメント(より多くのトークンを消費)
→ **インドプロキシを見つける** — インドプロキシエージェントを実行
→ **ウォッチリストに追加** — このトピックを毎週監視
→ **ストレステスト** — コア仮説に異議を唱える
→ **ライブラリに保存** — この分解を保存
→ **新しいトピックを開始**
ユーザーの選択を待ってください。何も自動トリガーしないでください。
ユーザーが「generate」 / 「generate visual」 / 「yes generate」と言った場合
ここでようやく、すべての6レイヤーを備えた完全なHTMLアーティファクトを生成してください。 以下のCSSおよびレイヤーカードテンプレートを使用してください。 これが分解フロー内でアーティファクトが生成される唯一の時刻です。
アーティファクトはHTMLフラグメントです — DOCTYPEではなく<style>で開始してください。
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
font-family: 'Georgia', 'Times New Roman', serif;
background: #fafaf8;
color: #2c2c2c;
max-width: 860px;
margin: 0 auto;
padding: 24px 20px 60px;
}
/* ── HEADER ── */
.doc-header {
border-bottom: 2px solid #1b5e52;
padding-bottom: 16px;
margin-bottom: 28px;
}
.doc-eyebrow {
font-family: 'Courier New', monospace;
font-size: 10px;
letter-spacing: 0.12em;
text-transform: uppercase;
color: #1b5e52;
margin-bottom: 6px;
}
.doc-title {
font-size: 26px;
font-weight: 700;
color: #1a1a1a;
line-height: 1.2;
margin-bottom: 4px;
}
.doc-sub { font-size: 13px; color: #6b6b6b; }
/* ── PROGRESS BAR ── */
.progress-wrap { display: flex; gap: 4px; margin-bottom: 32px; align-items: center; }
.progress-step { flex: 1; height: 4px; background: #e0ddd6; border-radius: 2px; }
.progress-step.done { background: #1b5e52; }
.progress-step.active { background: #2d8c72; }
.progress-label { display: flex; justify-content: space-between; margin-bottom: 6px; }
.progress-label span { font-family: 'Courier New', monospace; font-size: 9px; letter-spacing: 0.08em; color: #9a9690; text-transform: uppercase; }
.progress-label span.done { color: #1b5e52; font-weight: 700; }
.progress-label span.active { color: #2d8c72; font-weight: 700; }
/* ── LAYER CARD ── */
.layer-card { margin-bottom: 28px; border: 1px solid #e0ddd6; border-radius: 10px; overflow: hidden; background: white; }
.layer-header { display: flex; align-items: center; justify-content: space-between; padding: 12px 18px; background: #1b5e52; }
.layer-label { font-family: 'Courier New', monospace; font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: rgba(255,255,255,0.7); }
.layer-name { font-size: 12px; font-weight: 700; color: white; letter-spacing: 0.06em; text-transform: uppercase; }
.layer-body { padding: 20px 22px; }
.layer-body p { font-size: 14px; line-height: 1.75; color: #2c2c2c; margin-bottom: 14px; }
.layer-body p:last-child { margin-bottom: 0; }
/* ── STATS ROW ── */
.stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 16px 0; }
.stat-card { background: #fafaf8; border: 1px solid #e0ddd6; border-radius: 8px; padding: 12px 14px; text-align: center; }
.stat-number { font-size: 22px; font-weight: 700; color: #1b5e52; line-height: 1; margin-bottom: 4px; }
.stat-label { font-size: 11px; color: #7a7770; line-height: 1.3; }
/* ── BULLET LIST ── */
.insight-list { list-style: none; margin: 14px 0; }
.insight-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; line-height: 1.65; color: #2c2c2c; margin-bottom: 8px; padding-bottom: 8px; border-bottom: 1px solid #f0ede8; }
.insight-list li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.insight-list li::before { content: '→'; color: #1b5e52; font-weight: 700; flex-shrink: 0; margin-top: 1px; }
/* ── KEY INSIGHT CALLOUT ── */
.insight-callout { background: #f0f7f4; border-left: 3px solid #1b5e52; border-radius: 0 6px 6px 0; padding: 12px 16px; margin: 16px 0; font-size: 13px; line-height: 1.65; color: #2c2c2c; font-style: italic; }
.insight-callout strong { font-style: normal; color: #1b5e52; }
/* ── CAUSE TREE (L2) ── */
.cause-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 14px 0; }
.cause-card { background: #fafaf8; border: 1px solid #e0ddd6; border-radius: 8px; padding: 12px 14px; }
.cause-type { font-family: 'Courier New', monospace; font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: #1b5e52; margin-bottom: 5px; }
.cause-label { font-size: 13px; font-weight: 600; color: #2c2c2c; margin-bottom: 4px; }
.cause-desc { font-size: 12px; color: #7a7770; line-height: 1.5; }
/* ── VALUE CHAIN TABLE (L5) ── */
.vc-table { width: 100%; border-collapse: collapse; margin: 14px 0; font-size: 12.5px; }
.vc-table th { background: #f0f7f4; padding: 8px 12px; text-align: left; font-family: 'Courier New', monospace; font-size: 9px; letter-spacing: 0.1em; text-transform: uppercase; color: #1b5e52; border-bottom: 2px solid #1b5e52; }
.vc-table td { padding: 10px 12px; border-bottom: 1px solid #f0ede8; vertical-align: top; line-height: 1.5; }
.vc-table tr:last-child td { border-bottom: none; }
.seg-tag { display: inline-block; background: #e8f3f0; color: #1b5e52; font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 20px; margin-bottom: 4px; }
/* ── COMPANY PILLS ── */
.company-pill { display: inline-flex; align-items: center; font-size: 11px; font-weight: 500; padding: 2px 8px; border-radius: 20px; margin: 2px; white-space: nowrap; }
.pill-global { background: #e6f1fb; color: #0c447c; border: 0.5px solid #85b7eb; }
.pill-listed { background: #eaf3de; color: #27500a; border: 0.5px solid #97c459; }
.pill-private { background: #faeeda; color: #633806; border: 0.5px solid #ef9f27; }
.sme-badge { font-size: 8px; font-weight: 700; background: #c0dd97; color: #27500a; padding: 1px 3px; border-radius: 2px; margin-left: 3px; }
/* ── SEBI DISCLAIMER (inline) ── */
.sebi-inline { background: #fff8f0; border: 1px solid #f0d090; border-radius: 6px; padding: 8px 14px; margin: 14px 0; font-size: 11px; color: #5a3a00; font-style: italic; line-height: 1.5; }
/* ── FOOTER ── */
.doc-footer { margin-top: 40px; padding-top: 16px; border-top: 1px solid #e0ddd6; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; }
.doc-footer-left { font-size: 11px; color: #9a9690; font-family: 'Courier New', monospace; letter-spacing: 0.04em; }
.doc-footer-right a { font-size: 11px; font-weight: 700; color: #1b5e52; text-decoration: none; letter-spacing: 0.04em; }
/* ── TEXT SIZE TOGGLE ── */
.size-toggle { position: sticky; top: 0; background: #fafaf8; border-bottom: 1px solid #e0ddd6; padding: 8px 20px; display: flex; justify-content: flex-end; gap: 6px; z-index: 10; margin: -24px -20px 24px; }
.size-btn { font-size: 11px; padding: 3px 10px; border: 1px solid #e0ddd6; border-radius: 4px; background: white; cursor: pointer; color: #6b6b6b; }
.size-btn.active { background: #1b5e52; color: white; border-color: #1b5e52; }
</style>
<div id="cs-wrap" style="font-size:14px">
<div class="size-toggle">
<button class="size-btn active" onclick="setSize(14,this)">A</button>
<button class="size-btn" onclick="setSize(16,this)">A+</button>
<button class="size-btn" onclick="setSize(18,this)">A++</button>
</div>
<div class="doc-header">
<div class="doc-eyebrow">⬡ Curiosity Stack · [CATEGORY] · Decomposition</div>
<div class="doc-title">[TOPIC NAME]</div>
<div class="doc-sub">Layer-by-layer value chain analysis · [DATE]</div>
</div>
<div class="progress-label">
<span class="[L0_STATE]">L0 Signal</span>
<span class="[L1_STATE]">L1 Mechanics</span>
<span class="[L2_STATE]">L2 Causes</span>
<span class="[L3_STATE]">L3 Solutions</span>
<span class="[L4_STATE]">L4 Build</span>
<span class="[L5_STATE]">L5 Actors</span>
<span class="[L6_STATE]">L6 Research</span>
</div>
<div class="progress-wrap">
<div class="progress-step [L0_BAR]"></div>
<div class="progress-step [L1_BAR]"></div>
<div class="progress-step [L2_BAR]"></div>
<div class="progress-step [L3_BAR]"></div>
<div class="progress-step [L4_BAR]"></div>
<div class="progress-step [L5_BAR]"></div>
<div class="progress-step [L6_BAR]"></div>
</div>
<!-- LAYERS RENDER HERE — each appended below the previous -->
[LAYER_CARDS]
<div class="doc-footer">
<div class="doc-footer-left">
Not SEBI registered · Not investment advice · For research purposes only
</div>
<div class="doc-footer-right">
<a href="https://curiositystack.app" target="_blank">⬡ curiositystack.app</a>
</div>
</div>
<script>
function setSize(px, btn) {
// Target wrapper div since artifacts are fragments, not full documents
const wrapper = document.getElementById('cs-wrap');
if (wrapper) wrapper.style.fontSize = px + 'px';
else if (document.body) document.body.style.fontSize = px + 'px';
document.querySelectorAll('.size-btn').forEach(b => b.classList.remove('active'));
btn.classList.add('active');
}
</script>
</div>
レイヤーカードテンプレート
L0 — シグナルカード
<div class="layer-card">
<div class="layer-header">
<span class="layer-label">L0</span>
<span class="layer-name">シグナル — 何が起きており、なぜ今なのか?</span>
</div>
<div class="layer-body">
<p>[シグナルとそれが今重要である理由を説明する2~3文の回答]</p>
<div class="stats-row">
<div class="stat-card">
<div class="stat-number">[主要な数値]</div>
<div class="stat-label">[これが測定するもの]<br>[出典、年]</div>
</div>
<div class="stat-card">
<div class="stat-number">[主要な数値]</div>
<div class="stat-label">[これが測定するもの]<br>[出典、年]</div>
</div>
<div class="stat-card">
<div class="stat-number">[主要な数値]</div>
<div class="stat-label">[これが測定するもの]<br>[出典、年]</div>
</div>
<div class="stat-card">
<div class="stat-number">[主要な数値]</div>
<div class="stat-label">[これが測定するもの]<br>[出典、年]</div>
</div>
</div>
<ul class="insight-list">
<li><strong>[ドライバー1]。</strong> [1~2文の説明]</li>
<li><strong>[ドライバー2]。</strong> [1~2文の説明]</li>
<li><strong>[ドライバー3]。</strong> [1~2文の説明]</li>
</ul>
<div class="insight-callout">
<strong>自明でない洞察:</strong> [ほとんどの人がこのシグナルについて見落とすもの]
</div>
</div>
</div>
L1 — メカニクスカード
<div class="layer-card">
<div class="layer-header">
<span class="layer-label">L1</span>
<span class="layer-name">メカニクス — これは本当は何か?</span>
</div>
<div class="layer-body">
<p>[明確な技術的説明 — ヘッドラインバージョンではなく、これが実際に何であるか]</p>
<ul class="insight-list">
<li>[メカニズム1 — それが技術的にどのように機能するか]</li>
<li>[メカニズム2 — 一般的な認識からの重要な区別]</li>
<li>[メカニズム3 — これがバリューチェーンにとって意味するもの]</li>
</ul>
<div class="insight-callout">
<strong>重要な区別:</strong> [深い理解を表面的な理解から分離するもの]
</div>
</div>
</div>
L2 — 因果ツリーカード
<div class="layer-card">
<div class="layer-header">
<span class="layer-label">L2</span>
<span class="layer-name">因果ツリー — 根本原因</span>
</div>
<div class="layer-body">
<p>[構造的対周期的分割をフレーミングする1~2文]</p>
<div class="cause-grid">
<div class="cause-card">
<div class="cause-type">構造的 — 永久的</div>
<div class="cause-label">[原因名]</div>
<div class="cause-desc">[これが一時的ではなく構造的である理由]</div>
</div>
<div class="cause-card">
<div class="cause-type">構造的 — 永久的</div>
<div class="cause-label">[原因名]</div>
<div class="cause-desc">[説明]</div>
</div>
<div class="cause-card">
<div class="cause-type">周期的 — タイミング依存</div>
<div class="cause-label">[原因名]</div>
<div class="cause-desc">[これが周期的である理由]</div>
</div>
<div class="cause-card">
<div class="cause-type">周期的 — タイミング依存</div>
<div class="cause-label">[原因名]</div>
<div class="cause-desc">[説明]</div>
</div>
</div>
</div>
</div>
L3 — ソリューション空間カード
<div class="layer-card">
<div class="layer-header">
<span class="layer-label">L3</span>
<span class="layer-name">ソリューション空間 — どの業界がこれを生み出すか?</span>
</div>
<div class="layer-body">
<p>[各原因がソリューション カテゴリー/業界にどのようにマップするかをフレーミング]</p>
<ul class="insight-list">
<li><strong>[ソリューションカテゴリー1]</strong> — [この業界が何をするのか、そしてなぜこの原因がそれを必要とするのか]</li>
<li><strong>[ソリューションカテゴリー2]</strong> — [説明]</li>
<li><strong>[ソリューションカテゴリー3]</strong> — [説明]</li>
<li><strong>[ソリューションカテゴリー4]</strong> — [説明]</li>
</ul>
</div>
</div>
L4 — ビルド要件カード
<div class="layer-card">
<div class="layer-header">
<span class="layer-label">L4</span>
<span class="layer-name">ビルド要件 — これは何が必要か?</span>
</div>
<div class="layer-body">
<p>[主要な入力、インフラストラクチャ、および必要なタレントをフレーミング]</p>
<div class="cause-grid">
<div class="cause-card">
<div class="cause-type">ハードウェア / インフラストラクチャ</div>
<div class="cause-label">[要件]</div>
<div class="cause-desc">[なぜ必要か、誰がそれを供給するか]</div>
</div>
<div class="cause-card">
<div class="cause-type">ソフトウェア / データ</div>
<div class="cause-label">[要件]</div>
<div class="cause-desc">[説明]</div>
</div>
<div class="cause-card">
<div class="cause-type">タレント / スキル</div>
<div class="cause-label">[要件]</div>
<div class="cause-desc">[説明]</div>
</div>
<div class="cause-card">
<div class="cause-type">規制 / ポリシー</div>
<div class="cause-label">[要件]</div>
<div class="cause-desc">[説明]</div>
</div>
</div>
<div class="insight-callout">
<strong>ボトルネック:</strong> [満たすのが最も難しいビルド要件と理由]
</div>
</div>
</div>
L5 — バリューチェーン・アクターカード
<div class="layer-card">
<div class="layer-header">
<span class="layer-label">L5</span>
<span class="layer-name">バリューチェーン・アクター — 各レイヤーで誰が動作するか?</span>
</div>
<div class="layer-body">
<p>[競争環境をフレーミングする1~2文]</p>
<div class="sebi-inline">
⚠ リストされているすべての企業は、この バリューチェーン内の分析的アクターです —
リサーチフレーミングのみの目的です。いかなる証券の買い、売り、
保有の推奨ではありません。SEBI登録投資顧問に相談してください。
</div>
<table class="vc-table">
<tr>
<th style="width:140px">サブセグメント</th>
<th>グローバルプレイヤー</th>
<th>インドアングル</th>
</tr>
<tr>
<td>
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- ameya85
- ライセンス
- MIT
- 最終更新
- 2026/5/1
Source: https://github.com/ameya85/curiosity-stack / ライセンス: MIT