From vibecodingisold
Inject senior-engineering Mandatory Items into project context BEFORE any AI tool plans the build. Use when starting a new project, scoping a major feature, or auditing a partial spec. Produces PLAN-REQUIREMENTS.md tailored to the project profile (b2b-saas-web, b2c-saas-web, mobile-app, ai-wrapper, marketplace, internal-tool). Stage 2 of the 4-stage AI-coding pipeline (Context → vibecodingisold → Planning → Execution).
How this skill is triggered — by the user, by Claude, or both
Slash command
/vibecodingisold:vibecodingisoldThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill is a pre-planning intercept. It runs *between* context engineering (Stage 1: PRD, vision, stack chosen) and AI planning (Stage 3: `/gsd:plan-phase`, Cursor `/plan`, Cline, Aider). It reads the user's project context, picks the right project profile, pulls the filtered list of senior-engineering Mandatory Items from the canonical knowledge base, and writes a `PLAN-REQUIREMENTS.md` int...
This skill is a pre-planning intercept. It runs between context engineering (Stage 1: PRD, vision, stack chosen) and AI planning (Stage 3: /gsd:plan-phase, Cursor /plan, Cline, Aider). It reads the user's project context, picks the right project profile, pulls the filtered list of senior-engineering Mandatory Items from the canonical knowledge base, and writes a PLAN-REQUIREMENTS.md into the user's project root. The downstream planning tool then has every retrofit-expensive decision (multi-tenancy, idempotency, region-aware data model, webhook hygiene, RLS, secret management) already loaded into context — so the plan it produces does not require a multi-week rewrite to make production-grade.
The skill does NOT plan, code, or review. It loads the knowledge that the planning tool needs to plan correctly.
Trigger on any of:
Do NOT invoke for:
Read or ask for project context. Look for PROJECT.md, README.md, or .planning/PROJECT.md in the user's repo. If found, extract project_name, stack, scale, compliance hints. If not found, refuse to plan blind — see Anti-pattern guard below.
Detect or pick project type. From context, infer one of the 6 profiles. If ambiguous, walk the user through templates/profile-detection.template.md (5 questions). The user picks one of:
b2b-saas-webb2c-saas-webmobile-appai-wrappermarketplaceinternal-toolPull the profile-filtered Mandatory list. Read ${CLAUDE_PLUGIN_ROOT}/core/profiles/${PROFILE}.md. That file contains the active Mandatory items, the Conditional triggers that fire for this profile, the items deliberately skipped, and the highest-leverage items called out.
Generate PLAN-REQUIREMENTS.md. Use templates/init-output.template.md as the structure. Populate:
Write the output to <user-project-root>/PLAN-REQUIREMENTS.md.
Hand off. Print templates/handoff-message.template.md instructing the user how to feed the generated file into their next step (/gsd:plan-phase, Cursor, Cline, Aider, plain LLM).
--profile <type> — one of the 6 profile names. Optional if auto-detection succeeds; required if auto-detection is ambiguous.--stack <stack> — optional override (e.g., python+fastapi, go, typescript+node). Defaults to TypeScript+Node.--audit — optional flag. If set, skill diffs an existing PLAN-REQUIREMENTS.md or PLAN.md against the profile's Mandatory list and outputs a gap report instead of overwriting.All knowledge is vendored inside the plugin tree so the skill works after /plugin install without needing the upstream repo:
${CLAUDE_PLUGIN_ROOT}/core/PLAN-REQUIREMENTS.template.md${CLAUDE_PLUGIN_ROOT}/core/profiles/<type>.md${CLAUDE_PLUGIN_ROOT}/core/roles/<role>.md${CLAUDE_PLUGIN_ROOT}/core/anti-patterns.md${CLAUDE_PLUGIN_ROOT}/core/_conflict-resolutions.md${CLAUDE_PLUGIN_ROOT}/core/_cross-references.mdThe skill does not duplicate this content. It reads from these files at invocation time, applies the profile filter, and writes the user-facing template.
The skill refuses to plan blind. Before generating output it checks for evidence that Stage 1 (context engineering) has been completed:
PROJECT.md, README.md, or .planning/PROJECT.md exists in the user's project root with at least a Mission, Target users, and Stack/Scale section.--profile).If either check fails, the skill outputs:
STOP — Stage 1 not complete.
vibecodingisold is Stage 2 of a 4-stage pipeline:
Stage 1: Context engineering (PRD, vision, target users, stack)
Stage 2: vibecodingisold (this skill — pre-planning Mandatory Items)
Stage 3: AI planning tool (/gsd:plan-phase, Cursor /plan, Cline, Aider)
Stage 4: AI execution (the planning tool drives code)
Planning without context produces hallucinated requirements.
Complete Stage 1 first:
- Write a PROJECT.md or README.md with Mission + Target users + Stack
- OR run your context-engineering tool of choice
- THEN re-invoke this skill
Refusing to generate PLAN-REQUIREMENTS.md until Stage 1 evidence is present.
This is concrete: skill checks file existence and minimum field presence, not vibes.
Running /vibecodingisold:init twice in the same project is safe. The skill:
PLAN-REQUIREMENTS.md in the project root or .planning/.bak of the existing file)--profile <X> flag is passed and matches the previously-detected profile: silent no-op (idempotent)--profile <X> flag is passed and DIFFERS: warns about profile change, then proceeds.planning/vibecodingisold-profile.txt for the auditor to discoverThis means CI scripts can run /vibecodingisold:init as a pre-step without worrying about clobbering manual edits.
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub 0zoriginals/vibecodingisold --plugin vibecodingisold