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

At a glance

Works with
Platform-specificClaude Code
You'll need
Claude CodePython 3.11 or 3.13 (CI validation only)Shell / CLINetwork accessLocal filesystem
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.

  1. A researcher mapping dark-matter substructure detection via weak lensing needs an evidence-backed shortlist of directions, not a three-bullet outline
  2. A reviewer or engineer wants to critique a paper, proposal or argument where every challenge is labelled CONFIRMED / MARGINAL / REFUTED and quotes the source
  3. An architect comparing auth flows for an internal admin tool needs options weighed by trade-off, reversibility and cost, ending in a RECOMMENDED shortlist
  4. 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
  5. A team that wants a brainstorm → design → attack pipeline with each stage's top-K handed to the next via tree-chain
  6. 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-tree

Restart Claude Code to load the plugin, then upgrade later with:

claude plugin update cc-tree

Optionally 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-online

Then 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.md

Chain stages:

/cc-tree:tree-chain "..." --stages brainstorm,design,attack --top-k 3

Results 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?

Pros
  • 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
Limitations
  • 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?

FollowAgents source review · FARS-2.1
Some gaps
67/ 100 5-point scale 3.4 / 5
Trust 16/29
Reliability 11/14
Adaptability 14/18
Convention 14/18
Effectiveness 7/13
Verifiability 5/8
Why each dimension lost points
Trust16 / 29 · 2.8/5

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.

Reliability11 / 14 · 3.9/5

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.

Adaptability14 / 18 · 3.9/5

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.

Convention14 / 18 · 3.9/5

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.

Effectiveness7 / 13 · 2.7/5

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.

Verifiability5 / 8 · 3.1/5

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.

Risks and how to mitigate them
  • 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.
Evidence confidence: Low Reviewed Oct 22, 2026 Reviewed revision f59249f4e30b
See the full review method →

FAQ

What does a run cost?
The plugin is MIT and free, but it bundles no model, so spend is your Claude Code model's token usage. Width, depth and rounds are unbounded by default; a rich topic can run hours, so cap the first pass with --width, --depth or --rounds.
Does it need network access?
By default each node runs a §3.X web cross-check; --no-online disables it and narrows evidence to local sources while keeping the run valid. Model calls still go through Claude Code's online service in either case.
What happens if a run is interrupted?
Every node is written the moment its 12 fields are filled. Re-invoke with the same --out to resume from the last completed node; tree.json is the source of truth and tree.md is the human view.
Can I use it outside Claude Code?
The repository documents only marketplace installation into Claude Code and the /cc-tree:* commands — no other host, SDK or API path is described, so anything else would need a rewrite.
Can a custom preset weaken the rules?
No. Presets change vocabulary and the §2 root recipe only; no preset may weaken a universal rule. A custom preset is one .md file with a CI-checked frontmatter schema, loaded via /cc-tree:tree --preset <path>.
View on GitHub ↗ Install ↓

Compare agents like this one

The same FARS review applied across the shortlist this agent qualifies for.

Related agents