Skip to content

docs: KEEP-1132 add contribution guide and require an accepted issue - #98

Merged
suisuss merged 3 commits into
mainfrom
docs/KEEP-1132-contribution-issue-first-policy
Aug 11, 2026
Merged

docs: KEEP-1132 add contribution guide and require an accepted issue#98
suisuss merged 3 commits into
mainfrom
docs/KEEP-1132-contribution-issue-first-policy

Conversation

@suisuss

@suisuss suisuss commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Companion to KeeperHub/keeperhub#2003, which carries the full rationale. This repo had no CONTRIBUTING.md at all, so that is written from scratch here alongside the policy.

What is here

  • CONTRIBUTING.md - new. The real build: make build / test / lint, the sync-version step that copies .release-please-manifest.json into internal/version/ (build with plain go build and the binary reports the wrong version), and go generate ./docs/, which the docs-check job fails on drift.
  • ISSUES.md - the policy. Anything that changes command behaviour, output, or exit codes needs an issue marked accepted first. Typos, help-text wording, and docs matching existing behaviour go straight to a pull request.
  • .github/ISSUE_TEMPLATE/ - bug and behaviour-change forms; free-text issues off.
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/workflows/pr-issue-link.yml - the gate, retargeted to main since this repo has no staging branch.

Every issue carries a reason (command, output, the expectation and what told you to expect it, what it costs), a scope (commands affected, siblings checked, one problem), and a plan (the filer's proposal, which triage may replace in a comment before accepting).

Title format

<type>: #<issue> <description>, for example feat: #97 add --require-verified to execute status. The type prefix still drives release-please, so it stays accurate.

This repo has no pr-title-check, and this PR does not add one - that is a separate change if you want it.

Worked example already in the queue

PR #95 bundles receipt rendering plus --require-verified with an unrelated --timeout deadline for --watch. Neither needs the other to be correct, and the timeout changes behaviour for every existing --watch caller. Under this policy that is two issues and two pull requests, settled before either was written. It is used as the split-test example in ISSUES.md.

Before this is useful

The same labels as the keeperhub PR (accepted, confirmed, needs-triage, needs-discussion, no-issue-required) have to exist on this repo, or every non-exempt PR fails the gate.

Nothing applies retroactively: PR #95 and any existing issues are grandfathered, and no filer is asked to resubmit through a form that did not exist when they filed.

This repo had no CONTRIBUTING.md. Adds one covering the real build
(make build/test/lint, the sync-version step, `go generate ./docs/` which
CI fails on drift) and ISSUES.md as the contribution policy.

Anything that changes command behaviour needs an issue marked `accepted`
before the pull request, referenced in the PR title after the
conventional-commit type (`feat: #97 description`). The type prefix still
drives release-please.

Issue forms and pr-issue-link.yml match the keeperhub setup, retargeted to
main since this repo has no staging branch.

Needs before this is useful: the `accepted`, `needs-triage` and
`no-issue-required` labels.
Mirrors the keeperhub change. Issue forms restructured around three
required parts: reason (command, output, expectation and its source, what
it costs), scope (commands affected, siblings checked, one problem), and
plan (the filer's proposal, which triage may replace in a comment before
accepting).

Adds `confirmed` so reproducing an issue is separable from deciding to
fix it.
Mirrors the keeperhub change: nothing applies retroactively, a filer is
never asked to restate what they already said, and compound issues are
split by us with the reporter credited on each part.
@suisuss
suisuss merged commit dcfbbaa into main Aug 11, 2026
4 checks passed
@suisuss
suisuss deleted the docs/KEEP-1132-contribution-issue-first-policy branch August 11, 2026 05:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant