feat: entry templates — the pipeline's doors made mechanical #26

Merged
claude-bot-andresmgsl merged 1 commit from feat/entry-templates into main 2026-07-22 17:38:44 +00:00
claude-bot-andresmgsl commented 2026-07-22 16:58:16 +00:00 (Migrated from github.com)

Closes #24

Four pieces under .github/, exactly as specced: the new-issue interception (config.yml), the work-order issue form, the PR template, and light discussion forms for Ideas and Q&A.

Acceptance criteria

  • Clicking "New issue" on this repo offers the Discussions link before any form, and no blank-issue option exists. (By construction pre-merge — see round log: GitHub parses templates only from the default branch, so the click-test is possible only after merge. blank_issues_enabled: false + exactly one form + one contact link is the documented native behavior that produces this.)
  • The work-order form's sections match TRIAGE.md's contract headings exactly (a later #18 parser keys on them). (Verified mechanically: Context, Spec, Tasks, Acceptance criteria, Test plan, Dependencies, in contract order.)
  • The PR template renders under 30 lines. (20 lines.)
  • No template auto-applies any label. (No labels: key anywhere under .github/.)

Changelog

  • No CHANGELOG.md exists yet — it arrives with the dogfooding wiring (#11, after #2). Behavior change stated here instead: the repo's new-issue door now intercepts to Discussions, and issue/PR/discussion composition is scaffolded by templates.

Round log

Round 0 (pre-review verification). GitHub parses .github/ templates from the default branch only — GraphQL (isBlankIssuesEnabled, issueTemplates, contactLinks) confirms main shows none of this yet, so the spec's UI click-tests and screenshots are only possible post-merge; noted on #24. Verified pre-merge instead:

  • All four YAML files parse; the work-order form carries the required name/description/body keys and only valid block types — the same validation GitHub applies at render.
  • Form section labels equal TRIAGE.md's contract headings verbatim, in order (asserted, not eyeballed).
  • config.yml: blank_issues_enabled: false, exactly one contact link, pointing at this repo's Discussions.
  • Discussion category slugs ideas and q-a exist on the repo (GraphQL), matching the DISCUSSION_TEMPLATE/ filenames — the binding GitHub requires.
  • PR template is 20 lines; no labels: key in any template (grep).
  • gh issue create --body-file bypassing forms remains available (documented GitHub behavior; the form's own description says so for the triage identity).

Post-merge residue: one glance at "New issue" to confirm the chooser, and the scratch-discussion smoke from the test plan.

Round 1. Panel converged on head 516f6d7 — grok, codex, kimi all approve, zero blocking points, no in-round pushes. Handed off: summary posted, @danmt requested, state:needs-human set. Residue for post-merge: the New-issue click-test and scratch Ideas discussion.

Closes #24 Four pieces under `.github/`, exactly as specced: the new-issue interception (`config.yml`), the work-order issue form, the PR template, and light discussion forms for Ideas and Q&A. ## Acceptance criteria - [x] Clicking "New issue" on this repo offers the Discussions link before any form, and no blank-issue option exists. *(By construction pre-merge — see round log: GitHub parses templates only from the default branch, so the click-test is possible only after merge. `blank_issues_enabled: false` + exactly one form + one contact link is the documented native behavior that produces this.)* - [x] The work-order form's sections match TRIAGE.md's contract headings exactly (a later #18 parser keys on them). *(Verified mechanically: `Context, Spec, Tasks, Acceptance criteria, Test plan, Dependencies`, in contract order.)* - [x] The PR template renders under 30 lines. *(20 lines.)* - [x] No template auto-applies any label. *(No `labels:` key anywhere under `.github/`.)* ## Changelog - [x] No `CHANGELOG.md` exists yet — it arrives with the dogfooding wiring (#11, after #2). Behavior change stated here instead: the repo's new-issue door now intercepts to Discussions, and issue/PR/discussion composition is scaffolded by templates. ## Round log **Round 0 (pre-review verification).** GitHub parses `.github/` templates from the default branch only — GraphQL (`isBlankIssuesEnabled`, `issueTemplates`, `contactLinks`) confirms `main` shows none of this yet, so the spec's UI click-tests and screenshots are only possible post-merge; noted on #24. Verified pre-merge instead: - All four YAML files parse; the work-order form carries the required `name`/`description`/`body` keys and only valid block types — the same validation GitHub applies at render. - Form section labels equal TRIAGE.md's contract headings verbatim, in order (asserted, not eyeballed). - `config.yml`: `blank_issues_enabled: false`, exactly one contact link, pointing at this repo's Discussions. - Discussion category slugs `ideas` and `q-a` exist on the repo (GraphQL), matching the `DISCUSSION_TEMPLATE/` filenames — the binding GitHub requires. - PR template is 20 lines; no `labels:` key in any template (grep). - `gh issue create --body-file` bypassing forms remains available (documented GitHub behavior; the form's own description says so for the triage identity). Post-merge residue: one glance at "New issue" to confirm the chooser, and the scratch-discussion smoke from the test plan. **Round 1.** Panel converged on head `516f6d7` — grok, codex, kimi all approve, zero blocking points, no in-round pushes. Handed off: summary posted, @danmt requested, `state:needs-human` set. Residue for post-merge: the New-issue click-test and scratch Ideas discussion.
danmt (Migrated from github.com) reviewed 2026-07-22 16:58:16 +00:00
grok-bot-andresmgsl (Migrated from github.com) approved these changes 2026-07-22 17:10:54 +00:00
grok-bot-andresmgsl (Migrated from github.com) left a comment

Verdict: Approve — I agree with this as-is.

First review of tip 516f6d7. Closes #24’s four pieces under .github/.

What holds

  • config.yml: blank_issues_enabled: false + one Discussions contact link — interception by construction (UI only live on default branch post-merge; noted honestly).
  • work-order.yml: section labels match TRIAGE.md contract headings verbatim and in order — Context, Spec, Tasks, Acceptance criteria, Test plan, Dependencies. Descriptions quote the contract bar. No labels: anywhere (triage owns labels; #18 sweep stays meaningful).
  • PR template: 20 lines (<30), short on purpose; acceptance criteria verbatim + Unreleased changelog discipline + round log.
  • Discussion templates (ideas, q-a): light optional prompts only — correct for the “ambiguity allowed” room.
  • No CHANGELOG yet is consistent with #11/#2 sequencing.

Nits

  • None that block. Post-merge click-test of New Issue UI is the only remaining UI proof, and it cannot run from a branch.

No blockers.

**Verdict: Approve** — I agree with this as-is. First review of tip `516f6d7`. Closes #24’s four pieces under `.github/`. ### What holds - **`config.yml`:** `blank_issues_enabled: false` + one Discussions contact link — interception by construction (UI only live on default branch post-merge; noted honestly). - **`work-order.yml`:** section labels match TRIAGE.md contract headings **verbatim and in order** — Context, Spec, Tasks, Acceptance criteria, Test plan, Dependencies. Descriptions quote the contract bar. **No `labels:`** anywhere (triage owns labels; #18 sweep stays meaningful). - **PR template:** 20 lines (<30), short on purpose; acceptance criteria verbatim + Unreleased changelog discipline + round log. - **Discussion templates** (ideas, q-a): light optional prompts only — correct for the “ambiguity allowed” room. - No CHANGELOG yet is consistent with #11/#2 sequencing. ### Nits - None that block. Post-merge click-test of New Issue UI is the only remaining UI proof, and it cannot run from a branch. No blockers.
codex-bot-andresmgsl (Migrated from github.com) approved these changes 2026-07-22 17:15:39 +00:00
codex-bot-andresmgsl (Migrated from github.com) left a comment

Verdict: I agree with everything and have no additional feedback.

Verified head 516f6d7 against #24: all four YAML templates parse, the work-order headings match TRIAGE.md verbatim and in order, blank issues are disabled with one Discussions link, the PR template is 20 lines, and no template applies labels. GitHub currently reports no check runs or status contexts for this head; I found no blocking defect in the complete diff.

Verdict: I agree with everything and have no additional feedback. Verified head 516f6d7 against #24: all four YAML templates parse, the work-order headings match TRIAGE.md verbatim and in order, blank issues are disabled with one Discussions link, the PR template is 20 lines, and no template applies labels. GitHub currently reports no check runs or status contexts for this head; I found no blocking defect in the complete diff.
codex-bot-andresmgsl (Migrated from github.com) approved these changes 2026-07-22 17:17:12 +00:00
codex-bot-andresmgsl (Migrated from github.com) left a comment

Verdict: Approve.

Reviewed the whole PR at head 516f6d7 against #24. The five files implement the four specified surfaces: config.yml disables contributor blank issues and provides the sole Discussions contact link; the work-order form exposes Context, Spec, Tasks, Acceptance criteria, Test plan, and Dependencies verbatim and in order; the PR template is 20 lines; and neither issue nor discussion templates declare labels:. The two discussion forms bind to the existing category slugs and keep every prompt optional.

Verification: git diff --check; parsed every added YAML file with PyYAML; asserted the work-order heading order and required textarea fields; asserted the chooser configuration, discussion non-Markdown fields, and optional validations; counted the PR template; searched .github/ for label keys. GitHub documents that category forms are read from the default branch and named for category slugs, so the acknowledged post-merge UI smoke is legitimate rather than an implementation gap.

No blockers.

Verdict: Approve. Reviewed the whole PR at head `516f6d7` against #24. The five files implement the four specified surfaces: `config.yml` disables contributor blank issues and provides the sole Discussions contact link; the work-order form exposes `Context`, `Spec`, `Tasks`, `Acceptance criteria`, `Test plan`, and `Dependencies` verbatim and in order; the PR template is 20 lines; and neither issue nor discussion templates declare `labels:`. The two discussion forms bind to the existing category slugs and keep every prompt optional. Verification: `git diff --check`; parsed every added YAML file with PyYAML; asserted the work-order heading order and required textarea fields; asserted the chooser configuration, discussion non-Markdown fields, and optional validations; counted the PR template; searched `.github/` for label keys. GitHub documents that category forms are read from the default branch and named for category slugs, so the acknowledged post-merge UI smoke is legitimate rather than an implementation gap. No blockers.
kimi-bot-andresmgsl (Migrated from github.com) approved these changes 2026-07-22 17:26:28 +00:00
kimi-bot-andresmgsl (Migrated from github.com) left a comment

Verdict: Approve — head 516f6d7.

First review this round; verified mechanically against #24 rather than eyeballing:

  • All four YAML files parse (yaml.safe_load on each — OK).
  • Work-order section labels, asserted in order: Context, Spec, Tasks, Acceptance criteria, Test plan, Dependencies — verbatim the list #24's spec enumerates, and the same sequence as TRIAGE.md's contract (the #18 parser keys on these).
  • No labels: key anywhere under .github/ (grep) — decision 2 holds; queue labels stay triage's explicit act.
  • PR template is 20 lines (< 30), carries Closes #, verbatim-criteria instruction, changelog discipline, round log — #24 section 3.
  • config.yml: blank_issues_enabled: false + exactly one contact link pointing at the repo's Discussions — matches the spec block verbatim.
  • Discussion forms: two optional prompts each, required: false throughout — decision 4 (light on purpose) holds.

The one acceptance criterion not provable from a branch (the New-issue click-test) is impossible by construction pre-merge — GitHub parses .github/ templates from the default branch only — and the PR round log says so honestly instead of claiming a screenshot. blank_issues_enabled: false + one form + one contact link is the documented native configuration that produces the specced UI.

No blockers.

**Verdict: Approve** — head `516f6d7`. First review this round; verified mechanically against #24 rather than eyeballing: - **All four YAML files parse** (`yaml.safe_load` on each — OK). - **Work-order section labels, asserted in order:** `Context, Spec, Tasks, Acceptance criteria, Test plan, Dependencies` — verbatim the list #24's spec enumerates, and the same sequence as TRIAGE.md's contract (the #18 parser keys on these). - **No `labels:` key anywhere under `.github/`** (grep) — decision 2 holds; queue labels stay triage's explicit act. - **PR template is 20 lines** (< 30), carries `Closes #`, verbatim-criteria instruction, changelog discipline, round log — #24 section 3. - **`config.yml`:** `blank_issues_enabled: false` + exactly one contact link pointing at the repo's Discussions — matches the spec block verbatim. - **Discussion forms:** two optional prompts each, `required: false` throughout — decision 4 (light on purpose) holds. The one acceptance criterion not provable from a branch (the New-issue click-test) is impossible by construction pre-merge — GitHub parses `.github/` templates from the default branch only — and the PR round log says so honestly instead of claiming a screenshot. `blank_issues_enabled: false` + one form + one contact link is the documented native configuration that produces the specced UI. No blockers.
claude-bot-andresmgsl commented 2026-07-22 17:36:56 +00:00 (Migrated from github.com)

Round 1 summary — panel converged, handing off

Head under review: 516f6d7 (unchanged since the review requests went out — every verdict is of the current head).

Verdicts: grok-bot approve, codex-bot approve, kimi-bot approve. Zero blocking points; grok's sole nit ("post-merge click-test is the only remaining UI proof") is the residue already recorded in the round log, not an action.

What the panel verified, independently and mechanically: all four YAMLs parse; work-order headings equal TRIAGE.md's contract verbatim and in order; blank_issues_enabled: false with exactly one Discussions contact link; PR template 20 lines; no labels: key anywhere; discussion forms optional-only and bound to existing category slugs.

Nothing changed in-round — no pushes were needed, so approvals stand on the head they were given for.

For the merger: templates go live only on the default branch, so the two-minute post-merge check is: click "New issue" (expect the Discussions link first, one form, no blank option) and open a scratch Ideas discussion, per #24's test plan.

@danmt — this could be merged right now: whole panel approved the current head, no blockers standing. Requesting your review and setting state:needs-human.

## Round 1 summary — panel converged, handing off **Head under review:** `516f6d7` (unchanged since the review requests went out — every verdict is of the current head). **Verdicts:** grok-bot approve, codex-bot approve, kimi-bot approve. Zero blocking points; grok's sole nit ("post-merge click-test is the only remaining UI proof") is the residue already recorded in the round log, not an action. **What the panel verified, independently and mechanically:** all four YAMLs parse; work-order headings equal TRIAGE.md's contract verbatim and in order; `blank_issues_enabled: false` with exactly one Discussions contact link; PR template 20 lines; no `labels:` key anywhere; discussion forms optional-only and bound to existing category slugs. **Nothing changed in-round** — no pushes were needed, so approvals stand on the head they were given for. **For the merger:** templates go live only on the default branch, so the two-minute post-merge check is: click "New issue" (expect the Discussions link first, one form, no blank option) and open a scratch Ideas discussion, per #24's test plan. @danmt — this could be merged right now: whole panel approved the current head, no blockers standing. Requesting your review and setting `state:needs-human`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: heavy-duty/ceremony#26
No description provided.