agentleFS
skymanbpskymanbp/cc-tree/skills/tree/SKILL.md

tree

Skill82 starsChanged 7 days agoMITView on GitHub

Universal radial-tree exploration engine — loads a preset, grounds a root, expands every node through 12 framing passes, derives each child in 12 evidence-bearing fields, scores it, and recurses on `advances` leaves until substantive convergence (or a user cap). Caps default to ∞; `defer / TODO / NEEDS-MORE-INFO` leaves are hard-banned. Use when the user wants the engine itself — a custom preset via `--preset <path>`, explicit control of a run, or "tree of thoughts" / 穷尽的树状探索 in general; for the four shipped use-cases prefer `/cc-tree:brainstorm`, `/cc-tree:attack`, `/cc-tree:design`, `/cc-tree:code-audit`, whose descriptions carry the per-use-case triggers.

2 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. Zafer-Liu/Data-Analysis-Agent★ 2.6ksame name
    2. ARYN26/you-are-here★ 1same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 2 are distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Follow the preset's baseline recipe.

    line 115
  2. Very specific:

    Run §3.A through §3.L, each producing at least 1 new child branch.

    line 133
  3. Very specific:

    No field may contain 应该 / 大概 / probably / maybe / 也许 — the field is invalid and must be rewritten.

    line 155
  4. Very specific:

    No field may contain defer / future work / TODO / FIXME / 略 / details omitted / 待定 / NEEDS-MORE-INFO-style placeholders — the node is …

    line 157
  5. Very specific:

    After every round, evaluate the 6 conditions in docs/ENGINE.md §6.

    line 183
  6. Very specific:

    All 6 must hold simultaneously to declare CONVERGED.

    line 185
  7. Distinctive:

    If neither convergence nor a cap-trip, pick the highest-verdict leaf that hasn't been re-expanded yet, run §3–§5 on it, and loop.

    line 190
  8. Very specific:

    When termination is declared, write the preset's output_artifacts to <out>/.

    line 195

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

tree — universal radial-tree exploration engine

What this skill is. A single engine implementing recursive radial-tree exploration (root → 12-framing expansion → per-node 12-field derivation → score → recurse on high-verdict leaves → terminate on substantive convergence). What varies between use-cases (brainstorm vs critique vs design vs code-audit) is the baseline recipe, node schema, scoring dimensions, and verdict vocabulary — all parameterized via a preset file.

What this skill is NOT. Not a one-shot LLM call that returns a bulleted list. Not a chat interface — once the §2.0 glossary grill has settled terminology and the root is written, the engine runs to convergence without further prompts (§F6). Not bundled with a model — pure prompt-engineering on top of Claude Code's existing model setting.

The full engine specification lives in docs/ENGINE.md. This SKILL.md is a 7-step navigation guide; Read docs/ENGINE.md before producing the first node (the engine spec is what defines "valid" for everything you'll write).


1. Invocation

/cc-tree:tree <root> --preset <name|path> [flags]

<root> is preset-typed:

  • brainstorm preset → topic string, e.g. "ways to detect dark-matter substructure"
  • attack preset → file path (.md / .tex / etc.) or quoted argument-text
  • design preset → design-prompt string or .md file path
  • code-audit preset → file path or directory path

--preset is required:

  • Built-in: brainstorm, attack, design, code-audit (resolve to presets/<name>.md in this plugin)
  • Path: ./my-custom.md (any .md file with the right frontmatter)

Common flags (apply across presets)

FlagDefaultMeaning
--lang <tag|auto>enOutput language for all localized prose (node statements, derivations, report narrative, warnings). Machine tokens — flag/command names, frontmatter & JSON keys, root_kind values, verdict labels, status tokens, filenames — always stay English. <tag> is a BCP-47-like code (en, zh, zh-Hans, zh-Hant, fr-CA); zh = Simplified Chinese, zh-Hant = Traditional. auto detects the dominant language of <root> and falls back to en for mixed / path-only / code-only input. Resolved once before preset load, recorded in run metadata (language_request / output_language / language_source), and never prompted mid-run. Full precedence, resume, and chain semantics: docs/ENGINE.md §1.0.
--width N∞Cap on final leaf count (the outer arc of the tree). ∞ / inf / unspecified all mean unlimited.
--depth N∞Cap on tree depth from root.
--rounds NconvCap on expansion rounds. conv = no cap; terminate by §6 substantive convergence.
--max-branches N∞Cap on new branches per node per round. Floor is 12 because §3 requires all 12 framings to fire; this flag only raises the ceiling.
--out <dir>tree-out/<UTCdate>__<slug>/Output directory. Per-preset commands override (e.g. brainstorm-out/).
--glossary <path>(preset-determined)Path to a glossary / FACTS.md / glossary section in a dossier; used by §2.0 grill prelude.
--field <name|path>(none)Field profile for domain-aware reviewer weighting. <name> → field-profiles/<name>.md in this plugin; <path> → a literal file. Feeds §3.C / §3.D / §3.I / §3.J + the §3.X / §4 evidence bar. Missing profile → warn + continue (non-blocking). See docs/ENGINE.md §2.2.
--seed-from <primary.md>(none)Seed the tree from a prior run's primary deliverable (shortlist.md / options.md / confirmed.md): each listed item enters as a depth-1 seed node and is re-expanded. The substrate for cross-preset chaining (docs/chaining.md). Alias: --from-prior.
--no-grilloffSkip §2.0 glossary grill prelude. Marks root-node terms as unverified; §6 convergence adds a warning.
--no-onlineoffDisable WebSearch / WebFetch. Local + already-Read references only.
--min-frameworks N12Minimum framing passes per node. Floor is 12 (full §3.A–§3.L); flag exists for documentation, not relaxation.
--min-novelty-ratio R0.15§6.1 condition 2 requires "last 2 rounds' high-verdict / total < R".

Presets and their command wrappers may document additional preset-specific flags (e.g. attack's --focus <section|claim|equation>); a flag documented by the active preset or its wrapper is not "unknown" (docs/ENGINE.md §1.3).

Caps default to ∞ on purpose. The intended termination is §6 substantive convergence — see docs/ENGINE.md §6. Caps are escape valves for quick exploration; when one trips, the engine still drives every in-flight node to a complete state before reporting WIDTH_CAP_REACHED / DEPTH_CAP_REACHED / ROUNDS_EXHAUSTED.


2. Execution flow

Required Reads at session start (before producing the first node):

  1. The preset file (presets/<name>.md or --preset <path>) — full file.
  2. docs/ENGINE.md — full file. This is the contract.
  3. docs/framings.md — the 12 framings with per-preset examples.
  4. If --glossary <path>: Read that glossary file in full.

Step 1 — Preset load

Open the preset file. Extract from its YAML frontmatter:

  • name, description, use-when (informational)
  • root_kind — topic | artifact | code | design-prompt
  • subject_label — what each tree node is called (idea, critique, option, finding, …)
  • verdict_enum — 4-tuple: advances / kept / pruned / blocked
  • convergence_metric — which verdict role counts toward the §6.1 condition-2 ratio. It must be one of the four verdict_enum role keys verbatim (advances / kept / pruned / blocked); alias spellings like novelty_ratio are rejected by the validator. All four shipped presets use advances (docs/presets.md)
  • score_dims — list of 5 scoring dimensions (key + name + desc)
  • node_schema — list of 12 node-field names
  • output_artifacts — file names for the per-verdict final reports

The preset body (below frontmatter) supplies:

  • §2 baseline recipe (what to Read / Grep / WebFetch to build the root)
  • Optional per-framing examples (§3.A–§3.L flavored for this preset)
  • Optional anti-pattern list specific to this preset

Step 2 — §2 baseline

Follow the preset's baseline recipe. For all presets this includes:

  • §2.0 (unless --no-grill): glossary-grill prelude. Lock root-node noun-phrases to the glossary if one was supplied; surface MISSING / AMBIGUOUS / CONFLICT one question at a time per docs/ENGINE.md §2.0.
  • §2.A or §2.B (preset-determined): build the root node from real evidence (Read files, Grep symbols, WebFetch references). The root must have the 5-8 fields the preset specifies, each with file:line or URL evidence.

Save the root to <out>/tree.md + <out>/tree.json before producing any framing branches.

Step 3 — §3 framing pass (12 passes per node)

For each node (starting with root, then any high-verdict leaf in the next round):

Run §3.A through §3.L, each producing at least 1 new child branch. See docs/framings.md for the full prompt per framing, including domain-specific examples per preset.

Parallelize when fan-out ≥ 5 (always true for the root and hot leaves): dispatch the 12 framings across Agent(Explore) sub-agents per the mandatory protocol in docs/ENGINE.md §8.1. Running them sequentially at that fan-out is a defect. Deep marginal leaves (< 5 expected children) may run sequentially.

§3.X (if --no-online is off): per node, do 1 round of WebSearch + WebFetch. The query set is preset-determined (brainstorm/design → prior art + tooling; attack → critiques / errata; code-audit → CVEs / advisories) — see docs/framings.md §3.X.

Step 4 — §4 per-branch 12-field derivation

For each branch produced in §3, fill the preset's 12 node-field schema. Field requirements live in docs/ENGINE.md §4. Hard rules:

  • No field may contain 应该 / 大概 / probably / maybe / 也许 — the field is invalid and must be rewritten.
  • No field may contain defer / future work / TODO / FIXME / 略 / details omitted / 待定 / NEEDS-MORE-INFO-style placeholders — the node is forced to INCOMPLETE_FORBIDDEN and must be driven to completion before counting.
  • Numerical claims require a one-shot python (sympy/numpy) sanity check via Bash — output pasted into the field.
  • External references require WebFetch of the actual arXiv abs / DOI / spec page; WebSearch snippets are not sufficient.

Append the filled node to tree.md + tree.json immediately (incremental write — see §7 for crash-safety contract).

Step 5 — §5 scoring and verdict

Score the node along the preset's 5 dimensions (each 0–3, integer). Sum = score (max 15). Map score → verdict via the preset's verdict_enum and the preset-specific rule (e.g. brainstorm: score ≥ 11 ∧ no [NEEDS_VERIFICATION] → PROMISING; attack: score ≥ 11 ∧ artifact_defense empty → CONFIRMED).

Sibling merging (§5.4): any two siblings with cosine similarity ≥ 0.85 on their idea / critique / option / finding statement → merge, keep the higher-scored one, tag the other MERGED_INTO=<id>.

Step 6 — §6 convergence check

After every round, evaluate the 6 conditions in docs/ENGINE.md §6. All 6 must hold simultaneously to declare CONVERGED. If any user-specified --width / --depth / --rounds cap trips first, report the appropriate *_CAP_REACHED / ROUNDS_EXHAUSTED status, but all leaves must be complete before stopping.

If neither convergence nor a cap-trip, pick the highest-verdict leaf that hasn't been re-expanded yet, run §3–§5 on it, and loop.

Step 7 — §7 final report

When termination is declared, write the preset's output_artifacts to <out>/. For all presets this includes:

  • tree.md — full tree, human-readable
  • tree.json — full tree, machine-readable
  • The preset-specific primary deliverable (shortlist.md, confirmed.md, options.md, findings.md)
  • The preset-specific secondary deliverables (pending.md, marginal.md, refuted.md, …)

Then emit a terminal-report block per docs/ENGINE.md#74-final-report.


3. Anti-patterns (see docs/ENGINE.md §9 for the full list)

The five that most reliably degrade output quality:

  1. ❌ Pseudo-divergence. Two branches that differ only in word choice. Each branch must offer at least one of (a) a different testable prediction, (b) a different failure mode, (c) a different resource profile. Otherwise: merge.
  2. ❌ Defer-as-output. "This direction is promising but requires detailed analysis beyond scope." Forbidden by §F8. The engine must actually do the analysis (Read / WebFetch / Bash) or route to a sibling via §3.E constraint-variation.
  3. ❌ Cap-as-convergence. Declaring --width 20 reached → done. §6 convergence is the intended termination; caps are escape valves and trip ≠ converge.
  4. ❌ Skipping §3.K. "High-risk branches feel speculative, I'll focus on safe ones." §F4 + §3.K force ≥ 1 fully-explored high-risk branch per pass; absent it the pass is invalid.
  5. ❌ WebSearch snippet → conclusion. Snippets are search results, not source-of-truth. Every external citation requires WebFetch of the actual page; otherwise the field is invalid (rule 04 + rule 01 from cc-enforcer, if installed).

4. Output contract

<out>/
├── tree.md             # human-readable outline of every node
├── tree.json           # machine-readable, full 12 fields per node
├── glossary-anchors.md # §2.0 prelude output (unless --no-grill was set)
├── <primary>.md        # preset's "advances" / top-recommendation file
├── <secondary>.md*     # preset's "marginal / pending / refuted" files
├── <per-item>.md*      # preset-specific per-item detail files, when the
│                       #   preset's body declares them (design writes
│                       #   option_<id>.md, the design→attack chain handoff)
├── REPORT.md           # §7.4 final-report block (also echoed to stdout)
└── nodes/
    └── <id>.md         # spilled when a node's evidence > 100 lines

This is the same layout as docs/ENGINE.md §7.2; that section is authoritative if the two ever disagree.

Each node lands the moment its 12 fields are filled (§7.1 incremental write contract). Restart from interruption: just re-invoke the same /cc-tree:tree <root> --preset <name> --out <same-dir> — the engine detects the existing tree and resumes from the highest-id leaf.


5. References

  • docs/ENGINE.md — full engine spec (§0–§11; §0–§9 bind a run, §10–§11 bind a preset author)
  • docs/framings.md — the 12 framings, per-preset examples
  • docs/presets.md — how to author your own preset
  • presets/ — shipped presets
  • commands/ — ergonomic slash-command wrappers
  • docs/EVALUATION.md — design rationale

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.