skills/woostack-bootstrap/SKILL.md
Use when bootstrapping a new web, mobile, or API project from scratch — scaffolding a fresh monorepo, choosing which frameworks/hosting/data layer to use, or setting up architecture, CI, and conventions for a new full-stack app at current framework versions.
npx skillsauth add howarewoo/woo-stack woostack-bootstrapInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A spec — not a template — for bootstrapping AI-built web + mobile + API projects. It holds the decisions (frameworks, architecture, infrastructure, patterns) so an agent scaffolds a fresh repo at the latest framework versions without re-litigating choices every time. Templates rot; decisions don't.
Core principle: resolve versions live at bootstrap, never from memory.
Invoke with /woostack-bootstrap <goal>, where the goal is a plain-language description of what to build:
/woostack-bootstrap create a new mobile app for cataloging recipes
/woostack-bootstrap a SaaS dashboard with a marketing site and a billing API
From the goal, infer a recommended shape — surfaces, features, and provider choices — then walk the user through it (see Procedure). The goal seeds the recommendations; the user confirms or overrides every one.
Not for: adding features to an already-bootstrapped project (use that project's own conventions), or single-surface throwaway scripts.
| Layer | Default | |---|---| | Web / Landing | Next.js (App Router) + React Compiler + shadcn/ui | | Mobile | Expo + React Native + react-native-reusables + UniWind | | API | Hono + oRPC | | Data | TanStack Query + Zod + Supabase (Postgres, Auth, Storage) | | Styling | Tailwind CSS (CSS-first) + shared theme | | Build | Turborepo + pnpm catalog | | Lint/format | Biome | | Testing | Vitest, Jest (RN), Playwright | | Hosting | Vercel (web + api) + Expo EAS (mobile) |
Defaults are overridable per project — record any deviation in the project's own README.
mobile surface, probably an api for sync, a recipes feature, Supabase Postgres + Storage for images + Auth for accounts; no billing unless monetized.) These are recommendations, not decisions — they seed step 2.pnpm install && pnpm typecheck && pnpm build && pnpm test && pnpm dev — every surface boots on its expected port.| File | What it defines | |---|---| | references/decisions.md | Decision catalog + confirmation protocol — the pre-scaffold gate | | references/bootstrap.md | Step-by-step bootstrap procedure — the spine | | references/architecture.md | Monorepo layout, package tiers, import boundaries, naming | | references/frameworks.md | Recommended frameworks per layer, catalog protocol, known gotchas | | references/infrastructure.md | Hosting, CI/CD, env, observability, auth, data layer | | references/patterns.md | oRPC contracts, TanStack Query, RSC, navigation, TDD, feature exposure | | references/development.md | Dev loop (ideate → approve spec → merge) and branching model |
These are non-negotiable. Violating them produces a broken or drift-prone project.
npm view <pkg> version, or npm view <pkg> dist-tags for channels) and write the resolved value. Never hard-code a version from memory.react for RN) must match a pinned version.install / typecheck / build / test / dev is not done. Fix every failure.2.0.0 — first spec-only release. Bump on breaking changes so downstream projects can detect drift.
development
Use to harden a plan, spec, or design by relentless interview — walk every branch of the decision tree, resolve each open question one at a time with a recommended answer, and amend the artifact in place until no new questions remain. This is the harden phase of the woostack build loop (woostack-build steps 3 and 6 — first the spec, then the plan); also usable standalone to stress-test or "grill me" on a design before committing to it.
development
Use to execute an approved woostack plan as a sequence of PR-sized, stacked increments via an inline or subagent-driven driver (--inline/--subagent, smart default) — implement each increment with TDD, tick the plan's checkboxes in place, commit via woostack-commit on its own Graphite branch, review each increment (woostack-review --fast inline; per-task spec+quality subagent loops in subagent mode), distill durable learnings, then continue. This is the execute phase of the woostack build loop (woostack-build step 8); also usable standalone via /woostack-execute <plan-path> [--inline|--subagent]. One plan per spec, multiple PRs per plan. Never merges.
development
Use when you want an HTML visualization of any source — a spec, plan, file, directory, or concept — tailored to a target audience (engineer, non-technical, investor, or any free-form reader). Reads the real source and writes one self-contained, offline-viewable HTML file; never the source of truth.
development
Use when initializing, scaffolding, or repairing the .woostack/ workspace — creates the memory store, specs and plans directories, config.json, and .gitignore from canonical templates, then runs the index builder and store linter. Invoke at project setup (brownfield) or from woostack-bootstrap (greenfield).