Skip to content

feat: add ISSUE_TEMPLATE config, ADR template, PR labeler, FUNDING.yml#12

Open
cryptoxdog wants to merge 1 commit into
mainfrom
feat/adr-labeler-issue-templates
Open

feat: add ISSUE_TEMPLATE config, ADR template, PR labeler, FUNDING.yml#12
cryptoxdog wants to merge 1 commit into
mainfrom
feat/adr-labeler-issue-templates

Conversation

@cryptoxdog

Copy link
Copy Markdown

What

Fills four confirmed gaps from the repo template/root-file audit:

  1. .github/ISSUE_TEMPLATE/config.yml — disables blank issues, adds contact links for security reports, governance/CANONICAL_LAW questions, and the CI kernel API registry. Completes the existing 4-template issue form set (bug_report.yml, ci-failure.yml, feature_request.yml, gov-violation.yml).
  2. docs/adr/template.md + docs/adr/README.md — org-wide MADR-style Architecture Decision Record template. This repo hosts the template only; ADRs themselves are recorded per-consumer-repo under their own docs/adr/. Explicitly scoped as decision history, distinct from CANONICAL_LAW.md (current binding policy) — README documents the relationship and cross-linking convention (Superseded by ADR-NNNN).
  3. .github/labeler.yml + .github/workflows/labeler.yml — path-based PR auto-labeling via actions/labeler@v5, mirroring the blast-radius path groups already defined in CODEOWNERS (workflow-templates/, l9-ci-pack/, ops/, .github/ISSUE_TEMPLATE/, health files, profile/, registry/ADRs). Uses pull_request_target with minimal contents: read / pull-requests: write permissions — never checks out or executes PR branch code.
  4. FUNDING.yml — added as a documented no-op (all fields commented out) rather than omitted, since this looks like an internal/private org with no sponsor links today. Flipping it on later is a one-line change instead of a new file needing CODEOWNERS re-review.

Why

Follow-up from a structural gap audit of this repo: every existing template (issue forms, PR template, health files, CODEOWNERS) was confirmed correctly placed for org-wide inheritance, but these four were missing or incomplete.

Placement rationale

  • ISSUE_TEMPLATE/config.yml must live at .github/ISSUE_TEMPLATE/config.yml — this is the only path GitHub reads for the issue-chooser config.
  • ADR template placed under docs/adr/ rather than .github/ since it's consumed by copying into other repos, not inherited automatically like health files or issue templates — GitHub has no ADR-inheritance mechanism, so this is documentation, not an org default.
  • labeler.yml follows the actions/labeler convention of living at .github/labeler.yml, referenced by configuration-path in the new workflow.
  • FUNDING.yml must live at repo root (or .github/) to render the sponsor button; placed at root alongside the other community health files.

Best-practice notes

  • actions/labeler pinned to a full 40-char commit SHA (8558fd7... = v5.0.0), consistent with this repo's existing SHA-pin discipline (ops/audit-sha-pins.sh per PR ci(dogfood): add actionlint, repo-wide SHA-pin audit, properties.json schema #10).
  • Labeler workflow uses pull_request_target (not pull_request) with the minimum required permission scopes, and does not execute any code from the PR branch.
  • ADR template follows the MADR (Markdown ADR) convention: Status/Context/Decision Drivers/Considered Options/Decision Outcome/Consequences — widely adopted, low-friction format.

Not done in this PR

  • CODEOWNERS is not updated to add ownership rules for the new paths (docs/adr/, .github/labeler.yml) — left for a maintainer to decide ownership, since CODEOWNERS itself is a blast-radius file requiring @cryptoxdog review per its own rules.
  • Root README.md and CANONICAL_LAW.md cross-repo reference gaps identified in the earlier audit are out of scope here — tracked separately.

Test plan

- .github/ISSUE_TEMPLATE/config.yml: disable blank issues, add contact links
- docs/adr/template.md + docs/adr/README.md: standard ADR template (MADR-style)
- .github/labeler.yml + .github/workflows/labeler.yml: auto-label PRs by changed path, mirrors CODEOWNERS blast-radius mapping
- FUNDING.yml: placeholder funding config (org has no public sponsor links yet, left as documented no-op)
@cursor

cursor Bot commented Jul 20, 2026

Copy link
Copy Markdown

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@sonarqubecloud

Copy link
Copy Markdown

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.

1 participant