# Project Init Template

# ──────────────────────────────────────────────────────

# Used by Pisces when /project is run

# Provides scaffolding guidance for new CS projects

# ──────────────────────────────────────────────────────

## Project Checklist

When bootstrapping a new project, ensure the following are in place:

### Repository Setup

- [ ] `README.md` with project description, setup steps, and usage
- [ ] `.gitignore` appropriate for the tech stack
- [ ] `LICENSE` file (MIT for open-source course projects)
- [ ] Initial commit with project skeleton

### Structure (Python)

```
project-name/
├── src/
│   ├── __init__.py
│   └── main.py
├── tests/
│   ├── __init__.py
│   └── test_main.py
├── docs/
├── .github/workflows/ci.yml
├── .gitignore
├── README.md
├── requirements.txt
└── Makefile
```

### Structure (TypeScript)

```
project-name/
├── src/
│   ├── index.ts
│   └── types/
├── tests/
├── .github/workflows/ci.yml
├── .gitignore
├── README.md
├── package.json
├── tsconfig.json
└── Makefile
```

### Structure (C/C++)

```
project-name/
├── src/
├── include/
├── tests/
├── build/
├── .github/workflows/ci.yml
├── .gitignore
├── README.md
└── Makefile
```

## README Template

```markdown
# Project Name

One-line description of what this project does.

## Setup

\`\`\`bash
# Install dependencies
pip install -r requirements.txt  # or npm install, etc.
\`\`\`

## Usage

\`\`\`bash
# Run the project
python src/main.py
\`\`\`

## Testing

\`\`\`bash
pytest tests/
\`\`\`

## Design Decisions

- Why you chose this architecture
- Key trade-offs made

## Known Limitations

- Current constraints or unfinished parts
```

## CI Template (GitHub Actions)

```yaml
name: CI
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: '3.11'
      - run: pip install -r requirements.txt
      - run: pytest tests/ --tb=short
```

## Makefile Template

```makefile
.PHONY: run test lint clean

run:
 python src/main.py

test:
 pytest tests/ -v

lint:
 flake8 src/ tests/

clean:
 find . -type d -name __pycache__ -exec rm -rf {} +
 find . -name "*.pyc" -delete
```
