Plugin install¶
The Claude Code plugin is the lowest-friction path to running vibecodingisold. Two commands to install, three commands to use.
Prerequisites¶
- Claude Code installed. The plugin is for Claude Code specifically — for other tools, see the integrations under
integrations/(Cursor, Cline, Aider, plain-prompt). See Quick Start for the alternatives. - A project with Stage 1 evidence. A
PROJECT.md,README.md, or.planning/PROJECT.mdin your project root with at least mission, target users, and stack named. The plugin refuses to run without it. See Where it sits in your pipeline.
Install¶
Two commands:
The first command registers vibecodingisold as a marketplace source. The second installs the plugin from that marketplace.
Why vibecodingisold@vibecodingisold (the plugin name twice)? Marketplace URI convention: <plugin>@<marketplace>. The marketplace and the plugin happen to share a name in this repo because the marketplace publishes only one plugin.
Verify the install¶
After install, run the smoke test from inside the repo (or from a fresh clone):
Windows / PowerShell:
POSIX (Linux / macOS):
The smoke test verifies (file-existence + grep-only — fast, no JSON-parse, no command-registry probing):
.claude-plugin/plugin.jsonexists.- The 4 skill files exist (
SKILL.md+ 3 templates underskills/vibecodingisold/templates/). - The 3 command markdown files exist (
commands/init.md,audit.md,profile.md). - The vendored
core/files exist (7 role files + 6 profile files +PLAN-REQUIREMENTS.template.md+anti-patterns.md+ 3 cross-reference files). - The single agent file exists (
agents/vibecodingisold-auditor.md). - The single hook file exists (
hooks/pre-plan-phase.md). core/_conflict-resolutions.mdcontains the 6 contract anchor strings (Idempotency,Liveness,terminationGracePeriodSeconds,Webhook timestamp,secret rotation,RPO) — case-insensitive grep, sanity check only.
Expected output: 0 errors, 0 warnings. If you see anything else, see Troubleshooting below.
Strictness note: byte-identity of vendored core/ against repo-root core/ is not part of the smoke test — it is enforced separately by validate-plugin-sync.py in CI. Slash-command-registration with the running Claude Code instance is also out of scope (the smoke test runs without a CC process).
What the plugin contains¶
plugins/vibecodingisold/
├── agents/
│ └── vibecodingisold-auditor.md # Subagent for audit-as-second-opinion runs
├── commands/
│ ├── init.md # /vibecodingisold:init — write PLAN-REQUIREMENTS.md
│ ├── audit.md # /vibecodingisold:audit — gap-report on existing plan
│ └── profile.md # /vibecodingisold:profile — diagnostic, no writes
├── core/ # vendored canonical knowledge (read-only — sync via scripts/sync-core.*)
│ ├── roles/
│ ├── profiles/
│ ├── _conflict-resolutions.md
│ ├── _cross-references.md
│ └── PLAN-REQUIREMENTS.template.md
├── hooks/
│ └── pre-plan-phase.md # Hook stub — not yet wired to a Claude Code event
├── scripts/
│ ├── sync-core.ps1 # Re-vendor core/ from repo-root core/
│ ├── sync-core.sh # Same, POSIX
│ ├── smoke-test.ps1 # Verify install integrity
│ └── smoke-test.sh # Same, POSIX
└── skills/
└── vibecodingisold/
├── SKILL.md
└── templates/
├── init-output.template.md
├── profile-detection.template.md
└── handoff-message.template.md
The vendored core/ is the keystone choice. The plugin is fully self-contained — no network, no live fetch, no hidden cache. The trade-off is that the plugin can drift from canonical core/. The sync-core.* scripts re-vendor; CI catches drift via validate-plugin-sync.py.
Update / re-install¶
When the maintainer ships a new version (watch the Changelog):
The marketplace add step is sticky — you don't need to re-add the marketplace after the first install.
Uninstall¶
Optionally remove the marketplace if you don't plan to reinstall:
Generated PLAN-REQUIREMENTS.md files in your projects are not removed by uninstall — they're checked-in artifacts you own.
Troubleshooting¶
Smoke test fails with "vendored core/ drift"¶
Cause: someone (you, a contributor) edited plugins/vibecodingisold/core/* directly instead of editing core/* and re-running sync-core.
Fix: plugins/vibecodingisold/scripts/sync-core.ps1 (Windows) or .sh (POSIX). Then re-run the smoke test.
/vibecodingisold:init refuses with "Stage 1 evidence missing"¶
Cause: no PROJECT.md, README.md, or .planning/PROJECT.md in the project root with the required minimum (mission, users, stack).
Fix: write one. The plugin doesn't generate Stage-1 evidence — that's product work. See Where it sits in your pipeline for the minimum acceptable Stage-1 content.
/vibecodingisold:profile returns "ambiguous, falling through to interactive"¶
Cause: your Stage-1 doc doesn't contain enough signal for confident auto-resolution.
Fix: either (a) answer the 5 questions interactively, or (b) pass --profile <type> explicitly to init, or © flesh out your Stage-1 doc to include scale band, multi-tenancy posture, and compliance vectors.
Plugin install fails with "marketplace not found"¶
Cause: typo in the marketplace handle, or your Claude Code version doesn't support the marketplace API yet.
Fix: confirm the handle is exactly 0zoriginals/vibecodingisold. If your CC version is too old, update Claude Code. The plugin requires the marketplace API (shipped in CC late 2025).
"Permission denied" on the smoke test on POSIX¶
chmod +x plugins/vibecodingisold/scripts/smoke-test.sh
chmod +x plugins/vibecodingisold/scripts/sync-core.sh
These are versioned without execute bit on some checkouts.
Wrong profile resolved by init¶
Cause: an early signal dominated auto-resolution before the full Stage-1 doc was read.
Fix: pass --profile <type> explicitly to init. Or run /vibecodingisold:profile --explain to see which signals fired and challenge them.
Skills-only fallback (legacy)¶
If you don't want the plugin and prefer the standalone skill from integrations/claude-code-skill/:
Then /skill vibecodingisold in any Claude Code session. The skill works but lacks the slash-command surface and the smoke test. Use the plugin if you can.