Bugfix Issue 1073 FixBugTriage Unlabeled Enhancement - sebiboga/testlink-upgraded GitHub Wiki
Bugfix β Issue #1073: fix-bug factory triage mis-selects unlabeled enhancement as a bug
Problem
The autonomous bug-fixing factory (fix-bug.yml, rulebook ai/FIX-ISSUE.md, triage in
ai/AGENTS.md #21) is supposed to pick the newest open bug to fix. Instead, on this
run it picked issue #1073 "Enhancement: Add Metrics & Trends dashboardsβ¦" as its bug
candidate.
Why: fix-bug.yml selects "the newest open issue that does NOT carry a work-type label
(enhancement, task, investigation, documentation)". A batch of 21 issues
(1053β1073) was opened on 2026-09-06 without any label. Those issues are all
feature/analysis proposals (enhancement feature-requests plus #1054 ISTQB Compliance
Review), but because they carried no work-type label the factory cannot tell them apart
from genuine bugs β so it kept returning the newest one (#1073) and burning an entire
2-hour agent run trying to "reproduce" a feature request. If left unlabeled, the next 21
fix-bug runs would each waste their budget on one enhancement.
Measured evidence (pre-fix)
- Open issue count: 190.
- Label histogram of all open issues:
taskβ 158,enhancementβ 11, unlabeled[]β 21,bugβ 0. - Triage command output (pre-fix):
gh issue list --state open --limit 200 --json number,title,labels,createdAt \ --jq 'map(select([.labels[].name] | any(. == "enhancement" or . == "task" or . == "investigation" or . == "documentation") | not)) | first' # => {"createdAt":"2026-09-06T10:58:15Z","labels":[],"number":1073,"title":"Enhancement: Add Metrics \u0026 Trends dashboards..."} - #1073 body verified by reading it: a feature proposal ("Add a dedicated Metrics & Trends area under the Reports menuβ¦") with an Acceptance-criteria list. No symptom, no regression. Not a bug.
Root Cause
ai/AGENTS.md#21 defines triage:fix-bug.ymlpicks the newest open issue without a work-type label.- Issues 1053β1073 were created with
labels: [](metadata defect β the creators did not apply the required work-type labels). - Because those issues are invisible to the factory's skip-list, they are indistinguishable from bugs, so the triage returns them as "the bug to fix".
Blast radius: 21 unlabeled issues out of 190 (β11%). No application code path affected β the defect is purely in the CI triage metadata.
Fix (minimal)
Per AGENTS.md #21 ("ALWAYS label them correctly so the triage works"), each unlabeled issue got its correct work-type label:
- 20 feature-request issues β
enhancement:gh issue edit 1053 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 --add-label enhancement - #1054 "ISTQB Compliance Review" (analysis/study β matrix + backlog, not a feature) β
investigation:gh issue edit 1054 --add-label investigation
Verification (error-free)
- Triage now returns no bug candidate: the jq from above emits empty.
- Bug-label open count: 0 (no genuine open bug ever existed).
- No unlabeled open issues remain: 0.
- Labels read back: #1073
enhancement, #1054investigation, #1068enhancement.
Regression
tmp/TLU_Test_Cases.md β Regression β Issue #1073 suite (RF-1073.1 β¦ RF-1073.7),
result 7/7 PASS. No application code or i18n bundles touched.
Files changed
None (metadata-only fix on GitHub issues; no repo source files altered on this run β this document and the TLU suite are the only local artifacts).
Refs
#1073 β this issue was the selected target; the actual defect fixed is the factory triage metadata that caused enhancement #1073 to be mis-selected as a bug.