Skip to content
Back to skills

Bootstrap

ASecurity

Safely sets up a Unity 6 project for the FirstPlayable workflow — preflight checks, folder structure, scenes, asmdefs, and a project CLAUDE.md. Always dry-runs first. Use when the user says /first-playable:bootstrap.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 12, 2026
developmentgitapi

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned October 12, 2026

npx -y skills add WhorideChicken/first-playable --skill bootstrap --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Bootstrap?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Bootstrap
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/whoridechicken-bootstrap/badge)](https://www.skillsdirectory.com/skills/whoridechicken-bootstrap)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: bootstrap
description: Safely sets up a Unity 6 project for the FirstPlayable workflow — preflight checks, folder structure, scenes, asmdefs, and a project CLAUDE.md. Always dry-runs first. Use when the user says /first-playable:bootstrap.
---

# Unity Project Bootstrap

You are running Phase 4 of the FirstPlayable workflow: preparing a Unity
project. **Safety over convenience** — this skill must be idempotent and must
never destroy existing work.

Before doing real work, read `references/unity-setup.md` in this plugin — it
has the detailed editor-settings checks, asmdef dependency rules, package
guidance, scene-creation fallbacks, and the idempotency checklist. Ready-made
asmdef JSON files, a Unity `.gitignore`, and the `PROJECT_STATUS.md` template
are in `templates/unity/`.

## Hard rules

- Show the full plan of changes (dry-run) and get user approval **before**
  creating or modifying anything.
- Never overwrite an existing file without explicit consent.
- Modify Scenes and Prefabs only through Unity MCP or Editor API — never edit
  Unity YAML directly.
- Never touch `Assets/ThirdParty` originals, never delete or regenerate
  `.meta` files, never remove packages.
- Re-running bootstrap on an already-bootstrapped project must be a no-op plus
  a report of what already exists.

## Preflight checks

Report each as pass/fail/unknown before proposing changes:

- Is this a Unity project? Which Unity version? (target: Unity 6)
- Render pipeline (Built-in / URP / HDRP)
- Input System package present?
- Test Framework package present?
- Cinemachine in use?
- Git repository and a Unity-appropriate `.gitignore`?
- Editor settings: Visible Meta Files, Asset Serialization = Force Text
- Unity MCP connection available?
- Unity CLI available (`unity --version`)? If so: signed in
  (`unity auth status --json` → `loggedIn`)? `com.unity.pipeline` present for
  live control? Not signed in means headless tests fail on licensing and
  `unity open` stalls silently at Hub sign-in — see `references/unity-cli.md` §1.
  Sign-in is the user's to do (browser OAuth).
- Existing scenes and asmdefs that could conflict

Starting from nothing (no Unity project yet)? That is out of scope here —
hand off to Unity's own `new-unity-project` skill, then run bootstrap on the
result. Game already in development (real code, its own folder layout)? Use
`/first-playable:adopt` instead. It runs only the preflight and blocking checks
below and never imposes this skill's folder structure.

### Blocking checks (fix these, don't just warn)

**`PlayerSettings.runInBackground` must be `true`.** When the Editor is not
focused — which is *always* the case while an agent drives it over MCP — play
mode does not advance frames. Every runtime observation then silently reports
stale values, and verification reports come out confidently wrong. Set it,
confirm by reading it back, and record it in `Docs/PROJECT_STATUS.md`.

**Install the play-mode marker.** Copy `templates/unity/PlayModeMarker.cs` to
`Assets/_Game/Scripts/Editor/PlayModeMarker.cs`. It writes
`Temp/firstplayable_playmode` during play mode so the `unity-guard` hook can
block script edits that would otherwise deadlock the MCP bridge (deferred
recompile ⇄ `isCompiling` guard — only a human pressing Stop breaks it).

## Project modes

Ask which mode fits (default `Standard`):

| Mode | For | Structure |
|---|---|---|
| Prototype | game jams, quick validation | minimal folders, single asmdef, minimal docs |
| Standard | solo / small team | Core, Gameplay, Presentation, Tests split |
| Modular | long-term / team | per-feature module asmdefs |

## What gets created (Standard)

```text
Assets/
├─ _Game/
│  ├─ Art/  Audio/  Configs/  Prefabs/
│  ├─ Scenes/
│  │  ├─ Bootstrap/      # init & shared services
│  │  ├─ Gameplay/       # FirstPlayable scene lives here
│  │  └─ Test/           # Sandbox + automated/manual verification
│  ├─ Scripts/
│  │  ├─ Core/  Gameplay/  Presentation/  Infrastructure/  Editor/
│  └─ Tests/
│     ├─ EditMode/
│     └─ PlayMode/
└─ ThirdParty/
```

Plus, at the project root:

- `CLAUDE.md` — project rules (source-of-truth order, Unity rules, verification
  checklist). Use this plugin's `templates/CLAUDE.project.md` as the base. If a
  CLAUDE.md already exists, propose a merged diff instead of replacing it.
- `Docs/PROJECT_STATUS.md` — current phase, what is playable, what is next.
- `Assets/_Game/Scripts/Editor/PlayModeMarker.cs` — from
  `templates/unity/PlayModeMarker.cs` (see Blocking checks above).

## Completion

Done when the structure exists, preflight issues are either fixed or explicitly
accepted by the user, and `CLAUDE.md` is in place. Then suggest
`/first-playable:feature <first-feature>` following `Docs/Design/DEVELOPMENT_ORDER.md`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.