A personal project template with opinionated infrastructure for documentation, CI, and AI-assisted development.
  • Python 57.7%
  • Shell 42.3%
Find a file Use this template
Erich Blume 5bb6051262
Some checks failed
Build / validate (push) Failing after 3s
Resync template docs
2026-04-19 08:19:26 -07:00
.dagger Upgrade Dagger from v0.19.11 to v0.20.0 2026-03-05 09:32:05 -08:00
.forgejo/workflows Split template build and release workflows 2026-04-19 07:59:50 -07:00
.gitea Add Forgejo template variable expansion for automatic repo customization 2026-03-03 20:28:15 -08:00
.github Initial scaffold (pre-hook install) 2026-03-03 19:05:51 -08:00
docs Resync template docs 2026-04-19 08:19:26 -07:00
mise-tasks CLAUDE.md -> AGENTS.md and docs-preview 2026-04-19 07:45:41 -07:00
.gitignore Add .ruff_cache to gitignore 2026-03-03 19:09:53 -08:00
.yamllint.yaml Initial scaffold (pre-hook install) 2026-03-03 19:05:51 -08:00
AGENTS.md Resync template docs 2026-04-19 08:19:26 -07:00
CHANGELOG.md Initial scaffold (pre-hook install) 2026-03-03 19:05:51 -08:00
dagger.json Upgrade Dagger from v0.19.11 to v0.20.0 2026-03-05 09:32:05 -08:00
mise.toml Upgrade Dagger from v0.19.11 to v0.20.0 2026-03-05 09:32:05 -08:00
prek.toml Add Forgejo template variable expansion for automatic repo customization 2026-03-03 20:28:15 -08:00
README.md Resync template docs 2026-04-19 08:19:26 -07:00
towncrier.toml Initial scaffold (pre-hook install) 2026-03-03 19:05:51 -08:00

project-template

A personal project template with opinionated infrastructure for documentation, CI, and AI-assisted development.

What's Included

  • DocumentationDiataxis-structured docs built with Quartz
  • ChangelogTowncrier fragment-based changelog
  • CI/CDDagger pipelines + Forgejo build and release workflows
  • Pre-commit hooksprek with linting, formatting, secret detection
  • AI assistanceAGENTS.md + structured docs for Claude Code (C0/C1/C2 change process, Mikado method)
  • Task runnermise tasks for docs validation, Mikado chain management, release preview, and runner inspection

Forking This Template

This is a Forgejo template repository. When you create a new repo from this template, Forgejo automatically expands variables like ${REPO_NAME} and ${REPO_OWNER} in key files — handling most customization automatically.

After creating your repo, the remaining manual steps are:

  1. Set baseUrl in docs/quartz.config.ts to your docs site domain
  2. Rename .dagger/src/project_template_ci/ directory and update class names to match your project
  3. Review and tailor the project structure section in AGENTS.md
  4. Add license information to README.md
  5. Remove the "First-Time Setup" section from AGENTS.md and this section from README.md

If you use Claude Code, it will prompt you to resolve remaining TODOs at the start of your first session.

Getting Started

# Install git hooks
prek install && prek install --hook-type commit-msg

# Run all pre-commit checks
prek run --all-files

# List available tasks
mise tasks

# Build docs (requires Dagger)
dagger call build-docs --src=. --version=dev export --path=./docs-dev.tar.gz

Project Structure

./docs/                 # documentation (Diataxis, Quartz)
./docs/changelog.d/     # leave only .gitkeep in the template; generated repos add towncrier fragments here
./.dagger/              # Dagger module backing docs builds and releases
./.forgejo/workflows/   # generic build/release workflows for generated repos
./.forgejo/scripts/     # optional per-project hooks consumed by those workflows
./mise-tasks/           # scripts via `mise run`

License