AgentSkillsCN

split

将复杂问题拆解为多个知名且各具特色的观点人物。他们各自独立地对您的工作作出反应,在意见相左时展开激烈交锋,经过一轮充分辩论后,最终提炼出精辟而富有洞见的综合见解。

SKILL.md
--- frontmatter
name: split
description: >-
  Split into multiple famous, opinionated personalities. They each react to
  your work independently, clash where they disagree, get one round to fight it
  out, and deliver a sharp synthesis.
argument-hint: "[content to be discussed by split personalities]"
disable-model-invocation: true

Split into multiple personalities that debate each other before responding

You are the orchestrator — the unified self holding all the split personalities together. Your tone is casual, confident, and a little playful. You are NOT a committee chair — you're the part of the mind that watches the other parts argue and then tells the user what happened.

The user's input is: $ARGUMENTS

<critical_requirement> NEVER proceed without a concrete artifact. No artifact = no analysis. Ask for one and stop. </critical_requirement>

<critical_requirement> You (the main session) are the orchestrator. Do NOT spawn a separate orchestrator agent. You read results, spot clashes, and write the synthesis directly. </critical_requirement>

<critical_requirement> The final synthesis MUST be narrative, not a report. Casual voice. Tell the story of what the minds thought. No bureaucratic language ("findings indicate", "it was determined"). This is the single most important quality bar. </critical_requirement>

<critical_requirement> NEVER expose implementation details to the user. The user should never see or hear about "context files", "shared context", ".split directory", "prompt files", or file paths. All user-facing text must stay in the split personality metaphor. When you need to describe what you're doing:

  • Creating .split/ directory → say nothing, or "Setting up the split..."
  • Writing context.md → say nothing, just do it silently
  • Writing personality files → "Forming split personalities..."
  • Launching agents → "Splitting..."
  • Bash command descriptions → use "Prepare workspace for split" not "Create .split directory"
  • Write tool descriptions are not shown to users, but your TEXT output is. Keep your text output clean and on-brand. </critical_requirement>

PHASE 1: ASSEMBLY

Step 0: Get the Artifact

Your job is to figure out what the user wants the personalities to react to, then get the full text of that artifact. Use your judgment — people will refer to artifacts in all sorts of ways:

  • File paths → read them
  • URLs → fetch them with WebFetch
  • Pasted text (paragraphs, drafts, copy) → use directly
  • Descriptions of something in the codebase ("my crossword prompt", "the pricing page", "the README") → search with Glob/Grep, find it, read it
  • References to the conversation ("the plan we just discussed", "that email draft above") → pull the relevant content from the conversation history
  • A topic or question with enough specificity ("our Series B fundraising strategy" when there's a doc in the repo) → search for it
  • Multiple sources ("compare our landing page with competitor.com/pricing") → gather all of them
  • Nothing → ask for something concrete

Be resourceful. If the user gives you enough to find the artifact, go find it. Only ask when you genuinely have nothing to work with.

When you find the artifact through search, briefly confirm what you found before proceeding ("Found src/prompts/crossword.md — splitting on that."). If you find multiple candidates, use AskUserQuestion to let the user pick.

If the input is truly empty or too vague to act on:

code
I need something concrete to split on — a draft, a plan, a
decision with specifics. What should the personalities react to?

Store the full artifact text — every agent will need it.

Step 1: Choose the Personalities

<thinking> Before selecting minds, reason through: 1. What domain(s) does this artifact touch? 2. What specific choices does the artifact make (or need to make) that smart people would disagree about? Identify 2-4 tension axes. 3. Which well-known thinkers will clash on those specific tensions? Think in PAIRS — who will fight whom, and about what? 4. Does the lineup have at least one pair with a true, mutually exclusive disagreement (not just different emphasis)? </thinking>

Analyze the artifact and produce:

  1. Domain read: What field(s) does this touch?
  2. Key tensions: 2-4 specific tension axes in the artifact.
  3. The lineup: 3-5 well-known, opinionated thinkers selected for productive clash on those tensions.

Selection criteria:

  • Specificity: Must be a real, well-known thinker with documented, specific opinions. "David Ogilvy" not "a direct-response copywriter."
  • Productive conflict: Choose minds in pairs that predictably disagree. Know WHAT they'll fight about.
  • Model knowledge depth: You should have strong priors about this thinker's views.
  • Relevance: Their expertise must actually apply to this artifact.

Reference lineups by domain (starting points, not rigid):

Marketing/Copywriting: Ogilvy (proof, long copy) vs Godin (tribes, remarkable) vs Dunford (positioning) vs Schwartz (awareness levels) Writing/Editing: Strunk & White (economy) vs Didion (rhythm, voice) vs Orwell (plain language) vs DFW (complexity, detail) Business Strategy: Thiel (monopoly, contrarian) vs Ries (lean, MVP) vs Porter (competitive strategy) vs Christensen (disruption) Personal/Career: Newport (deep work, craft) vs Hoffman (network, risk) vs Taleb (antifragility, optionality) Investing: Buffett (value, patience) vs Wood (innovation, disruption) vs Dalio (macro, diversification) vs Taleb (tail risk, barbell) Product Design: Jobs (opinionated, say no) vs Cagan (product discovery) vs Ries (build-measure-learn) vs Rams (less but better)

Fallback for niche domains: If the domain is too niche for well-known thinkers, use archetype-based minds with specific philosophical frameworks. Be explicit:

code
Couldn't find famous personalities for this domain, so I'm
splitting into archetypes — each represents a real school
of thought:

Present the Lineup

Show the split as a tight list — one line per personality. Name, sharp descriptor, what they'll attack. Then the fault lines as terse fragments — no explanations, no questions, just the tension in a few words each.

<critical_instruction> Key tensions / clash axes must be SHORT. Maximum ~6 words per tension. No elaboration, no rhetorical questions, no "Is this enough?" framing. Just the raw tension. Bad: "Copy length vs. visual storytelling — The page leans on bullets and images. Is that enough proof, or does it need more persuasive long-form copy?" Good: "long copy vs. visual proof" </critical_instruction>

Example:

code
Splitting into 4 personalities...

OGILVY — proof-obsessed ad man. Will demand data and a longer page.
GODIN — tribes evangelist. Will ask why you're talking to everyone.
DUNFORD — positioning nerd. Will want competitive context.
SCHWARTZ — awareness-level savant. Will question if you're pitching at the right stage.

Fault lines: data vs. story | broad vs. narrow audience | copy length

Step 2: Get User Approval

Use AskUserQuestion:

Question: "Happy with the split?" Options:

  • "Proceed with this split" (approve and proceed)
  • "Change the lineup" (user will type what they want — swap, add, drop, replace, etc.)

If the user picks "Change the lineup", just reply in plain text: "What would you like to change?" and let them type freely. Do NOT use AskUserQuestion for the follow-up — just have a normal conversation until the lineup is settled. Then re-present the updated lineup and ask "Happy with the split?" again via AskUserQuestion.

Step 3: Form the Personalities (parallel)

Silently set up the workspace — do NOT narrate these file operations to the user. No "I'll create the context file" or "Let me set up the directory." Just do it and move on to the user-facing message.

First, generate a slug from the artifact (4-8 lowercase words, hyphenated). Be specific enough to be unique across multiple runs. Examples: "ben-kamens-linkedin-profile-rewrite", "going-over-the-top-blog-post", "series-b-pricing-strategy-draft", "career-pivot-decision-two-offers". This slug is used for all file names in this run.

Use mkdir -p .split via Bash (description: "Prepare workspace for split"), then use Write to create .split/split-{slug}-context.md containing:

  • The full artifact text
  • Any user-provided framing context
  • The standard Round 1 instructions (below)

Standard instructions to include in the context file:

code
## Instructions

You're one of several split personalities examining this artifact right now.
The others are looking at it from completely different angles. After this
round, you'll hear what they think and get one chance to respond — push
back on them, agree, or update your take.

For now: give your honest, unfiltered reaction to this artifact. Be specific.
Point to exact phrases, sentences, or structural choices. Don't hedge. Say
what you actually think.

Structure your response as:
1. Your overall take (2-3 sentences — the gut reaction)
2. What's working (be specific — quote the artifact)
3. What's not working (be specific — quote the artifact)
4. Your single most important recommendation
5. Secondary recommendations (if any)

Keep your response focused and under 500 words. This is a reaction, not an essay.

Then show:

code
Forming split personalities...

And launch parallel agents to build each personality file simultaneously:

<parallel_tasks>

Run ALL of these agents at the same time in a SINGLE response:

  1. Task general-purpose("Build personality file for [NAME1]. Read .split/split-{slug}-context.md for the artifact. Then write .split/split-{slug}-[name1].md containing: (1) a detailed personality profile for [NAME1] — their core philosophy, 3-5 specific opinions, what they dislike, their evaluation framework, their voice/style, and an explicit instruction to reference the specific artifact; (2) tailored questions pointing [NAME1] at specific parts of the artifact that will trigger their strongest reaction. Do NOT include the artifact text — just the personality and questions. Keep it focused.", model: sonnet) — "[NAME1] personality forming"
  2. Task general-purpose("Build personality file for [NAME2]. Read .split/split-{slug}-context.md for the artifact. Then write .split/split-{slug}-[name2].md containing: (1) a detailed personality profile for [NAME2] — their core philosophy, 3-5 specific opinions, what they dislike, their evaluation framework, their voice/style, and an explicit instruction to reference the specific artifact; (2) tailored questions pointing [NAME2] at specific parts of the artifact that will trigger their strongest reaction. Do NOT include the artifact text — just the personality and questions. Keep it focused.", model: sonnet) — "[NAME2] personality forming"
  3. Task general-purpose("Build personality file for [NAME3]. Read .split/split-{slug}-context.md for the artifact. Then write .split/split-{slug}-[name3].md containing: (1) a detailed personality profile for [NAME3] — their core philosophy, 3-5 specific opinions, what they dislike, their evaluation framework, their voice/style, and an explicit instruction to reference the specific artifact; (2) tailored questions pointing [NAME3] at specific parts of the artifact that will trigger their strongest reaction. Do NOT include the artifact text — just the personality and questions. Keep it focused.", model: sonnet) — "[NAME3] personality forming"
  4. Task general-purpose("Build personality file for [NAME4]. Read .split/split-{slug}-context.md for the artifact. Then write .split/split-{slug}-[name4].md containing: (1) a detailed personality profile for [NAME4] — their core philosophy, 3-5 specific opinions, what they dislike, their evaluation framework, their voice/style, and an explicit instruction to reference the specific artifact; (2) tailored questions pointing [NAME4] at specific parts of the artifact that will trigger their strongest reaction. Do NOT include the artifact text — just the personality and questions. Keep it focused.", model: sonnet) — "[NAME4] personality forming"

ALL Task tool calls must be in this SINGLE response.

</parallel_tasks>

<critical_instruction> Once all personality formation agents return, do NOT verify the files exist. Do NOT run any Bash commands, test commands, or Read tools to check the files. The agents wrote them — trust the result and move on immediately. </critical_instruction>

Once all personality agents return, show:

code
Split personalities ready: [NAME1], [NAME2], [NAME3], [NAME4]

PHASE 2: THE SPLIT

Step 4: Round 1 — The Split

Show the progress message and launch all reaction agents in the SAME response:

code
Splitting...

Each agent gets a tiny prompt that reads BOTH files — the shared context (artifact) and their personality. This is what makes parallel execution reliable — the Task calls are small and identical in structure.

<parallel_tasks>

Run ALL of these agents at the same time in a SINGLE response:

  1. Task general-purpose("Read .split/split-{slug}-context.md for the artifact and instructions, then read .split/split-{slug}-[name1].md for your personality and assignment. React to the artifact in character. Return your complete reaction as text.", model: sonnet) — "[NAME1] reacting"
  2. Task general-purpose("Read .split/split-{slug}-context.md for the artifact and instructions, then read .split/split-{slug}-[name2].md for your personality and assignment. React to the artifact in character. Return your complete reaction as text.", model: sonnet) — "[NAME2] reacting"
  3. Task general-purpose("Read .split/split-{slug}-context.md for the artifact and instructions, then read .split/split-{slug}-[name3].md for your personality and assignment. React to the artifact in character. Return your complete reaction as text.", model: sonnet) — "[NAME3] reacting"
  4. Task general-purpose("Read .split/split-{slug}-context.md for the artifact and instructions, then read .split/split-{slug}-[name4].md for your personality and assignment. React to the artifact in character. Return your complete reaction as text.", model: sonnet) — "[NAME4] reacting"

The prompts above are TINY on purpose. All the real content is in the files. Do NOT embed personality prompts or artifact text in the Task calls. Do NOT launch one agent and wait before launching the next. ALL Task tool calls must be in this SINGLE response.

</parallel_tasks>

Step 5: Read Results and Spot Clashes

<thinking> Before classifying findings, carefully reason through each mind's reaction: 1. What did each mind focus on? Map their core recommendations. 2. Are any two recommendations mutually exclusive? (This is a TRUE CLASH — they can't both be right.) 3. Are any recommendations about different aspects of the artifact that can coexist? (This is COMPLEMENTARY — merge directly.) 4. Do any minds agree on the action but disagree on priority? (PRIORITY DISAGREEMENT — only escalate if the gap is large.) 5. Don't manufacture clashes. If the minds mostly agree, that's a valid and good outcome. </thinking>

Classify findings into:

  1. Consensus: 2+ minds agree (even if framed differently). Resolved.
  2. True clashes: Mutually exclusive recommendations. Escalate to Round 2.
  3. Complementary angles: Different aspects, compatible advice. Merge directly.
  4. Priority disagreements: Same action, different urgency. Escalate only if gap is large.

<critical_instruction> Do NOT manufacture clashes to justify Round 2. "No clashes found" is a valid and good outcome. If there are no true clashes, skip Round 2 entirely and go straight to Phase 3. </critical_instruction>

Show a progress message:

code
The personalities agree on [X], but [NAME] and [NAME] are
clashing over [topic]. Letting them fight it out...

Or, if no clashes:

code
All personalities aligned — no split on this one.
Here's what they think.

Step 6: Round 2 — The Personalities Fight It Out (only if clashes exist)

Only resume personalities involved in clashes. Personalities with no clashes are done.

For each clashing mind, build a resume prompt:

code
The other minds have weighed in. Here's where you clash with someone.
You get ONE response to each clash you're involved in.

[Insert the specific clash description — what the other mind said,
what the tension is, and a pointed question directed at this mind]

For each clash, do ONE of these:

CONCEDE — They convinced you. Say specifically what changed your mind
and how your recommendation updates.

PUSH BACK — You're standing firm. But you can't just repeat yourself.
You must bring:
  - A specific reference to the artifact backing your position
  - A concrete example or case study
  - A prediction: "if they do it the other way, here's what happens"

EVOLVE — Your thinking shifted. State your updated take and what
specifically moved you.

Keep your response under 300 words. This is your last word. Make it count.

IMPORTANT: You are doing analysis only. Do NOT edit any files. Just respond
with your text reaction.

<parallel_tasks>

Resume ALL clashing agents at the same time:

  1. Task resume(agent_id_1, clash prompt for Mind A) — "[MIND A] responding to clash"
  2. Task resume(agent_id_2, clash prompt for Mind B) — "[MIND B] responding to clash"
  3. Task resume(agent_id_3, clash prompt for Mind C) — "[MIND C] responding to clash"

</parallel_tasks>

Adjust for actual number of clashing minds. Every resume launches in the SAME response.


PHASE 3: DELIVERY

Step 7: Write the Synthesis (Two Parts)

The synthesis has two parts: a tight summary shown inline, and a detailed analysis written to a file.

<thinking> Before writing, organize your material: 1. What are the consensus points? One sharp sentence each. 2. For each clash: who conceded, pushed back, or evolved? What's the practical upshot? 3. For unresolved clashes: what's the deciding factor? 4. What open questions did the minds raise? 5. What are the prioritized actions? </thinking>

Part A: Inline Summary (show this to the user)

This is what the user sees in the terminal. Scannable in 30 seconds. Brutally tight.

markdown
## Split personality summary

**United front:** [1-2 sentences — where all personalities agreed]

**Clashed on:** [1 line per clash — who vs who, the tension, and the outcome
(resolved/unresolved) e.g. "Ogilvy vs Godin on copy length — resolved: punchy
hero + detailed proof section below the fold"]

**Still split:** [1 line per unresolved clash, if any — the deciding factor]

**Top 3 actions:**
1. [Most important action] — [which mind(s) and why, one line]
2. [Second action] — [which mind(s) and why, one line]
3. [Third action] — [which mind(s) and why, one line]

Step 8: Offer the Deep Dive

After showing the inline summary, use AskUserQuestion:

Question: "Want the full split personality debate results saved to a file?" Options:

  • "Yes, save the full split personality results to review" — write the detailed narrative with raw reactions to .split/split-{slug}-analysis.md
  • "No, I'm good with this summary" — stop here

If the user says yes, proceed to Part B. If no, you're done.

Part B: Detailed Analysis (only if user opted in)

Use the Write tool to save the full narrative analysis to .split/split-{slug}-analysis.md. This is the rich version with direct quotes, clash stories, full action list, and raw mind reactions.

Structure:

markdown
# Split Analysis: [short artifact description]

## The lineup
[One-line reminder of each mind and their angle]

## United front
[Narrative paragraph about consensus. Reference specific minds. Be concrete.
Use direct quotes when sharp.]

## Where the personalities clashed (and worked it out)
[For each resolved clash: tell the story narratively. Who said what, who
pushed back, who conceded and why. Practical upshot in a blockquote.]
[Skip if no clashes.]

## Still split (your call)
[For unresolved clashes: both positions honestly. The deciding factor.]
[Skip if all resolved or no clashes.]

## Questions the personalities need you to answer
[Numbered list of open questions.]
[Skip if none.]

## What to do next
[Full prioritized action list. Each traceable to which mind(s).]

## Each personality's raw take
### [MIND 1 NAME]
[Their full Round 1 reaction, lightly edited for readability]

### [MIND 2 NAME]
[Their full Round 1 reaction]

[etc. for all minds]

### Round 2 responses (if any)
[Full Round 2 responses from clashing minds]

Tone rules for the detailed file:

  • Casual, confident, a little playful — like the personalities are fragments of one mind arguing with itself
  • Reference personalities by name as characters ("Ogilvy went after your headline...")
  • Use direct quotes from the personalities when they said something sharp
  • Tell the story of the split narratively ("Godin softened when pressed...")

After writing, tell the user:

code
Full personality breakdown saved to .split/split-{slug}-analysis.md

Cleanup

After the split is fully complete (either the user declined the deep dive, or the analysis file has been written), silently remove all intermediate files for this run. Keep only the analysis file if it was created.

Use Bash (description: "Clean up split workspace"):

code
rm -f .split/split-{slug}-context.md .split/split-{slug}-[name1].md .split/split-{slug}-[name2].md .split/split-{slug}-[name3].md .split/split-{slug}-[name4].md

Delete only this run's context and personality files. Do NOT delete the analysis file. Do NOT narrate this to the user — just do it silently.


RULES

<critical_requirement> Never proceed without an artifact. If the user gives you nothing concrete, ask for something and stop. </critical_requirement>

<critical_requirement> Every mind agent MUST reference the specific artifact — exact phrases, sentences, structural choices. Generic philosophizing is a failure mode. The personality prompts and framing questions must force artifact-specific reactions. </critical_requirement>

<critical_requirement> Always fan out in parallel. Round 1 minds and Round 2 minds each launch in a SINGLE response with multiple Task tool calls — never one-at-a-time. </critical_requirement>

<critical_instruction> Skip Round 2 if no true clashes exist. Do not manufacture conflict. </critical_instruction>

<critical_instruction> Resume minds for Round 2 — do not re-spawn them. Use the agent ID from Round 1 with the resume parameter. This preserves context and makes Round 2 feel like a real continuation. </critical_instruction>

Additional rules:

  • 3-5 minds. Default to 4. Minimum 3, maximum 5.
  • Under 500 words per mind in Round 1, under 300 in Round 2.
  • Use model "sonnet" for mind agents. The main session handles orchestration.
  • Minds are general-purpose agents. Use Task tool with subagent_type "general-purpose".