Repository navigation
v2.19.0
2.19.0 (2026-05-18)
Deprecations
Two bundled skills are now marked deprecated with removal: v3.0.0 (target not committed to a specific timeline). Both remain functional in v2.19.x — invoking either now emits a one-time console.warn per OpenCode session naming the planned removal and (where applicable) the replacement.
orchestrating-swarms→ replacement:orchestrating-subagents(will land in the v3.0.0 cycle). Documents CEP'sTeammateAPI primitives (TeammateTool,spawnTeam,TaskCreate/TaskList/TaskGet,team_nameparameter ontask(), Claude Code subagent_type names) that do not exist in OpenCode.claude-permissions-optimizer→ no replacement planned. Targets Claude Code's~/.claude/settings.jsonallowlist mechanism. OpenCode uses a SQLite-backed session-scoped permission model with built-in always-persistence; there is no prompt-fatigue analog and no OpenCode equivalent to optimize.
Migration: When v3.0.0 ships, the rescue path is standard semver: install @fro.bot/systematic@^2.19 while migrating. v2.18.x and v2.19.x remain on npm.
If v3.0.0 never ships, the deprecation warning becomes the new steady state and both skills stay bundled.
New: skill deprecated: frontmatter field
Optional deprecated: block on SKILL.md with shape { since, removal, replacement?, reason? }. Runtime parser is permissive (silent drops on malformed values, never throws). Content-integrity gate is strict for bundled skills: since, removal, and reason must all be non-empty strings — mirrors the runtime drop rules so any bundled skill that passes the gate also produces a runtime warning.
Warning format when systematic_skill loads a deprecated skill:
[systematic] skill "<name>" is deprecated since v<since>; will be removed in v<removal>. Replacement: <replacement>. Reason: <reason>.
Replacement: and Reason: clauses appear only when set. Dedup via a closure-scoped Set<string> so each deprecated skill warns at most once per OpenCode session.
Features
- skills: deprecation surface + mark orchestrating-swarms and claude-permissions-optimizer (#401) (402ef5c)