~/aakash
Writing ← Portfolio
Agentic AI June 19, 2026

Why I Built a 26-Skill Framework Instead of Writing Better Prompts

vibe-* is a Claude Code framework covering the complete software development lifecycle — from first idea to client sign-off. This is the story of why it exists, how it works, and the design principle that makes it different from a collection of well-written prompts.

01

The Problem With Prompts Is Not the Prompts

Every developer using Claude Code starts the same way. They write a prompt, get something back, write a better prompt, get something better back, and gradually accumulate a personal library of phrases that work. "Act as a senior engineer." "Read the codebase before suggesting anything." "Don't change files I didn't ask you to change." The prompts get more sophisticated. The outputs get more reliable. And then you hit the ceiling.

The ceiling is not a model problem. The model keeps getting better. The ceiling is a session problem. Every time you open a new Claude Code session, you start from zero. The model does not know what project you are working on, what phase you are in, what decisions have been made, what the client signed off on last week, or what the naming conventions are. You spend the first 10 minutes of every session re-establishing context that you already established in the last session. And the session after that. And the one after that.

Better prompts do not solve this. A prompt is instructions for one session. A skill is a system that works across all sessions — because it reads your actual project files before doing anything, grounds every output in what already exists, and writes structured artefacts that the next session can pick up without you having to explain anything.

That distinction — session instructions versus a session-persistent system — is the reason vibe-* exists.

Pull Quote · 01

A prompt is instructions for one session. A skill is a system that works across all sessions — because it reads your actual project files before doing anything.

02

What a Skill Actually Is

A vibe-* skill is a markdown instruction set that lives in ~/.claude/skills/ and is loaded automatically by Claude Code when the matching trigger fires. Skills are not scripts. They do not run external processes. They do not require servers or npm packages. They run entirely inside Claude Code's context window, which means they work on any project in any language on any machine where Claude Code is installed.

Every skill in the framework does four things before it does anything else: it reads your actual project files (SPEC.md, TASKS.md, DECISIONS.md, ARCHITECTURE.md, git history), it establishes what already exists before proposing what should change, it defines what a complete output looks like rather than stopping at a partial answer, and it writes structured artefacts that the next skill in the sequence can consume without re-establishing context.

The trigger model is natural language. You type feature: add CSV export for invoices and Claude Code fires the vibe-add-feature skill. It reads your codebase, produces a FEATURE_SPEC.md with acceptance criteria and out-of-scope items, a FEATURE_PLAN.md with the implementation approach, and a FEATURE_TASKS.md with a sized task breakdown. You say go and it builds. No re-explaining what the project is. No re-establishing naming conventions. No context overhead.

What makes a skill different from a prompt

  • Grounded in real files: Every skill reads your actual TASKS.md, SPEC.md, DECISIONS.md, git history before doing anything. Nothing is invented. If a section has no data source, the skill says so rather than fabricating content.
  • Complete output, not partial: A skill produces everything needed for its phase — spec, plan, task list — in one trigger. You do not need to ask follow-up questions to get the full picture.
  • Phase-gated by design: Skills enforce quality gates. Phase N cannot proceed to Phase N+1 until review: passes with zero P0 issues. The gate is structural, not advisory.
  • Two audiences, always: Client documents (DELIVERY.md, CHANGELOG_CLIENT.md) are plain English with no task IDs, no framework names, no file paths. Developer documents are precise and technical. The skill knows which is which.
03

The 26 Skills — What Each One Does

The framework covers the complete software development lifecycle in six phases. Each skill has one job and does it completely.

Plan — think before you build
vibe-brainstormTurn any idea into a validated, buildable brief. 13 structured questions across product, users, revenue, and tech. Produces BRIEF.md.
vibe-architectPlan code structure, tech stack, data model, and API patterns before writing a line. Produces ARCHITECTURE.md — read at the start of every future session.
vibe-agentDesign multi-agent AI systems — orchestrators, subagents, boundaries, and tool assignments — before any code.
vibe-spec-reviewAudit specs for ambiguity, missing edge cases, and unstated assumptions before coding starts. The gate between planning and building.
Build — structured development at every stage
vibe-new-appScaffold a complete project — CLAUDE.md, the full vibe/ folder, and Phase 1 build — from BRIEF.md and ARCHITECTURE.md in one trigger.
vibe-add-featureAdd a feature to an existing codebase. Produces FEATURE_SPEC.md, FEATURE_PLAN.md, FEATURE_TASKS.md before touching code.
vibe-change-specModify requirements mid-build. Assesses blast radius, updates all affected docs in the right order, never silently breaks prior commitments.
vibe-fix-bugDiagnose and fix bugs. Severity triage first. Writes regression test that fails, fixes the bug, regression test passes. Always in that order.
vibe-reviewEvidence-based code review. Acts as Senior Engineer, Architect, and Code Quality Auditor simultaneously. Every finding backed by file path and line number. P0 issues block the next phase.
vibe-testGenerate tests across the blast radius of any change — component, integration, and E2E. Maps the full dependency graph before writing a single test.
Design — frontend quality at editorial standards
vibe-designDesign or redesign components and pages. Reads DESIGN_SYSTEM.md first, applies tokens consistently, handles dark mode strategy.
vibe-design-mdCapture a design system from any URL or generate one from scratch. Produces DESIGN_SYSTEM.md with tokens, components, and patterns.
Visibility — know where you are and what it costs
vibe-progressASCII progress dashboard — phase gates, active work, completed features, open bugs, scope decisions, last git activity. Read-only.
vibe-costTrack token usage and estimated dollar cost per session. Tags every task S/M/L. Detects 8 waste patterns including cache misses and context bloat.
vibe-ledgerGenerate a full HTML cost report from cost history. Session burn chart, average cost per task, peak session identification, cache savings analysis.
vibe-graphGenerate a dependency graph of the codebase. Useful when architecture questions arise or before large refactors.
vibe-doctorEnvironment health check — Node, Python, database connections, env vars, dependencies. Run before deploy to catch problems that would surface in production.
vibe-modeToggle between supervised (approval between tasks) and autonomous (run until done) execution. Switches the agent's operating mode without changing prompts.
Ship — deploy and verify
vibe-deployPrepare for deployment to 7 platforms: Railway, Render, Fly.io, Heroku, Vercel, Netlify, GitHub Pages. Generates platform config, ENV_SETUP.md, and a human checklist.
vibe-e2eGenerate and run Playwright E2E tests against a live URL. Reads SPEC.md, identifies critical user flows, installs Playwright in isolation, cleans up test data after.
vibe-perfPerformance audit — Core Web Vitals, bundle analysis, database query patterns, cache strategy. Produces a prioritised fix list.
vibe-parallelRun independent tasks simultaneously via subagents. The multiplier that makes the framework fast — parallel build sessions instead of sequential ones.
Close — document, communicate, hand off
vibe-documentGenerate all project documentation — inline code docs, README, ONBOARDING, API reference. Two audiences: developers and clients.
vibe-changelogGenerate CHANGELOG.md (developer-facing, Keep a Changelog format) and CHANGELOG_CLIENT.md (plain English, product update style) simultaneously from git history.
vibe-handoffGenerate a complete delivery package — DELIVERY.md, FEATURES.md, KNOWN_ISSUES.md, CREDENTIALS.md, SIGN_OFF_CHECKLIST.md, and a self-contained index.html portal.
vibe-initOnboard an existing codebase into the vibe-* framework. Reads actual source files, infers architecture, generates the full vibe/ folder. Start using all 26 skills on any existing project immediately.
04

The Full Development Lifecycle in One View

The framework is designed so that the output of each skill feeds naturally into the next. BRIEF.md from brainstorm feeds architect. ARCHITECTURE.md from architect feeds new-app. FEATURE_SPEC.md from add-feature feeds review. CHANGELOG from changelog feeds handoff. The sequence is not rigid — you can enter at any point using vibe-init — but the lifecycle is complete.

PLAN brainstorm: → spec-review (auto)architect:new: / vibe-init BUILD feature:review:test: bug: (when needed) change: (when needed) WATCH progress: ← always available cost:ledger: ← after sessions graph: ← when architecture questions arise DESIGN design-md:design: ADVANCED parallel: / mode: / perf: / doctor: SHIP doctor:deploy: railwaye2e: https://your-app.railway.app CLOSE document:changelog:handoff: client

The vibe-review skill is the gate that makes this more than a workflow. Phase N cannot proceed to Phase N+1 until review passes with zero P0 issues. The final phase review must clear all P0 and P1 findings before deploy. This is enforced structurally, not by convention. It is the difference between a framework that produces shippable code and one that produces generated code.

05

The Design Principles Behind Every Skill

Six principles shaped every skill in the framework. They are worth stating explicitly because they explain decisions that would otherwise look arbitrary.

  • Skills are instruction sets, not scripts: They run inside Claude Code's context window. No external processes, no servers, no npm packages required for the framework itself. Install once, work everywhere.
  • Everything is grounded: Every skill reads actual project files before doing anything. SPEC.md, TASKS.md, DECISIONS.md, git history. Nothing is invented. If a section has no data source, the skill says so.
  • Docs are first-class: The framework produces documents that serve real audiences — developers, clients, PMs. CHANGELOG_CLIENT.md is readable by a business owner. DELIVERY.md can be sent directly to a client. ONBOARDING.md gets a new developer running in 30 minutes.
  • Cost is visible: Every session is tracked. Every task has a cost. The ledger shows where money went. Waste patterns are flagged before they compound. The summary.json bridges raw cost data and human-readable reports.
  • The gate is real: vibe-review is not optional. Phase gates are enforced. P0 issues block progress. This is what makes the output shippable rather than just generated.
  • Two audiences, always: Client documents are plain English — no task IDs, no framework names, no file paths. Developer documents are precise and technical. The framework never conflates the two.
Pull Quote · 05

The gate is real. vibe-review is not optional and P0 issues block progress. This is what makes the output shippable rather than just generated.

06

Install in One Line. All 26 Skills Active Immediately.

vibe-* is open source and free to use. Install via git clone — no npm, no pip, no package manager required.

git clone https://github.com/aakashdhar/vibe-skill.git /tmp/vibe-skill && mv /tmp/vibe-skill/vibe-* ~/.claude/skills/ && rm -rf /tmp/vibe-skill

Restart Claude Code. All 26 skills are active immediately. Skills trigger from natural language — no slash commands, no configuration required. Type brainstorm: I want to build a SaaS tool for freelancers and you are in the framework.

For existing projects, vibe-init reads your actual source files, infers the architecture, and generates the full vibe/ folder. You do not need to start a new project to get value from the framework. You can onboard any codebase you are already working on.

The full README — with examples for every skill, the complete cheat sheet, the file structure reference, and the deploy platform guide — is at github.com/aakashdhar/vibe-skill.

Built and maintained by me at BetaCraft, where it runs on every live client project. Issues, suggestions, and skill contributions are welcome — skills are just markdown files with a consistent structure. Open a PR with your skill in its own folder following the existing naming convention.

Takeaway

26 skills. One trigger each. The complete software development lifecycle — from first idea to client sign-off — without re-explaining your project every session.

Install git clone https://github.com/aakashdhar/vibe-skill.git