Skip to content

Issue forms and a sharper pull request template - #1596

Draft
jayleaton wants to merge 2 commits into
ashhart:mainfrom
jayleaton:repo/issue-pr-templates
Draft

jayleaton wants to merge 2 commits into
ashhart:mainfrom
jayleaton:repo/issue-pr-templates

Conversation

@jayleaton

@jayleaton jayleaton commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

What this changes

Before: reporters filed blank issues or free-form text, and the pull request template asked for a receipt but not for the issue link, the stack or an overlap check. After: four issue forms (bug, performance, proposal, feature) ask for the version, checkpoint revision, hardware and the exact command or request, config.yml turns blank issues off, and .github/pull_request_template.md gains Issue, Stacked on, atc overlap --json and Checks on this head, with the kernel contract collapsed into a details block.

Why: reproducible reports, and a description a reviewer can act on without asking for the same pieces twice. Each field traces to CONTRIBUTING.md or to a survey of the 100 newest pull requests and 80 newest issues.

  • Review pass: the proposal's arithmetic field now says a change to output tokens on a default path needs proof and an opt-in, and that a token-changing opt-in stays off by default with its own agreed gate; the template's kernel block asks for a planted control for each new kernel that fails as planted; the last checklist line covers decode as well as prompt processing; and the version placeholders name the --version output instead of a release that will age.
  • Issue: n/a. Repository housekeeping offered to the maintainer; no issue tracks it.
  • Stacked on: main. A pull request skill for contributor agents #1595 (the pull request skill) stacks on this branch and adds only docs/pr/SKILL.md, AGENTS.md and README.md.
  • atc overlap --json (ATC 0.7.0, against main): no conflict on any of the six files. ATC returned complete: false with pullFilesLimit, so treat the result as partial; the only other pull request whose commits touch these files is A pull request skill for contributor agents #1595, which stacks on this branch.

Checks on this head

  • Head commit: 462f4a6
  • Lean checker, python3 tools/zig/lean_check.py, on the base (465e48b62) and on this head: 425 and 425, 0 new (tools/zig/lean_new.py). Both runs exit 1 on the 425 findings already on main.
  • Tests run, with the command and pass, fail and skip counts:
    • yaml.safe_load on all five files: 5 passed, 0 failed, 0 skipped.
    • jsonschema Draft 7 against SchemaStore's github-issue-forms.json and github-issue-config.json: 5 passed, 0 failed, 0 skipped.
    • relative links and anchors in .github/pull_request_template.md, AGENTS.md, README.md and CONTRIBUTING.md: 77 checked, 77 resolve, 0 broken.
    • git diff --check: clean.
  • CI: 9/9 checks pass on this head (fmt, zig, zig-windows, zig-macos-dev-tools, appimage-linux, desktop, desktop-linux, mobile, release-paths); no failure.
  • Not run locally, and why: no Zig build or zig fmt here, because the diff is six files under .github/ and touches no Zig source, build input or test; CI's zig job runs the host suite on this head.

Receipt

n/a: issue-form metadata and a pull request template cannot reach inference.

Checklist

  • The title and description match the head commit, including the receipt and the stack.
  • New tests fail before the change, pass after it, and skip cleanly without their dependency. (none added; the schema checks above are the check)
  • Comments and docstrings are one line. No measurements or history in the source.
  • No personal data, machine names, internal hosts or local paths in the diff or its commits. No AI attribution lines.

The pull request template asks for the issue link, the atc overlap result,
the lean checker's base and head counts and the paths and platforms reached.
Its receipt and inference checklist now say "n/a" for changes that cannot
reach inference, the kernel contract is a section only kernel changes fill,
and new weights or drafters state their licence.

Issue forms for bugs, performance regressions, feature requests and the
issue-first proposal for a model family, backend or arithmetic change ask for
the version or commit, the checkpoint and revision, the hardware and the exact
command. Blank issues are off; contact links point to CONTRIBUTING, the agent
radar, the known issues and the runbook.
@ashhart

ashhart commented Oct 30, 2026

Copy link
Copy Markdown
Owner

Thanks for the issue forms and the template update. Could you add a short description, and say whether #1595 is meant to stack on this one? Right now both PRs add the same six files, so we'll land one as the base and rebase the other on it.

@jayleaton

Copy link
Copy Markdown
Contributor Author

Added a short description with the checks and a stacking note: #1595 is stacked on this PR, so merge this one first and #1595 then adds only docs/pr/SKILL.md, AGENTS.md and README.md.

@ashhart

ashhart commented Nov 1, 2026

Copy link
Copy Markdown
Owner

Thanks @jayleaton, and thanks for the stacking note. The forms ask for what we end up requesting by hand (revision, exact command, related links), and the template's Issue, Stacked on and Checks lines are what reviews keep asking for. Three small wording changes before it lands:

  1. proposal.yml:64 says "Opt-in does not waive exactness or precision." Our rule is narrower: a change to output tokens on a default path needs proof and an opt-in, and an opt-in that changes tokens stays off by default with its own agreed gate. Could it say that instead? 2. In the template's kernel block, please add a line for planted controls: one for each new kernel, and that each fails as planted. We ask for this on nearly every kernel PR. 3. The last checklist line covers prompt speed only. Could it read: "Decode and prompt processing are no slower than main at one stream and the widest admitted; with --drafter, no slower than without it, greedy and sampled"?

Optional: the "1.1.9" placeholders will age; "the --version output" won't. Happy to make these on landing if you'd rather; just say.

The proposal's arithmetic field asks for proof and an opt-in before a change
to output tokens on a default path, and keeps a token-changing opt-in off by
default with its own agreed gate. The template's kernel block asks for a
planted control for each new kernel that fails as planted, and the last
checklist line covers decode as well as prompt processing at one stream and
the widest admitted, with and without --drafter.

The version placeholders name the --version output instead of a release that
will age.
@jayleaton

Copy link
Copy Markdown
Contributor Author

All four done on 462f4a60.

  1. proposal.yml: the arithmetic field now says a change to output tokens on a default path needs proof and an opt-in, and that a token-changing opt-in stays off by default with its own agreed gate.
  2. Template kernel block: a line for planted controls, one per new kernel, each failing as planted.
  3. Last checklist line: "Decode and prompt processing are no slower than main at one stream and the widest admitted; with --drafter, no slower than without it, greedy and sampled".
  4. The 1.1.9 and 1.1.8 placeholders now say "the --version output".

Checked on this head: the five forms and config load as YAML and pass SchemaStore's Draft 7 schemas, relative links and anchors resolve (77, 0 broken), git diff --check is clean, and the lean checker is 425 with 0 new. CI is rerunning.

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.

2 participants