Merge pull request #26 from claude-bot-andresmgsl/feat/entry-templates
feat: entry templates — the pipeline's doors made mechanical
This commit is contained in:
commit
ff7ef6c617
5 changed files with 142 additions and 0 deletions
19
.github/DISCUSSION_TEMPLATE/ideas.yml
vendored
Normal file
19
.github/DISCUSSION_TEMPLATE/ideas.yml
vendored
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# Light on purpose: discussions are where ambiguity is ALLOWED — a form
|
||||
# that demands rigor at the door defeats the room's purpose (issue #24,
|
||||
# decision 4). If these prompts fight the flow in practice, delete them
|
||||
# before adding fields to them.
|
||||
body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What's the itch?
|
||||
description: >-
|
||||
Vague is fine — a bug, an idea, a "we should…". Triage turns this
|
||||
into work (or an answer); you don't have to.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What would "done" feel like?
|
||||
description: Optional — a sketch of the outcome, if you can already see it.
|
||||
validations:
|
||||
required: false
|
||||
15
.github/DISCUSSION_TEMPLATE/q-a.yml
vendored
Normal file
15
.github/DISCUSSION_TEMPLATE/q-a.yml
vendored
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# Light on purpose — same reasoning as ideas.yml (issue #24, decision 4):
|
||||
# optional prompts only, delete before hardening.
|
||||
body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What's the question?
|
||||
description: Ask it plainly — context and links help, none are required.
|
||||
validations:
|
||||
required: false
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What have you tried or read already?
|
||||
description: Optional — saves the answerer a lap.
|
||||
validations:
|
||||
required: false
|
||||
13
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
13
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# The new-issue interception (issue #24, decision 1): interception over
|
||||
# instruction — prose alone has already proven insufficient everywhere else
|
||||
# in this org. With blank issues disabled and exactly one form, a "New
|
||||
# issue" click shows the discussion link first; that auto-suggest is native
|
||||
# GitHub behavior, no automation needed.
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Ideas, bugs, questions — start a Discussion
|
||||
url: https://github.com/heavy-duty/ceremony/discussions
|
||||
about: >-
|
||||
Humans (and agents) never file issues here — discussions are where
|
||||
intent lives. Triage converges every discussion to an outcome, and
|
||||
only triage mints issues (TRIAGE.md).
|
||||
75
.github/ISSUE_TEMPLATE/work-order.yml
vendored
Normal file
75
.github/ISSUE_TEMPLATE/work-order.yml
vendored
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
# The issue contract (TRIAGE.md "The issue contract") as a form, so every
|
||||
# minted issue lands with the same bones and a later parser (#18) can key on
|
||||
# stable section headings. Consistency, not a gate: the form applies no
|
||||
# labels — queue labels are triage's explicit act (LABELS.md), and #18's
|
||||
# sweep is what catches non-triage authors, so the form must not pre-judge
|
||||
# that (issue #24, decision 2).
|
||||
name: Work order (triage only)
|
||||
description: >-
|
||||
The issue contract (TRIAGE.md) as a form. Only triage mints issues —
|
||||
everyone else starts a Discussion. Triage may still compose by hand when
|
||||
the form fights it: `gh issue create --body-file` bypasses forms and stays
|
||||
legitimate for the triage identity.
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >-
|
||||
**The title names the deliverable** — "lib/version.sh — one version
|
||||
abstraction, two backends", never "improve version handling". The
|
||||
bar for everything below, stated once: a competent builder who has
|
||||
read only this issue and the repo can succeed (TRIAGE.md). Labels
|
||||
(type, `scope:*`, `ready`/`blocked`) are your explicit act after
|
||||
minting — this form applies none.
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
label: Context
|
||||
description: >-
|
||||
Why this exists, with links — the discussion it came from, the code
|
||||
it touches (permalinks at a pinned SHA, so line references cannot
|
||||
rot), prior art in sibling repos.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: spec
|
||||
attributes:
|
||||
label: Spec
|
||||
description: >-
|
||||
Decisions made, not options listed. If the spec still has an open
|
||||
question, the issue is not ready to exist.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: tasks
|
||||
attributes:
|
||||
label: Tasks
|
||||
description: The steps, checkboxed, in order.
|
||||
placeholder: "- [ ] the first step"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: acceptance-criteria
|
||||
attributes:
|
||||
label: Acceptance criteria
|
||||
description: >-
|
||||
Checkboxed, verifiable, and honest — these become the builder's
|
||||
definition of done and the reviewer's review spec, verbatim.
|
||||
placeholder: "- [ ] a verifiable outcome"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: test-plan
|
||||
attributes:
|
||||
label: Test plan
|
||||
description: What proves it, including the cases that must fail.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: dependencies
|
||||
attributes:
|
||||
label: Dependencies
|
||||
description: >-
|
||||
`Blocked by #N` / `Blocks #N`, and `Part of #E` when an epic
|
||||
organizes it — or state "None".
|
||||
validations:
|
||||
required: true
|
||||
20
.github/pull_request_template.md
vendored
Normal file
20
.github/pull_request_template.md
vendored
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<!-- Short on purpose: a template longer than a small PR gets deleted by
|
||||
reflex, not read (issue #24). One issue, one PR — draft while building. -->
|
||||
|
||||
Closes #
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
<!-- The issue's checkboxes, VERBATIM — reviewers diff this against the
|
||||
issue. Check them honestly as you go; a criterion you can't check goes back
|
||||
to the issue for triage to amend, not silently unshipped. -->
|
||||
|
||||
## Changelog
|
||||
|
||||
- [ ] One line under `## Unreleased` — inserted **above** the heading below
|
||||
it, never over it — or no behavior change, stated here.
|
||||
|
||||
## Round log
|
||||
|
||||
<!-- Append each round's summary here: what changed, what was verified.
|
||||
Rounds are answered whole — one reply covering every point. -->
|
||||
Loading…
Reference in a new issue