My personal developer kit: reusable code templates and boilerplates for various stacks (Docker Compose, Ansible, shell scripts, serverless functions, etc.), standalone scripts, and AI assets (skills, prompts, agents). Also a general home for code that doesn't really fit anywhere else.
Author: Evan Harmon
This repo is part of harmon-platform — my custom development platform with machine configuration, DevOps systems, homelab infrastructure, and automation repos that work together to help me develop software and manage my homelab.
| Repo | What it is |
|---|---|
| harmon-init | Copier template that bootstraps & standardizes new repos (CI/CD, devcontainers, AI steering, tooling). |
| harmon-devkit (this repo) | Reusable boilerplates & code templates, standalone scripts, and AI assets (skills, prompts, agents). |
| harmon-dotfiles | Shell & app dotfiles, managed declaratively with chezmoi. |
| harmon-infra | Homelab infrastructure as code — Terraform, Ansible, and Docker Compose services. |
| Directory | Contents |
|---|---|
templates/ |
Copy-paste boilerplates organized by category — see the template index below |
scripts/ |
Standalone scripts and utilities (AppleScript/Automator apps, command snippets) |
ai/ |
AI assets — skills, prompts, agents, rules, evals, etc. — see the AI assets index below |
snippets/ |
Small reusable code snippets (work in progress) |
docs/ |
Project docs, e.g. the harmon-init post-generation checklist |
| Template | Category | Description |
|---|---|---|
ansible.md |
Ansible | Standard Ansible project directory structure and setup notes |
docker/genericStack |
Docker | Generic multi-service Compose sandbox (Ubuntu, nginx, optional DB stack with Postgres/memcached/Adminer) plus dc* helper scripts |
docker/n8n-compose |
Docker | n8n workflow automation behind Traefik with automatic HTTPS (Let's Encrypt) |
scriptTemplates/shellScriptTemplate.sh |
Scripts | Shell script starter with safe defaults, traps, and arg parsing |
scriptTemplates/pythonScriptTemplate.py |
Scripts | Python CLI starter with argparse, logging, and validation |
scriptTemplates/goScriptTemplate.go |
Scripts | Go CLI starter with flag parsing, logging, and validation |
serverlessFunctionTemplates/awsLambda.py |
Serverless | AWS Lambda handler (Python) with input validation and error responses |
serverlessFunctionTemplates/gcpFunction.py |
Serverless | Google Cloud Function (Python/Flask) with input validation and error responses |
serverlessFunctionTemplates/netlifyFunction.js |
Serverless | Netlify Function (Node.js) that fetches and returns JSON from an API |
webTemplates/netlifyForm.html |
Web | Netlify-ready HTML contact form with honeypot spam protection |
skills-sync |
AI | Pinned, pull-based vendoring of shared agent skills from harmon-devkit into a consumer repo — manifest-driven, category-selective (task sync:skills + CI drift check) |
claude-hooks/session-end-archive |
AI | Claude Code SessionEnd hook that gzips every session transcript into an archive dir before the cleanupPeriodDays retention deletes it (script + settings snippet) |
See templates/README.md for conventions and per-category details.
ai/ collects reusable AI assets organized by type — skills/, agents/, prompts/, rules/, evals/, tools/, workflows/, mcp/, knowledge/, and memories/. Most are placeholders for now; the populated areas are skills (the Agent Skills convention — a SKILL.md with name/description frontmatter) and agents (shared subagents, one flat <name>.md each).
Skills are grouped into category subdirectories (universal/, backend/, frontend/, infra/, mobile/, repo/) so consumer repos can vendor a selected subset via the skills-sync template. Skill directory names must be unique across categories (they are flattened on vendor) — ai/skills/README.md documents the layout, the constraint, and how to add a skill.
| Skill | Status | Description |
|---|---|---|
frontend/explore-designs |
Draft | Guides using Claude Design to explore design directions across your frontend stack |
frontend/create-design-system |
Placeholder | Design-system setup |
frontend/implement-design |
Ready | Implements a Claude Design .tar.gz handoff into a real codebase — reconcile an existing design system or bootstrap a new one (tokens → shadcn/Tailwind v4 OKLCH, /brand, contrast + licensing gates) |
repo/standardize-repo |
Ready | Applies the harmon-init Copier template's conventions to a repo — scaffold a new repo, adopt the template into an existing one, or audit drift from the standards. Bundles the authoritative repo-conventions catalog. |
universal/kickoff |
Ready | /kickoff — start-of-session ritual: get oriented in the repo and compose a descriptive session name (emits a copy-pasteable /rename) |
universal/breakdown |
Ready | /breakdown — decompose a lump of work (feature, epic, strategy doc, big issue) into GitHub issues sized for one session / one PR / one human review, with milestones and sub-issues where warranted, explicit blocked-by dependency edges, and the target repo's own labels — proposing the full plan for one human approval before any GitHub write |
universal/claim |
Ready | /claim — pre-implementation sanity check: verify the target issue and related PRs against the live repo, then claim the issue |
universal/implement |
Ready | /implement — drive a claimed issue to a ready-for-review PR: read it as a spec, work the repo's dev loop (check → verify → second-model review → CI mirror), tick acceptance criteria as verified, open the PR, then continue through the shepherd stage. Never claims, never merges |
universal/retro |
Ready | /retro — end-of-session retro: loose ends, follow-ups, improvement opportunities, and linked status tables for every PR/issue touched |
universal/wrap |
Ready | /wrap — end-of-session ritual: wrap up dangling work and emit the /rename done-<name> command |
universal/shepherd |
Ready | /shepherd — shepherd a draft PR to ready for review: watch CI and bot/human reviews, adjudicate findings as hypotheses, fix confirmed ones with per-thread replies, push, re-watch (max 4 rounds, or the repo's own cap; never merges) |
universal/track-work |
Ready | GitHub issue/PR tracking hygiene — fires automatically when writing a PR body that closes an issue, filing a follow-up, citing an issue, or closing one. Ships executable checks (Closes vs Refs, unticked items, perishable claims) that CI runs too, plus a narrowed ticking command for criteria you verify as you work |
Agents are a flat directory — one <name>.md per subagent, no categories yet. They are deliberately thin: an agent is a delegated context, a skill is procedure, and the agents here point at skills rather than restating them. ai/agents/README.md documents the layout, the portability contract (Claude's format, minus the parts that would strand them in another harness), and the guard.
| Agent | Status | Description |
|---|---|---|
implementer |
Ready | Implements a written plan — or a review finding the caller has already confirmed — in a fresh context, and returns a verified change plus a report. Refuses a brief that isn't self-contained. Never branches, adjudicates review findings, pushes, opens PRs, or merges |
- https://github.com/ChristianLempa/boilerplates
- https://github.com/docker/awesome-compose
- https://github.com/Haxxnet/Compose-Examples
- https://awesome-docker-compose.com/
- https://github.com/gruntwork-io/boilerplate
- https://github.com/EinGuterWaran/awesome-opensource-boilerplates
- https://github.com/melvin0008/awesome-projects-boilerplates
- https://boilerplatelist.com/collection/
If there isn't an existing template in this repo, start with looking at the https://github.com/ChristianLempa/boilerplates repo for an existing boilerplate there. There is a cli tool to use boilerplates from that repo and you can integrate other repos.
- Homebrew (installs the toolchain via
Brewfile) - Taskfile (task runner)
- Node (for npx-based tools: markdownlint-cli2, commitlint)
- uv (runs the pinned Semgrep CE baseline)
Install required software to run other project installers and task runners
task bootstrap
Install required dependencies
task install
Templates are meant to be copied into your project and adapted — there is no scaffolding CLI (yet). Browse the template index, copy the file or directory you need, and edit the placeholders (names, ports, environment variables) for your project. Each template directory has a README with specifics.
task check runs the fast lint gate. task verify is the definition-of-done
gate (check + validation + Taskfile/hook/skills guards + tests); task ci adds
security. task challenge / task review run optional Codex second-model
reviews (adversarial / verification checkpoint — advisory, local-only; see
docs/guides/codex-review.md).
task security — Semgrep CE SAST + gitleaks secret scan + dependency audit.
Git hooks (managed by lefthook, lefthook.yml) and CI
delegate to the same Taskfile targets. Config lives in .editorconfig,
.shellcheckrc, .yamllint, .markdownlint.json, commitlint.config.mjs, and
.gitleaks.toml.