Skill Tracer
Skills › Compound Engineering › ce-compound

ce-compound

skill · 79 lines · MIT · skills/ce-compound/SKILL.md

The facts

Its description

Document a solved problem as a durable repo learning. Use when verified work produced non-obvious reasoning absent from its final code, tests, or existing docs; avoid routine fixes whose artifacts already explain the lesson.

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

The agent picks this after a session has solved and verified a problem whose reasoning is not recoverable from the final code, tests, or existing docs, so the lesson is worth writing down as a durable repo learning. Routine fixes whose artifacts already explain the lesson should not trigger it.

Things a person might say (the model's guesses)

  • “Compound this — we just fixed the race condition and the reason isn't obvious from the diff.”
  • “Save what we learned from this debugging session as a repo learning.”
  • “Document this fix so the next agent doesn't repeat the mistake.”

A model's summary of when it is used.

A model's reading

What it takes when started

[optional: brief context] [mode:non-interactive] [depth:lightweight|full]

What to type after its name when you start it.

From its settingsline 4

Starts other agents

4 lines mention starting other agents

Lines in the file that mention starting another agent. Found by matching words, so treat them as pointers.

Found by matching wordsline 40 line 46 line 58 line 73

Files it mentions

references/research.md, references/modes.md, references/session-history.md, references/assembly.md (first 5 of 9 lines)

Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.

Found by matching wordsline 13 line 64 line 72 line 73 line 74

What it leads to

Other skills this one hands off to, calls, requires or offers instead, as a model read them.

A model's reading

What leads to it

Other skills that hand off to this one, call it, require it or offer it instead, as a model read them.

A model's reading

Names skills outside this collection

Skills the text names that are not in this collection, as a model read them.

A model's reading

Licence

MIT, from LICENSE

The terms its author shares it under, which let it be shown here.

From the repositorylicence text
Other files in this skill (27) Close

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: ce-compound
3description: Document a solved problem as a durable repo learning. Use when verified work produced non-obvious reasoning absent from its final code, tests, or existing docs; avoid routine fixes whose artifacts already explain the lesson.
4argument-hint: "[optional: brief context] [mode:non-interactive] [depth:lightweight|full]"
5---
6
7# /ce-compound
8
9**Outcome:** one qualifying solved problem is written as a durable learning under `<root>/solutions/`, grounded against the current tree, discoverable by the next agent.
11**Done:** a qualifying doc is written or updated, its frontmatter and claims validated, vocabulary capture recorded, and the mode's completion report emitted; when no learning qualifies, nothing is written and the report says why.
13**One learning per run.** A session that produced several gets several sequential runs, never one batched run. Read `references/research.md`; it explains what batching breaks.

/ce-compound

Outcome: one qualifying solved problem is written as a durable learning under <root>/solutions/, grounded against the current tree, discoverable by the next agent.

Done: a qualifying doc is written or updated, its frontmatter and claims validated, vocabulary capture recorded, and the mode's completion report emitted; when no learning qualifies, nothing is written and the report says why.

One learning per run. A session that produced several gets several sequential runs, never one batched run. Read references/research.md; it explains what batching breaks.

Raw lines 1 to 15
Reads a file references/research.md :13
16## Preconditions
18Document only a problem that is solved and verified.
20<!-- ce-durable-bar:start -->
21A learning earns its place only when it holds durable project reasoning that is not readily recoverable from the final code, tests, types, comments, or existing documentation, and losing it would plausibly cause recurrence, material risk, or substantial rediscovery. Apply this counterfactual: if the learning document disappeared, would a future engineer reading the final implementation still be likely to repeat the mistake or redo substantial investigation? Completion, effort, and diff size do not establish eligibility.
22<!-- ce-durable-bar:end -->
24If the counterfactual fails, write nothing and report why. Judge this from the session rather than asking. An explicit invocation requests the judgment now but does not lower the bar.
26An existing learning that became materially inaccurate or incomplete qualifies because leaving it would mislead. Update that learning instead of creating a duplicate.
28`ce-compound` does not bootstrap `CONCEPTS.md`. It seeds the learning's own area as a side effect, never the whole repo. Send a standalone request to create or bootstrap that file to `ce-compound-refresh`, then exit.

Preconditions

Document only a problem that is solved and verified.

<!-- ce-durable-bar:start --> A learning earns its place only when it holds durable project reasoning that is not readily recoverable from the final code, tests, types, comments, or existing documentation, and losing it would plausibly cause recurrence, material risk, or substantial rediscovery. Apply this counterfactual: if the learning document disappeared, would a future engineer reading the final implementation still be likely to repeat the mistake or redo substantial investigation? Completion, effort, and diff size do not establish eligibility. <!-- ce-durable-bar:end -->

If the counterfactual fails, write nothing and report why. Judge this from the session rather than asking. An explicit invocation requests the judgment now but does not lower the bar.

An existing learning that became materially inaccurate or incomplete qualifies because leaving it would mislead. Update that learning instead of creating a duplicate.

ce-compound does not bootstrap CONCEPTS.md. It seeds the learning's own area as a side effect, never the whole repo. Send a standalone request to create or bootstrap that file to ce-compound-refresh, then exit.

Raw lines 16 to 29
Names a skill ce-compound-refresh :28
30## Mode Detection
32```bash
33/ce-compound [brief context]
34/ce-compound mode:non-interactive depth:lightweight [context]
35/ce-compound mode:non-interactive depth:full [context]
36```
38Enter non-interactive mode when **either** holds: the arguments you were invoked with contain the `mode:non-interactive` token or its deprecated alias `mode:headless`, **or** the invocation makes non-interactive intent unmistakable, such as a caller or standing instruction asking to run `ce-compound` "headless", "non-interactively", "unattended", or "without prompts/questions". Both tokens together is not a conflict. Bare "automatically" or "auto-run" is **not** on its own a non-interactive signal: it speaks to *invoking* the skill, not to suppressing its prompts. An ambiguous or absent signal defaults to interactive. Tokens starting with `mode:` or `depth:` are flags, not context: strip them before treating the remainder as the brief context hint. Once detected, non-interactive mode applies for the entire run.
40Depth is chosen only by an explicit token, only in non-interactive mode, and at most one depth token is accepted. `depth:lightweight` routes directly to Lightweight Mode. `depth:full` or no depth token enters Full Mode, including its automatic session-history probe. A non-interactive call carrying no depth token therefore behaves as it always has. Non-interactive lightweight asks no blocking questions and launches no subagents. If the invocation carries an unknown `depth:` token, multiple `depth:` tokens, or a `depth:` token without non-interactive intent, do not guess: emit the non-interactive failure report with the reason and end with `Documentation skipped`.
42**Non-interactive mode asks nothing.** It asks no blocking question of any kind, in any phase, because a caller reaching this path has no human to answer one. Every non-interactive exit, including one taken before any phase runs, ends on a terminal signal a caller parses: `Documentation complete`, or `Documentation skipped` with the reason when no doc was written. Interactive mode asks only where the step's own reference says to, which is the Discoverability Check consent and, when several stale docs are in play, which refresh to run.

Mode Detection

/ce-compound [brief context]
/ce-compound mode:non-interactive depth:lightweight [context]
/ce-compound mode:non-interactive depth:full [context]

Enter non-interactive mode when either holds: the arguments you were invoked with contain the mode:non-interactive token or its deprecated alias mode:headless, or the invocation makes non-interactive intent unmistakable, such as a caller or standing instruction asking to run ce-compound "headless", "non-interactively", "unattended", or "without prompts/questions". Both tokens together is not a conflict. Bare "automatically" or "auto-run" is not on its own a non-interactive signal: it speaks to invoking the skill, not to suppressing its prompts. An ambiguous or absent signal defaults to interactive. Tokens starting with mode: or depth: are flags, not context: strip them before treating the remainder as the brief context hint. Once detected, non-interactive mode applies for the entire run.

Depth is chosen only by an explicit token, only in non-interactive mode, and at most one depth token is accepted. depth:lightweight routes directly to Lightweight Mode. depth:full or no depth token enters Full Mode, including its automatic session-history probe. A non-interactive call carrying no depth token therefore behaves as it always has. Non-interactive lightweight asks no blocking questions and launches no subagents. If the invocation carries an unknown depth: token, multiple depth: tokens, or a depth: token without non-interactive intent, do not guess: emit the non-interactive failure report with the reason and end with Documentation skipped.

Non-interactive mode asks nothing. It asks no blocking question of any kind, in any phase, because a caller reaching this path has no human to answer one. Every non-interactive exit, including one taken before any phase runs, ends on a terminal signal a caller parses: Documentation complete, or Documentation skipped with the reason when no doc was written. Interactive mode asks only where the step's own reference says to, which is the Discoverability Check consent and, when several stale docs are in play, which refresh to run.

Raw lines 30 to 43
Starts an agent subagents :40
44## Artifact Root
46Resolve `<root>` when you first compose a `<root>/solutions/` path, and pass a subagent the resolved path rather than the config.
48<!-- ce-docs-root:start -->
49**Resolve the CE artifact root `<root>` before composing any artifact path.**
51- **Read** `docs_root` from `<repo-root>/.compound-engineering/config.yaml` only (`<repo-root>` = `git rev-parse --show-toplevel`). Do not read it from `config.local.yaml`. Unset -> `<root>` is `docs`, exactly as before.
52- **Validate** a set value: a repo-relative directory whose real, symlink-resolved path stays inside the repo and is neither the repo root nor under `.git/`. Otherwise stop with an error naming `docs_root` and the value -- never fall back to `docs`.
53- **Use** `<root>` as the sole artifact location: create it if absent, compose each path as `<root>/<subdir>` with this skill's own subdirectory, and never also read `docs`.
54<!-- ce-docs-root:end -->

Artifact Root

Resolve <root> when you first compose a <root>/solutions/ path, and pass a subagent the resolved path rather than the config.

<!-- ce-docs-root:start --> **Resolve the CE artifact root <root> before composing any artifact path.**

  • Read docs_root from <repo-root>/.compound-engineering/config.yaml only (<repo-root> = git rev-parse --show-toplevel). Do not read it from config.local.yaml. Unset -> <root> is docs, exactly as before.
  • Validate a set value: a repo-relative directory whose real, symlink-resolved path stays inside the repo and is neither the repo root nor under .git/. Otherwise stop with an error naming docs_root and the value -- never fall back to docs.
  • Use <root> as the sole artifact location: create it if absent, compose each path as <root>/<subdir> with this skill's own subdirectory, and never also read docs.

<!-- ce-docs-root:end -->

Raw lines 44 to 55
Starts an agent subagent :46
56## Write boundary
58**Only the orchestrator writes product files.** Phase 1 subagents write to per-run scratch only, and never touch `<root>/`, project instruction files, or any other tracked path.
60The orchestrator writes the one learning under `<root>/solutions/`, plus two maintenance side effects that its own step describes: `CONCEPTS.md` during vocabulary capture, and — **only in interactive Full mode after consent** — a small discoverability line in a project instruction file. Two further writes exist **only in interactive Full mode when the user selects them at the assembly destination step**: a rule file inside a writable declared Compound Pack, and the `packs:` entry appended to `.compound-engineering/config.yaml`. Creating `CONCEPTS.md` when it is absent is expected rather than a violation. An instruction file is only ever edited, never created. Nothing else in the tree is written. Edits to *other* docs belong to `ce-compound-refresh`, which this skill recommends or invokes with a narrow scope but never stands in for.

Write boundary

Only the orchestrator writes product files. Phase 1 subagents write to per-run scratch only, and never touch <root>/, project instruction files, or any other tracked path.

The orchestrator writes the one learning under <root>/solutions/, plus two maintenance side effects that its own step describes: CONCEPTS.md during vocabulary capture, and — only in interactive Full mode after consent — a small discoverability line in a project instruction file. Two further writes exist only in interactive Full mode when the user selects them at the assembly destination step: a rule file inside a writable declared Compound Pack, and the packs: entry appended to .compound-engineering/config.yaml. Creating CONCEPTS.md when it is absent is expected rather than a violation. An instruction file is only ever edited, never created. Nothing else in the tree is written. Edits to other docs belong to ce-compound-refresh, which this skill recommends or invokes with a narrow scope but never stands in for.

Raw lines 56 to 61
Starts an agent subagents :58
Names a skill ce-compound-refresh :60
62## Choosing the path
64**Read `references/modes.md` before step 1.** An interactive run picks its own depth rather than asking the user, and that reference says why neither the depth choice nor session history is a question. Default to **Full**. Choose **Lightweight** only when the session is near its context limit.
66Lightweight mode skips session history entirely; non-interactive Full runs the same automatic probe, which asks nothing and so preserves the non-interactive contract.

Choosing the path

**Read references/modes.md before step 1. An interactive run picks its own depth rather than asking the user, and that reference says why neither the depth choice nor session history is a question. Default to Full. Choose Lightweight** only when the session is near its context limit.

Lightweight mode skips session history entirely; non-interactive Full runs the same automatic probe, which asks nothing and so preserves the non-interactive contract.

Raw lines 62 to 67
Reads a file references/modes.md :64
68## Full Mode
70Run these in order. Each reference is a required read at the step that names it.
721. **Research** — read `references/research.md`.
732. **Session history** — read `references/session-history.md`, and start it *after* dispatching the Related Docs Finder so it overlaps your drafting rather than serializing. Session history is the final Phase 1 input, not a workflow stop. When it returns, including with "no relevant prior sessions", go straight to assembly without pausing or summarizing.
743. **Assembly and write** — wait for every Phase 1 input, then read `references/assembly.md`.
754. **Refresh check and discoverability** — read `references/refresh-and-discoverability.md`.
765. **Optional enhancement** — read `references/enhancement.md`. Interactive only.
776. **Report** — read `references/report.md` for the report shape your mode must emit and how the skill ends.
79**Lightweight Mode** replaces steps 1-6 with a single pass; read `references/lightweight.md`, which defines its own completion output for both modes.

Full Mode

Run these in order. Each reference is a required read at the step that names it.

  1. Research — read references/research.md.
  2. Session history — read references/session-history.md, and start it after dispatching the Related Docs Finder so it overlaps your drafting rather than serializing. Session history is the final Phase 1 input, not a workflow stop. When it returns, including with "no relevant prior sessions", go straight to assembly without pausing or summarizing.
  3. Assembly and write — wait for every Phase 1 input, then read references/assembly.md.
  4. Refresh check and discoverability — read references/refresh-and-discoverability.md.
  5. Optional enhancement — read references/enhancement.md. Interactive only.
  6. Report — read references/report.md for the report shape your mode must emit and how the skill ends.

Lightweight Mode replaces steps 1-6 with a single pass; read references/lightweight.md, which defines its own completion output for both modes.

Raw lines 68 to 79
Reads a file references/research.md :72
Starts an agent dispatching :73
Reads a file references/assembly.md :74
Reads a file references/enhancement.md :76
Reads a file references/report.md :77
Reads a file references/lightweight.md :79

From EveryInc/compound-engineering-plugin at 3449230, 2026-10-31. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.