docs(templates): issue forms with a distinct compliance-question route, and a PR template that asks the right questions - #303
Merged
Conversation
…e, and a PR template that asks the right questions Templates gather what triage needs and teach the standard at submit time (#285): the bug form demands the stamped build identity, the paper/live account, and the rail or rule; compliance_question.yml is a route of its own so a ruling question is never triaged as a bug; config.yml routes security to the private channel and questions to Discussions; the PR template lists the gates, asks for tests-first evidence, and carries the checkbox that makes a rail- or classification-touching PR visible as such. tests/test_issue_templates.py pins all of it.
This was referenced Aug 16, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #285
Templates do two jobs: extract what triage needs, and state the project's standards at the
moment of submission.
Issue forms (
.github/ISSUE_TEMPLATE/):bug_report.yml— demands the three facts a report is useless without:keel --versionoutput (stamps commit and build kind), paper-vs-live (they share nothing), and the rail or
rule involved (the address of the behaviour). Security warning up top.
feature_request.yml— problem / proposal / alternatives considered (this projectrecords rejected alternatives on purpose), plus a scope checkbox separating mechanism
changes from classification changes.
compliance_question.yml— the distinct route the issue asks for: "should X be treatedthis way" is neither a bug nor a feature, and triaging it as either gets it the wrong
resolution. Asks for the asset/mechanism, sources being weighed, and what outcome would
resolve it — including "a change to a default classification (needs sources, discussed
before any PR)".
config.yml— blank issues off; contact links route security to the private channel(
../security/advisories/new+ SECURITY.md note), questions to Discussions, andcontributors to CONTRIBUTING.md.
PR template (
.github/PULL_REQUEST_TEMPLATE.md): what & why, tests-first evidence(paste the red run), the three gates as checkboxes, and the load-bearing scope check: a
checkbox that declares whether the PR touches a rail or a default classification — checked
means it does, and then source + discussion come before review.
Tests (
tests/test_issue_templates.py, red first): forms parse as GitHub issue forms;bug report carries version/mode/component fields; the compliance route exists and points at
attestation + source; config.yml routes to SECURITY.md; the PR template names the gates,
tests-first, and rail/classification.
Gates:
pytest2,807 passed / 1 skipped,ruff checkclean,mypyclean.