Summary
Make the agent:ready intake transition atomic and idempotent so a valid issue cannot be falsely escalated while its dev loop starts.
Context
Implementation Notes
- Treat this as workflow state-machine correctness, not a reason to weaken stop labels.
- Avoid running full issue-quality evaluation for unrelated label events merely because
agent:ready is already present.
- Ensure the dev loop starts only after a successful quality result or performs the same validation before adding
in-progress.
- Define the no-op result explicitly; a successful
noop must clear temporary state without becoming a false human escalation.
Acceptance Criteria
Tests/Evals
- Add workflow/event-matrix tests for ready, unrelated labeled, in-progress, invalid ready, noop success, and duplicate delivery.
- Use fixtures and mocked GitHub state; do not dispatch a live provider.
Verification
python3 -m pytest tests/agentic -q
npm test
- Parse both workflow YAML files.
- On a disposable test issue, add
agent:ready once and confirm one quality outcome, one noop attempt, no PR/remote branch, no needs-human, and no lingering in-progress.
Agent Instructions
Human Checkpoints
Out of Scope
Linear
Not applicable. Rafiki delivery is GitHub-only; do not create or update a Linear issue.
Summary
Make the
agent:readyintake transition atomic and idempotent so a valid issue cannot be falsely escalated while its dev loop starts.Context
in-progresswhile another quality run fetched labels; the quality run reportedStop labels present: in-progress, removedagent:ready, and addedneeds-human.noop..github/workflows/agentic-issue-quality.yml,.github/workflows/agentic-dev-loop.yml,scripts/agentic/issue_lint.py,scripts/agentic/dev_loop.py, and focused tests undertests/agentic/in-progressstate cannot invalidate that same intake.Implementation Notes
agent:readyis already present.in-progress.noopmust clear temporary state without becoming a false human escalation.Acceptance Criteria
agent:readytransition yields one authoritative quality decision before the dev loop marks work in progress.in-progressremains a stop label for independent intake attempts but does not invalidate the run that owns it.nooprun opens no PR, creates no remote branch, clears temporary state, and does not addneeds-human.needs-human, and receive a useful quality comment.Tests/Evals
Verification
python3 -m pytest tests/agentic -qnpm testagent:readyonce and confirm one quality outcome, one noop attempt, no PR/remote branch, noneeds-human, and no lingeringin-progress.Agent Instructions
codex/issue-<this-issue>-atomic-ready-intake.mainis green.Human Checkpoints
Out of Scope
Linear
Not applicable. Rafiki delivery is GitHub-only; do not create or update a Linear issue.