---
name: wyrm-project-bootstrap
description: |
  Scaffold a new Ghost Protocol project from zero to a working baseline in one
  shot. Trigger when the operator says "new project", "scaffold a site", "make
  me a site like X", "build a landing page", "start a fresh project", "bootstrap
  a thing", or names a brand-new repo we haven't worked on before. Lays down
  the canonical stack, registers it in Wyrm, applies design tokens from the
  operator's global preferences if any exist, opens a session, and seeds the
  first ground truths. Designed for operators who shouldn't have to remember
  any of the boilerplate.
metadata:
  type: skill
  category: workflow
---

# wyrm-project-bootstrap

> A new repo without Wyrm registration is a repo without a memory. Bootstrap
> means: scaffold the code AND register the brain in one motion.

This skill is for the moment when the operator says *"make me a new site"* or
*"start a fresh project."* It's the difference between getting a working
baseline in five minutes and spending half an hour wiring up the same eight
things you wire up every time.

## When to invoke

- Operator says: *"new project"*, *"scaffold a site"*, *"make me a thing like
  X"*, *"start fresh"*, *"bootstrap"*, *"build a landing page"*
- Operator references a brand-new repo URL or name we haven't touched
- Operator finishes a meeting and says *"so the next thing is…"* and the next
  thing is greenfield
- You realise mid-conversation that the work the operator described needs a
  new repo, not an existing one

## What this skill does

Six steps, in order, no operator confirmation needed for the safe ones:

**1. Resolve the stack.**
Default to Sachintha's stack (see `[[sachintha-creative-stack]]`) for creative
work, or Ryan's preferred stack (Next.js + Postgres + auth) for founder-level
products. If neither applies, ask once: *"is this a creative / marketing / app
project?"* and infer the rest.

**2. Create the repo skeleton.**
```bash
# For creative / site work — use Next.js 16 + the canonical defaults
npx create-next-app@latest <name> --typescript --tailwind --app --src-dir --import-alias "@/*"
cd <name>
npm install -D @types/node prettier eslint-config-prettier
npx shadcn-ui@latest init -d
npm install lucide-react clsx tailwind-merge
```

**3. Apply the operator's design tokens** (if `wyrm_token_list` returns global
tokens or if the operator has a previous similar project we can copy from).
Set the Tailwind config's `theme.extend.colors`, `fontFamily`, `spacing` from
those tokens. Don't invent values — only apply ones already in Wyrm.

**4. Register in Wyrm.**
```
wyrm_scan_projects <repo-path>   # picks up the new dir
wyrm_session_start <repo-name>   # starts the first session
wyrm_truth_set     <repo-name> tech_stack.framework "Next.js 16 + React 19"
wyrm_truth_set     <repo-name> tech_stack.styling "Tailwind 4 + shadcn"
wyrm_inject_prompt <repo-path> --clients copilot,cursor,claude
```

**5. Inherit design references.**
If the operator has clipped any references tagged with the project's theme
(via `wyrm_reference_list` with `tag:<theme>`), surface them. *"Here are 3
references you've saved that match this project's vibe — copy any over?"*

**6. Confirm + handoff.**
Brief summary: *"Repo at `<path>`. Wyrm session #N opened. Stack: <list>.
Inherited <K> tokens, <M> references. First quest seeded:
`Build the landing page hero`. Ready to code."*

## Stack matrix

| Project type | Framework | Styling | Backend | Special |
|---|---|---|---|---|
| Creative site / marketing | Next.js 16 + React 19 | Tailwind 4 + shadcn | Anthropic streaming for any AI; Stripe / Paddle for billing | Heavy display type, dark-first by default |
| AI voice / character product | Next.js + WebRTC or LiveKit | Tailwind + custom | OpenAI Realtime / Anthropic; Vercel for the app shell | Watch latency aggressively |
| Founder-level app | Next.js + tRPC | Tailwind + shadcn | Postgres via Drizzle ORM; NextAuth | Real auth from day 1 |
| Internal tool / dashboard | SvelteKit | Tailwind | Hono + Drizzle | Speed over polish |
| One-pager / portfolio | Astro 5 | Tailwind | None | Static export |

If the operator names a real project as the reference (*"like Dungeon-Drifters"*),
read that repo first via `wyrm_constellation` once it ships, or via
`wyrm_search` today — inherit *its* truths, tokens, and patterns rather than
the defaults.

## Things to NOT do

- Don't pin to old framework versions out of nostalgia. Defaults are
  starting points, not law. If a new major has landed and is stable, use it.
- Don't add features beyond the bootstrap. *Scaffold* means the floor, not
  the building. Operator drives feature work after handoff.
- Don't skip the Wyrm registration. A scaffold without registration means the
  next session starts cold.
- Don't pick a stack the operator hasn't endorsed. If unsure, ask.

## Innovation guardrails

Operator preferences in Wyrm are starting points, not absolutes. If a newer
tool genuinely solves the problem better — flag it once: *"You've used X
before; Y is now the more current choice for this specific case because Z.
Want to try Y?"* Then defer to the operator's call.

Skills are living documents. If the bootstrap pattern improves over time, edit
this skill or open a PR against
`Ghosts-Protocol-Pvt-Ltd/copilot-skills`.

## Cross-references

- `[[sachintha-creative-stack]]` — Sachintha's specific stack defaults + aesthetic
- `[[ryan-founder-workflow]]` — Ryan's multi-product founder context
- `[[dragon-spec-author]]` — for projects that warrant a spec before scaffold
- Wyrm tools: `wyrm_scan_projects`, `wyrm_session_start`, `wyrm_truth_set`,
  `wyrm_inject_prompt`, `wyrm_token_list`, `wyrm_reference_list`,
  `wyrm_quest_add`
