A personal project template with opinionated infrastructure for documentation, CI, and AI-assisted development.
- Python 57.7%
- Shell 42.3%
Replace hardcoded TODO markers with Forgejo template variables (${REPO_NAME},
${REPO_OWNER}, etc.) so new repos created from this template are auto-customized.
Use Forgejo Actions context variables in build.yaml for dynamic FORGE_URL.
Hardcode forge.eblu.me as the Forgejo instance. Update CLAUDE.md and README.md
to reflect reduced manual setup steps.
Python class names kept as manual TODO (same as directory rename) since template
variables in Python code positions aren't valid syntax for linters.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
||
|---|---|---|
| .dagger | ||
| .forgejo/workflows | ||
| .gitea | ||
| .github | ||
| docs | ||
| mise-tasks | ||
| .gitignore | ||
| .yamllint.yaml | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| dagger.json | ||
| mise.toml | ||
| prek.toml | ||
| README.md | ||
| towncrier.toml | ||
project-template
A personal project template with opinionated infrastructure for documentation, CI, and AI-assisted development.
What's Included
- Documentation — Diataxis-structured docs built with Quartz
- Changelog — Towncrier fragment-based changelog
- CI/CD — Dagger pipelines + Forgejo Actions workflow for releases
- Pre-commit hooks — prek with linting, formatting, secret detection
- AI assistance —
CLAUDE.md+ structured docs for Claude Code (C0/C1/C2 change process, Mikado method) - Task runner — mise 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:
- Set
baseUrlindocs/quartz.config.tsto your docs site domain - Rename
.dagger/src/project_template_ci/directory and update class names to match your project - Fill in the project structure section in
CLAUDE.md - Add license information to
README.md - Remove the "First-Time Setup" section from
CLAUDE.mdand this section fromREADME.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`