Pre-PR checklist
Do this after the change works, before anyone opens the GitHub PR. Output is a filled template body — do not create the PR.
The template lives at
.github/pull_request_template.md
. Do not add extra sections.
1. Issue gate (hard stop)
A PR without a maintainer-approved issue will be closed.
bash
gh issue view <N> --repo plastic-labs/honcho --json number,title,labels,state
Stop if any of these fail:
- no issue number, or the issue is not in
- issue is closed (unless this PR is explicitly reopening it)
- labels do not include
Say which check failed. Do not draft a PR body around it.
2. Classify the diff
bash
git diff main...HEAD --stat
Pick one primary kind: bug, feature, docs. Then decide layers:
| Surface touched | Required |
|---|
| (non-prompt) | unit tests under the matching tree |
| deriver / dialectic / dreamer / LLM path | unit + consider live-llm () |
| queue, config hierarchy, multi-turn, SDK contract | unified (uv run python -m tests.unified.run
) |
| HTTP or deriver queue behavior | skill (runtime, not just pytest) |
| public API, SDK exports, / settings, mintlify | documentation in the matching file |
Skip a layer only with a one-line reason (e.g. "docs-only", "comment-only"). "When appropriate" is not a skip.
Invoke
when the runtime surface moved. Do not restate that skill here.
Lint/type before claiming tests are green:
→
→ the pytest command for the layer.
3. Proofs
Collect evidence that belongs in the PR, not in the commit:
- command + pass/fail for what you ran
- a log snippet, screenshot, or file path that shows the new behavior
- for bugs: the failing case before vs after, if you have it
If
ran, the proofs
are that session's output. Do not invent green runs.
4. Write the body
Fill the description, proofs, checklist portion of the pull request description template.
Make sure to link the related github issue, otherwise the PR will be auto-closed.