Skip to content

Releases: rizukirr/vibekit

v0.4.0

12 Jun 17:42

Choose a tag to compare

debug-recovery

This release adds debug-recovery, vibekit's pipeline failure branch and a standalone debugging skill. It brings the plugin to 15 skills (14 invocable + the auto-loaded using-vibekit priming layer).

Until now the vibe pipeline modelled only the happy path — brainstorm → plan → isolate → exec → verify → review → integrate. There was no disciplined response for when something fails. debug-recovery fills that gap: it stops the line, proves a root cause from verbatim evidence, and routes the fix back through the existing gates without ever editing code itself.

New skill: debug-recovery

Triggers

  • Pipeline failure branch — fires when verify-gate returns not satisfied/partial, or an exec-dispatch task fails its test/build.
  • Standalone — fires when you report a bug, a failing test, a broken build, or ask "why is this failing" outside a vibe run.
  • Precedence — it fires after a gate has already produced a failure; it consumes that failure and never pre-empts a passing verify-gate.

The 8-step stop-the-line procedure

  1. STOP — no new features, no speculative edits.
  2. PRESERVE — capture the error/log/repro verbatim (never-compress).
  3. REPRODUCE — make the failure reliable; otherwise document conditions.
  4. ISOLATE — binary-search the diff/history to the smallest culprit.
  5. HYPOTHESIZE — state the root cause as a falsifiable claim with evidence.
  6. CONFIRM — dispatch exactly one fresh, read-only subagent that tries to refute the root cause (bounded to 3 re-hypothesis cycles, then escalate).
  7. ROUTE — small fix → exec-dispatch; structural fix → plan-write.
  8. GUARD — the routed fix must carry a regression test that fails pre-fix.

Design guarantees

  • Never edits code. Diagnosis is the product; the fix flows through the existing gates, preserving the "no code without a brief/plan" discipline on the unhappy path too.
  • Evidence before diagnosis. No root cause is asserted without a quotable artifact; error messages, stack traces, test output, diff hunks, and the confirmation verdict are never compressed.
  • Single fresh-context confirmation, mirroring exec-dispatch's read-only plan-compliance reviewer — no new heavyweight adversarial machinery.
  • Cross-runtime capability gate. Requires one fresh-context subagent dispatch; on Gemini/Pi it degrades to in-session self-refutation with a verbatim degradation warning, never a silent skip.
  • Structured diagnosis report (status, failure, reproduction, root_cause, evidence, confirmation, fix_route, guard_test) returned through report-filter in-pipeline or surfaced to the user standalone.

Cross-runtime registration

  • skills/debug-recovery/SKILL.md — new canonical source (one source, five delivery paths).
  • skills/using-vibekit/SKILL.md — two new auto-trigger-map rows (failure branch + standalone).
  • AGENTS.md — skill-table row; plugin count bumped 14 → 15.
  • GEMINI.md@-include for the new skill.
  • Manifests auto-discover via the skills/ glob; the 7-stage pipeline descriptions are intentionally unchanged (debug-recovery is off-pipeline).

Versioning

  • All runtime manifests aligned to 0.4.0, fixing pre-existing drift (manifests were at 0.3.2, marketplace at 0.3.0, npm package at 0.3.3).

Validation

  • verify-gate: ready — every requirement satisfied with verbatim evidence; surgical-diff blast-radius audit returned clean (zero orphans).
  • review-pack: 0 blocks, signed off.
  • Live eval: PASS (happy path) — driven against a real planted bug, the skill walked all 8 steps, performed a genuine fresh-context confirmation dispatch, routed to exec-dispatch with a guard test, and left the code untouched. The Gemini/Pi degraded fallback is statically verified (warning text + fallback present); a live run on those hosts remains an open follow-up.

Upgrade notes

  • After updating, refresh the installed plugin cache so vibekit:debug-recovery becomes invocable via the Skill tool.

Full changelog: v0.3.3...v0.4.0

v0.3.3

23 May 08:40

Choose a tag to compare

Summary (v0.3.2 -> v0.3.3)

This release focuses on packaging and installation-path correctness across Codex, Pi, and OpenCode.

Highlights

  • Added npm publication-ready package metadata and file allowlist for runtime assets.
  • Prepared OpenCode installation docs for npm-first usage, with a git fallback path.
  • Clarified Pi installation guidance by removing npm install instructions until registry publish is available.
  • Fixed Codex plugin packaging/discovery flow and aligned README installation commands.
  • Added project funding metadata.

Commit Range

  • bd2bb51 Create FUNDING.yml
  • 772991c fix(codex): align plugin manifest with Codex spec
  • f6b31e1 fix(codex): make vibekit discoverable via marketplace add
  • 22351ef docs(readme): switch Codex install to plugin add flow
  • cd0eaee Avoid misleading Pi install paths before npm publication
  • f28096e Prepare npm distribution so Pi and OpenCode can install from one package

v0.3.2

02 May 10:32

Choose a tag to compare

This release ships two pipeline-skill features plus cross-runtime install consolidation. v0.3.1 was an internal manifest bump and never tagged; this release covers everything since v0.3.0.

Highlights

  • plan-write premortem step — every plan now includes a four-category adversarial sweep (hidden assumptions, irreversible steps, spec-misalignment, verify-clause weakness) before user review.
  • NEEDS_INPUT halt-and-resume — dispatched subagents can pause on genuine ambiguity (spec interpretation OR missing context) instead of guessing or failing. Bounded by a hard budget cap of 2 halts/task and a question-quality contract enforced by report-filter.
  • Install-doc layout consolidated — pi install guide moved into .pi-plugin/INSTALL.md; redundant docs/README.gemini.md folded into INSTALL.gemini.md. Each runtime now has exactly one install doc co-located with its plugin manifest.

Features

plan-write premortem step (v0.3.1 internally)

Adds a new `## Premortem` section to every plan, sibling to `## Self-review` and run after it. The author performs a fixed four-category adversarial sweep:

  1. Hidden assumptions — does the plan trust something it shouldn't (an external API, a runtime invariant, a data shape)?
  2. Irreversible / risky steps — what's expensive to undo (migrations, deletions, manifest edits, lockfile changes)?
  3. Spec-misalignment — where could the user say "that's not what I asked for" (requirements with two reasonable interpretations)?
  4. Verify-clause weakness — where does success and failure look the same ("test passes" on an empty test, "endpoint returns 200" on a stub)?

Each category produces bulleted ` — ` lines. Risks the author cannot mitigate inline are tagged `BLOCKING RISK:` and surfaced to the user at the existing review gate. The premortem itself never halts — it produces the section and proceeds to user review.

The `## Premortem` section persists in the plan file, available to downstream skills (`exec-dispatch`, `verify-gate`, `review-pack`) as additional context. Downstream gating on the section is deferred to a future change.

Files touched: `skills/plan-write/SKILL.md` (+79 lines, additive), 5 manifests bumped to 0.3.1.

`NEEDS_INPUT` halt-and-resume (v0.3.2)

Adds a third structured return path to `exec-dispatch` subagents. Today a dispatched subagent has two return paths: a successful task report or a `report-filter` REJECT (re-format only, never re-run). When a subagent hits genuine mid-task ambiguity, it must guess (silent drift) or fail (full rollback + re-dispatch from scratch) — both expensive.

`NEEDS_INPUT` is the cheap third path:

  • Trigger boundary: spec-ambiguity OR missing-context only. Environment, tooling, test, and dependency failures remain task failures.
  • Return shape: discriminated union on a top-level `status` field (`complete | needs_input`). Variant B carries `blocking_step`, `ambiguity_type`, `question`, `tried`, `options`, `recommendation`, and `rolled_back`.
  • Question-quality contract: `report-filter` rejects vague returns (`tried: "n/a"`, single-option `options`, missing `?` in question, `recommendation` not referencing an option label).
  • Budget cap: at most TWO halts per task across re-dispatches. A third halt escalates as a task failure with a verbatim user-facing message — the plan or brief is structurally broken.
  • Resume mechanism: fresh subagent, augmented brief. The user's answer is folded into the next dispatch's CONTEXT block; partial work is mandatorily rolled back before the halt return.
  • User surface: verbatim wrapper template that signals "this is a NEEDS_INPUT halt, distinct from a normal exec-dispatch question or a task failure".

Files touched: `skills/brief-compiler/SKILL.md` (+29), `skills/report-filter/SKILL.md` (+22), `skills/exec-dispatch/SKILL.md` (+84), 5 manifests bumped to 0.3.2.

Cross-skill consistency: the discriminated-union schema, four CONSTRAINTS bullets, REJECT messages, wrapper template field set, and budget-cap value are byte-identically aligned across the three skills — enforced by a manual cross-skill audit checklist run at review-pack time. Open question: `vibekit-doctor` C14 automation deferred to a future change.


Documentation

  • Move `docs/INSTALL.pi.md` → `.pi-plugin/INSTALL.md`. Each runtime's install doc now lives in its own plugin directory (`.opencode/INSTALL.md`, `.codex-plugin/INSTALL.md`, `.pi-plugin/INSTALL.md`). Gemini's `INSTALL.gemini.md` remains at repo root because Gemini loads `gemini-extension.json` from root, not a subdir. README.md updated to reflect the new path. Resolves the "install-doc location pattern split four ways" nit from the prior pi-runtime-adapter review.
  • Drop redundant `docs/README.gemini.md`. Folded its unique content (`gemini extensions link .` for local dev) into `INSTALL.gemini.md`. Single source of truth per runtime.

Breaking changes

None. Both features are additive:

  • Plans written before v0.3.1 lack a `## Premortem` section; `exec-dispatch` does not require one.
  • Subagents returning the existing schema (without a `status` field) are accepted as `status: "complete"` by `report-filter` for one minor version (backwards-compat fallback to be dropped at the next major).

Upgrade

Reinstall via your runtime's plugin command. Versions across all five runtime adapters bumped 0.3.0 → 0.3.2:

```
.claude-plugin/plugin.json v0.3.2
.codex-plugin/plugin.json v0.3.2
.opencode/plugin.json v0.3.2
.pi-plugin/plugin.json v0.3.2
gemini-extension.json v0.3.2
```

Full commit log

```
$(git log --oneline v0.3.0..v0.3.2)
```

v0.3.0

30 Apr 04:31

Choose a tag to compare

Highlights

  • Pi (@mariozechner/pi-coding-agent) is now a fully supported fifth runtime. All 14 vibekit skills, the /vibe slash command, and the using-vibekit auto-trigger priming are delivered to pi via a tiny pi extension that injects the canonical priming body into every agent turn's system prompt. Install with pi install git:github.com/rizukirr/vibekit.
  • OpenCode now exposes every vibekit skill as a slash command. All pipeline skills are reachable via /<name> in the OpenCode editor without any extra glue.
  • Cross-runtime parity hardened. Three new vibekit-doctor checks (C11/C12/C13) enforce that the pi adapter stays in sync with the canonical sources; pre-existing version drift between Codex/marketplace and the rest of the manifests has been swept up to a single 0.3.0.

What changed

New: Pi runtime adapter

  • .pi-plugin/plugin.json — internal manifest for vibekit-doctor's parity checks (mirrors .opencode/plugin.json / gemini-extension.json shape).
  • .pi-plugin/extensions/vibekit-prime.ts — async pi extension that registers a before_agent_start handler. Reads skills/using-vibekit/SKILL.md once at load and appends it (framed in <EXTREMELY_IMPORTANT>) to event.systemPrompt every turn, so pi users get the same auto-trigger priming as Claude Code's SessionStart hook delivers.
  • .pi-plugin/prompts/vibe.md/vibe slash command for pi (uses pi's native $ARGUMENTS syntax, identical body to commands/vibe.md).
  • package.json pi key — registers vibekit as a pi package: pi.skills./skills, pi.prompts./.pi-plugin/prompts, pi.extensions./.pi-plugin/extensions. keywords includes pi-package.
  • docs/INSTALL.pi.md — end-to-end install guide (Prerequisites / Install / Verify / Troubleshooting / Uninstall).

New: OpenCode slash commands

  • .opencode/commands/{vibe,brainstorm-lean,plan-write,brief-compiler,exec-dispatch,report-filter,verify-gate,review-pack,finish-branch,isolate,memory-dual,ralph-loop,vibekit-doctor}.md — every vibekit skill is now a first-class slash command in the OpenCode editor (no manual symlink, no extension toggle).
  • .opencode/INSTALL.md updated with the new command-discovery guidance.

vibekit-doctor (C11–C13)

  • C11 — pi-manifest-present. Asserts .pi-plugin/plugin.json parses and that package.json carries the pi key with skills/prompts/extensions arrays.
  • C12 — pi-extension-canonical-source. Greps .pi-plugin/extensions/vibekit-prime.ts for the literal skills/using-vibekit/SKILL.md path — drift guard against the extension being refactored away from the canonical source.
  • C13 — pi-prompt-stages-match. Extracts every [N/7] token from both commands/vibe.md and .pi-plugin/prompts/vibe.md and demands set-equality on {[1/7]…[7/7]}.
  • .pi-plugin/plugin.json added to the C3 required-manifest list.
  • "Cross-runtime portability" list now includes Pi.

Cross-runtime documentation sweep

Eight runtime-enumerating prose locations were updated so every count, table, and bullet list now reflects five runtimes with Pi included:

  • CLAUDE.md — "five delivery paths"; .pi-plugin/ added to the cross-runtime trigger list; manifest-parity bullet now names all five plugin.json files.
  • AGENTS.md — opening agent enumeration includes OpenCode and Pi; Repository layout has .pi-plugin/; using-vibekit table row lists pi's before_agent_start adapter; "Non-Claude runtime specifics" acknowledges Codex/Gemini/OpenCode/Pi as shipped.
  • README.md — supported-runtimes sentence bumped from four to five; auto-trigger-discipline paragraph lists pi's adapter; new ### Pi install subsection.
  • skills/using-vibekit/SKILL.md — "How to access skills" gains a Pi entry.
  • skills/ralph-loop/SKILL.md — capability-gate table and cross-runtime portability list both include Pi (degraded checkpoint mode — pi has no native autonomous loop).
  • skills/exec-dispatch/SKILL.md — parallel-group capability-gate table gains a Pi row (sequential fallback; pi has no parallel subagent dispatch primitive).
  • skills/memory-dual/SKILL.md — "all four CLIs" → "all five CLIs"; pi added (memory-dual is pure file I/O, universally portable).
  • skills/_authoring/quad-adapter.md — body bumped to five runtimes (filename retained for backlink stability); pi rows added to the runtime table, capability matrix, and detection signals.

Manifest version-and-description normalization

All seven manifests are now on 0.3.0:

  • package.json, .claude-plugin/plugin.json, .opencode/plugin.json, gemini-extension.json (were on 0.2.1)
  • .codex-plugin/plugin.json, .claude-plugin/marketplace.json plugin entry (were on 0.2.0 — pre-existing drift, swept up by this release)
  • .pi-plugin/plugin.json (new in this release)

The Codex "execute" / "and integrate" description wording remains pre-existing drift — flagged in the run's review document for a separate normalization pass.

Documentation artifacts

The full vibekit pipeline ran on this work and produced verifiable evidence:

  • Spec — docs/specs/2026-04-29-pi-runtime-adapter-design.md (status: approved)
  • Plan — docs/plans/2026-04-29-pi-runtime-adapter.md (10 tasks, TDD-shaped, all checked)
  • Verification — docs/verifications/2026-04-29-pi-runtime-adapter.md (vibekit-doctor strict: 11 ok, C11/C12/C13 all ok, no functional skills modified)
  • Review — docs/reviews/2026-04-29-pi-runtime-adapter-review.md (0 block, 3 warn, 2 nit; user signed off after one fix iteration covering the consistency sweep + 3 follow-up rows)

Upgrade

For Pi users: pi install git:github.com/rizukirr/vibekit. See docs/INSTALL.pi.md.

For existing Claude Code / OpenCode / Codex / Gemini installs: git pull (manifest-only changes; nothing breaking, no migration needed).

Diff: ~+1,595 / -29 across 33 files in 41 commits. Changelog: v0.2.1...v0.3.0

v0.2.1

26 Apr 07:51

Choose a tag to compare

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 Skill tool.
  • 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.json registers a SessionStart hook on startup | clear | compact.
  • New hooks/session-start (bash) reads skills/using-vibekit/SKILL.md and injects it as additionalContext so the priming is always loaded fresh after /clear or 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.json now declares "hooks": "./hooks/hooks.json".

Cross-runtime adapter delivery

Same using-vibekit body, four delivery paths — no duplicated prose.

  • Gemini CLI: GEMINI.md prepends @./skills/using-vibekit/SKILL.md so Gemini imports the priming before per-skill imports.
  • OpenAI Codex: .codex/INSTALL.md documents 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.json and .opencode/plugins/vibekit.js register the skills directory via the config hook (no symlink needed) and inject the priming into the first user message via experimental.chat.messages.transform. Idempotency guard checks for EXTREMELY_IMPORTANT + vibekit so vibekit can coexist with other priming-style plugins.
  • Claude Code / Cursor / Copilot CLI: SessionStart hook above.

Documentation

  • AGENTS.md now reflects the 14-skill plugin: using-vibekit introduced in the intro, added as a row in the skill table (flagged as not user-invoked), and the hooks/ repo-layout entry no longer says "reserved; no hooks yet".
  • CLAUDE.md is now a public Claude Code-specific contributor overlay on top of AGENTS.md. Covers the SessionStart hook behavior, the vibekit: skill prefix, the never-Read-a-SKILL.md rule, the Agent-tool subagent discipline (brief-compiler + report-filter), and the cross-runtime consistency checklist. Removed from .gitignore so it ships.
  • README.md updated: 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 duplicate docs/README.codex.md was 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.json
  • gemini-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 /vibe command behave identically.
  • No new dependencies for end users on Claude Code / Codex / Gemini.
  • opencode users get the @opencode-ai/plugin dev-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 pull in ~/.codex/vibekit; the symlink resolves automatically.
  • Gemini CLI: restart; the @-import in GEMINI.md loads 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

  • 3e6a1d8 feat(priming): add using-vibekit auto-trigger discipline + SessionStart hook
  • 0d766d7 feat(adapters): deliver using-vibekit priming to Codex, Gemini, opencode
  • e7e305c docs(agents): register using-vibekit and SessionStart hook
  • 51340ba docs(claude): add Claude Code contributor overlay
  • fe3d380 docs(readme): note auto-trigger priming, consolidate Codex install
  • f103a21 chore(release): bump version 0.2.0 → 0.2.1 across all manifests

Full Changelog: v0.2.0...v0.2.1

v0.2.0

25 Apr 15:38

Choose a tag to compare

Vibekit grows from a 10-skill pipeline into a 13-skill plugin with cross-cutting durable state, an autonomous-driver peer to /vibe, parallel-group dispatch, and a four-axis authoring discipline. Backward-compatible — no skill renames, no removed operations; only additive surface plus internal discipline tightening.

Highlights

  • /ralph-loop <intent> — bounded autonomous re-runs of /vibe with a blocker classifier and thrashing critic. Same gates, same review-pack sign-off, no shortcuts.
  • memory-dual — durable project knowledge under .vibekit/memory/. Atomic facts and compound documents in one storage convention, plus a working notepad. Keyword + tag + type search; [[key]] cross-links; audit pass.
  • vibekit-doctor — cross-runtime health diagnostic. Skill files, runtime registrations, .vibekit/ health, docs/ subdirs, authoring contracts. Read-only by default; --fix for safe repairs.
  • Parallel-group dispatch — fused into exec-dispatch. Plans opt into parallelism via <!-- parallel-group: <name> --> markers with mandatory rationale and disjoint-files invariant.
  • Karpathy-aligned discipline — four behavioral principles (Think Before Coding, Simplicity First, Surgical Changes, Goal-Driven Execution) injected across the pipeline at multiple enforcement points.
  • Four-axis authoring contract — PEG (substance) + Karpathy (behavior) + Caveman (style) + Quad-Adapter (cross-runtime portability) under skills/_authoring/.

New skills

Skill Role
memory-dual Durable project knowledge — atomic facts, compound documents, working notepad — under one file-backed convention. Operations: read, query, list, write, supersede, delete, classify, audit. Default classify verdict is surface: none to prevent dump-style overfilling.
vibekit-doctor Health check across 10 categories (skill files, runtime registrations, plugin manifests, docs/ subdirs, .vibekit/ health, authoring contracts, external/ integrity, skill-count consistency, hooks hygiene, git state). Verbatim YAML output for CI parseability.
ralph-loop Autonomous-driver peer to /vibe. Bounded persistence loop with classifier (retry-task / re-plan / escalate) and thrashing critic. Halts on block_finding, escalate, thrashing, or any budget exhaustion. Never bypasses review-pack sign-off.

Karpathy injection points (cross-cutting)

Four principles, four-layer redundancy on the most safety-critical ones:

Principle Enforcing skills (in pipeline order)
1. Think Before Coding brainstorm-lean — Pushback turn before approaches
2. Simplicity First review-pack — Pass 4, in Reflexion checklist
3. Surgical Changes brief-compilerexec-dispatchreview-pack Pass 5 → verify-gate Step 3b (RTCO CONSTRAINTS → per-task Gate-1 → review detection → fail-closed verification)
4. Goal-Driven plan-write (→ verify: clause mandatory) → vibe post-plan gate → exec-dispatch step 1a

Parallel-group dispatch

Plans opt into parallelism per group, not per task:

<!-- parallel-group: ui-pieces
     rationale: ThemeToggle, ThemeMenu, ThemeProvider have disjoint Files sections -->
### Task 2: ThemeToggle component → verify: ThemeToggle.test.tsx passes
### Task 3: ThemeMenu component → verify: ThemeMenu.test.tsx passes
### Task 4: ThemeProvider context → verify: ThemeProvider.test.tsx passes
<!-- /parallel-group -->

exec-dispatch enforces files-disjoint, no-ordering-dependencies, no-shared-installs invariants before fanning out. Plans that fail invariants are rejected, not best-effort dispatched.

Cross-runtime portability (quad-adapter contract)

skills/_authoring/quad-adapter.md is the new authoring contract for runtime-coupled skills. Every such skill ships:

  1. A capability matrix — required primitives × per-runtime support.
  2. A documented fallback for every "no" cell.
  3. A verbatim degradation warning — never compressed, never silently skipped.

Concrete results in v0.2.0:

Capability Claude Code Codex Gemini CLI opencode
Parallel subagent dispatch (exec-dispatch) native native sequential fallback w/ warning provider-dependent
Native loop primitive (ralph-loop) native native degraded checkpoint mode w/ warning degraded checkpoint mode w/ warning

Phase 1 / 2 stability fixes (also in this release)

  • brainstorm-lean: pushback turn added; never-compress list expanded.
  • plan-write: mandatory → verify: per-task clause; optional parallel-group markers; self-review items added.
  • brief-compiler: RTCO CONSTRAINTS template ships three surgical-change rules in every dispatched brief.
  • exec-dispatch: step 1a verify-clause gate; Gate-1 self-review checks the verify criterion is observably met; surgical constraints inherited per-task.
  • review-pack: passes 4 (Simplicity) and 5 (Surgical-diff) added; block-severity findings halt the handoff.
  • verify-gate: Step 3b surgical-diff self-consistency pass; orphans listed verbatim in the Repo-level checks; ready-verdict rule updated.
  • vibe: post-plan gate now checks → verify: clauses and parallel-group integrity before advancing.

Documentation

  • README.md — refreshed for 13 skills; intro reframed as "discipline-first vibe-coding plugin" with token-efficiency scoped precisely (per feature, not per session).
  • INSTALL.gemini.md — gains "Configure context file" section with copy-pasteable minimum GEMINI.md listing all 13 skills. Closes the onboarding gap caused by GEMINI.md being gitignored as per-user local context.
  • AGENTS.md — skill table and skill count updated.

Internal cleanup

  • wiki-dual (briefly shipped, then merged) — collapsed into memory-dual after a Karpathy "Simplicity First" audit found the two skills shared 90% storage convention, discipline, and callers. One unified surface, one storage path, one classify pass.
  • Stale references swept across peg-cheatsheet, quad-adapter, CLAUDE.md ship-order, and Karpathy injection map.

Manifests bumped

  • .claude-plugin/plugin.json
  • .claude-plugin/marketplace.json
  • .codex-plugin/plugin.json
  • gemini-extension.json
  • package.json

Upgrade notes

No skill renames, no removed operations, no behavioral changes for users of /vibe. Existing plans, specs, verification reports remain valid. Three reasons to upgrade:

  1. The pipeline is more honest about defects (Karpathy block-severity surgical-diff and simplicity passes).
  2. /ralph-loop removes the manual click between iterations on long verify-fix cycles.
  3. memory-dual and wiki-dual-style content now share one file-backed surface — durable project knowledge that survives across runs.

20 commits since v0.1.0; 25 files changed; ~1,400 lines added across skill prose and authoring contracts.

v0.1.0

21 Apr 15:22

Choose a tag to compare

Updated v0.1.0 to the latest commit with Codex + Gemini integration improvements.

What's new since initial v0.1.0

  • Added native Codex packaging support:
    • .codex-plugin/plugin.json
    • docs/README.codex.md
    • README updates for Codex install flow
  • Added native Gemini CLI extension support:
    • gemini-extension.json
    • GEMINI.md
    • commands/vibe.toml
    • docs/README.gemini.md
  • Added canonical Gemini fetch-and-follow installer doc:
    • INSTALL.gemini.md
  • Updated README installation sections to cover Claude Code, Codex, OpenCode, and Gemini CLI.

Current install entrypoints

  • Codex: docs/README.codex.md
  • Gemini: INSTALL.gemini.md
  • OpenCode: .opencode/INSTALL.md

Notes

  • Guardrail-first workflow and 10-skill vibekit pipeline remain intact.
  • This release note supersedes the original v0.1.0 announcement content.