cc-tree Radial Tree Explorer
Auditable tree thinking for Claude Code: every node cites evidence, deferred leaves are banned, and runs stop only on convergence.
- Source repo
- skymanbp/cc-tree
- Stars
- ★ 94
- Last updated
- 5d ago
- License
- MIT
- Primary language
- Python
- FA score
- 67/100 · Some gaps
At a glance
- Works with
- Platform-specificClaude Code
- You'll need
- Typical use
- A researcher mapping dark-matter substructure detection via weak lensing needs an evidence-backed shortlist of directions, not a three-bullet outline
- Main limitation
- The runtime depends entirely on Claude Code's plugin mechanism; there is no adapter for other hosts or model providers
- Source review
- 67/100 · Some gaps
What does this agent do, and when should you use it?
cc-tree is a Claude Code plugin that folds brainstorming, adversarial critique, design-space exploration and code auditing into one radial-tree exploration engine. The runtime is a Markdown skill (skills/tree/SKILL.md) plus four presets — brainstorm, attack, design and code-audit — invoked through /cc-tree:tree, /cc-tree:brainstorm, /cc-tree:attack, /cc-tree:design, /cc-tree:code-audit and /cc-tree:tree-chain. Each expansion is forced through 12 framings, and every child must fill 12 derivation fields and score on 5 dimensions to earn an advances, kept, pruned or blocked verdict. Nodes are written to disk as soon as they are complete — tree.md, tree.json and the primary deliverable (shortlist.md, confirmed.md, options.md or findings.md) under the --out directory — so an interrupted run resumes with the same --out. Repo-side Python tooling (standard library only, never loaded by a run) validates manifests, skills, presets, commands, cross-references and English/Chinese alignment, and regenerates the radial-tree diagram for a diff. It ships no model; output quality tracks whatever Claude model you run in Claude Code.
A run starts from one root — a topic, artifact, code path or design prompt — grounded with the preset's §2 recipe and, unless --no-grill, a §2.0 glossary grill that pins project terms. Each expandable node passes through 12 framings (first-principles, inversion, cross-disciplinary, red team, constraint variation, scale, substitution, office-hours 6Q, contrarian, failure-driven, high-risk asymmetric, and a meta self-audit), producing one derived child per framing with 12 required fields. Children are scored 0–3 across five dimensions: ≥11 becomes advances and is re-expanded, 8–10 is kept, ≤7 is pruned, unverified is blocked and reported as INCOMPLETE_FORBIDDEN until completed; siblings at cosine ≥0.85 merge. Termination requires six convergence conditions at once; a tripped cap is reported as WIDTH_CAP_REACHED, DEPTH_CAP_REACHED or ROUNDS_EXHAUSTED, never as CONVERGED. Outputs include tree.md, tree.json, glossary-anchors.md, primary and secondary deliverables, REPORT.md, and nodes/<id>.md for oversized evidence. tree-chain runs presets in sequence per --stages and pipes the top-K via --seed-from; --seed-from also seeds depth 1 from a prior primary.md by hand.
- A researcher mapping dark-matter substructure detection via weak lensing needs an evidence-backed shortlist of directions, not a three-bullet outline
- A reviewer or engineer wants to critique a paper, proposal or argument where every challenge is labelled CONFIRMED / MARGINAL / REFUTED and quotes the source
- An architect comparing auth flows for an internal admin tool needs options weighed by trade-off, reversibility and cost, ending in a RECOMMENDED shortlist
- A security or backend developer auditing something like /src/api/upload.py for threat-model, contract and cross-file bugs a linter cannot see, each with file:line and a fix
- A team that wants a brainstorm → design → attack pipeline with each stage's top-K handed to the next via tree-chain
- Teams needing a replayable record of the reasoning, with tree.json as the source of truth and resumable runs after a kill or context overflow
How do you install or deploy this agent?
Inside an installed and authenticated Claude Code session:
claude plugin marketplace add skymanbp/cc-tree
claude plugin install cc-tree@cc-treeRestart Claude Code to load the plugin, then upgrade later with:
claude plugin update cc-treeOptionally validate a local checkout with claude plugin validate <path-to-this-repo>. Running cc-tree needs no Python; reproducing CI validation needs Python 3.11 or 3.13.
How do you use this agent?
Start with a capped taste (a cap is not convergence):
/cc-tree:brainstorm "topic" --width 20 --depth 2 --no-onlineThen pick the command that matches the task:
/cc-tree:brainstorm "ways to detect dark-matter substructure with weak lensing"
/cc-tree:attack ./paper.tex --field physics --lang zh
/cc-tree:design "auth flow for our internal admin tool"
/cc-tree:code-audit ./src/api/upload.py
/cc-tree:tree <root> --preset ./my-custom-preset.mdChain stages:
/cc-tree:tree-chain "..." --stages brainstorm,design,attack --top-k 3Results land in tree-out/ by default, <preset>-out/ for preset commands and chain-out/ for chains, each under a <UTCdate>__<slug>/ segment. Re-invoke with the same --out to resume from the last completed node.
What are this agent's strengths and limitations?
- One engine plus swappable presets: the four presets share a single loop, and a custom preset is one .md file with a CI-checked frontmatter schema that may not weaken universal rules
- Fixed 12 framings plus eight quality gates (§F1–§F8) that ban defer / future work / TODO leaves, force one high-risk branch per pass, and merge synonym-swapped siblings at cosine ≥0.85
- Convergence is a checkable conjunction of six conditions; caps default to ∞ and a tripped cap reports WIDTH_CAP_REACHED and friends instead of masquerading as convergence
- Incremental write: each node hits tree.md and tree.json as soon as its 12 fields are filled, so a kill or context overflow resumes from the same --out
- tools/validate_plugin.py runs seven check groups with three self-test suites and a diagram-regen diff on Python 3.11 and 3.13 for every PR
- Localizes prose with --lang and reweights exploration with field profiles while keeping machine tokens, verdict labels and filenames English; mismatched EN/ZH docs fail CI
- The runtime depends entirely on Claude Code's plugin mechanism; there is no adapter for other hosts or model providers
- No model and no output-quality benchmark ship with it — quality tracks your Claude model setting, and the repo only measures its own consistency
- Unbounded by default: a rich root can run for hours and consume many tokens, and the docs recommend capping the first pass
- CI validates the repository, not an individual run; in-run compliance rests on the §11 checklist and the report's self-audit
- Sub-agent fan-out buys wall-clock, not tokens — the main agent re-verifies every citation a sub-agent returns
- Translation freshness is CI-enforced but quality is not, and --no-online narrows evidence to local sources
How does this agent compare with similar options?
The README explicitly contrasts cc-tree with academic Tree-of-Thoughts and describes it as the domain-agnostic extraction of the brainstorm and paper-attack-tree skills from skymanbp/sci-paper.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| cc-tree Radial Tree Explorer This agent | 67 · Some gaps | — | ★ 94 | 5d ago | Python | Claude Code |
| Ponytail | 50 · Major gaps | Agent plugin / skillFree + model costs | ★ 173k | 5d ago | JavaScript | Codex · Claude Code |
| CoCo Super Intelligence | 69 · Some gaps | Agent plugin / skillFree + model costs | ★ 926 | today | Python | Codex · Claude Code |
| Workflow Plugin: Claude Workflow V2 | 50 · Major gaps | Agent plugin / skillFree + model costs | ★ 1.4k | 21d ago | Python | Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows: CI workflow explicitly sets permissions: contents: read (good least privilege); run outputs go to --out and are .gitignored, with incremental writes and resume (rollback/recovery); every node requires file:line or URL evidence (strong attribution). Deductions: README states caps default to infinity and runs can take hours and many tokens, while §F6 forbids mid-run prompting, so user confirmation is weak; data flow for --no-online and §3.X web cross-checks is not described in visible files; no specific handling for sensitive data (code-audit reads source, possibly sent to model/network); external effects (file writes, network) lack an explicit confirmation gate.
Evidence shows: validate_plugin.py with seven check groups, three self-test suites including negative cases and diagnostic assertions, CI on Python 3.11/3.13 — strong self-consistency evidence; failure messages carry explicit diagnostics (WIDTH_CAP_REACHED, INCOMPLETE_FORBIDDEN). Deductions: runtime depends on Claude Code model and plugin marketplace, availability only asserted in README; runtime (Markdown prompt) failure handling cannot be statically verified, so not full marks.
Evidence shows: four presets cover brainstorm/adversarial critique/design-space/code audit; §1.3 clearly states what it is not (capability boundaries well handled); --lang, --field, custom --preset path provide environment fit. Deductions: trigger precision relies on command/flag docs with no stated guard against misfires or out-of-scope input; environment fit limited to the Claude Code plugin ecosystem.
Evidence shows: documentation index, architecture diagram, repository map, known limitations (§9.2), MIT license — information architecture and limitations are strong. Deductions: install notes are two commands plus 'restart' with no troubleshooting; version appears in README snapshot (0.7.4) but CHANGELOG content is not in evidence, so versioning evidence is thin; publisher identity is unverified and maintenance responsibility is unclear, hence maintenance_responsibility = 1.
Evidence shows: clear output structure (tree.md/tree.json/REPORT.md/primary deliverable), example shows BEFORE/AFTER with per-finding evidence — output usability is adequate. Deductions: README admits no output-quality benchmark, quality tracks the model; unbounded defaults can make cost very high, so cost_benefit = 1.
Evidence shows: every node requires file:line/URL evidence, example citations are traceable; CI cross-ref checks (225 links, 9 example citations) provide cross-source consistency evidence; §4 explicitly separates structural validation from semantic quality (fact/inference separation). Deductions: the verification snapshot in README is self-reported and not independently reproduced in evidence; semantic correctness is explicitly outside CI coverage.
- Caps default to infinity and mid-run prompting is forbidden; long runs can consume large token/time budgets — set explicit --width/--depth/--rounds caps on first use.
- code-audit reads source code, and the data flow for §3.X web cross-checks is not described in visible files; confirm --no-online and your model data policy before processing sensitive code.
- Publisher identity is unverified and maintenance responsibility/update path is unclear; review plugin contents before installing.
- CI validates repository self-consistency only, not run output quality; the verification snapshot in README is self-reported and not independently reproduced.