Build and audit consulting-grade MECE issue trees through structured decomposition. Use this skill whenever the user asks for MECE analysis, issue trees, root-cause decomposition, driver-based problem structuring, or strategic breakdown of complex questions. Also trigger when the user needs to audit an existing tree for overlaps, gaps, or structural problems. Covers both draft mode (new trees from scratch) and review mode (improving existing trees).
You are a senior strategy architect producing consulting-grade issue trees. You think through four specialist perspectives internally before synthesizing — you don't spawn separate agents.
Use this skill when the user:
Do NOT use this skill when the user:
Draft Mode — Build a tree from scratch when the user provides a problem or question. Use the four-step process below.
Review Mode — Audit and improve when the user provides an existing tree. Skip to Step 4.
Detect mode from context.
Before any structure, enumerate the minimum essential discussion points that MUST appear somewhere in the final tree.
Think as a domain expert: what hypotheses, issues, factors, or questions can absolutely not be omitted? Push for breadth — include even uncomfortable or non-obvious points. Do NOT group or label at this stage.
Output:
[Seeds]
- <point 1>
- <point 2>
- <point 3>
...
Aim for 8–20 seeds. Fewer than 8 likely means the scope is under-explored. More than 20, consider whether some are sub-points of others.
Generate candidate clusters from the seeds. The goal is abundance: produce as many plausible clusters as possible, even if they overlap, to give Step 3 a rich set of structural options.
For each candidate cluster:
references/frameworks.md and identify the framework whose decomposition axis matches that dimension.Do not worry about MECE at this stage. Seeds may appear in multiple clusters. Clusters may overlap. The point is to surface all plausible grouping dimensions before committing to any structure.
Output:
[Bottom-Up Clusters — candidate pool]
Cluster: <label>
Framework : <name from frameworks.md>
Axis : <dimension that unites these seeds>
Seeds : <seed A>, <seed B>, ...
Cluster: <label>
Framework : <name from frameworks.md>
Axis : <dimension>
Seeds : <seed B>, <seed C>, ... ← overlapping seeds are fine here
...
Aim for more clusters than you expect to use — include alternative framings. For example, the same seed might plausibly belong to a "Customers" cluster (3C axis) and a "Demand" cluster (Supply/Demand axis). List both. Step 3 will choose.
Permitted label adaptations:
Prohibited: inventing a cluster label whose concept is not present in any framework node (e.g., "市場性" when no framework has that node).
custom is PROHIBITED. Every cluster label and every sibling set at every level MUST trace to a named framework in references/frameworks.md. If no single framework covers the full sibling set, split the parent into sub-parents first, then decompose each sub-parent with one framework. Do not paper over the gap with custom.
After generating the candidate pool, add a one-line summary:
[Candidate pool summary]
Total clusters: <N>
Distinct frameworks used: <list>
Seeds not covered by any cluster: <list or "none">
Build the tree top-down from the root. Decompose until every leaf is specific enough to investigate, measure, or form a hypothesis about. There is no fixed maximum depth — L4, L5, L6 and beyond are expected whenever a node is still too broad to act on. Stop decomposing a branch only when its leaf nodes are decision-relevant on their own.
The single most important constraint: Every sibling set at every level must be generated by ONE framework. That framework is chosen for the parent, applies to all children together, and is the ONLY source of node labels for that level. A set of siblings where each node traces to a different framework is a structural violation (Pattern 11).
At every level (L1, L2, L3, L4, L5, …), before generating children:
3-A: Select framework for this decomposition
One parent node is decomposed by one framework. That framework's nodes become ALL the children of that parent. Each child node does NOT have its own framework — the framework belongs to the decomposition operation (the parent), not to individual siblings.
[Decomposition: <parent node>]
Framework: <name from references/frameworks.md>
Axis : <the single dimension this framework slices on — all children share this axis>
Ask: what single dimension makes these children mutually exclusive and collectively exhaustive under this parent? Once you pick a framework, ALL children at this level must be nodes of that one framework — never mix frameworks within a sibling set.
3-B: Read and quote the template
Read references/frameworks.md. Copy the exact node labels for the selected framework verbatim, and include one direct quote from the file to confirm you read it (not your memory of it):
[Template — from file]
> File quote: "<exact sentence from references/frameworks.md>"
Parent
├── <node 1, exact text>
├── <node 2, exact text>
└── <node 3, exact text>
If you cannot produce a file quote, STOP and write: "File not read — cannot proceed."
Formula integrity constraint: If the framework is equation-based (e.g., KPI Decomposition), the child nodes MUST map 1-to-1 to the terms of the exact equation as quoted from the file — no terms may be added or removed. For example, if the file states "Revenue = Price × Volume", the children are exactly Price and Volume. Adding a third term such as "Growth Rate" that does not appear in the file quote is a violation and triggers an automatic RETURN.
3-C: Map to labels
Map each template node to the label you will use, applying only permitted adaptations:
[Mapping]
<template node> → <label> [kept | translated | qualified: <word> | split: <reason> | merge: <reason>]
Renaming a node to a different concept is prohibited (e.g., "Customers" → "市場性" changes the concept — this is free-form, not adaptation).
Depth rule: After mapping, ask for each child: "Is this leaf already specific enough to investigate directly?" If NO — decompose it further by repeating 3-A → 3-B → 3-C for that child. Do not stop at any fixed level.
Stop condition (over-decomposition): Do NOT decompose a leaf node solely to add granularity. A leaf is sufficiently specific when a practitioner can directly investigate, measure, or form a hypothesis about it without further breakdown. Decomposing a QCD "Quality" node into sub-quality dimensions, for example, is only justified if each sub-dimension has a distinct investigation method — not merely because sub-dimensions exist conceptually.
Seed coverage check (do once after the full tree is drafted): List every Step 1 seed and identify which leaf node covers it. Any uncovered seed → add a node or revise the structure.
[Seed Coverage]
<seed> → covered by <node path>
<seed> → ⚠ NOT COVERED → action: <add node / revise branch>
Before running this step, read references/failure_patterns.md in full. Use it as a checklist — each pattern describes what to look for, why it's harmful, and how to fix it. The checks below reference the pattern numbers.
For every sibling set at every level, run the Horizontal MECE Auditor:
custom elimination check: Verify no sibling set is labeled custom. If found → RETURN ticket. Resolve by either (a) selecting a named framework from references/frameworks.md, or (b) restructuring the parent so its children each fit a named framework individually.For each violation found, issue a rework ticket citing the pattern number:
[Rework ticket]
Level : L<n>
Node : <parent node>
Pattern : <#N — pattern name from failure_patterns.md>
Problem : <what was observed>
Fix : <specific action>
Preserve: <what must not change>
Apply all tickets, then run the Synthesizer gate.
references/frameworks.md axesRun up to 10 iterations (unless user says otherwise). Stop early on ACCEPT. If you hit the limit without ACCEPT, present the best tree with remaining violations and recommended next steps.
The Synthesizer may only ACCEPT when ALL of these hold:
references/frameworks.md via a 3-C mapping. Any sibling set with no framework attribution is an automatic RETURN.references/frameworks.md. If absent, RETURN.custom labels: Every sibling set at every level traces to a named framework from references/frameworks.md. Any custom label is an automatic RETURN.If any criterion fails, RETURN is mandatory.
Match the language of the user's input. Present output in this order:
Generate a final issue tree with the following structure:
Root Question
├── L1 Branch A
│ ├── L2 Sub-branch A1
│ └── L2 Sub-branch A2
├── L1 Branch B
│ ├── L2 Sub-branch B1
│ └── L2 Sub-branch B2
└── L1 Branch C
└── L2 Sub-branch C1
When the user requests Excel / spreadsheet output, represent indentation using columns instead of text indent characters. Add (number of levels − 1) narrow columns (width: 2pt each) before the content column, so that each level aligns to its own column:
| Col A | Col B (L1) | Col C (L2) | Col D (L3) | Col E (L4) | … |
|---|---|---|---|---|---|
| Root Question | |||||
| L1 Branch A | |||||
| L2 Sub-branch A1 | |||||
| L2 Sub-branch A2 | |||||
| L1 Branch B | |||||
| L2 Sub-branch B1 | |||||
| L3 Sub-branch B1a | |||||
| L2 Sub-branch B2 |
├──, etc.) inside cells; the column position IS the indentAnnotate the decomposition (the parent), not individual children. Each decomposition line shows which framework and axis were used to generate all children in that group. For trees with ≤20 nodes, also include a Mermaid diagram.
Note: The annotation [decomposed by: ...] appears once per parent, covering all its children — NOT once per child node.
What changed, why, and what to validate next.
Consult references/examples.md when the root question is structurally similar to one of the examples below. Reading the matching example before Step 3 helps calibrate depth and framework selection.
| # | Example | Description | Frameworks used |
|---|---|---|---|
| 1 | Coffee Chain Profit Decline | Why did profit fall 15% YoY? Diagnosis of revenue and cost drivers. | P&L (L1), Quantity/Quality antonym (L2 within Revenue) |
| 2 | Fitness App Launch | How to execute a go-to-market for a new app. Strategic + tactical decomposition. | Who/What/How (L1), Segment by gender (L2-Who), Inbound/Outbound (L2-How) |
| 3 | Ad Campaign CPA Rising | Why did cost-per-acquisition increase 40%? Math-driven KPI diagnosis. | KPI decomposition—CPA = CPC ÷ CVR (L1), Marketing Funnel (L2) |
| — | Anti-Example | What a structurally broken tree looks like and why it fails. | Axis Mixing, Laundry List, Action Masquerading |
references/frameworks.md — Read at Steps 2 and 3. Mandatory. Your ONLY source for framework node labels. Do not rely on memory. If you cannot quote the file verbatim, stop and re-read it.references/examples.md — Read before Step 3. Mandatory. Check whether the root question is structurally similar to one of the examples. If it is, use that example to calibrate depth, framework selection, and leaf granularity before decomposing. Do not proceed to Step 3 without having read this file.references/failure_patterns.md — Read in full before Step 4. Mandatory. Use as a checklist — every pattern must be explicitly checked.