# Project Scaffold

> How to initialize a project repository with proper structure and configuration

- Skill: `gapfdev/project-scaffold` (Agent Skill)
- Install (CLI): `npx skillmds@latest add gapfdev/project-scaffold`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gapfdev/project-scaffold/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: gapfDev (https://skillmd.com/u/gapfdev)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/gapfdev/project-scaffold

---


# Project Scaffold

Skill for creating a project repository with the correct folder structure, configuration, and base files for the chosen tech stack.

## Input
- Defined tech stack (platform, language, frameworks)
- Project name

## Output
- Initialized repository with folder structure, README.md, and .gitignore
- 📄 **`SCAFFOLD_MANIFEST.md`** — Required artifact. Documents the exact directory tree, key files, and their purpose. This is the physical evidence that scaffold was performed.

## Process

### Phase 1: Identify Stack
1. Read the tech stack definition
2. Identify: Platform, Language, UI Framework, DB

### Phase 2: Create Repo
```bash
# 1. Initialize repository
git init [project-name]

# 2. Create base structure
mkdir -p src/main src/test docs

# 3. Create base files
touch README.md .gitignore
```

### Phase 3: Structure by Platform

**Android (Kotlin):**
```
app/
├── src/
│   ├── main/
│   │   ├── java/com/[package]/
│   │   │   ├── data/          # Repositories, DAOs
│   │   │   ├── domain/        # Use cases, models
│   │   │   ├── ui/            # Screens, ViewModels
│   │   │   └── di/            # Dependency injection
│   │   └── res/
│   └── test/
├── build.gradle.kts
└── gradle/
```

**Web (Vite/React):**
```
src/
├── components/    # Reusable components
├── pages/         # Pages/Routes
├── hooks/         # Custom hooks
├── services/      # API calls
├── utils/         # Utilities
└── styles/        # CSS/Styled
```

**General (any project):**
```
project-root/
├── docs/             # Project documentation
├── src/              # Source code
├── tests/            # Tests
├── README.md
└── .gitignore
```

### Phase 4: README.md
The README must contain at minimum:
1. Project name
2. Brief description
3. Tech stack
4. How to run the project
5. Folder structure

### Phase 5: Generate SCAFFOLD_MANIFEST.md (MANDATORY)

After scaffolding the project, the agent **MUST** generate a `SCAFFOLD_MANIFEST.md` file in the project root. This is a **required deliverable** — the workflow cannot proceed to Step 4 without it.

The file must include:
1. **Directory tree** — Full folder structure with inline comments explaining each folder's purpose.
2. **Key files table** — A markdown table listing the critical files and their role (especially any security-sensitive files like `.env.example`).
3. **Status checklist** — Confirmation checkboxes that the scaffold is complete and the project compiles.

**Template:**
```markdown
# SCAFFOLD_MANIFEST
> Generated by: `project-scaffold` skill
> Stack: [stack name]
> Project: [project name]

## Directory Structure
\`\`\`
[folder tree with comments]
\`\`\`

## Key Files
| File | Purpose |
|---|---|
| [file] | [description] |

## Status
- [ ] Structure created
- [ ] Project compiles/runs
- [ ] .gitignore in place
- [ ] .env.example committed (no real secrets)
\`\`\`
```

## Completeness Checklist
- □ Repo initialized with git?
- □ Folder structure matches the stack?
- □ .gitignore appropriate for the stack?
- □ Project compiles/runs without errors?
- □ README has the minimum sections?
- □ **`SCAFFOLD_MANIFEST.md` generated and committed?** ← REQUIRED

## Rules
1. **ALWAYS** create a `.gitignore` appropriate for the stack
2. **ALWAYS** verify the project compiles/runs before finishing
3. **NEVER** add business logic — structure and configuration only

