Vibe new app
vibe-* is a collection of Claude Code CLI skills. Each skill is a structured instruction set that tells Claude Code exactly what to do at a specific moment in a project — how to plan it, build it, review it, test it, deploy it, and hand it off.
npx -y skills add aakashdhar/vibe-skill --skill vibe-new-appAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 6 stars6 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Full spec-driven setup workflow for building a brand new app from scratch with an AI coding agent. Triggers on "new:" prefix, "I want to build a new app", "starting a new project", "help me spec out a new app", "new project". Always use when the user is starting a greenfield project — even without the exact prefix. Generates CLAUDE.md at project root and the complete vibe/ folder. Reads BRIEF.md and ARCHITECTURE.md if they exist — skips questions already answered. Step 5 generates a complete multi-phase feature map in PLAN.md — every feature sequenced, dependencies explicit, parallel opportunities identified, future phases sketched. TASKS.md Phase 2+ shows ordered features with dependencies visible — not slugs. Generates a minimal ARCHITECTURE.md from PLAN.md if architect: was skipped. TASKS.md is the single human-facing file. TODO.md does not exist. Requires: frontend-design skill for Step 3 wireframe generation.
SKILL.md
21.5 KB, ~5.3k tokens by cl100k_base, as published. Nobody here has run it
Vibe New App Skill
Generates the complete project kit from brief and architecture. Produces CLAUDE.md at project root and the full vibe/ folder the AI coding agent uses.
Always run in Plan Mode (Shift+Tab). Exit Plan Mode only before task execution.
The O'Reilly principles this enforces
Spec before code — SPEC.md with acceptance criteria exists before any task runs. Context preservation — CLAUDE.md, CODEBASE.md, ARCHITECTURE.md, SPEC_INDEX.md, TASKS.md read every session so the agent never re-discovers what's been built. Incremental verifiable progress — TASKS.md breaks the build into single verifiable tasks. Drift prevention — DECISIONS.md created ready to log from the first task forward.
Two audiences. Two file types.
Human-facing — open this:
vibe/TASKS.md— your single progress view. Plain English. Updated after every task.
Agent-facing — agent reads these, you never need to open them:
CLAUDE.md·vibe/ARCHITECTURE.md·vibe/CODEBASE.mdvibe/SPEC.md·vibe/SPEC_INDEX.md·vibe/PLAN.md·vibe/DECISIONS.mdvibe/DESIGN_SYSTEM.md(created by design: — agent reads for design context)vibe/reviews/·vibe/features/·vibe/bugs/·vibe/backlog/
Folder structure this skill creates
your-project/
├── BRIEF.md ← brainstorm output (if exists)
├── CLAUDE.md ← agent rules — auto-read by Claude Code
└── vibe/
├── TASKS.md ← YOUR progress view — only file you open
├── ARCHITECTURE.md ← agent: patterns, read every session
├── CODEBASE.md ← agent: live codebase snapshot
├── SPEC.md ← agent: full requirements
├── SPEC_INDEX.md ← agent: compressed spec map
├── PLAN.md ← agent: phases and architecture
├── DECISIONS.md ← agent: drift and change log (append-only)
├── DESIGN_SYSTEM.md ← agent: design tokens (created by design:)
├── reviews/
│ └── backlog.md
├── features/
├── bugs/
└── backlog/
Note: vibe/DESIGN_SYSTEM.md is not created here — it is generated the first time
design: runs. The agent checks for it at session startup and reads it if it exists.
Step 1 — Capture the idea and check for existing files
Check for BRIEF.md and ARCHITECTURE.md at project root.
Both exist (ran brainstorm: and architect: — recommended path):
- Read both fully before doing anything else
- Confirm: "Found brief and architecture. [App name] — [core value]. [N] decisions locked. Building from these — no repeated questions."
- Pre-populate Steps 2–5 from BRIEF.md. Use ARCHITECTURE.md for PLAN.md folder structure and CLAUDE.md conventions.
- Skip all answered questions. Surface open questions from the brief.
Only BRIEF.md exists (ran brainstorm: but not architect:):
- Read BRIEF.md fully
- Confirm: "Found brief. [App name] — [core value]. [N] decisions locked."
- Pre-populate Steps 2–5. Skip answered questions.
- Note: architect: was skipped — minimal ARCHITECTURE.md will be generated from PLAN.md decisions in Step 9.
Neither exists (starting fresh — not recommended but supported):
- Extract: what the app does, who uses it, the core value.
- Ask ONE clarifying question if unclear.
- Confirm: "Got it — building [X] for [who], core value: [Y]. Starting spec."
- Note: both BRIEF.md and ARCHITECTURE.md will be absent — minimal versions generated.
Step 2 — Generate vibe/SPEC.md
Draft SPEC.md covering:
- Overview — What this app does and why (2-3 sentences)
- Target users — Who uses this and what they need
- Core features — Each feature with acceptance criteria
- Out of scope — Explicitly NOT in v1
- Tech stack — Confirmed choices with reasoning
- Data model — Key entities and relationships
- API shape — Core endpoints (if applicable)
- Non-functional requirements — Performance, security, responsiveness
- Conformance checklist — What must be true for v1 to be done
Present draft. Ask: "Does this spec look right? Anything to add, change, or cut?"
Wait for approval. Save as vibe/SPEC.md.
Living document rules:
- Edit in-place on scope changes (via
change:only — never informally) Strikethroughfor removed items — never delete- Update note at top:
> ⚠️ Last updated: [date] · [reason] - SPEC.md and SPEC_INDEX.md always updated as a pair — never one without the other
Step 3 — UI Design
Requires: frontend-design skill. If not installed, proceed with prose wireframe description.
Tell the user: "Before planning the build phases, let's lock the UI."
Ask all at once:
- Screens — How many screens/views? List briefly.
- Primary screen — Where do users spend most time?
- Layout & nav — Preferences? (sidebar, bottom nav, top nav — or no preference)
- Device — Desktop only, mobile first, or both?
- Interactions — Anything complex? (drag-drop, real-time, multi-step)
- References — Any apps whose UI you like?
- Constraints — Component library already chosen? Anything must show above fold?
Wait for answers. Generate wireframe using frontend-design skill principles:
- Commit to a bold, intentional aesthetic based on the app's purpose
- Complete HTML wireframe artifact covering all screens
- Realistic placeholder content — not Lorem ipsum
- Show navigation between screens
Present wireframe. Iterate until approved. Append UI Specification to vibe/SPEC.md:
## UI Specification
### Design direction
[One sentence: aesthetic direction and why]
### Component library
[What's being used, or "none specified"]
### Navigation structure
[Top-level destinations and flow — locked here, expensive to change mid-build]
### Screens
#### [Screen name]
- **Purpose**: [What the user does here]
- **Layout**: [Describe]
- **Key components**: [List]
- **User interactions**: [What the user can do]
- **States**: [Empty, loading, error states]
### Responsive behaviour
[Desktop/mobile approach]
Tell the user: "UI spec locked. Moving to planning."
Step 4 — Generate vibe/SPEC_INDEX.md
Read vibe/SPEC.md in full. Generate SPEC_INDEX.md — compressed map under 40 lines:
# SPEC_INDEX — [Project Name]
> Compressed map of SPEC.md. Read each session. Fetch only the section you need.
> Last synced: [date]
## Overview — [one sentence] → SPEC.md#overview
## Features — [Feature]: [one sentence] (N criteria) → SPEC.md#feature-name
## UI — [N screens, direction summary] → SPEC.md#ui-specification
## Boundaries — Out of scope: [N items] → SPEC.md#out-of-scope
## Technical — Stack: [key choices] · Data: [N entities] · API: [N endpoints]
## Done condition — Conformance: [N items] → SPEC.md#conformance-checklist
## Backlog — [N items deferred] → vibe/backlog/
Save as vibe/SPEC_INDEX.md.
Rule: SPEC.md and SPEC_INDEX.md always committed together. Never one without the other.
Step 5 — Generate vibe/PLAN.md
Read references/PLAN_MD.md for the full template.
Read vibe/SPEC.md in full. Read ARCHITECTURE.md if it exists.
Read BRIEF.md — specifically: feature list, non-goals, complexity estimate.
The critical section is the Feature Map (Section 6). This is the complete build plan — every feature, every phase, fully sequenced. It is not a list of slugs. It is not deferred to later. It is planned now, before Phase 1 begins.
Step 5A — Draft Sections 1–5 (structure, stack, architecture, data model, API):
These are standard — fill from SPEC.md and ARCHITECTURE.md. Identify shared data now: which tables/entities will be read or written by multiple features. List them explicitly in Section 4 "Shared data" table. This is the most common source of inter-feature conflicts caught too late.
Step 5B — Build the Feature Map (Section 6) — the most important step:
Read vibe/SPEC.md features section. Read BRIEF.md feature list and non-goals.
For every v1 feature, determine:
-
Build order — which features have no dependencies (start here), which need another feature's data model first, which can run in parallel.
Ask yourself for each feature:
- Does this feature READ data created by another feature? → It depends on that feature. Build that one first.
- Does this feature WRITE data that another feature reads? → It must come before that feature.
- Do two features share NO data writes and have the same dependencies? → They can run in parallel. Mark both explicitly.
-
Shared data — which entities/tables are created by one feature and consumed by another. These are the inter-feature dependency points that cause mid-build surprises if not planned now.
-
Future phase sketch — for Phase 4+ features from BRIEF.md backlog: note what Phase 1-3 must NOT hard-code to keep them possible. This prevents architectural decisions that feel fine now but block v2.
Build the dependency diagram:
Phase 1 complete
↓
[Feature with no deps — can start immediately after Phase 1]
↓ ↓
[Next feature] [Parallel feature — no shared writes]
↓
[Feature that needs both above]
If the dependency order is unclear — ask the user ONE focused question:
"Does [Feature B] need [Feature A]'s [entity] to exist first, or can they be built independently?"
Step 5C — Present the feature map for approval:
"Here's the complete build plan — all phases mapped out before we start.
[Present the feature map — Phase 1, Phase 2 ordered features with deps, Phase 3 tasks, Phase 4+ sketch if applicable]
Build order for Phase 2: [ASCII dependency diagram]
Parallel opportunities: [list features that can run simultaneously] Shared data points: [list entities that cross feature boundaries]
Does this sequencing look right? Any features that should move earlier or later?"
Wait for approval. Adjust if needed.
Step 5D — Save as vibe/PLAN.md.
The feature map in PLAN.md is the source of truth for:
- TASKS.md Phase 2+ section (generated from it in Step 7)
- vibe-add-feature (reads it before drafting each feature spec)
- vibe-change-spec (reads it to assess phase impact of scope changes)
- vibe-parallel (reads dependency diagram for wave planning)
Step 6 — Generate CLAUDE.md (project root)
Read vibe/SPEC.md, vibe/PLAN.md, vibe/ARCHITECTURE.md (if exists).
Read references/CLAUDE_MD.md for the full template.
Generate CLAUDE.md at project root substituting all [placeholders]:
- Project overview from SPEC.md
- Tech stack from PLAN.md
- Commands from chosen stack
- Code style and naming from ARCHITECTURE.md (if exists) or PLAN.md
- Phase gates section — mandatory review gates baked in from day one
- Session completion checklist — the 10-step post-task sequence (full checklist from template)
- CLAUDE.md active feature sections — cleanup rule included
The per-task "next" sequence must be included verbatim in CLAUDE.md:
## Per-task sequence (runs on every "next")
1. Verify acceptance criteria in FEATURE_TASKS.md are all ticked
2. Run tests: `[test command]` — must pass before commit
3. Run lint: `[lint command] --silent` — must pass before commit
4. Commit code changes:
git add -A
git commit -m "feat([scope]): [TASK-ID] — [one line plain English description]"
5. Commit doc updates separately:
git add vibe/TASKS.md vibe/DECISIONS.md vibe/CODEBASE.md
git commit -m "docs(TASKS): mark [TASK-ID] done — [plain English]"
6. Update "What just happened" and "What's next" in vibe/TASKS.md
7. Re-read vibe/TASKS.md silently
8. State next task in plain English and confirm before starting
Rules:
- NEVER skip the commit step — uncommitted work is invisible to vibe-graph and vibe-review
- Code commit and doc commit are ALWAYS separate — never mix feat and docs in one commit
- If tests fail — fix before committing, do not commit broken code
- If lint fails — fix before committing, do not commit with lint errors
Investigation discipline (include verbatim):
## Investigation discipline
For requests under 10 words: restate intent in one sentence before reading any files.
Data/state operations (reset, clear, seed, refresh) are not code bugs — do not investigate code.
Confirm the actual request before opening any file.
Save as CLAUDE.md at project root.
Step 7 — Generate vibe/TASKS.md
Read references/TASKS_MD.md for full template and update rules.
Read vibe/SPEC.md, vibe/SPEC_INDEX.md, vibe/PLAN.md — especially Section 6 (Feature Map).
Generate TASKS.md with every phase fully represented:
Header section:
# TASKS — [Project Name]
> [2-3 plain English sentences: what this app does, who it's for, core value]
> One file to watch. Updated after every task.
Phase 1 — Foundation: Each task as a checkbox with one plain English line.
## Phase 1 — Foundation
> No user-facing features. Sets up everything Phase 2 depends on.
> Phase 1 exit: run `review: phase 1` when all tasks complete.
[ ] P1-001 · [Task] — [one plain English line]
[ ] P1-002 · [Task] — [one plain English line]
...
[ ] P1-00N · Populate CODEBASE.md — document everything built in Phase 1
## Phase 1 gate
⬜ review: phase 1 — pending
Phase 2 — Core features (fully ordered from PLAN.md feature map):
This is the critical change. Phase 2 is not slugs — it is the complete ordered feature list with dependencies visible, derived from PLAN.md Section 6.
## Phase 2 — Core features
> Build order is deliberate. Features are sequenced by dependency.
> A feature marked [needs: X] cannot start until X is complete.
> Features marked [parallel with: X] can run simultaneously with X.
> Phase 2 exit: run `review: phase 2` when all features complete.
⬜ [Feature 1 name] — [what the user can do when this is done]
Build order: 1 · No dependencies · Start here after Phase 1 gate passes
Shared data: creates [Entity] used by Feature 2 and Feature 3
Estimate: ~[N] hours
Spec: run `feature: [name]` to plan this feature in detail
⬜ [Feature 2 name] — [what the user can do]
Build order: 2 · Needs: Feature 1 complete
Reason: reads [Entity] created by Feature 1
Parallel with: Feature 3 (no shared writes)
Estimate: ~[N] hours
Spec: run `feature: [name]` to plan this feature in detail
⬜ [Feature 3 name] — [what the user can do]
Build order: 2 · Needs: Feature 1 complete
Parallel with: Feature 2 (no shared writes)
Estimate: ~[N] hours
Spec: run `feature: [name]` to plan this feature in detail
⬜ [Feature 4 name] — [what the user can do]
Build order: 3 · Needs: Feature 2 + Feature 3 complete
Reason: reads [Entity] from Feature 2 and [Entity] from Feature 3
Estimate: ~[N] hours
Spec: run `feature: [name]` to plan this feature in detail
## Phase 2 gate
⬜ review: phase 2 — pending
Phase 3 — Polish and hardening:
## Phase 3 — Polish and hardening
> Runs after Phase 2 gate passes. No new features.
> Phase 3 exit: run `review: final` — 0 P0 + 0 P1 before deploy.
⬜ Performance audit — profile and fix slow paths
⬜ Error handling pass — all edge cases, empty states, error boundaries
⬜ Accessibility audit — WCAG AA for all screens
⬜ E2E tests — critical user flows automated
⬜ Security review — auth, input validation, secrets, dependencies
⬜ Documentation — README, API docs, deployment guide
## Final gate
⬜ review: final — pending
Phase 4+ (if in PLAN.md — future phases sketched):
## Phase 4+ — Future (not in current build)
> Planned so Phase 1-3 architecture doesn't foreclose these.
> Run `brainstorm:` when ready to plan the next version.
⬜ [Future feature] — [one sentence] · planned for v2
⬜ [Future feature] — [one sentence] · planned for v2
Footer:
---
## What just happened
[Project name] project kit created. Phase 1 ready to begin.
## What's next
⬜ P1-001 · [First Phase 1 task in plain English]
Start Phase 1: read CLAUDE.md then vibe/TASKS.md. Say "next" for each task.
Run `review: phase 1` when all Phase 1 tasks are complete.
Non-negotiable rules:
- Build order and dependency reasons visible for every Phase 2+ feature
feature: [name]trigger visible on every planned feature — user knows exactly what to run- Phase gate instruction visible at end of each phase
- Plain English everywhere — what the user sees/experiences, not technical details
- Human should never need to open PLAN.md to know what to build next or in what order
Save as vibe/TASKS.md.
Step 8 — Generate vibe/CODEBASE.md (placeholder)
Read references/CODEBASE_MD.md for the full template.
For a new app, CODEBASE.md starts as a placeholder. The last task in Phase 1 populates it fully from the scaffolded project.
Generate the placeholder version. Save as vibe/CODEBASE.md.
Step 9 — Generate remaining vibe/ files and handle ARCHITECTURE.md
vibe/DECISIONS.md
# DECISIONS — [Project Name]
> Append-only. Every drift, scope change, tech choice — logged with full context.
## Decision types
- drift — deviated from PLAN.md or ARCHITECTURE.md
- blocker-resolution — impossible; workaround found
- tech-choice — chose between valid approaches not in plan
- scope-change — added/removed via change: command
- discovery — unexpected finding affecting future tasks
## Format
### D-[ID] — [Short title]
- **Date**: · **Task**: [TASK-ID] · **Type**: [type]
- **What was planned**: · **What was done**: · **Why**:
- **Alternatives considered**: · **Impact on other tasks**:
- **Approved by**: human | agent-autonomous
(No entries yet)
vibe/reviews/ folder
Create vibe/reviews/backlog.md:
# Review Backlog
> P1/P2/P3 issues tracked across all phase reviews.
> P1 must resolve before deploy. Updated after every review.
## Outstanding P1 Issues
(none yet)
## Outstanding P2 Issues
(none yet)
## Resolved Issues
(none yet)
ARCHITECTURE.md handling
If ARCHITECTURE.md exists at project root: Move to vibe/ARCHITECTURE.md.
If ARCHITECTURE.md does not exist (architect: was skipped):
Generate a minimal vibe/ARCHITECTURE.md from PLAN.md decisions:
- Extract the folder structure, naming conventions, and tech choices from PLAN.md
- Apply the O'Reilly Principles section verbatim from
references/ARCHITECTURE_MD.md - Mark it clearly:
> ⚠️ Auto-generated from PLAN.md — architect: was not run. > Consider running architect: to make these decisions explicit and add missing sections.This ensures review: has an ARCHITECTURE.md to check against from Phase 1.
Step 10 — Spec review gate
Before telling the user the kit is ready, announce and hand off to spec-review:
"vibe/ folder created. Running spec-review before first task..."
Invoke vibe-spec-review with:
- Trigger source:
new-app - Scope: SPEC.md + ARCHITECTURE.md + BRIEF.md + AGENT_ARCH.md (all that exist)
After spec-review completes:
Step 10B — Initialise dependency graph
Invoke vibe-graph: init.
This builds the spec graph from SPEC.md and ARCHITECTURE.md —
all planned nodes created before any code is written.
Nodes will transition from planned to built as features are implemented.
After graph init completes:
Step 11 — Tell the user
🎉 Your project kit is ready.
One file to watch:
vibe/TASKS.mdStructure created:
CLAUDE.md vibe/TASKS.md ← open this vibe/ARCHITECTURE.md ← [locked from architect: / auto-generated from plan] vibe/CODEBASE.md ← placeholder until Phase 1 done vibe/SPEC.md + SPEC_INDEX.md + PLAN.md + DECISIONS.md vibe/reviews/backlog.md vibe/spec-reviews/ ← spec review history vibe/graph/ ← dependency graph (spec graph initialised)Spec review: [✅ clean / ⚠️ [N] warnings acknowledged / 🔴 [N] P0s fixed] Graph: [N] planned nodes · [N] concepts mapped · updates automatically
Read execution mode:
grep "VIBE_MODE" CLAUDE.md 2>/dev/null | cut -d= -f2 | tr -d ' 'If
autonomous→ read~/.claude/skills/vibe-mode/references/AUTONOMOUS_EXECUTION_BLOCK.mdand follow the autonomous execution protocol for Phase 1 tasks. Begin immediately.If
manualor not set → tell the user:Read CLAUDE.md, then vibe/CODEBASE.md, then vibe/ARCHITECTURE.md, then vibe/SPEC_INDEX.md, then vibe/TASKS.md. Confirm the first task before writing any code.Say "next" after each task. Run "review: phase 1" when Phase 1 completes — mandatory gate.
What ships with it: 1 file
9.0 KB alongside SKILL.md
references/
- PLAN_MD.md9.0 KB
Gives 0 of the 12 instructions most design frontend skills give in ~5.3k tokens
Counted across 1,169 of the 1,878 authors here whose files we hold, read 2026-08-07
- Use CSS variables for color consistencyin 72 of 1169, across 23 files
- Commit to one bold aesthetic direction before codingin 72 of 1169, across 27 files
- Match implementation complexity to the aesthetic visionin 70 of 1169, across 20 files
- Add atmospheric background effects and texturesin 57 of 1169, across 9 files
- Use unexpected spatial compositions and layoutsin 56 of 1169, across 8 files
- Implement real working codein 55 of 1169, across 7 files
- Vary themes and aesthetics across different designsin 48 of 1169, across 7 files
- Launch chromium in headless modein 47 of 1169, across 4 files
- Close the browser when donein 47 of 1169, across 4 files
- Run provided scripts with help flag firstin 47 of 1169, across 4 files
- Wait for network idle statein 47 of 1169, across 4 files
- Use descriptive selectors for elementsin 47 of 1169, across 4 files
Said here and by no other author read
- read existing brief and architecture files first
- generate spec with acceptance criteria before tasks
- update spec and index together
- strikethrough removed items in spec
- ask all ui questions at once
- sequence every feature by dependencies
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.