Skip to main content
ClaudeWave
Skill729 repo starsupdated 4d ago

better-fullstack

Scaffold, plan, or extend Better Fullstack projects with the generator, CLI, or MCP server. Use when a user asks to create, generate, or scaffold a fullstack starter; choose a Better Fullstack stack; add Better Fullstack capabilities; compare agent scaffolding paths; or avoid hand-authoring boilerplate project files.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/Marve10s/Better-Fullstack /tmp/better-fullstack && cp -r /tmp/better-fullstack/.agents/skills/better-fullstack ~/.claude/skills/better-fullstack
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Better Fullstack

Use the Better Fullstack generator as the source of truth for starter generation. Do not hand-write a full starter when a trusted Better Fullstack interface can produce it.

## Choose The Path

Use an already-available CLI by default. The benchmarked best framing is: map the stack, dry-run the CLI, then run the same non-interactive command for real.

Use MCP only when the user explicitly asks for MCP, when CLI access is unavailable, or when the request needs structured schema lookup beyond what a concise CLI command can safely express. If using MCP, start with `bfs_get_guidance`, then use schema, compatibility, plan, and create/add tools in that order.

Use a trusted Better Fullstack interface in this order:

1. A local CLI path provided by the prompt or current repository.
2. A preinstalled Better Fullstack command available on `PATH`.
3. An attached Better Fullstack MCP server or tool.
4. A command explicitly provided or approved by the user.

If none is available, ask the user for the command, service, tool, or docs source they want used. Do not invent a bootstrap command.

## Default CLI Workflow

1. Map the user's stack into Better Fullstack graph parts and flat flags.
2. Build one non-interactive command.
3. Run it with `--dry-run`.
4. If the dry run succeeds, run the same command without `--dry-run`.
5. If the CLI rejects a combination, adjust to the closest valid Better Fullstack stack and report the adjustment.

## CLI Rules

- Create exactly the requested project directory, using a relative project name.
- Prefer `create <project-name> --part ...` for explicit or multi-ecosystem stacks.
- Pass `--no-install --no-git` for agent-driven scaffolding unless the user explicitly asks for side effects.
- Pass `--package-manager bun` when the user or project expects Bun.
- Pass `--ai-docs agents-md` for reusable projects, or `--ai-docs none` for benchmarks and throwaway scaffolds.
- Use `none` explicitly for categories the user wants disabled.
- Do not start a dev server.

## Mapping Hints

- React + Vite: `frontend:typescript:react-vite`
- Hono: `backend:typescript:hono`
- Bun runtime: `backend.runtime:typescript:bun`
- SQLite: `database:universal:sqlite`
- Drizzle: `backend.orm:typescript:drizzle`
- tRPC: `backend.api:typescript:trpc`
- Tailwind: `frontend.css:typescript:tailwind`
- DaisyUI: `frontend.ui:typescript:daisyui`
- Pino: `backend.logging:typescript:pino`
- Biome: `codeQuality:universal:biome`

## Graph Part Examples

Use graph parts as `category:ecosystem:option`.

```bash
<better-fullstack-cli> create my-app \
  --part frontend:typescript:react-vite \
  --part backend:typescript:hono \
  --part database:universal:sqlite \
  --part backend.runtime:typescript:bun \
  --part backend.api:typescript:trpc \
  --part backend.orm:typescript:drizzle \
  --part frontend.css:typescript:tailwind \
  --part frontend.ui:typescript:daisyui \
  --part backend.logging:typescript:pino \
  --part codeQuality:universal:biome \
  --forms none \
  --validation none \
  --ai-docs none \
  --package-manager bun \
  --no-install \
  --no-git
```

```bash
<better-fullstack-cli> create api-app \
  --part backend:python:fastapi \
  --part database:universal:postgres \
  --part backend.orm:python:sqlmodel \
  --part backend.validation:python:pydantic \
  --part backend.auth:python:jwt \
  --part codeQuality:python:ruff \
  --ai-docs agents-md \
  --no-install \
  --no-git
```

## Existing Projects

For a generated project with `bts.jsonc`, use the Better Fullstack `add` command or MCP add tools. Use canonical Stack Part specs so each capability keeps its category and owner, for example:

```bash
<better-fullstack-cli> add --project-dir ./my-app --part staticAnalysis:typescript:knip --part workspaceRunner:universal:turborepo --no-install
```

For MCP lifecycle work, use this sequence:

1. `bfs_get_project_status` reads configuration and manifest prerequisites without running
   toolchains or writing files.
2. `bfs_check_project` runs every generated target check. It requires installed dependencies and
   required toolchains; missing prerequisites are failures. It does not rewrite Better Fullstack
   source/configuration directly, though build tools may fetch dependencies and write locks,
   caches, compiler output, or build artifacts.
3. `bfs_plan_project_update` reads current-template drift. It returns a `reviewToken` only when a
   supported manifest-v1 baseline exists and all exact structured-merge content fits the 32 KiB
   per-file MCP review bound. Oversized content is withheld with size/SHA metadata and no token.
4. After explicit approval, pass the same absolute project path and exact unchanged token to
   `bfs_apply_project_update` with `acknowledgeUnprovenManifestV1: true`. Missing, stale,
   cross-project, or bounded-review-ineligible tokens fail closed. Apply destructively overwrites
   currently actionable template files and advances the v1 manifest without installing dependencies.

Manifest v1 does not prove generator release/SHA provenance or cross-version eligibility, and the
current apply path has no transactional backup or automated recovery. Do not promise those Wave 1
guarantees.

## Final Response

Report the command or tool path used, any compatibility adjustments, the project directory, and the next install/test/run commands. Do not claim dependencies are installed when `--no-install` or MCP creation skipped them.
create-remotion-geistSkill

Create Remotion videos using the Geist design system aesthetic. Use when asked to create videos, animations, or motion graphics that should follow Vercel's visual style - dark theme, spring animations, Geist typography, and the Geist color palette.

frontend-designSkill

Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.

modern-short-videoSkill

Create modern product launch/pitch videos using Remotion. Use when creating app promo videos, SaaS launch videos, product demos, or startup pitch videos.

remotion-animationSkill

Generates animation configurations for Remotion including spring configs, interpolations, easing functions, and timing logic. Focuses ONLY on animation parameters, NOT component implementation. Use when defining animation behavior or when asked to "configure animations", "setup spring configs", "define easing curves".

remotion-best-practicesSkill

Best practices for Remotion - Video creation in React

remotion-bitsSkill

Animation components and utilities for Remotion video projects. Use when building Remotion compositions with text animations, gradient transitions, particle effects, 3D scenes, or staggered motion effects. Provides example bits (complete compositions) and reusable components that can be installed via jsrepo.

remotionSkill

Generate walkthrough videos from Stitch projects using Remotion with smooth transitions, zooming, and text overlays

video-productionSkill

Produce programmable videos with Remotion using scene planning, asset orchestration, and validation gates for automated, brand-consistent video content.