Files
enricobuehler ad6b5184dc docs: adopt the Punktfunk house style
Three writing surfaces were being asked to hold design reviews. Commit
subjects on main averaged 101 characters, CHANGELOG.md ran to 6,090
lines for eight versions, and module rustdoc carried milestone codes and
soak durations that git blame already keeps honest.

The rules now live in docs/writing.md: Conventional Commits with a
72-character cap, Keep a Changelog categories for new sections, and
comments that state an invariant rather than recap a diff. CONTRIBUTING,
AGENTS.md and the Gitea PR template point at it, and the CHANGELOG
header says which form new sections take.

Nothing existing is rewritten. The changelog archive, the release notes
and every current rustdoc header stay as they are; the style applies to
what gets written next.

Source: github.com/luxus/punktfunk-house-style
2026-08-28 23:48:25 +02:00

1.5 KiB

AGENTS.md

Guidance for coding agents working in this repository.

Writing standards

Read docs/writing.md before you write a commit message, a CHANGELOG.md entry, or a comment. It is the house style for all three, and §4 is a per-PR checklist. The short version:

  • Commit subject is type(scope): summary — imperative, 72-character hard cap, no trailing period, one logical change. No Co-Authored-By trailer.
  • The commit body is why, wrapped at 72. The investigation, the measurements and the rejected paths go on the pull request, never in the message.
  • Write the Gitea PR title as a conventional commit; Gitea makes it the merge subject.
  • New CHANGELOG.md sections use Keep a Changelog categories. Leave the older sections alone.
  • A comment states an invariant or a trap. A comment never enforces a trust boundary — a type, a test or an assertion does.

Agent skills

Issue tracker

Issues live as Gitea issues in unom/punktfunk on git.unom.io, driven by the gitea MCP server (gh/glab/tea do not work here), and every write needs the user's go-ahead first. See docs/agents/issue-tracker.md.

Triage labels

The five canonical roles, each label string equal to its name — needs-triage, needs-info, ready-for-agent, ready-for-human, wontfix — none of which exist in the tracker yet. See docs/agents/triage-labels.md.

Domain docs

Single-context: one CONTEXT.md and one docs/adr/ at the repo root, covering the whole workspace. See docs/agents/domain.md.