2026-05-08 12:08:42 +09:00
# src/features/builtin-skills/ — 10 Built-in Skill Files
2026-04-11 22:32:40 +09:00
2026-05-14 12:57:46 +09:00
**Generated: ** 2026-05-14
2026-04-11 22:32:40 +09:00
## OVERVIEW
2026-05-08 12:08:42 +09:00
Skills shipped inside the plugin (always available, no install). Registered via `createBuiltinSkills()` . Each skill implements the `BuiltinSkill` interface with name, description, content, and optional MCP config. Loaded by `opencode-skill-loader` with priority: project > opencode > user > **builtin ** . User-installed skills with the same name override built-ins.
2026-04-11 22:32:40 +09:00
## STRUCTURE
```
builtin-skills/
├── index.ts # Barrel exports
2026-05-08 12:08:42 +09:00
├── skills.ts # createBuiltinSkills() factory — registers all 10 below
2026-04-11 22:32:40 +09:00
├── types.ts # BuiltinSkill interface
2026-05-08 12:08:42 +09:00
├── skills/
│ ├── git-master.ts # 1111 LOC
│ ├── git-master-skill-metadata.ts # Companion to git-master
│ ├── playwright.ts # MCP variant + agent-browser
│ ├── playwright-cli.ts # CLI variant
│ ├── dev-browser.ts # Persistent page state
│ ├── frontend-ui-ux.ts # Design-first UI guidance
│ ├── review-work.ts # 5-agent post-implementation review
│ ├── ai-slop-remover.ts # Remove AI-generated code patterns
│ ├── team-mode.ts # 12 team_* tool documentation (gated)
│ ├── git-master-sections/ # Git-master prompt sub-sections
│ └── index.ts # skill barrel
├── git-master/ # Resources for git-master skill
├── frontend-ui-ux/ # Resources for frontend-ui-ux skill
├── agent-browser/ # Resources for agent-browser variant
└── dev-browser/ # Resources for dev-browser
2026-04-11 22:32:40 +09:00
```
## SKILL CATALOG
2026-05-08 12:08:42 +09:00
| Skill | Approx LOC | MCP | Notes |
|-------|------------|-----|-------|
| `git-master` | 1111 | — | Atomic commits, rebase, history search; included by default for delegate-task `git` category |
| `playwright` | 312 | `@playwright/mcp` | Browser automation via MCP |
| `playwright-cli` | 268 | — | Browser automation via shell CLI (no MCP) |
| `agent-browser` | (in playwright.ts) | — | Browser via `agent-browser:*` Bash commands |
| `dev-browser` | 221 | — | Persistent page state browser for dev work |
| `frontend-ui-ux` | 79 | — | Design-first UI development guidance |
| `review-work` | ~500 | — | Post-implementation review orchestrator (5 parallel agents) |
| `ai-slop-remover` | ~300 | — | Remove AI-generated code smells |
| `team-mode` | — | — | **Conditional ** — only loaded when `team_mode.enabled` ; documents the 12 `team_*` tools and lifecycle |
2026-04-11 22:32:40 +09:00
## BROWSER VARIANT SELECTION
Config `browser_automation_engine` selects which browser skill loads:
2026-05-08 12:08:42 +09:00
| Value | Skill Loaded |
|-------|-------------|
| `"playwright"` (default) | playwright (MCP-backed) |
| `"playwright-cli"` | playwright-cli (CLI-backed) |
| `"agent-browser"` | agent-browser (in playwright.ts) |
2026-04-11 22:32:40 +09:00
2026-05-08 12:08:42 +09:00
Only one browser skill is active per session — non-selected variants are skipped.
## TEAM-MODE SKILL GATING
The `team-mode` skill is registered unconditionally but only **rendered ** when `team_mode.enabled: true` :
``` typescript
// skills/team-mode.ts (paraphrase)
const teamModeSkill : BuiltinSkill = {
name : "team-mode" ,
shouldLoad : ( config ) = > config . team_mode ? . enabled === true ,
// ...
}
```
When disabled, the skill is filtered out before agent prompt assembly so agents do not see `team_*` tool docs they cannot use.
## ADDING A NEW BUILT-IN SKILL
1. Create `skills/{name}.ts` exporting a `BuiltinSkill` object
2. Register in `skills.ts` `createBuiltinSkills()` factory
3. Add resources (if any) under a sibling directory: `{name}/SKILL.md` , prompt sections, etc.
4. If the skill is conditional, set `shouldLoad: (config) => …`
5. Optionally declare an MCP server in the skill (loaded by `skill-mcp-manager` per session)