agentleFS
ChianWChianW/C31/skills/core/C31-storm/SKILL.md

C31-storm

Skill1 starsChanged 3 months agoMITView on GitHub

多视角分析, 矛盾发现, 主题判断 | 基于 STORM 方法论:动态视角发现、模拟对话、矛盾地图、综合判断

The file

Show its rules and text

We split this skill into the rules it gives an agent

20 rules. About 0 are common, 17 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈17

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    No prior research context exists (run C31-research first)

    line 26
  2. Distinctive:

    If input only supports 2 distinct perspectives, explicitly note "视角不足" and ask user补充

    line 86
  3. Distinctive:

    Never invent perspectives without evidence in the input

    line 87
  4. Distinctive:

    Follow-up must be genuinely probing, not decorative

    line 109
  5. Distinctive:

    If a perspective's opening question is already answered by research, the follow-up should challenge the answer's assumptions

    line 110
  6. Distinctive:

    If a perspective has no meaningful follow-up, explicitly note "此视角追问深度有限"

    line 111
  7. Distinctive:

    All answers must cite sources from the input context

    line 112
  8. Distinctive:

    If all perspectives agree on something → flag as "强共识" (strong consensus = likely true)

    line 139
  9. Distinctive:

    If no perspective mentions an obvious issue → flag as "盲区" (blind spot = potential opportunity or risk)

    line 140
  10. Distinctive:

    No JSON, no tables, no code blocks

    line 190
  11. Very specific:

    Use visual separators (┌ ┐ └ ┘) for structure

    line 191
  12. Distinctive:

    Always output Track 1 to user

    line 232
  13. Distinctive:

    If user says "给我详细数据" or "show me JSON", output Track 2

    line 234
  14. Very specific:

    Every judgment must have confidence level (high/medium/low)

    line 262
  15. Distinctive:

    Every recommendation must specify for whom and under what conditions

    line 263
  16. Distinctive:

    Never present synthesis as absolute truth — always provisional

    line 266
  17. Distinctive:

    Goal: Verify every claim in Phases 1-4 has a traceable source.

    line 270
  18. Distinctive:

    Do not remove the claim — transparency over perfection

    line 294
  19. Very specific:

    If context insufficient, C31-storm requests C31-research re-run with specific gaps

    line 344
  20. Distinctive:

    Create artificial diversity when real分歧 is elsewhere

    line 416

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

C31 STORM

Multi-perspective analysis and synthesis skill. Based on Stanford STORM's core philosophy: discover perspectives → simulate dialogue → map conflicts → synthesize judgment.

Not a fixed "5 perspectives" template. Perspectives are dynamically discovered from the input context, not preset.

When to Use

  • User says "你怎么看" / "评估一下" / "值得吗" / "该不该"
  • C31-research detects multi-source conflicts (conflict_detected: true)
  • Need to evaluate a decision, a person, a technology, or a strategy from multiple angles
  • Single-perspective analysis feels insufficient or biased

When NOT to Use

  • Factual lookup only (use C31-research)
  • Simple yes/no questions with no nuance
  • User explicitly asks for a single perspective
  • No prior research context exists (run C31-research first)

Core Principles

  1. Perspectives are discovered, not preset — extract from input, not "always 5 fixed angles"
  2. Dialogue is simulated, not monologue — each perspective can ask follow-up questions
  3. Conflicts are mapped, not resolved — identify where perspectives disagree and why
  4. Synthesis is provisional, not absolute — confidence levels on all judgments
  5. Sources are mandatory, not optional — every claim must be traceable

Pipeline

Input: C31-research output (structured findings + sources)
  ↓
Phase 1: Perspective Discovery → extract 3-5 dynamic perspectives
  ↓
Phase 2: Simulated Dialogue → each perspective interrogates the topic
  ↓
Phase 3: Conflict Map → organize agreements, conflicts, blind spots
  ↓
Phase 4: Synthesis → judgment + recommendations with confidence
  ↓
Phase 5: Source Audit → verify all claims have traceable sources
  ↓
Output: Structured analysis with conflict map + synthesis + gaps

Phase 1: Perspective Discovery

Goal: Extract 3-5 distinct perspectives from the input context.

Input: C31-research output (or user-provided context).

Process:

  1. Scan the input for implicit立场分化:
    • Source A says X, Source B says not-X → 2 perspectives
    • Different disciplines approach same topic differently → disciplinary perspectives
    • Different stakeholders have different incentives → stakeholder perspectives
    • Historical vs current view → temporal perspectives
  2. Name each perspective with a one-line identity (e.g., "Effectuation理论研究者", "批判管理学者", "实践派创业者")
  3. For each perspective, note its core concern and potential bias

Output:

{
  "perspectives": [
    {
      "name": "视角名称",
      "identity": "一句话身份定义",
      "core_concern": "这个视角最关心什么",
      "potential_bias": "这个视角可能忽略什么"
    }
  ]
}

Discovery Rules:

  • Minimum 3 perspectives, maximum 5
  • Perspectives must be genuinely different (not superficial variants)
  • If input only supports 2 distinct perspectives, explicitly note "视角不足" and ask user补充
  • Never invent perspectives without evidence in the input

Phase 2: Simulated Dialogue

Goal: Each perspective independently interrogates the topic, with at least 1 round of follow-up.

Process:

  1. For each perspective, generate opening question (what this perspective would ask first)
  2. Generate answer based on the research context (grounded in sources)
  3. Generate follow-up question (digging deeper, challenging the answer, or exploring implications)
  4. Generate final response from the perspective's standpoint

Dialogue Format:

【视角名称】
Q1: [opening question]
A1: [answer grounded in sources]
Q2: [follow-up: challenge, implication, or deeper probe]
A2: [final response from this perspective's standpoint]

Follow-up Rules:

  • Follow-up must be genuinely probing, not decorative
  • If a perspective's opening question is already answered by research, the follow-up should challenge the answer's assumptions
  • If a perspective has no meaningful follow-up, explicitly note "此视角追问深度有限"
  • All answers must cite sources from the input context

Phase 3: Conflict Map

Goal: Systematically organize where perspectives agree, conflict, and where盲区 exists.

Structure:

3.1 Direct Conflicts

Conflict PointSide ASide BEvidence StrengthSeverity
[具体矛盾点][视角A的立场][视角B的立场]A强/B强/均弱CRITICAL/MAJOR/MINOR

3.2 Consensus Zones

AgreementSupporting PerspectivesConfidence
[所有视角都同意的点][哪些视角]high/medium

3.3 Blind Spots

What No One MentionedWhy It MattersRisk Level
[没有任何视角覆盖的问题][为什么重要]high/medium/low

Conflict Evaluation Rules:

  • CRITICAL: 直接改变核心结论
  • MAJOR: 影响判断的可靠性
  • MINOR: 细节分歧,不影响大局
  • If all perspectives agree on something → flag as "强共识" (strong consensus = likely true)
  • If no perspective mentions an obvious issue → flag as "盲区" (blind spot = potential opportunity or risk)

Output Format

C31-storm produces dual-track output:

Track 1: User-Friendly Version(阅读友好版)

This is what the user sees. No JSON, no code blocks, visual separators.

Format template:

─── {主题} · {N}视角分析 ───

【一句话】
{最精炼的判断,不超过50字}

┌ 共识(所有视角同意)┐
• {共识点1}
• {共识点2}
└─────────────────────┘

┌ 关键冲突 ┐
{视角A} vs {视角B}
→ {冲突的核心问题}
严重程度:{CRITICAL/MAJOR/MINOR}

{视角C} vs {视角D}
→ {冲突的核心问题}
严重程度:{CRITICAL/MAJOR/MINOR}
└──────────┘

┌ 盲区(没人提的问题)┐
• {盲区1} ← {为什么重要}
• {盲区2}
└─────────────────────┘

【给你的建议】
1. {具体建议1}
2. {具体建议2}
3. {注意/风险提示}

【前沿问题】
{一个如果得到回答会改变当前判断的问题}

─── 来源审计:{N}/{M} 有来源支撑({X}%)───

Rules for User-Friendly Version:

  • No JSON, no tables, no code blocks
  • Use visual separators (┌ ┐ └ ┘) for structure
  • Key information first, details collapsible
  • One-liner at the top, not buried in text
  • Confidence levels in plain language ("高/中/低" or "high/medium/low")
  • Source audit as a simple ratio, not a JSON object

Track 2: Structured Version(结构化版)

This is for machine use: chaining, storage, search. User sees this only if explicitly requested.

Full JSON contract:

{
  "phase": "storm-analysis",
  "perspectives": [...],
  "dialogue": [...],
  "conflict_map": {
    "direct_conflicts": [...],
    "consensus_zones": [...],
    "blind_spots": [...]
  },
  "synthesis": {
    "one_liner": "",
    "key_findings": [...],
    "hidden_connections": [...],
    "recommendations": [...],
    "frontier_questions": [...]
  },
  "source_audit": {
    "total_claims": 0,
    "sourced_claims": 0,
    "unsourced_claims": [],
    "downgraded_claims": []
  },
  "gaps": [...],
  "confidence": "high|medium|low"
}

Default behavior:

  • Always output Track 1 to user
  • Store Track 2 in memory/session for future reference
  • If user says "给我详细数据" or "show me JSON", output Track 2

Phase 4: Synthesis

Goal: Based on the conflict map, produce provisional judgment and actionable recommendations.

Output Structure:

### 一句话总结
[最精炼的判断,不超过50字]

### 关键发现(按可靠性排序)
| 排名 | 发现 | 支持视角 | 挑战视角 | 置信度 |
|---|---|---|---|---|
| 1 | ... | ... | ... | high |

### 隐藏关联
[输入中没有明确要求,但分析中发现的深层联系]

### 行动建议
[基于角色和场景的具体建议]

### 前沿问题
[如果这个问题得到回答,会改变什么]

Synthesis Rules:

  • Every judgment must have confidence level (high/medium/low)
  • Every recommendation must specify for whom and under what conditions
  • "隐藏关联"是可选的,但如果有必须说明推理链条
  • "前沿问题"必须是可以被验证或研究的问题,不是抽象感叹
  • Never present synthesis as absolute truth — always provisional

Phase 5: Source Audit

Goal: Verify every claim in Phases 1-4 has a traceable source.

Audit Checklist:

  • Phase 1 的每个视角都有 input 中的证据支撑
  • Phase 2 的每个 answer 都引用了具体来源
  • Phase 3 的每个 conflict 都有双方的具体论据
  • Phase 4 的每个判断都有对应的 conflict map 条目
  • 所有来源都有 URL / 引用 / 或明确的 "来源:C31-research output"

Output:

{
  "source_audit": {
    "total_claims": 0,
    "sourced_claims": 0,
    "unsourced_claims": [],
    "downgraded_claims": []
  }
}

If unsourced claims found:

  • Downgrade confidence to "low"
  • Explicitly flag: "此判断缺乏来源支撑,为推测性结论"
  • Do not remove the claim — transparency over perfection

Output Contract

{
  "phase": "storm-analysis",
  "perspectives": [...],
  "dialogue": [...],
  "conflict_map": {
    "direct_conflicts": [...],
    "consensus_zones": [...],
    "blind_spots": [...]
  },
  "synthesis": {
    "one_liner": "",
    "key_findings": [...],
    "hidden_connections": [...],
    "recommendations": [...],
    "frontier_questions": [...]
  },
  "source_audit": {...},
  "gaps": ["分析中的局限或缺失"],
  "confidence": "high|medium|low"
}

Escalation

  • Conflicts are irreconcilable → flag for C31-brainstorm or user decision
  • Missing critical perspective → ask user to specify stakeholder or domain
  • Source audit fails (high ratio of unsourced claims) → recommend re-running C31-research with broader scope
  • User disagrees with synthesis → enter C31-debug mode to trace reasoning

Integration with C31-research

Trigger Chain:

C31-research → findings contain conflicts → auto-trigger C31-storm

C31-research signals conflict_detected: true when:

  • Two sources make contradictory claims
  • A source's credibility is questioned by another source
  • User explicitly asks for judgment ("你怎么看")
  • Research reveals stakeholder incentives that may bias findings

Handoff Protocol:

  • C31-research passes its full findings array + sources list
  • C31-storm does not re-research; it works with provided context
  • If context insufficient, C31-storm requests C31-research re-run with specific gaps

Anti-Patterns

#Anti-PatternWhy WrongCorrect
1固定5视角,不管主题不同主题需要不同视角,强行套用会制造虚假多样性从输入动态发现视角
2每个视角只问1个问题没有追问 = 没有深度,只是5个并列观点至少1轮追问
3只列冲突,不评估严重程度用户不知道哪些冲突重要标注 CRITICAL/MAJOR/MINOR
4综合阶段变成"和稀泥""各打五十大板"等于没有判断明确给出置信度,承认不确定性
5忽略来源审计没有来源 = 没有可信度Phase 5 必须执行,不可跳过
6在分析中引入新的事实C31-storm 不搜索,只分析已有材料如需新事实,先回退到 C31-research

Example Usage

Input (from C31-research):

{
  "findings": [
    {"claim": "教授A专注Effectuation理论", "source": "J-Global", "confidence": "high"},
    {"claim": "教授A批判经营学知识的市场化", "source": "日本経営学会誌", "confidence": "high"},
    {"claim": "教授A是日本Venture学会副会长", "source": "J-Global", "confidence": "high"}
  ],
  "conflict_detected": true
}

Phase 1 Output:

{
  "perspectives": [
    {
      "name": "Effectuation研究者",
      "identity": "关注Effectuation理论的学术推进者",
      "core_concern": "理论是否被真正推进还是仅被应用",
      "potential_bias": "可能忽略批判性反思"
    },
    {
      "name": "批判管理学者",
      "identity": "关注知识权力和制度批判的学者",
      "core_concern": "学术知识是否被市场化、权力化",
      "potential_bias": "可能忽视学术体制内改良的可能性"
    },
    {
      "name": "制度参与者",
      "identity": "学会职务、产学合作中的实际参与者",
      "core_concern": "学术如何影响实践、政策",
      "potential_bias": "可能为现有制度辩护"
    }
  ]
}

Phase 3 Conflict Map:

Direct Conflicts:
- 批判管理学者: "学会副会长身份本身就是知识权力的一部分"
- 制度参与者: "在体制内才能推动改变"
Severity: MAJOR

Consensus:
- 教授A的实证研究方法论是扎实的(所有视角同意)

Blind Spots:
- 技术杠杆(AI)在创业中的角色(没有任何视角覆盖)

Design Notes

Why "dynamic perspectives" over "fixed 5": Fixed perspectives (practitioner/academic/skeptic/economist/historian) are a useful heuristic for beginners, but they:

  1. Assume all topics have these 5 stakeholders
  2. Create artificial diversity when real分歧 is elsewhere
  3. Train users to think in boxes rather than discover nuances

Dynamic discovery forces the system to actually listen to the input and find where the real tension is.

Why "simulated dialogue" over "perspective statements": A single statement from each perspective is just a position. A dialogue with follow-up reveals:

  • What assumptions the perspective is making
  • What evidence would change its mind
  • Where the perspective is strong vs weak

This is the difference between "he said, she said" and actual understanding.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.