Runtime required. This skill uses Canopy tree notation; canopy-runtime must be active.
Detect canopy-runtime — present if either:
canopy-runtime/SKILL.mdexists under.claude/skills/,.github/skills/, or.agents/skills/, OR- a canopy-runtime marker block exists in
CLAUDE.mdor.github/copilot-instructions.md.If neither is present — install canopy-runtime first (see the
compatibilityfield for the source and install options), then re-invoke this skill.Do not interpret the
## Treewithout canopy-runtime active.
$ARGUMENTS
Agent
explore — execute FETCH_DISPATCH_CONTEXT. Output contract: assets/schemas/dispatch-schema.json.
Tree
- canopy
- EXPLORE >> context
- IF << context.operation requires an explicit skill name (IMPROVE, MODIFY, VALIDATE, SCAFFOLD, CONVERT_TO_CANOPY, CONVERT_TO_REGULAR) AND context.target_skill is null
- ASK << Which skill should I {context.operation}? Please name it explicitly.
- IF << context.platform == "claude"
- Read
../canopy-runtime/SKILL.mdfor the canopy execution engine overview - Read
../canopy-runtime/references/runtime-claude.mdfor Claude Code runtime rules - Read
../canopy-runtime/references/ops.mdfor the primitive-slice index (load specific slices on demand from individual ops) - Read
../canopy-runtime/references/skill-resources.mdfor category semantics, op lookup chain, tree format, manifest, subagent contract
- Read
- ELSE
- Read
../canopy-runtime/SKILL.mdfor the canopy execution engine overview - Read
../canopy-runtime/references/runtime-copilot.mdfor Copilot runtime rules - Read
../canopy-runtime/references/ops.mdfor the primitive-slice index (load specific slices on demand from individual ops) - Read
../canopy-runtime/references/skill-resources.mdfor category semantics, op lookup chain, tree format, manifest, subagent contract
- Read
- SWITCH << context.operation
- CASE << "CREATE"
- Read
references/ops/create.mdand execute the CREATE procedure
- Read
- CASE << "MODIFY"
- Read
references/ops/modify.mdand execute the MODIFY procedure
- Read
- CASE << "SCAFFOLD"
- Read
references/ops/scaffold.mdand execute the SCAFFOLD procedure
- Read
- CASE << "CONVERT_TO_CANOPY"
- Read
references/ops/convert-to-canopy.mdand execute the CONVERT_TO_CANOPY procedure
- Read
- CASE << "VALIDATE"
- Read
references/ops/validate.mdand execute the VALIDATE procedure
- Read
- CASE << "IMPROVE"
- Read
references/ops/improve.mdand execute the IMPROVE procedure
- Read
- CASE << "ADVISE"
- Read
references/ops/advise.mdand execute the ADVISE procedure
- Read
- CASE << "REFACTOR_SKILLS"
- Read
references/ops/refactor-skills.mdand execute the REFACTOR_SKILLS procedure
- Read
- CASE << "CONVERT_TO_REGULAR"
- Read
references/ops/convert-to-regular.mdand execute the CONVERT_TO_REGULAR procedure
- Read
- CASE << "ACTIVATE"
- Read
references/ops/activate.mdand execute the ACTIVATE procedure
- Read
- CASE << "MEASURE_CONTEXT"
- Read
references/ops/measure-context.mdand execute the MEASURE_CONTEXT procedure
- Read
- CASE << "HELP"
- Read
references/ops/help.mdand execute the HELP procedure
- Read
- DEFAULT
- ASK << Could not determine the operation. What would you like to do? | Create a skill | Modify a skill | Scaffold a skill | Validate a skill | Improve a skill | Advise | Refactor skills | Convert to regular | Activate runtime | Measure context | Help
- CASE << "CREATE"
Rules
- Never overwrite existing files without confirmation
- For ops that target a specific skill (IMPROVE, MODIFY, VALIDATE, SCAFFOLD, CONVERT_TO_CANOPY, CONVERT_TO_REGULAR): if the skill name is not stated explicitly, ASK before proceeding — never infer from natural language descriptions or loop over multiple skills
- Always show a plan before making any changes
- Preserve the skill's existing tree syntax style (markdown list vs box-drawing) unless the user asks to switch
- Preserve the skill's existing directory layout (legacy flat vs. standard
scripts//references//assets/) during MODIFY — IMPROVE may migrate it on user opt-in - Do not change a skill's logic or intent during CONVERT_TO_CANOPY, MODIFY, or VALIDATE
- SKILL.md must contain only orchestration — no inline JSON, YAML, tables, scripts, or templates
- Skill files must be exactly
SKILL.md(uppercase) — case-sensitive filesystems require this - Skills with
## Treemust have acompatibilityfield declaring canopy-runtime requirement and a safety preamble guard block at the top of the body - Frontmatter root contains only spec-allowed fields (
name,description,license,compatibility,metadata,allowed-tools);argument-hintanduser-invocablego insidemetadata - Framework primitives (IF, ELSE_IF, ELSE, SWITCH, CASE, DEFAULT, FOR_EACH, PARALLEL, BREAK, END, ASK, SHOW_PLAN, EXPLORE, VERIFY_EXPECTED) are never defined in skill or project ops — they live in canopy-runtime's primitive slices (indexed by
../canopy-runtime/references/ops.md; per-slice files under../canopy-runtime/references/ops/) - Before creating any op or resource file, consult the slice index
../canopy-runtime/references/ops.md(loaded up-front) and any existing project-wide ops the consumer has defined — reference shared content, never duplicate it - After any change to a skill or agent file, verify every
Read \/`` reference and every op procedure path still resolves to an existing file - The platform runtime spec (
../canopy-runtime/references/runtime-claude.mdor../canopy-runtime/references/runtime-copilot.md) is loaded up-front by this skill's tree and is in context for every op procedure