diff --git a/.changelog/unreleased/87-label-seed-expansion.md b/.changelog/unreleased/87-label-seed-expansion.md new file mode 100644 index 0000000..38b12ed --- /dev/null +++ b/.changelog/unreleased/87-label-seed-expansion.md @@ -0,0 +1,10 @@ +### Added + +- Expanded the canonical label seed (`scripts/labels.mjs`) with a common-defaults + set: release-note aliases (`feature`, `fix`, `breaking-change`), conventional + work types (`task`, `ci`, `build`), GitHub built-in defaults (`duplicate`, + `invalid`, `question`, `wontfix`), contributor-onboarding labels (`help wanted`, + `good first issue`, `contrib-candidate`), and triage states (`needs-info`, + `needs-reproduction`, `needs-decision`, `ready`). The `feature`/`fix`/`breaking-change` + aliases close release-note categories declared in `ArchonVII/.github` `release.yml` + that were previously unseeded. (#87) diff --git a/scripts/labels.mjs b/scripts/labels.mjs index 74724c7..1883b5d 100644 --- a/scripts/labels.mjs +++ b/scripts/labels.mjs @@ -20,6 +20,17 @@ export const LABELS = [ { name: 'dependencies', color: '0366D6', description: 'Dependency bump or change' }, { name: 'security', color: 'B60205', description: 'Security-relevant change' }, { name: 'breaking', color: 'B60205', description: 'Breaking change (API, schema, behavior)' }, + // Conventional-commit work types (no dedicated automation; used for triage + scanning). + { name: 'task', color: 'CFD3D7', description: 'Tracked implementation work' }, // matches chore/refactor neutral grey CFD3D7 + { name: 'ci', color: '0366D6', description: 'CI / automation pipeline change' }, // matches dependencies infra blue 0366D6 + { name: 'build', color: '0366D6', description: 'Build system or tooling change' }, // matches dependencies infra blue 0366D6 + + // Compatibility aliases — same color as their canonical label so ArchonVII/.github + // release.yml groups them together in generated notes. Internally prefer the canonical + // enhancement/bug/breaking; these exist for imported PRs, bots, and conventional names. + { name: 'feature', color: 'A2EEEF', description: 'Alias of enhancement (release-note grouping)' }, // = enhancement A2EEEF + { name: 'fix', color: 'D93F0B', description: 'Alias of bug (release-note grouping)' }, // = bug D93F0B + { name: 'breaking-change', color: 'B60205', description: 'Alias of breaking (release-note grouping)' }, // = breaking B60205 // Severity (used by anomaly-to-issue workflow) { name: 'severity:low', color: '0E8A16', description: 'Anomaly severity: low' }, @@ -45,6 +56,10 @@ export const LABELS = [ { name: 'stale', color: 'CFD3D7', description: 'Auto-applied by stale workflow' }, { name: 'pinned', color: '5319E7', description: 'Exempt from stale/lock workflows' }, { name: 'roadmap', color: '5319E7', description: 'Long-running roadmap tracking issue' }, + { name: 'needs-info', color: 'FEF2C0', description: 'Waiting on the reporter for more information' }, // needs-* mirror needs-triage FEF2C0 + { name: 'needs-reproduction', color: 'FEF2C0', description: 'Needs a reliable reproduction before work can start' }, // needs-* mirror needs-triage FEF2C0 + { name: 'needs-decision', color: 'FEF2C0', description: 'Blocked on a maintainer decision' }, // needs-* mirror needs-triage FEF2C0 + { name: 'ready', color: '0E8A16', description: 'Triaged and ready to be worked' }, // ready-to-go green, matches auto-merge 0E8A16 // Workflow / release { name: 'no-changelog', color: 'EDEDED', description: 'Skip the CHANGELOG fragment requirement' }, @@ -57,6 +72,17 @@ export const LABELS = [ { name: 'auto-triaged', color: 'C5DEF5', description: 'Applied by the anomaly auto-triage workflow' }, // auto-triage-label default in anomaly-triage.yml { name: 'doc-orphan', color: 'FBCA04', description: 'Durable doc missing from its index (doc-orphan detector)' }, // base-label default in doc-orphan-detector.yml + // Triage / closure (GitHub's built-in default labels — kept for familiarity + tooling) + { name: 'duplicate', color: 'CFD3D7', description: 'This issue or PR already exists' }, // GitHub default label palette + { name: 'invalid', color: 'E4E669', description: 'Not a valid issue or not actionable' }, // GitHub default label palette + { name: 'question', color: 'D876E3', description: 'Further information is requested' }, // GitHub default label palette + { name: 'wontfix', color: 'FFFFFF', description: 'This will not be worked on' }, // GitHub default label palette + + // Contributor onboarding (CNCF-recommended names for public discovery) + { name: 'help wanted', color: '008672', description: 'Extra attention is needed' }, // GitHub default label palette + { name: 'good first issue', color: '7057FF', description: 'Good for newcomers' }, // GitHub default label palette + { name: 'contrib-candidate', color: 'C5DEF5', description: 'Potential help-wanted / good-first-issue once groomed' }, // tentative/candidate light blue C5DEF5 + // PRD / breakdown (from the `open` skill) { name: 'prd', color: '5319E7', description: 'Parent PRD issue — broken into tracer-bullet sub-issues' }, { name: 'tracer-bullet', color: 'BFD4F2', description: 'Thin vertical slice cutting through all layers' },