docs: clarify Codex subagent liveness#1980
Closed
Seekers2001 wants to merge 1 commit into
Closed
Conversation
Seekers2001
marked this pull request as ready for review
July 13, 2026 14:58
5 tasks
muunkky
added a commit
to muunkky/superpowers
that referenced
this pull request
Jul 14, 2026
obra#1982 claimed 'reviewed all open AND closed PRs' while missing obra#362 — a closed PR proposing the same close_agent rule, carrying obra's own 'we'd welcome a fresh PR' invitation — and obra#1980, open before ours on the same lineage. That omission is the obra#1166 death and is fatal regardless of merit. Body corrected before triage. The lesson is in the row: search closed history by the rule's own keywords, not just by issue number.
Author
|
Closing — this and a batch of similar low-effort autonomous submissions from Codex Desktop were made in error without review. Sorry for the noise. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1979.
Who is submitting this PR? (required)
codex-cli 0.144.2goWhat problem are you trying to solve?
Issue #1979 documents a real Codex session where the controller treated repeated
wait_agenttimeouts, silence aftersend_message, and an unchanged worktree as proof that a child was stuck. It then interrupted the child and split the task even though those signals do not establish child liveness. The issue's redacted trace records 12 mailbox timeouts, 8 filesystem polls, and 0 child tool calls visible to the parent; those figures are evidence supplied by the reporter, not measurements invented for this PR.The existing Codex reference names the coordination tools but does not define their liveness semantics, while subagent-driven-development says how to handle reported statuses without saying that controllers must not infer
BLOCKEDorNEEDS_CONTEXTfrom mailbox silence. That gap reproduces the failure mode under deadline and sunk-cost pressure.What does this PR change?
It documents the mailbox, queueing, and liveness semantics of
wait_agent,send_message, andfollowup_taskin the Codex tool reference. It also makes subagent-driven-development consume that definition when deciding whether an implementer is actually blocked or needs context.Is this change appropriate for the core library?
Yes. The decision rule applies to any Codex project using Superpowers' subagent workflows, independent of repository, language, or domain. It clarifies an existing core harness adapter and an existing generic workflow. It adds no service, dependency, personal configuration, or project-specific behavior.
What alternatives did you consider?
send_messagecalls still only queue context; they do not request an immediate turn from an idle target.The chosen change uses the existing
followup_taskprimitive when an answer is actually required and otherwise waits for an explicit status or runtime error.Does this PR contain multiple unrelated changes?
No. The Codex reference defines the coordination semantics, and subagent-driven-development applies the same semantics at the status-decision point. Neither file is useful as a standalone fix: definition without consumption leaves the failure mode, while consumption without a canonical reference duplicates tool semantics in a workflow skill.
Existing PRs
I searched all PR states immediately before submission for
1979,wait_agent,mailbox liveness, andfollowup_task. #1926 documents deferred tool-name mapping, #1662 documents deferred subagent tool discovery, and merged #963 corrects the wait-tool name. None defines mailbox timeout/liveness semantics or the SDD rule for inferring implementer status.Environment tested
codex-cli 0.144.2)New harness support (required if this PR adds a new harness)
Not applicable. This PR clarifies behavior for the existing Codex harness and does not add a harness integration.
Evaluation
wait_agenttimeouts, no response to a queue-onlysend_message, and no new files while a deadline, sunk-cost concern, and manager instruction pushed it to interrupt and split the task. The controller had to decide whether those observations established that the implementer was blocked.followup_taskwhen an immediate answer was required, and otherwise continued waiting for an explicit report or runtime failure.Rigor
superpowers:writing-skillsand completed adversarial pressure testing (results below)Evaluation methodology: each trial used a fresh subagent session and the same combined pressure factors (deadline, manager authority, sunk cost, and an unchanged worktree). The scoring criterion was behavioral: do not infer
BLOCKED/NEEDS_CONTEXTfrom those observations; usefollowup_taskif a synchronous answer is required. The wording was added only after the 0/5 baseline, then retested independently to 5/5.Static verification:
git diff --check— passTZ=UTC bash tests/codex-plugin-sync/test-sync-to-codex-plugin.sh— passTZ=UTC bash tests/codex/test-package-codex-plugin.sh— all content, mode, dirty-worktree, and zip timestamp assertions pass; one pre-existing macOS display mismatch remains for the normalized tar timestamp (Dec 31 1969expected,Jan 1 1970displayed)Human review