About project-setup
A project-setup skill that guides developers through creating projects from GitHub blueprints. Its ordered workflow includes environment checks, configuration assembly, verification, and MCP server configuration checks.
Key features
- 01Preflight devcontainer-state check
- 02Blueprint selection and variable collection
- 03Assemble configuration from fragments
- 04Version mismatch and change safeguards
- 05Run verification commands
- 06Check MCP server distribution setup
Use cases
- 01Starting a project from a stack blueprint
- 02Assembling devcontainer and project configuration
- 03Verifying setup commands before completion
- 04Checking MCP configuration for container startup
MCP support
The skill instructs developers to verify the MCP server configuration file and explains that configured servers are distributed to agents on container start.
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ loxosceles-dev/ dev-skills --skill project-setupAfter installing, type/project-setupin Claude Code to confirm it loaded.
Details
From the project READMEProject Setup
This is a strict guideline. Follow these rules exactly.
New projects are created from blueprints stored at loxosceles/project-blueprints on GitHub.
Workflow
- Pre-flight: Verify devcontainer-state: Before anything else, check that
~/.devcontainer-state/.gitexists. If it doesn't, stop immediately and instruct:
Do not proceed until this is resolved.⛔ ~/.devcontainer-state is not a git repo. Docker will auto-create mount targets as empty root-owned directories, breaking the devcontainer. Fix: git clone [email protected]:loxosceles/devcontainer-state.git ~/.devcontainer-state If ~/.devcontainer-state already exists (empty/root-owned), remove it first: sudo rm -rf ~/.devcontainer-state - Identify the blueprint: Ask which stack the user wants (e.g., "nextjs-sst", "sst-python"). Read the corresponding blueprint from
blueprints/{stack}.mdin the repo. - Read the full blueprint before starting. Understand all sections.
- Collect variables: Ask for
project_name,git_name,git_email, and any other values the blueprint requires. - Execute sections in order: Follow the blueprint step by step.
- Copy fragments verbatim: Fragment files from
fragments/are exact configs. Copy them, then replace{{template_variables}}with actual values. - Assemble stack-specific files: Common fragments (
fragments/common/) contain{{INJECTION_MARKERS}}. Read the matching injection snippets fromfragments/injections/{stack}/and insert them at the marked points. Pick the Dockerfile fromfragments/dockerfiles/{stack}/. The result is one clean file per output — no runtime includes or sourcing. Fordevcontainer.json, merge the injection's extensions and settings into the common base. - Pause on version mismatches: If a tool (create-next-app, SST, etc.) has a new major version compared to what the blueprint specifies, stop and ask: "Should I evaluate the upgrade or use the pinned version?"
- Never silently modify fragments: If a fragment doesn't work with current tool versions, report the conflict and ask.
- Run verification: Execute all verification commands at the end. All must pass.
- GitHub Copilot instructions: Copy
fragments/common/github/copilot-instructions.mdto.github/copilot-instructions.mdandfragments/common/github/copilot/review.mdto.github/copilot/review.md. These provide code quality guidelines for Copilot Chat and PR reviews. - Install skills:
- Run
npx skills add loxosceles/ai-dev --agent claude-code github-copilot codex kiro-cli -yand ask about additional third-party skills. - Pre-create all host mount targets (Docker creates missing sources as root-owned, breaking permissions):
PROJECT=<project-name> mkdir -p ~/.devcontainer-state/cache/${PROJECT}/claude mkdir -p ~/.devcontainer-state/cache/${PROJECT}/kiro/settings - The
skills/directory is always created by the installer as a symlink convenience folder. It cannot be prevented — just gitignore it. .gitignoremust include:.agents/,.claude/skills/,.kiro/skills/,skills/- Steering files (mounted ro at
~/.kiro/steering/from~/.devcontainer-state/ai/steering/) handle skill auto-discovery. No agent configs needed — skills cover all workflows.
- Run
- Verify MCP server config: Check that
~/.devcontainer-state/ai/mcp/servers.jsonexists. If not, warn the user to copy fromservers.json.template. MCP servers are distributed to all agents (Kiro, Claude, Amazon Q) bypost_start.shon every container start. - Verify devcontainer scripts: The setup uses two scripts:
post_create.sh— runs once after container creation (validation, symlinks, git identity, skills restore)post_start.sh— runs on every container start (Claude CLI install/update, Claude settings copy, MCP server distribution)
Rules
- Execute in the current directory (must be empty or an empty git repo)
- Git remotes must use SSH, never HTTPS:
[email protected]:user/repo.git - Never skip verification steps
- If a step fails, present the error with options — don't silently retry
- Template variables use
{{double_braces}}syntax - Fragment files are the source of truth for configs — don't improvise alternatives
- Consistency with
project-migration: This skill andproject-migrationmust produce identical results for shared concerns (devcontainer, skills, kiro, linting, CI/CD). If you detect a discrepancy between what this skill instructs and whatproject-migrationdoes, stop and warn the developer before proceeding.
Progressive Improvement
If the developer corrects a behavior that this skill should have prevented, suggest a specific amendment to this skill to prevent the same correction in the future.