canopy
Canopy skill expert. Creates, modifies, scaffolds, validates, improves, advises on, and refactors Canopy skills. Supports both Claude Code and GitHub Copilot via platform-aware runtime.
$ARGUMENTS
Agent
explore — classify the user's intent from $ARGUMENTS and conversation context. Read constants/operation-detection.md for trigger phrases. Check which platform directories exist: .claude/ → "claude" available, .github/ → "copilot" available. Detect the active execution platform (whichever is the current base). Check if the user explicitly named a target platform (e.g. "create for copilot", "scaffold as claude"). Output contract: schemas/dispatch-schema.json. Return: operation, platform (execution platform), available_platforms (all detected), explicit_target_platform (from user input or null), target_skill, extra_context.
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
runtimes/claude.mdfor platform execution rules
- Read
- ELSE
- Read
runtimes/copilot.mdfor platform execution rules
- Read
- SWITCH << context.operation
- CASE << "CREATE"
- Read
ops/create.mdand execute the CREATE procedure
- Read
- CASE << "MODIFY"
- Read
ops/modify.mdand execute the MODIFY procedure
- Read
- CASE << "SCAFFOLD"
- Read
ops/scaffold.mdand execute the SCAFFOLD procedure
- Read
- CASE << "CONVERT_TO_CANOPY"
- Read
ops/convert-to-canopy.mdand execute the CONVERT_TO_CANOPY procedure
- Read
- CASE << "VALIDATE"
- Read
ops/validate.mdand execute the VALIDATE procedure
- Read
- CASE << "IMPROVE"
- Read
ops/improve.mdand execute the IMPROVE procedure
- Read
- CASE << "ADVISE"
- Read
ops/advise.mdand execute the ADVISE procedure
- Read
- CASE << "REFACTOR_SKILLS"
- Read
ops/refactor-skills.mdand execute the REFACTOR_SKILLS procedure
- Read
- CASE << "CONVERT_TO_REGULAR"
- Read
ops/convert-to-regular.mdand execute the CONVERT_TO_REGULAR procedure
- Read
- CASE << "HELP"
- Read
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 | 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
- 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
- Framework primitives (IF, ELSE_IF, ELSE, SWITCH, CASE, DEFAULT, FOR_EACH, BREAK, END, ASK, SHOW_PLAN, VERIFY_EXPECTED) are never defined in skill or project ops
- Before creating any op or resource file, always read
shared/project/ops.md,shared/framework/ops.md, and any existingshared/project/<category>/files — reference shared content, never duplicate it - After any change to a skill or agent file, verify every
Read \<category>/<file>`` reference and every op procedure path still resolves to an existing file - Always load the platform runtime spec before executing any op procedure