You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The GitHub issue triage automation and users with repository write access may grant ready-for-dev. The repository workflow acts only as a permission guard: when an actor without write access applies that label, it removes the label so the triage automation can reassess the issue through its existing unlabeled event trigger.
Acceptance Criteria
A newly applied ready-for-dev label is retained when GitHub reports the actor's permission as write, maintain, or admin.
This same permission rule retains labels from all-hands-bot; there is no bot-specific exception.
A newly applied ready-for-dev label from an actor with triage, read, or no repository permission is removed.
The repository workflow never adds ready-for-dev or independently evaluates issue content.
Existing linked-PR description checks are refreshed after an authorized label addition or any label removal.
Readiness evaluator and feedback-comment code with no remaining callers is removed.
The policy uses only issues: write for label policing, plus the existing minimum permissions needed to refresh linked PR checks.
OpenHands AI triage
The following comments and acceptance criteria were added by the OpenHands AI agent.
Triage
Transfer authority over ready-for-dev from the repository workflow to the GitHub issue triage automation. The issue-readiness-check.yml workflow is reduced to a provenance guard: it no longer adds ready-for-dev or evaluates issue content, and instead removes a ready-for-dev label whenever the applying identity is not all-hands-bot (the automation's GitHub identity), so the triage automation reassesses through its existing unlabeled trigger. The linked-PR description gate (pr-description-check.yml / check_pr_description.py) remains the sole consumer of the label and must keep working, including the existing label-change refresh (refresh_linked_pr_checks.py).
Scope is limited to the issue-readiness workflow and the evaluator/feedback-comment code it currently runs (check_issue_readiness.py, post-readiness-comment.mjs), their tests, and the AGENTS.md reference paragraph. The PR description check, the linked-PR refresh script, and the triage automation itself are unchanged.
Non-goals: do not change PR description validation rules or the ready-for-dev gate in check_pr_description.py; do not alter how the triage automation grants the label; do not remove the ready-for-dev label from the repository; do not modify pr-description-check.yml.
Acceptance Criteria
issue-readiness-check.yml no longer runs check_issue_readiness.py and no longer adds the ready-for-dev label or posts a readiness feedback comment for any issue.
When a ready-for-dev label is applied by any identity other than all-hands-bot, the workflow removes it.
When a ready-for-dev label is applied by all-hands-bot, the workflow leaves it in place.
On a ready-for-devlabeled or unlabeled event, the workflow still runs refresh_linked_pr_checks.py so linked open PR description checks are re-run.
check_issue_readiness.py and post-readiness-comment.mjs are removed, and no remaining reference to them exists in .github/workflows/, .github/scripts/, tests/, or AGENTS.md; check_pr_description.py and refresh_linked_pr_checks.py still import and run without those removed modules.
tests/test_check_issue_readiness.py is removed or repurposed so the suite passes; tests/test_check_pr_description.py and tests/test_refresh_linked_pr_checks.py still pass unmodified.
The workflow's permissions are issues: write for label policing plus the existing minimum for refreshing checks (contents: read, pull-requests: read, actions: write), with no additional elevated permissions.
AGENTS.md is updated so its ready-for-dev workflow description no longer claims the workflow grants the label or evaluates issue content, and instead describes the provenance-guard behavior.
Desired Behavior
The GitHub issue triage automation and users with repository write access may grant
ready-for-dev. The repository workflow acts only as a permission guard: when an actor without write access applies that label, it removes the label so the triage automation can reassess the issue through its existingunlabeledevent trigger.Acceptance Criteria
ready-for-devlabel is retained when GitHub reports the actor's permission aswrite,maintain, oradmin.all-hands-bot; there is no bot-specific exception.ready-for-devlabel from an actor withtriage,read, or no repository permission is removed.ready-for-devor independently evaluates issue content.issues: writefor label policing, plus the existing minimum permissions needed to refresh linked PR checks.OpenHands AI triage
The following comments and acceptance criteria were added by the OpenHands AI agent.
Triage
Transfer authority over
ready-for-devfrom the repository workflow to the GitHub issue triage automation. Theissue-readiness-check.ymlworkflow is reduced to a provenance guard: it no longer addsready-for-devor evaluates issue content, and instead removes aready-for-devlabel whenever the applying identity is notall-hands-bot(the automation's GitHub identity), so the triage automation reassesses through its existingunlabeledtrigger. The linked-PR description gate (pr-description-check.yml/check_pr_description.py) remains the sole consumer of the label and must keep working, including the existing label-change refresh (refresh_linked_pr_checks.py).Scope is limited to the issue-readiness workflow and the evaluator/feedback-comment code it currently runs (
check_issue_readiness.py,post-readiness-comment.mjs), their tests, and theAGENTS.mdreference paragraph. The PR description check, the linked-PR refresh script, and the triage automation itself are unchanged.Non-goals: do not change PR description validation rules or the
ready-for-devgate incheck_pr_description.py; do not alter how the triage automation grants the label; do not remove theready-for-devlabel from the repository; do not modifypr-description-check.yml.Acceptance Criteria
issue-readiness-check.ymlno longer runscheck_issue_readiness.pyand no longer adds theready-for-devlabel or posts a readiness feedback comment for any issue.ready-for-devlabel is applied by any identity other thanall-hands-bot, the workflow removes it.ready-for-devlabel is applied byall-hands-bot, the workflow leaves it in place.ready-for-devlabeledorunlabeledevent, the workflow still runsrefresh_linked_pr_checks.pyso linked open PR description checks are re-run.check_issue_readiness.pyandpost-readiness-comment.mjsare removed, and no remaining reference to them exists in.github/workflows/,.github/scripts/,tests/, orAGENTS.md;check_pr_description.pyandrefresh_linked_pr_checks.pystill import and run without those removed modules.tests/test_check_issue_readiness.pyis removed or repurposed so the suite passes;tests/test_check_pr_description.pyandtests/test_refresh_linked_pr_checks.pystill pass unmodified.issues: writefor label policing plus the existing minimum for refreshing checks (contents: read,pull-requests: read,actions: write), with no additional elevated permissions.AGENTS.mdis updated so itsready-for-devworkflow description no longer claims the workflow grants the label or evaluates issue content, and instead describes the provenance-guard behavior.