Commit Graph
4 Commits
Author SHA1 Message Date
68eeb7841c ci: harden description checks — unfilled dropdowns, gameable test plans, non-issue links (#2099)
* ci: harden description checks (dropdown placeholder, how-to-test, link \b)

- issue: flag sections still showing the "-- Please Select --" dropdown
  placeholder (added in #2068) as a single comma-separated line item;
  presence-only checks previously let an un-chosen dropdown pass.
- PR: replace the numbered-step "How to Test" rule with a non-trivial
  content requirement (>=30 chars). The old /\d+\.\s*\S/ rule both
  false-failed prose/code-block test plans and was gamed by an empty
  "1. 2. 3." shell; the message now explains what detail to provide.
- PR: tighten the linked-issue regex to /#\d+\b/ so a hex colour like
  #1a2b3c no longer counts as an issue reference.

---------

Co-authored-by: Povilas Kirna <povilas.kirna@pebble.net>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-04 08:16:36 +02:00
Povilas Kirna 7c7ac1021a ci: enforce issue/PR description completeness for template-bypassing submissions (#1959)
* ci: add issue/PR description completeness checks (#1958)

Two github-script workflows that validate description structure on
issue/PR open/edit/reopen, for submissions that bypass the browser
template (API, gh CLI, agent bulk PRs).

- PR check: Summary, Linked Issue, Type of Change, duplicate-search
  box, How to Test.
- Issue check: body length + per-label bug/enhancement fields, plus a
  bug+enhancement conflict guard.
- Pass deletes any prior bot comment and applies `ready for review`;
  fail posts an in-place comment, fails the check, and applies
  `needs work` (PRs) / `needs more info` (issues).
- References existing labels only — never creates or recolours repo
  labels (checks existence first, warns and skips if absent).
- Safe pull_request_target: checkout pinned to the base ref, sparse
  `.github/scripts` only; PR head never checked out.

Closes #1958
Co-authored-by: Povilas Kirna <povilas.kirna@pebble.net>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-03 16:58:10 +02:00
Povilas KirnaandClaude Sonnet 4.6 34918d9921 chore: add PR template, issue templates (#1211)
* chore: add PR template, issue templates, and triage action

Adds a complete contribution quality layer to reduce maintainer triage burden:

- .github/pull_request_template.md — structured PR description with checklist
  enforcing target branch, one-concern rule, CI green, no print(), schema
  regeneration, and ADR/CONTEXT.md update requirements
- .github/ISSUE_TEMPLATE/bug_report.yml — required-field YAML form; GitHub
  blocks submission until reproduction steps and environment are filled in
- .github/ISSUE_TEMPLATE/feature_request.yml — required problem/proposal fields
  with duplicate-check prompt
- .github/ISSUE_TEMPLATE/config.yml — disables blank issues; funnels questions
  to Discussions
- .github/workflows/triage.yml — auto-closes issues and PRs from accounts
  younger than 7 days, and closes anything with an empty or unfilled body

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: simplify to templates only — drop triage workflow

- PR template: target main (not dev), strip TS/pnpm/ADR checklist items
  that aren't enforced in the current codebase yet
- Remove .github/workflows/triage.yml — account-age and auto-close
  policy needs explicit maintainer sign-off before automation

Issue templates and config.yml are unchanged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: drop CI-green item — no active CI workflow yet

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: upgrade templates with feedback from #1222 and #1211 thread

Bug report:
- Add install method dropdown (Docker / pip / Windows / macOS)
- Split into separate Expected Behaviour and Actual Behaviour fields
- Add Model / Backend field for LLM-related bugs
- Add prerequisites checkboxes: duplicate search, security vuln redirect,
  running latest main
- Add Additional Information free-text field

Feature request:
- Add prerequisites checkboxes (searched issues, searched discussions,
  concrete proposal)
- Add area dropdown (Chat/Email/Calendar/Cookbook/etc.) for triage
- Rename and tighten Problem and Solution fields
- Add Prior Art / Related Issues field
- Add Alternatives Considered field

config.yml:
- Replace two generic links with three specific ones: Q&A discussions,
  Ideas discussions, and GitHub Security Advisories for vulnerabilities

PR template:
- Rename Summary section with clearer placeholder text
- Add Linked Issue section (Fixes #NNN)
- Add How to Test section with numbered placeholder steps
- Add Screenshots section for UI changes
- Add duplicate-search checklist item
- Remove No print() item (style note, not a structural requirement)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 02:09:01 +09:00
Povilas Kirna 6063fc51e0 docs: add THREAT_MODEL.md (#1111) 2026-06-02 22:40:37 +09:00