# OpenCode Integration

[OpenCode](https://opencode.ai/) uses piker's shared
repo-specific skills directly from `.claude/skills/`.
There is no second copy of each skill to keep in sync.

## Available Skills

| Skill | Activation | Specialization |
|-------|------------|----------------|
| `commit-msg` | `/commit-msg` or explicit request | Piker commit-message style and artifacts |
| `piker-conc-expert` | automatic | `tractor` actor topology, RPC, and cancellation |
| `piker-profiling` | automatic | Cross-actor `Profiler` instrumentation |
| `piker-slang` | automatic | Project communication style |
| `py-codestyle` | automatic | Python source conventions |
| `pyqtgraph-optimization` | automatic | Batched Qt graphics rendering |
| `timeseries-optimization` | automatic | NumPy and Polars timeseries performance |

OpenCode's project command lives at
`.opencode/commands/commit-msg.md`. It delegates to the
shared `commit-msg` skill and only supplies command
arguments; workflow logic remains in the skill.

A user-local skill with the same name may override a repo
skill. Treat `opencode debug skill` as authoritative when
diagnosing which source is active.

## Verify Discovery

From the repository root:

```console
opencode debug skill
opencode debug config
```

`opencode debug skill` should list the piker skills from
the project checkout. Restart OpenCode after changing a
skill or command because configuration-time files are not
hot-reloaded into an active session.

## Portability Rules

- Use only portable Agent Skills frontmatter in shared
  `SKILL.md` files.
- Keep harness-specific command syntax under
  `.opencode/commands/`.
- Detect the active harness and model at runtime; do not
  hardcode Claude Code attribution in shared workflows.
- Keep supporting references beside each shared skill so
  relative links resolve in every harness.
