docs: document auto-ACK seeding for empty pure producers [doc-updater] - #2596
Merged
Conversation
Contributor
There was a problem hiding this comment.
Review summary
Documentation-only PR adding a 29-line subsection that describes the auto-ACK pure-producer seeding mechanism shipped in #2583. I verified each technical claim against the implementation:
ApprovalMatrix.seed_auto_ack_for_empty_pure_producersatorchestrator/approval_matrix.py:235— records a proposal then ACKs from every critical reviewer at the returned version. Doc's "empty proposal + synthetic ACK from every critical reviewer" matches.ReviewGraph.empty_pure_producersatorchestrator/review_graph.py:166— predicate isis_producer ∧ ¬producers_with_tasks ∧ ¬is_dual_role. Doc's "pure producers only; dual-role roles always run" matches._derive_producer_roles_with_tasksatorchestrator/routes/pipelines.py:10136— returnsNonewhenslice_id is None or not has_contract; narrowly catchesContractNotFoundError/ContractValidationError/OSError. Doc's "not applied when the pipeline has no contract or when the contract cannot be loaded — preserves pre-#2581 unconditional-roster behavior" matches.- Pre-seeded shortcut preamble at
orchestrator/routes/pipelines.py:11266-11313— the lifecycle the doc transcribes (tryconfirmed, wait-loop subscriptions includingCONSENSUS_ACK/CONSENSUS_NACKfor the dual-role-NACK-recovery path,register_open_questiononproducer_not_fully_acked, never callpropose) is a faithful summary of the actual prompt text. - Sequencing — seed runs before spawn at
concurrent_executor.py:423-435, so the "pre-seeds the BRC matrix before spawning the agent team" framing is correct.
Placement (between "Recovery Mechanisms" and "Delphi Redaction") and the H3/H4 nesting are consistent with the surrounding document.
Non-blocking
- The doc states "empty proposal at version 1" / "ACK at version 1" unconditionally. The
seed_auto_ack_for_empty_pure_producersdocstring is careful to note that re-invocations would land seeds at a higher version. In production the orchestrator calls the seed exactly once per matrix (concurrent_executor.py:423-435), so the simplification is accurate for the real call path — fine to leave as-is. If you wanted to be pedantic, you could match the helper's docstring wording ("at the new version" rather than "at version 1") but it would not improve operator-facing clarity.
No blocking issues. Approving.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
Contributor
Author
| egg is addressing review feedback... |
Contributor
Author
Response to review feedbackThanks for the thorough verification against the implementation. Per-item disposition
No code changes pushed — the only feedback item was an explicitly-endorsed non-blocker. — Authored by egg |
Contributor
Author
|
egg feedback addressed. View run logs 1 previous review(s) hidden. |
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.
docs: Add Auto-ACK for Empty Pure Producers section
Update documentation to reflect changes from a2d786f (#2583):
### Auto-ACK for Empty Pure Producers (#2581)subsection indocs/guides/concurrent-execution.mdbetween "Recovery Mechanisms"and "Delphi Redaction", documenting the new proactive BRC deadlock
prevention mechanism.
The commit introduced orchestrator-side pre-seeding of BRC matrix entries
for pure-producer roles (CODER, DOCUMENTER) that have no tasks in a slice's
plan. Without the seed, those producers propose an empty artifact list and
pure reviewers NACK indefinitely — deadlocking consensus. Agents receive
a special prompt shortcut block instructing them to skip
proposeand callconfirmeddirectly; this doc captures that lifecycle for agent authorsand operators.
Triggered by: #2583
Authored-by: egg