by skymanbp
Claude Code plugin: universal radial-tree exploration engine. One tree skill + swappable presets (brainstorm / attack / design / code-audit) for divergent ideation, adversarial critique, and design-space exploration. 12 framings × hard-ban-on-incomplete-leaves × stable convergence.
# Add to your Claude Code skills
git clone https://github.com/skymanbp/cc-treeLast scanned: 8/17/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-08-17T04:42:28.539Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}See how cc-tree compares with popular alternatives.
cc-tree is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by skymanbp. Claude Code plugin: universal radial-tree exploration engine. One tree skill + swappable presets (brainstorm / attack / design / code-audit) for divergent ideation, adversarial critique, and design-space exploration. 12 framings × hard-ban-on-incomplete-leaves × stable convergence. It has 107 GitHub stars.
Yes. cc-tree passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/skymanbp/cc-tree" and add it to your Claude Code skills directory (see the Installation section above).
cc-tree is primarily written in Python. It is open-source under skymanbp on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh cc-tree against similar tools.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
Language: English (canonical). Chinese:
README.zh.md.
cc-tree is a Claude Code plugin that turns open-ended thinking into a tree you can audit.
One universal radial-tree exploration engine, four swappable presets: divergent brainstorming,
adversarial critique, design-space exploration, and code audit — same engine, different
vocabulary. It is a disciplined, disk-persisted take on tree-of-thoughts search: every node is
derived in full with file:line or URL evidence, defer / future-work / TODO / NEEDS-MORE-INFO
leaves are hard-banned, and the run stops on substantive convergence rather than on a node budget.
claude plugin marketplace add skymanbp/cc-tree
claude plugin install cc-tree@cc-tree
Refactor of
sci-paper'sbrainstorm+paper-attack-treeskills, stripped of paper-specific anchors and parameterized via presets.
Ask any LLM to brainstorm, review this critically, compare these designs, or audit this file, and the same five failure modes come back every time. They are not model bugs; they are the lazy equilibria of free-form generation.
| Failure mode | What it looks like in practice |
|---|---|
| Shallow coverage | the three most obvious angles, then a summary |
| Deferred leaves | "promising, but needs a deeper survey — future work": a non-result dressed as a result |
| Pseudo-divergence | six branches that are one branch with the nouns swapped |
| Convenient convergence | "that about covers it" — arriving exactly when new ideas get expensive |
| Unverifiable output | a chat log: nothing cites a line, nothing survives the scroll-back |
The target effect is the inverse of every row: fixed-breadth coverage, no deferrals,
deduplicated branches, a convergence test you can check, and every claim carrying a file:line
or a URL.
| # | Capability | Invoke | What it yields |
|---|---|---|---|
| 1 | Exhaustive divergent exploration — grows research directions or solution paths outward from one topic until new high-value branches stop appearing, not until the chat trails off | /cc-tree:brainstorm |
shortlist.md |
| 2 | Adversarial critique of a finished artifact — reviewer-style attack on a document, argument, or proposal; every leaf resolves to CONFIRMED / MARGINAL / REFUTED, carrying the position it attacks and whatever defense the artifact already mounts |
/cc-tree:attack |
confirmed.md |
| 3 | Design-space exploration — options × trade-offs × reversibility × cost × fit-with-constraints, ending in a comparison table and a RECOMMENDED short-list |
/cc-tree:design |
options.md |
| 4 | Code audit — the findings a static linter structurally cannot produce: threat-model-dependent, contract-level, and cross-file reasoning bugs, each with file:line evidence and a proposed fix |
/cc-tree:code-audit |
findings.md |
| 5 | Chaining the four — pipes one stage's top-K deliverable into the next: brainstorm → design → attack, diverging on directions, designing the best into options, attacking the winner before you commit | /cc-tree:tree-chain |
per-stage, plus the handoff log |
All five are the same engine. A preset changes the vocabulary, never the loop — §10 of
docs/ENGINE.md is the exact extension surface.
code-audit looks for what a static analyzer cannot: threat-model-dependent,
contract-level, and cross-file reasoning bugs.cc-tree treats any open-ended thinking task as a phylogenetic tree growing outward from one
root. The root is your input — a topic, a document, a code path, a design prompt. Every node is
expanded by the same 12 framing passes, each child is fully derived and scored, and only the
high-value (advances) leaves get re-expanded, until the tree reaches substantive convergence
rather than an arbitrary count.
Inspired by the radial tree of life. The vocabulary the rest of this README uses is all in this one picture: root (the input at the centre — topic · artifact · code · design), node (one idea / critique / option / finding, each with the same 12-field derivation), depth (the concentric framing-recursion rings; branches stop at different rings because only advances leaves re-expand), width (the terminal leaves, wherever they land — set by convergence, not a hand-picked cap, and never counting a blocked tip until it is completed, per §0.1), and n (total nodes in the tree). Diagram source: tools/gen_radial_tree.py.
the tree grows OUTWARD from one root. a branch can WIN, hit a DEAD END, or
keep BRANCHING and be judged again — no single winner, wins at any depth:
ROOT ──┬── pruned (dead end at depth 1)
├── advances (a win at depth 1)
└── advances ──┬── pruned (this branch keeps going…)
└── advances ──┬── advances (…a deeper win)
└── blocked
each node → 12 framings (§3.A–§3.L) → 12-field derivation → score → verdict;
branches that keep advancing grow deeper; pruned / blocked ones stop.
All five are specified in docs/ENGINE.md and binding on every preset.
flowchart LR
R([root<br/>topic · artifact · code · design]) --> F{{12 framing passes<br/>§3.A–§3.L}}
F --> D[per-node 12-field derivation<br/>evidence · no hedging · no defer]
D --> S[score 5 dims → verdict]
S -->|advances| RE((re-expand<br/>this leaf))
RE --> F
S -->|kept / pruned| K[keep in tree,<br/>don't re-expand]
S -->|blocked| B[INCOMPLETE_FORBIDDEN<br/>drive to completion]
B --> D
S --> C{§6 convergence?<br/>6 conditions all true}
C -->|no| RE
C -->|yes| OUT[/final report +<br/>tree.md · tree.json/]
The preset supplies the recipe; the engine enforces that every root field carries a file:line,
URL, or command-output citation. An optional glossary-grill prelude (§2.0) locks the root's
technical noun-phrases to your project's term sheet before a single branch is generated, so the
tree does not spend a hundred leaves solving the wrong problem.
Each node — root first, then every advances leaf — is put through all 12 framing passes, each of
which must yield at least one child. The set is fixed so that the model cannot quietly skip the
uncomfortable angles.
| Pass | What it forces |
|---|---|
| §3.A First-principles | Strip a load-bearing assumption; see what survives |
| §3.B Inversion | Try the negation, the dual, the boundary where it fails |
| §3.C Cross-disciplinary | Transplant tooling from ≥ 3 other fields |
| §3.D Adversarial / red team | The 3 most damaging counter-arguments |
| §3.E Constraint variation | Relax one constraint; tighten another |
| §3.F Scale extrapolation | 1000× / 0.001× / domain boundary |
| §3.G Substitution | Swap a component and observe the change |
| §3.H Office-hours 6Q | YC-style demand-reality interrogation |
| §3.I Contrarian | Which mainstream consensus might be wrong here? |
| §3.J Failure-driven | Turn a concrete present failure into the next question |
| §3.K High-risk asymmetric | Force ≥ 1 low-probability, paradigm-level branch |
| §3.L Meta self-audit | 7-question audit of the model's own blind spots |
A thirteenth pass, §3.X, runs one external cross-check per node (WebSearch then WebFetch of the
actual page) unless --no-online is set. Full prompts and per-preset examples:
docs/framings.md.
Each child is filled into the preset's 12-field node schema —