## Skills and Commands This project has skills and commands that work across both Claude Code and OpenCode. ### Architecture The **single source of truth** for all skill/command instructions is `.claude/commands/`. Both Claude Code and OpenCode use the same underlying instructions with no content duplication. ``` .claude/commands/ <-- Full instructions (single source of truth) recipe-check.md recipe-init.md recipe-deploy.md ... includes/ guidelines.md <-- Shared guidelines for all recipe operations logging.md <-- Shared logging instructions .opencode/skills//SKILL.md <-- Thin stubs that point to .claude/commands/ .opencode/commands/.md <-- Thin stubs that load the corresponding skill ``` - **Claude Code** uses `.claude/commands/` directly as slash commands (e.g. `/recipe-check hedgedoc`). - **OpenCode** discovers skills via `.opencode/skills/` and slash commands via `.opencode/commands/`. Each stub reads the full instructions from `.claude/commands/` at runtime. ### Available skills and commands | Name | Description | |------|-------------| | `recipe-check` | Fetch a recipe and check for available upgrades | | `recipe-init` | Create a new test instance and recipe-info for a recipe | | `recipe-deploy` | Deploy the local recipe checkout to the test instance | | `recipe-new-tag` | Bump the recipe version and create an annotated git tag | | `recipe-overview` | Check all maintained recipes and recommend what to upgrade | | `recipe-review` | Review a recipe for Co-op Cloud best practices | | `recipe-test` | Run all tests for a recipe | | `recipe-test-new` | Test a recipe's first-time initialization from scratch | | `recipe-test-update` | Test upgrading a recipe's test instance | | `recipe-backup-test` | Test backing up and restoring a recipe's test instance | | `recipe-upgrade` | Upgrade a recipe's images, deploy to test, and run tests | | `test-context-reset` | Undeploy all apps from the test server except infrastructure | Two additional skills provide shared instructions loaded by the above: | Name | Description | |------|-------------| | `recipe-guidelines` | Guidelines for local change preservation, version format, secrets | | `recipe-logging` | Logging instructions for maintaining detailed operation logs | ### Adding or editing skills To add a new skill or edit an existing one: 1. Write the full instructions in `.claude/commands/.md` (this is the source of truth). 2. Create a stub at `.opencode/skills//SKILL.md` with the required frontmatter (`name`, `description`) and a line pointing to the `.claude/commands/` file. 3. Create a stub at `.opencode/commands/.md` with frontmatter (`description`) and a line that loads the skill for `$ARGUMENTS`. The OpenCode stubs should never contain substantive instructions — only a pointer to the `.claude/commands/` file.