v0.2.1
Highlights
This release closes the auto-trigger gap that quietly broke the pipeline on long sessions: vibekit skills now have a deterministic priming layer (using-vibekit) that is auto-loaded on session start by every supported runtime. Pipeline skills can no longer be silently skipped — the trigger map is always in context, the 1%-chance rule is always enforced, and subagents have an explicit carve-out so the priming does not recurse.
The cross-runtime delivery is one source of truth (skills/using-vibekit/SKILL.md) with four adapter paths, mirroring the proven superpowers approach.
What's new
using-vibekit skill — auto-trigger discipline (priming layer)
A new 14th skill that is auto-loaded at session start, not user-invoked. It carries:
- The 1%-chance rule: if there is even a 1% chance a vibekit skill applies, the agent MUST invoke it via the
Skilltool. - The
<SUBAGENT-STOP>carve-out: subagents dispatched with an RTCO brief skip the priming and follow only their brief. Prevents recursion and token waste. - The instruction priority order: user instructions > vibekit skills > default system prompt.
- The auto-trigger map: explicit table mapping trigger conditions (e.g. "about to claim work is done") to the skill that MUST fire (
verify-gate) for all 13 invocable skills. - Hard gates: no code before brainstorm-approved design; no "done" claim before verify-gate; no merge / push / PR before review-pack sign-off; no subagent dispatch without
brief-compiler. - Anti-patterns: explicit list of rationalizations that are not allowed (e.g. "this is too simple to need brainstorm", "the diff is obviously right").
SessionStart hook (Claude Code, Cursor, Copilot CLI)
- New
hooks/hooks.jsonregisters a SessionStart hook onstartup | clear | compact. - New
hooks/session-start(bash) readsskills/using-vibekit/SKILL.mdand injects it asadditionalContextso the priming is always loaded fresh after/clearor compaction. - Output branches by environment: Cursor (
additional_context), Claude Code (hookSpecificOutput.additionalContext), Copilot CLI / SDK-standard (additionalContext). The Cursor branch is dormant scaffolding until a Cursor adapter ships. .claude-plugin/plugin.jsonnow declares"hooks": "./hooks/hooks.json".
Cross-runtime adapter delivery
Same using-vibekit body, four delivery paths — no duplicated prose.
- Gemini CLI:
GEMINI.mdprepends@./skills/using-vibekit/SKILL.mdso Gemini imports the priming before per-skill imports. - OpenAI Codex:
.codex/INSTALL.mddocuments clone + symlink to~/.agents/skills/vibekit. Codex auto-discovers skills under~/.agents/skills/;using-vibekit's description ("Use when starting any conversation") makes it fire on session start. - opencode: New
.opencode/plugin.jsonand.opencode/plugins/vibekit.jsregister the skills directory via theconfighook (no symlink needed) and inject the priming into the first user message viaexperimental.chat.messages.transform. Idempotency guard checks forEXTREMELY_IMPORTANT+vibekitso vibekit can coexist with other priming-style plugins. - Claude Code / Cursor / Copilot CLI: SessionStart hook above.
Documentation
AGENTS.mdnow reflects the 14-skill plugin:using-vibekitintroduced in the intro, added as a row in the skill table (flagged as not user-invoked), and thehooks/repo-layout entry no longer says "reserved; no hooks yet".CLAUDE.mdis now a public Claude Code-specific contributor overlay on top ofAGENTS.md. Covers the SessionStart hook behavior, thevibekit:skill prefix, the never-Read-a-SKILL.mdrule, theAgent-tool subagent discipline (brief-compiler+report-filter), and the cross-runtime consistency checklist. Removed from.gitignoreso it ships.README.mdupdated: skill-count framing now reads "13 invocable skills + 1 auto-loaded priming layer"; new "Auto-trigger discipline" bullet under "What you get" describes the SessionStart hook and the four-runtime adapter delivery; Codex install consolidated at.codex/INSTALL.md(the duplicatedocs/README.codex.mdwas removed and the README link updated).
Manifest alignment
All three runtime manifests now share an identical 7-stage pipeline description (previously two of them were missing isolate from the stage list):
.claude-plugin/plugin.jsongemini-extension.json.opencode/plugin.json
Why this matters
Before this release, vibekit skills were discoverable (the harness saw them in the available-skills list) but auto-trigger was best-effort. On long sessions or after /clear, the model would silently skip guardrail steps — exactly the failure mode the plugin exists to prevent. The priming layer makes auto-trigger a contract, not a hope.
Compatibility
- No breaking changes. All existing skills and the
/vibecommand behave identically. - No new dependencies for end users on Claude Code / Codex / Gemini.
- opencode users get the
@opencode-ai/plugindev-dependency declared in.opencode/package.json; the plugin itself uses only Node built-ins (path,fs,os,url). - Cursor users: the SessionStart hook contains a Cursor branch, but no Cursor manifest ships yet. Cursor support is intentionally deferred.
Migration
Reinstall or restart your runtime. No config changes required.
- Claude Code: restart, or trigger the hook explicitly with
/clear. - Codex: re-clone or
git pullin~/.codex/vibekit; the symlink resolves automatically. - Gemini CLI: restart; the
@-import inGEMINI.mdloads the priming on session start. - opencode: restart; the plugin reloads via
opencode.json.
Verification
You can confirm the priming is active by checking that the first context block in your session contains EXTREMELY_IMPORTANT and using-vibekit. On Claude Code, run vibekit-doctor for a structured health check.
Commits in this release
3e6a1d8feat(priming): add using-vibekit auto-trigger discipline + SessionStart hook0d766d7feat(adapters): deliver using-vibekit priming to Codex, Gemini, opencodee7e305cdocs(agents): register using-vibekit and SessionStart hook51340badocs(claude): add Claude Code contributor overlayfe3d380docs(readme): note auto-trigger priming, consolidate Codex installf103a21chore(release): bump version 0.2.0 → 0.2.1 across all manifests
Full Changelog: v0.2.0...v0.2.1