From repo-setup
Guided setup of a new coding project repository. Use this skill whenever the user wants to initialize, scaffold, or set up a new project repo — even if they phrase it casually (e.g. "start a new project", "set up a repo", "create a project structure", "init a new codebase", "bootstrap a project"). Handles folder structure, config files, AI/agent context files (CLAUDE.md, AGENTS.md, llm-guidelines.md, CODEBASE.md), git init, and optional remote + CI/CD setup. Always use this skill for any project scaffolding request.
How this skill is triggered — by the user, by Claude, or both
Slash command
/repo-setup:repo-setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A guided, interactive skill for setting up a new project repository from scratch.
A guided, interactive skill for setting up a new project repository from scratch.
This skill walks the user through a series of upfront questions, then creates all files on disk and displays a text summary of the structure. It always produces the full set of standard files and wires up git (with optional remote and CI/CD).
Before creating anything, ask the user ALL of the following. You can use the ask_user_input_v0
tool to make this interactive, grouping related questions together (max 3 per call).
Only proceed to Step 2 once you have answers to all required fields (name, description, stack). The rest can use sensible defaults if the user skips them.
Before creating files, print a clear summary:
📁 Project: <name>
📝 Description: <description>
🛠 Stack: <stack>
Files to be created:
<project-name>/
├── README.md
├── .gitignore
├── .editorconfig
├── CLAUDE.md
├── AGENTS.md
├── llm-guidelines.md
├── CODEBASE.md
├── CONVENTIONS.md
├── <suggested folder structure>
└── [.github/workflows/ci.yml — if CI/CD selected]
Git: init locally [+ remote: <url> if provided]
Ask: "Looks good? I'll create everything now." — wait for confirmation before proceeding.
Use bash_tool to create the project. Work directory: wherever the user's session is, or /home/claude/<project-name>/ if no path specified.
Create the root folder and any subdirectories appropriate for the stack.
See references/folder-structures.md for stack-specific templates.
Stack presets — some stacks have dedicated reference files with extra setup steps:
references/unity-preset.md in full before creating any files. The root
.gitignore goes in the Unity project root (next to Assets/). The three _ folders are
created inside Assets/. Do not create a new root folder.references/dotnet-preset.md. Ask the user which project type they need
(Console, Web API, or Class Library) before scaffolding, then use the matching template.# <project-name>
<description>
## Getting Started
_TODO: Add setup instructions._
## Architecture
See [CODEBASE.md](./CODEBASE.md) for a full architecture overview.
## AI / Agent Guidelines
See [CLAUDE.md](./CLAUDE.md) for AI assistant context and conventions.
Generate an appropriate .gitignore for the stack. For generic/unknown stacks, include:
.DS_Store, Thumbs.db.vscode/, .idea/, *.swp.env, .env.*, !.env.exampledist/, build/, out/, *.logroot = true
[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
[*.py]
indent_size = 4
[*.md]
trim_trailing_whitespace = false
[Makefile]
indent_style = tab
These four files form the AI/agent context layer of the project.
Both files must have identical content. Keep them in sync — they serve different agents
(some read CLAUDE.md, others prefer AGENTS.md).
# AI Agent Context — <project-name>
This file provides context for AI assistants and coding agents working in this repository.
It is mirrored as both `CLAUDE.md` and `AGENTS.md` — keep them in sync.
## Project Overview
<description>
**Stack:** <stack>
## Key Files
| File | Purpose |
|------|---------|
| `CODEBASE.md` | Architecture, folder map, core concepts, key types |
| `llm-guidelines.md` | Behavioral guidelines for LLMs (when to ask, how to scope changes, avoid over-engineering) |
| `CONVENTIONS.md` | Code style, naming, commits, PR process |
## Quick Reference
- Read `CODEBASE.md` before making structural changes
- Follow the conventions in `llm-guidelines.md`
- When in doubt, ask before refactoring
## Notes
_Add project-specific conventions, gotchas, or constraints here._
This file contains behavioral guidelines for LLMs — how to think, when to ask, how to scope changes. It is not a style guide or conventions doc (put those in CODEBASE.md).
Important: Before writing this file, check if the karpathy-guidelines skill is available:
find /mnt/skills -name "*karpathy*" 2>/dev/null
llm-guidelines.mdreferences/llm-guidelines-default.md — do not
summarize or rewrite it, copy it as-isWrap the content with this header:
# LLM Guidelines — <project-name>
Behavioral guidelines for AI assistants working in this codebase.
Derived from Andrej Karpathy's observations on common LLM coding pitfalls.
---
<content from karpathy-guidelines skill OR references/llm-guidelines-default.md>
# Codebase Overview — <project-name>
> This file is a living document. Update it as the project evolves.
## Description
<description>
## Stack
<stack>
## Folder Map
/ ├── (fill in as project grows)
## Core Concepts
_TODO: Describe the main abstractions and mental model of this codebase._
## Key Types / Interfaces
_TODO: List the most important data structures, types, or interfaces._
## Patterns & Conventions
_TODO: Note recurring patterns, naming conventions, and architectural decisions._
## External Services & Dependencies
_TODO: List external APIs, databases, or services this project depends on._
## Known Gotchas
_TODO: Document any non-obvious behavior or tricky areas._
A concise, scannable reference for how code is written in this project. Keep it short — if it
can't be skimmed in 2 minutes, it won't be read. Use the template from
references/conventions-template.md, filling in the stack-specific sections based on the user's
answers. Leave sections as _TODO_ if not yet decided — better to be honest than prescriptive.
If the user opted in, create .github/workflows/ci.yml.
See references/ci-templates.md for templates by stack and workflow type.
cd <project-dir>
git init
git add .
git commit -m "chore: initial project setup"
If a remote URL was provided:
git remote add origin <url>
git branch -M main
git push -u origin main
After all files are created, print:
tree command or manual listing)Also call present_files to surface the root folder to the user.
references/folder-structures.md — Stack-specific folder templates (Python, Node, Go, etc.). For Unity and C#/.NET, see their preset filesreferences/unity-preset.md — Full Unity game dev preset: folder structure, official .gitignore, CODEBASE.md sectionreferences/dotnet-preset.md — C# / .NET preset: Console, Web API, and Class Library templates with .gitignore and .editorconfig additionsreferences/conventions-template.md — CONVENTIONS.md template (fill in stack-specific sections at setup time)references/llm-guidelines-default.md — Default LLM guidelines (used when karpathy-guidelines is not installed)references/ci-templates.md — GitHub Actions workflow templates by stack/purposeCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub hissal/agent-plugins --plugin repo-setup