prompts/docs/NEW_REPO_CHECKLIST.md

2.6 KiB

New Repo Checklist

Use this checklist when creating a new repository from scratch. Follow the steps in order. Full policies are at: https://git.eeqj.de/sneak/prompts/raw/branch/main/REPO_POLICIES.md

Template files can be fetched from: https://git.eeqj.de/sneak/prompts/raw/branch/main/<filename>

1. Initialize

  • git init
  • Ask the user for the license (MIT, GPL, or WTFPL)

2. First Commit (README only)

  • Create README.md with all required sections:
    • Description: name, purpose, category, license, author
    • Getting Started: copy-pasteable code block
    • Rationale: why does this exist?
    • Design: how is it structured?
    • TODO: initial task list
    • License: matches chosen license
    • Author: @sneak
  • git add README.md && git commit

3. Scaffolding (feature branch)

  • git checkout -b initial-scaffolding

Fetch Template Files

  • .gitignore — fetch from prompts repo, extend for language-specific artifacts
  • .editorconfig — fetch from prompts repo
  • Makefile — fetch from prompts repo, adapt targets for the project's language and tools
  • For JS/docs repos: .prettierrc, .prettierignore

Create Project Files

  • LICENSE file matching the chosen license
  • REPO_POLICIES.md — fetch from prompts repo
  • Dockerfile and .dockerignore
    • Server: runs the application
    • Non-server: brings up dev environment and runs make check
    • Image pinned by sha256 hash with version/date comment
  • Language-specific:
    • Go: go mod init sneak.berlin/go/<name>, .golangci.yml (copy from ~/dev/upaas/.golangci.yml)
    • JS: yarn init, yarn add --dev prettier
    • Python: pyproject.toml

Configure Makefile

  • make test — runs project tests (30-second timeout)
  • make lint — runs linter
  • make fmt — formats code (writes)
  • make fmt-check — checks formatting (read-only)
  • make check — prereqs: test, lint, fmt-check; must not modify files
  • make docker — builds Docker image
  • make hooks — installs pre-commit hook

4. Verify

  • make check passes
  • make docker succeeds
  • No secrets in repo
  • No mutable image/package references
  • No unnecessary files in repo root
  • All dates written as YYYY-MM-DD

5. Merge and Set Up

  • Commit, merge to main
  • make hooks to install pre-commit hook
  • Add remote and push
  • Verify main passes make check