# Fast Astro

> Scaffold or normalize a Fast Preset Astro prototype - latest Astro, Tailwind CSS, DaisyUI, @lucide/astro, a default layout, index page, and src/data/config.json. Use when starting a new coded prototype repo or when an existing repo is missing the Fast Preset base.

- Skill: `tibichi/fast-astro` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tibichi/fast-astro`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tibichi/fast-astro/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: tibichi (https://skillmd.com/u/tibichi)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tibichi/fast-astro

---


# Fast Preset Astro Setup

## Fast Preset Conventions

These rules hold across every Fast Preset skill. Other skills assume them - do not deviate.

- **Source of truth:** `BRIEF.md` at the repo root. fast-brief writes it; every other skill reads it as step one.
- **Files organized per page.** UI primitives live in `src/components/`; prototype data lives in `src/data/`. Single-page prototypes stay flat (`src/components/*.astro`, `src/data/*.json`). The moment a second page is added, each page gets its own folder (`src/components/<page>/`, `src/data/<page>/`); anything used by more than one page moves to `src/components/shared/` / `src/data/shared/`. Promote to `shared/` on the second use, not before. Pages compose components; props mirror the JSON shape they render.
- **Colors:** DaisyUI semantic tokens only (`bg-primary`, `text-error`, `bg-base-100`/`200`/`300`, `text-base-content`, etc.). Never raw Tailwind palette colors (`bg-blue-500`, `text-red-600`).
- **Variants:** the same purpose uses the same DaisyUI variant everywhere. Every primary CTA is `btn-primary`. Every success notice is `alert-success`.
- **Assumption tags:** uncertainty stays tracked, not rendered. In `BRIEF.md` prose, every claim ends in `[verified]`, `[assumed]`, or `[unsure]` with a reason. In `src/data` JSON, records derived from `[assumed]` or `[unsure]` brief items carry `_assumed: true` (optionally `_source: "brief §X"`) so they stay findable for the designer and so `fast-review` can collect them as talking points. The prototype UI itself stays clean - do not render badges, borders, or any other visible tell. The prototype is a design artifact, not a confidence dashboard; assumptions are surfaced in the share conversation, not on the surface.

**BRIEF.md dependency:** none. fast-astro runs before `BRIEF.md` exists. If `BRIEF.md` is already present, leave it untouched.

## Workflow

1. Inspect the repo. If it is already an Astro project, normalize it instead of recreating it.
2. If no Astro project exists, run the official Astro scaffold in the current directory:

   ```bash
   npm create astro@latest ./ -- --template minimal --yes --install
   ```

3. Install the required packages:

   ```bash
   npm install tailwindcss@latest @tailwindcss/vite@latest daisyui@latest @lucide/astro@latest
   ```

4. Write the scaffold files exactly as specified in `references/scaffold.md` (astro.config.mjs, src/styles/global.css, src/data/config.json, src/layouts/Layout.astro, src/pages/index.astro, .gitignore).
5. Use the user's requested project name for `siteName` when clear from the prompt (e.g. "fast-astro Project Name" → `"Project Name"`); otherwise use `"Fast Preset"`.
6. Keep Astro's scaffolded files (including `public/favicon.svg`) intact unless they conflict with setup.
7. Run `npm run build` as a sanity check when possible. Do not start the dev server - the next skill (or the designer) will do that.

`BRIEF.md` does not exist yet at this stage - fast-brief writes it. Do not stub it from fast-astro. If `BRIEF.md` already exists, leave it untouched.

## Required Stack

- Astro for project structure and pages
- Tailwind CSS via `@tailwindcss/vite`
- DaisyUI via a configured `@plugin "daisyui" { themes: light --default, dark --prefersdark; }` block in `src/styles/global.css` (mandatory, not optional)
- `@lucide/astro` for icons
- JSON files in `src/data` for editable prototype data

## Expected Result

```text
package.json
astro.config.mjs
.gitignore
src/
  data/config.json
  layouts/Layout.astro
  pages/index.astro
  styles/global.css
```

## Guardrails

- No single-file HTML/CSS/JS prototypes unless the user explicitly asks for a throwaway file.
- DaisyUI is not optional.
- Do not remove files created by the official Astro scaffold unless they conflict with setup.
- No React, Vue, Svelte, backends, databases, or auth unless the user explicitly needs them.
- Do not invent a custom scaffold when Astro can create it.
- Keep this skill boring. Product-specific structure belongs to the next skills (fast-brief, then fast-data and fast-prototype).

## Output Standard

Report what was created or normalized, the commands run, and point to fast-brief as the next skill. Do not claim a dev-server URL unless it is visible in the terminal output.

