Unified entry point for creating or updating OpenCode tools (skills, agents, commands) with dependency awareness. Orchestrates the creation of multiple related artifacts in a single session. Use when user says "create opencode tool", "new opencode tool", "oc-tool-dev", or wants to create/update an OpenCode artifact and may need supporting artifacts.
Creates or updates OpenCode tools and their dependencies through a unified interview workflow.
/plugin marketplace add sequenzia/agent-alchemy/plugin install agent-alchemy-opencode-tools@agent-alchemyThis skill is limited to using the following tools:
You are initiating the unified OpenCode tool development workflow. This process triages what the user needs, detects dependencies between artifacts, builds an execution plan, and delegates to the existing type-specific skills — reusing their interview flows and generation logic.
IMPORTANT: You MUST use the AskUserQuestion tool for ALL questions to the user. Never ask questions through regular text output.
Text output should only be used for summaries, explanations, and presenting information.
This skill delegates to existing oc-create-* and oc-update-* skills. When executing a tool creation/update:
Read the OpenCode platform overview for general context:
${CLAUDE_PLUGIN_ROOT}/references/platform-overview.mdType-specific guides (skill-guide.md, agent-guide.md, command-guide.md) are loaded later by the delegated skill — do not load them here.
Gather high-level requirements through 3 questions using AskUserQuestion.
Question 1 — Action:
Question 2 — Tool Type:
Question 3 — Name & Description:
Ask an additional question to locate the existing artifact:
Question 4 — Locate Artifact:
If "Search workspace": search using the same discovery patterns as the oc-update-* skills:
Glob for .opencode/{type}s/*/SKILL.md (skills) or .opencode/{type}s/*.md (agents/commands)Glob for .claude/{type}s/*/SKILL.md or .claude/{type}s/*.mdGlob for .agents/{type}s/*/SKILL.md or .agents/{type}s/*.mdAskUserQuestion for selectionStore triage results: action, type, name, description, and optionally the artifact path.
Based on the primary tool type, ask targeted dependency questions using AskUserQuestion.
Question 1 — Custom Agent:
If "Yes": ask for the agent name and brief purpose via AskUserQuestion.
Question 2 — Supporting Command:
If "Yes": ask for the command name and brief purpose via AskUserQuestion.
Question 1 — Parent Skill:
If "Yes": ask for the skill name and purpose via AskUserQuestion.
Question 1 — Agent Routing:
If "Yes": ask for the agent name and purpose via AskUserQuestion.
Question — Related Updates:
If "Yes": gather the names and types of related tools.
If the user indicates no dependencies in all questions, skip directly to Phase 4.
Build and present the execution plan as a text summary:
## Tool Creation Plan
### Primary Tool
- **Type**: {Skill | Agent | Command}
- **Name**: {name}
- **Action**: {Create | Update}
- **Purpose**: {brief description}
### Dependencies (processed first)
1. {Type}: {name} — {Create | Update} — {brief purpose}
2. ...
(If no dependencies: "No dependencies — single artifact workflow.")
### Execution Order
1. {first dependency}
2. {second dependency}
3. {primary tool}
Confirm the plan using AskUserQuestion:
If "Modify plan": ask what to change, update the plan, and re-confirm. If "Cancel": stop the workflow and inform the user.
Process each item in the plan, in dependency order (agents before skills, skills before commands that reference them).
Step 1 — Determine the target skill path:
| Action | Type | Skill Path |
|---|---|---|
| Create | Skill | ${CLAUDE_PLUGIN_ROOT}/skills/oc-create-skill/SKILL.md |
| Create | Agent | ${CLAUDE_PLUGIN_ROOT}/skills/oc-create-agent/SKILL.md |
| Create | Command | ${CLAUDE_PLUGIN_ROOT}/skills/oc-create-command/SKILL.md |
| Update | Skill | ${CLAUDE_PLUGIN_ROOT}/skills/oc-update-skill/SKILL.md |
| Update | Agent | ${CLAUDE_PLUGIN_ROOT}/skills/oc-update-agent/SKILL.md |
| Update | Command | ${CLAUDE_PLUGIN_ROOT}/skills/oc-update-command/SKILL.md |
Step 2 — Read the target skill's SKILL.md.
Step 3 — Follow the loaded skill's instructions with these adjustments:
Step 4 — After each artifact completes:
Present a brief completion notice:
✓ {Type} "{name}" — {created | updated} at {path}
Then proceed to the next item in the plan.
After all items are processed, present a final summary:
## Tool Creation Summary
### Artifacts
| # | Type | Name | Action | Path | Validation |
|---|------|------|--------|------|------------|
| 1 | {type} | {name} | {Created/Updated} | {path} | {Pass/Warnings} |
| 2 | ... | ... | ... | ... | ... |
### Dependencies
- {name} (agent) ← used by → {name} (skill)
- {name} (agent) ← routed from → {name} (command)
(If no dependencies: "All artifacts are independent.")
### Invocation
- Skill: `/{skill-name}` in the OpenCode TUI
- Agent: `@{agent-name}` in the TUI or `task({ command: "{agent-name}" })`
- Command: `/{command-name}` in the TUI
CRITICAL: Complete ALL 6 phases before finishing.
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.