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 3208f11b18 Fetch job logs via SSH to indri instead of Forgejo web endpoint
Forgejo's web action routes don't support API token auth for private
repos. Read the zstd-compressed log files directly from indri via SSH.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 17:08:59 -07:00
.dagger Upgrade Dagger from v0.19.11 to v0.20.0 2026-03-05 09:32:05 -08:00
.forgejo/workflows Add Forgejo template variable expansion for automatic repo customization 2026-03-03 20:28:15 -08: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 Add Forgejo template variable expansion for automatic repo customization 2026-03-03 20:28:15 -08:00
mise-tasks Fetch job logs via SSH to indri instead of Forgejo web endpoint 2026-04-18 17:08:59 -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
CHANGELOG.md Initial scaffold (pre-hook install) 2026-03-03 19:05:51 -08:00
CLAUDE.md Add Forgejo template variable expansion for automatic repo customization 2026-03-03 20:28:15 -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 Add Forgejo template variable expansion for automatic repo customization 2026-03-03 20:28:15 -08: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 Actions workflow for releases
  • Pre-commit hooksprek with linting, formatting, secret detection
  • AI assistanceCLAUDE.md + structured docs for Claude Code (C0/C1/C2 change process, Mikado method)
  • Task runnermise tasks for docs validation, Mikado chain management, and more

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. Fill in the project structure section in CLAUDE.md
  4. Add license information to README.md
  5. Remove the "First-Time Setup" section from CLAUDE.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/     # towncrier fragments
./.dagger/              # dagger pipelines
./.forgejo/             # forgejo-runner actions and workflows
./mise-tasks/           # scripts via `mise run`

License