From 1e9d647216077c99b4cba28ab84c0fe5b30a9a84 Mon Sep 17 00:00:00 2001 From: Baptiste LAFOURCADE Date: Fri, 10 Jul 2026 12:13:41 +0200 Subject: [PATCH] chore(framework): type issues instead of labelling them The forms applied `labels: ["bug"]` and `labels: ["enhancement"]`, but neither label existed on GitHub, so every issue created through them landed unlabelled: zero of the repo's 300 issues carries one. Issue types (Bug, Feature, Task) are defined at the org level and the forms can set them directly. - Both forms swap `labels:` for `type:` and scope their title prefix, matching the scope commitlint already expects on the commit. - New `roadmap.yml` for maintainer-authored work: Problem, Scope, Acceptance criteria, and two optional sections that catch duplicates before they ship. - `labels.yml` keeps only what a bot or a human actually reads. Co-Authored-By: Claude Opus 4.8 --- .github/ISSUE_TEMPLATE/bug_report.yml | 4 +- .github/ISSUE_TEMPLATE/feature_request.yml | 4 +- .github/ISSUE_TEMPLATE/roadmap.yml | 47 ++++++++++++++++++++++ .github/labels.yml | 32 +++++---------- 4 files changed, 61 insertions(+), 26 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/roadmap.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 02f7fc07..f4c6cb21 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,7 +1,7 @@ name: πŸ› Bug Report description: Report a bug or unexpected behaviour in the framework -title: "fix: " -labels: ["bug"] +title: "fix(): " +type: Bug body: - type: markdown attributes: diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 71f57cec..032f0774 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,7 +1,7 @@ name: ✨ Feature Request description: Propose new content or an improvement to the framework -title: "feat: " -labels: ["enhancement"] +title: "feat(): " +type: Feature body: - type: markdown attributes: diff --git a/.github/ISSUE_TEMPLATE/roadmap.yml b/.github/ISSUE_TEMPLATE/roadmap.yml new file mode 100644 index 00000000..e4fde1f2 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/roadmap.yml @@ -0,0 +1,47 @@ +name: πŸ—ΊοΈ Roadmap item +description: "Maintainer-authored work: a skill, a refactor, a rule to enforce" +title: "(): " +type: Task +body: + - type: markdown + attributes: + value: | + For maintainers planning framework work. Reporting a bug or asking for a feature as a user? + Use the **Bug Report** or **Feature Request** form instead. + + The title carries its own scope, matching `commitlint.config.cjs`: `feat(aidd-pm):`, `fix(framework):`, `refactor(aidd-context):`. + - type: textarea + id: problem + attributes: + label: Problem + description: What is wrong or missing today. State the current behaviour, not the fix. + placeholder: The router of `10-learn` is 40 lines of its 153, denser than the four actions it routes to. + validations: + required: true + - type: textarea + id: scope + attributes: + label: Scope + description: What this change does. One bullet per deliverable. + validations: + required: true + - type: textarea + id: acceptance + attributes: + label: Acceptance criteria + description: Checkboxes a reviewer can verify without asking the author. Each one observable. + value: | + - [ ] + - [ ] + validations: + required: true + - type: textarea + id: prior-art + attributes: + label: Prior art in this repo + description: What already exists that this builds on or duplicates. Cite the file and line. Leave empty if you checked and found none. + - type: textarea + id: out-of-scope + attributes: + label: Out of scope + description: What a reader would expect here and will not find, with where it lives instead. diff --git a/.github/labels.yml b/.github/labels.yml index 25ecc914..6160972c 100644 --- a/.github/labels.yml +++ b/.github/labels.yml @@ -1,8 +1,12 @@ # Canonical issue and PR label list for ai-driven-dev/framework. # -# Labels are TRIAGE ONLY: they categorize an issue or PR. They never decide -# where a PR targets β€” routing is by branch prefix (see aidd_docs/memory/vcs.md). -# Keep one triage label per change. +# Labels do NOT categorize an issue. Issue types (Bug, Feature, Task) and the +# org issue fields (Priority, Effort) do that, and the issue forms set the type. +# A label here exists only when a bot or a human reads it, and nothing else can +# carry the signal. +# +# Labels never decide where a PR targets β€” routing is by branch prefix +# (see aidd_docs/memory/vcs.md). # # This file is the source of truth. When the GitHub label set drifts from # this file, sync manually with: @@ -13,35 +17,19 @@ # job). Plugins may create their own labels on install; those are documented in # the plugin, not here. -# --- Triage -------------------------------------------------------------- - -- name: bug - description: Something isn't working - color: d73a4a - -- name: enhancement - description: New feature or request - color: a2eeef - -- name: documentation - description: Improvements or additions to documentation - color: 0075ca - -- name: security - description: Security-sensitive issue or fix (cross-cutting, add to any kind) - color: B60205 +# --- Read by a human ----------------------------------------------------- - name: good first issue description: Good for newcomers color: 7057ff -# --- Dependencies -------------------------------------------------------- +# --- Applied by dependabot (.github/dependabot.yml) ---------------------- - name: dependencies description: Dependency update (dependabot) color: 0366d6 -# --- Release tooling ----------------------------------------------------- +# --- Applied by release-please ------------------------------------------- - name: "autorelease: pending" description: Release Please release PR awaiting merge