ce-setup
everyinc/compound-engineering-plugin
Check Compound Engineering health, validate repo config, and scaffold new Compound Packs.
What is ce-setup?
ce-setup is a lightweight diagnostic and configuration helper for Compound Engineering projects. It validates your environment, checks for missing optional tools, resolves artifact directories, and can scaffold new Compound Packs on request.
- Runs health checks on your Compound Engineering environment and plugin version
- Validates and resolves the artifact root directory (docs_root) from repo config
- Detects and reports missing optional tools without forcing bulk installation
- Scaffolds new Compound Packs with user approval when requested via pack:<id>
- Repairs common repo-local configuration issues and refreshes example configs
- Reports the resolved artifact root so you can confirm where CE artifacts will be written
How to install ce-setup
npx skills add https://github.com/everyinc/compound-engineering-plugin --skill ce-setup- Git repository with Compound Engineering plugin installed
- Writable access to the repository (for Phase 2 fixes; Phase 1 diagnosis works read-only)
How to use ce-setup
- 1.Run the skill with no arguments to perform a health check and diagnose your environment
- 2.Review the diagnostic output, which includes the resolved artifact root and any missing optional tools
- 3.Approve any suggested repo-local fixes (config refresh, gitignore updates, etc.) when prompted
- 4.To scaffold a new Compound Pack, invoke with pack:<id> argument and approve the pack creation
- 5.Re-run anytime to validate your setup or check for new issues
Use cases
- Verify your Compound Engineering setup is healthy before running other CE skills
- Scaffold a new Compound Pack and configure it for your project
- Check which optional CE tools are missing and install only the ones you need
- Diagnose and fix repo-local configuration issues like invalid docs_root or gitignore problems
- Validate artifact directory resolution across different checkout states
- Compound Engineering project operators and maintainers
- Teams setting up or migrating Compound Engineering workflows
- Developers managing multiple CE artifact directories or custom docs_root configurations
ce-setup FAQ
config.yaml is the repo-wide configuration tracked in git; config.local.yaml is user-local and should be gitignored. ce-setup reads only config.yaml for the artifact root (docs_root) and reports if config.local.yaml exists without proper gitignore protection.
The artifact root is the directory where Compound Engineering writes solutions, plans, ideation, and other outputs. It's resolved from docs_root in config.yaml (defaulting to 'docs' if unset). ce-setup reports this so you can confirm where your CE artifacts will be stored.
No. ce-setup reports missing optional tools but does not force installation. Install only the tools for the workflows you actually use; the diagnostic already provides the install command for each.
ce-setup offers to fix common issues (invalid docs_root, missing config.example.yaml, obsolete files) but always asks for approval before making changes to user-owned files.
Phase 1 (diagnosis) still runs. Phase 2 (fixes) is skipped unless the harness exposes a remote writable checkout, in which case fixes are applied there instead.
Full instructions (SKILL.md)
Source of truth, from everyinc/compound-engineering-plugin.
name: ce-setup
description: "Check Compound Engineering health and repo-local config, or scaffold a Compound Pack with pack:<id>."
argument-hint: "[pack:<id>]"
disable-model-invocation: true
Compound Engineering Setup
Interaction Method
Ask each question below using the host's blocking question tool already in the current tool list (match by capability, not by a host-specific name). Presence in the current tool list is proof the tool exists; never call a user-facing question tool to discover whether it exists. If a matching tool is listed but unloaded, use the host's tool-discovery primitive to load that capability — do not search for another host's tool name. Fall back to a numbered list on the host's user-visible chat surface only when no such tool is in the list or a real question call errors. Never silently skip or auto-configure.
ce-setup is a lightweight health check and repo-local config helper. It does not bulk-install every optional dependency. Missing tools are reported as optional capabilities so the user can install only the workflows they use.
Pack Scaffold
When the invocation names a Compound Pack to add, create, or scaffold (the pack:<id> argument, or the same request in words), read references/pack-scaffold.md from this skill's directory and follow it in place of Phases 1-2 (Diagnose and Fix Repo-Local Issues): it writes the pack and its config entry only after the user approves, runs the health check itself, and reports into Phase 3 (Summary).
Artifact Root Resolution
Every Compound Engineering skill that writes or reads an artifact directory (solutions, plans, ideation, and the other CE-owned trees) resolves its root through the rule below. ce-setup carries the canonical statement and reports the resolved root so an operator can confirm where artifacts land before running other skills.
Resolve the CE artifact root <root> before composing any artifact path.
- Read
docs_rootfrom<repo-root>/.compound-engineering/config.yamlonly (<repo-root>=git rev-parse --show-toplevel). Do not read it fromconfig.local.yaml. Unset -><root>isdocs, 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 namingdocs_rootand the value -- never fall back todocs. - 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 readdocs.
Phase 1: Diagnose
Step 1: Determine Plugin Version
Detect the installed compound-engineering plugin version by reading the plugin metadata or manifest when the platform exposes it. If the version cannot be determined, skip this step.
If a version is found, pass it to the check script via --version. Otherwise omit the flag.
Step 2: Run the Health Check
Before running the script, display:
Compound Engineering -- checking your environment...
Run the bundled check script. Set SKILL_DIR to the absolute directory you loaded this ce-setup SKILL.md from — the Bash tool's CWD is the user's project, not the skill dir, so a bare scripts/ path will not resolve:
SKILL_DIR="<absolute path of the directory containing this SKILL.md>";
if [ -f "$SKILL_DIR/scripts/check-health" ]; then bash "$SKILL_DIR/scripts/check-health" --version VERSION; else echo "Bundled health script not found at $SKILL_DIR/scripts/check-health; run the inline checks from ce-setup instead."; fi
Use the same command without --version VERSION if Step 1 could not determine a version.
If the script is unavailable, run the inline equivalent listed in references/repo-fixes.md.
Display the diagnostic output to the user. Missing optional tools are not setup failures. The health report includes the resolved artifact root and which config layer supplied it (per Artifact Root Resolution above); show that line so the operator can confirm where CE artifacts will be written. Missing config.yaml is a reported absence, not a project issue.
Step 3: Decide Whether Fixes Are Needed
Repo-local fixes the health report names apply only to the checkout that report diagnosed. If Phase 2 will write to a different writable checkout, diagnose that checkout first. Session-level findings such as plugin version and optional tools still come from this session's Phase 1.
After the health report, decide Phase 2 from writable-checkout availability:
- If this session has a writable git checkout, run Phase 2 locally, including when
project_issuesis 0. Phase 2 always refreshes the example and always offers to createconfig.yamlwhen that file is missing. - If this session has no writable checkout, but the user named a repository and the harness exposes a remote repo-work surface with a writable checkout, run Phase 2 on that surface instead and report the remote repo-local fixes in Phase 3.
- Otherwise skip Phase 2 and go to Phase 3, saying repo-local writes were skipped because no writable checkout is available.
If the report names a legacy Compound Codex tool map, offer to remove it following references/legacy-codex-tool-map.md from this skill's directory. That block lives in the user's Codex home, not the checkout, so the offer stands whether or not Phase 2 runs.
Also remediate these project issues when the report names them:
- obsolete
compound-engineering.local.md .compound-engineering/config.local.yamlexists but is not safely gitignored.compound-engineering/config.example.yamlis missing or outdated- the health report marks the
ce-workskill implementation engine unavailable or invalid, detects retired scalar routing keys, or reports malformed dormantwork_engine_preferencesor a malformedwork_engine_effort - the health report marks
docs_rootinvalid (Invalid docs_root ...) — CE artifacts will not be written until it is fixed
If optional tools are missing, do not offer a bulk install. The diagnostic already printed the relevant install command or project URL. Say: "Install optional tools only for the workflows you use."
Phase 2: Fix Repo-Local Issues
Read references/repo-fixes.md from this skill's directory before making any repo-local change. It carries Steps 4-9: removing the obsolete compound-engineering.local.md, refreshing the example config, offering to create config.yaml, repairing invalid work_engine_preferences and docs_root, the two .gitignore offers, and the agent-instructions offers (a knowledge-store mention, the compounding directive, and the chat-register directive for ce-noslop).
All paths there resolve from the repository root (git rev-parse --show-toplevel), not the current working directory. Maintaining the generated example files is the work Phase 2 does on its own — refreshing config.example.yaml and removing the superseded config.local.example.yaml. Every change to a user-owned file is offered and applied only if the user approves.
Phase 3: Summary
User-runnable invocation rendering. In setup summaries, default to /ce-setup; use $ce-setup only when the active host is Codex or explicitly documents dollar-prefixed skill invocation. On oh-my-pi (omp), use /skill:ce-setup. Render only the invocation as inline code and output one form only.
Display a brief summary:
✅ Compound Engineering setup complete
Fixed: <fixes applied, or none>
Skipped: <fixes declined, or none>
Optional: <missing optional tools, or all available>
Run `<rendered invocation>` anytime to re-check.
Related skills
More from everyinc/compound-engineering-plugin and the wider catalog.

ce-simplify-code
Simplify recently changed code for clarity, reuse, quality, and efficiency while preserving behavior.

ce-slack-research
Search Slack for synthesized organizational context—decisions, constraints, and discussion arcs—not just raw messages.

ce-strategy
Create or update STRATEGY.md to define product purpose, positioning, users, metrics, and investment tracks.

ce-test-browser
Run end-to-end browser tests on pages affected by your PR or branch.

ce-test-xcode
Test iOS apps in a simulator with XcodeBuildMCP, capturing screenshots and logs as evidence.

ce-update
Check if compound-engineering plugin is up to date and recommend updates.