Project-scope OpenCode configuration: 5 skills and 5 slash commands committed alongside the source. Picked up by [`src/features/opencode-skill-loader/`](file:///Users/yeongyu/local-workspaces/omo/src/features/opencode-skill-loader/) and the slash-command discovery pipeline.
**Relationship to `.agents/`:**`.agents/` is the migration target during the `oh-my-opencode` → `oh-my-openagent` rename. It is a SUPERSET of `.opencode/` (mirrors all 5 skills + adds 5 more, mirrors the 5 commands). Both directories load during the transition; consumers should prefer `.agents/`.
-`background-tasks.json` — Runtime state for active background tasks (gitignored from sensitive content but tracked structurally).
-`bun.lock`, `package.json`, `node_modules/` — Skill dependencies (some skills install their own packages).
-`.gitignore` — Local scope ignore patterns.
## CONVENTIONS
- **Skill YAML frontmatter is mandatory.** [`opencode-skill-loader`](file:///Users/yeongyu/local-workspaces/omo/src/features/opencode-skill-loader/) rejects skills without `name` + `description`.
- **Project-scope > user-scope.** A skill at `.opencode/skills/X/` overrides `~/.config/opencode/skills/X/` of the same name.
- **Trigger words** in the skill description determine when OpenCode loads the skill. Be specific.
- **Commands are user-visible.** Name them with a leading `/` (the loader normalizes filename → command).
## ANTI-PATTERNS
- Never duplicate a built-in skill from `src/features/builtin-skills/` here without a clear reason.
- Never commit `background-tasks.json` contents that include session IDs or token secrets.
- Never write a skill that calls `session.promptAsync` directly — go through `dispatchInternalPrompt` (see root AGENTS.md "Internal message injection is dangerous").