fix: feat: gardener quality gate — strip backlog label from poorly structured issues (#483)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
openhands 2026-03-21 17:45:36 +00:00
parent b05cb7824d
commit 70bf18912a

View file

@ -125,11 +125,40 @@ Sibling dependency rule (CRITICAL):
borderline or could be interpreted as compatible, leave it open borderline or could be interpreted as compatible, leave it open
and ESCALATE instead. and ESCALATE instead.
8. Quality gate backlog label enforcement:
For each open issue labeled 'backlog', verify it has the required
sections for dev-agent pickup:
a. Acceptance criteria body must contain at least one checkbox
(``- [ ]`` or ``- [x]``)
b. Affected files body must contain an "Affected files" or
"## Affected files" section with at least one file path
If either section is missing:
a. Look up the 'backlog' label ID:
BACKLOG_LABEL_ID=$(curl -sf -H "Authorization: token $CODEBERG_TOKEN" \
"$CODEBERG_API/labels" | jq -r '.[] | select(.name == "backlog") | .id')
b. Post a comment listing what's missing:
curl -sf -X POST -H "Authorization: token $CODEBERG_TOKEN" \
-H "Content-Type: application/json" \
"$CODEBERG_API/issues/<number>/comments" \
-d '{"body":"This issue is missing required sections. Please use the issue templates at `.codeberg/ISSUE_TEMPLATE/` — needs: <missing items>."}'
Where <missing items> is a comma-separated list of what's absent
(e.g. "acceptance criteria, affected files" or just "affected files").
c. Remove the 'backlog' label:
curl -sf -X DELETE -H "Authorization: token $CODEBERG_TOKEN" \
"$CODEBERG_API/issues/<number>/labels/$BACKLOG_LABEL_ID"
d. Log to the result file:
echo "ACTION: stripped backlog from #NNN — missing: <missing items>" >> "$RESULT_FILE"
Well-structured issues (both sections present) are left untouched
they are ready for dev-agent pickup.
Processing order: Processing order:
1. Handle PRIORITY_blockers_starving_factory first promote or resolve 1. Handle PRIORITY_blockers_starving_factory first promote or resolve
2. AD alignment check close backlog issues that violate architecture decisions 2. AD alignment check close backlog issues that violate architecture decisions
3. Process tech-debt issues by score (impact/effort) 3. Quality gate strip backlog from issues missing acceptance criteria or affected files
4. Classify remaining items as dust or escalate 4. Process tech-debt issues by score (impact/effort)
5. Classify remaining items as dust or escalate
Do NOT bundle dust yourself the dust-bundling step handles accumulation, Do NOT bundle dust yourself the dust-bundling step handles accumulation,
dedup, TTL expiry, and bundling into backlog issues. dedup, TTL expiry, and bundling into backlog issues.