prompts/docs/EXISTING_REPO_CHECKLIST.md

2.7 KiB

Existing Repo Checklist

Use this checklist when beginning work in a repo that may not yet conform to our development policies.

Work on a feature branch. Check each item and fix any gaps before proceeding with your task.

Formatting (do this first)

  • If the repo has never been formatted to our standards, run make fmt and commit the result as a standalone branch/commit/PR before any other changes. Formatting diffs can be large and should not be mixed with functional changes.

Required Files

  • README.md exists with all required sections (Description, Getting Started, Rationale, Design, TODO, License, Author)
  • LICENSE file exists and matches the README
  • REPO_POLICIES.md exists and version date is current with the authoritative source
  • .gitignore is comprehensive (OS, editor, language artifacts, secrets) — fetch from https://git.eeqj.de/sneak/prompts/raw/branch/main/.gitignore if missing
  • .editorconfig exists
  • Dockerfile and .dockerignore exist
  • Language-specific config:
    • Go: go.mod, go.sum, .golangci.yml
    • JS: package.json, yarn.lock, .prettierrc, .prettierignore
    • Python: pyproject.toml
    • Docs/writing: .prettierrc, .prettierignore

Makefile

  • Makefile exists in root — reference the model Makefile
  • Has targets: test, lint, fmt, fmt-check, check, docker, hooks
  • make check does not modify any files in the repo
  • make test has a 30-second timeout
  • make check passes on current branch

Formatting

  • Platform-standard formatter is configured (black, prettier, go fmt)
  • Default formatter config, only exception: four-space indents (except Go)
  • All files pass make fmt-check

Git Hygiene

  • Pre-commit hook is installed (make hooks)
  • No secrets in the repo (.env, keys, credentials)
  • No mutable references in Dockerfiles or scripts (tags, @latest) — all pinned by cryptographic hash with version/date comment
  • Using yarn, not npm (JS projects)

Directory Structure

  • No unnecessary files in repo root
  • Files organized into canonical subdirectories (bin/, cmd/, docs/, internal/, static/, etc.)
  • Go migrations in internal/db/migrations/ and embedded in binary

Final

  • make check passes
  • docker build succeeds
  • Commit and merge fixes before starting your actual task