docs: add lens reviewers and fan-out docs [doc-updater] - #2075
Conversation
There was a problem hiding this comment.
No agent-mode design concerns. Documentation-only change describing the new advisory lens reviewers (reviewer_security, reviewer_concurrency) and the reviewer_code.parallel knob — no prompt content, output formats, pre-fetching, or LLM-invocation patterns to assess.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Review
Doc-only PR. I verified every technical claim against the source.
Verified ✓
reviewer_security/reviewer_concurrencydefined inshared/egg_contracts/agent_roles.py:623-669, both REVIEW category, allowed_write[reviews/, agent-outputs/],_REVIEWER_BLOCKED_WRITEmatches the documented "blocked" list.- ADVISORY criticality for both lens reviewers in
orchestrator/review_graph.py:247-253(4 advisory edges into coder/tester). _PHASE_REVIEWERS["implement"]registers both new roles (agent_roles.py:1085-1086).- Subagent fan-out prompt (
orchestrator/routes/pipelines.py:4452-4540): threshold gate, partition-by-task, 6-subagent cap, mandatory cross-partition pass that runs in all paths (incl. below-threshold and both fallbacks) — all match the doc paragraph. ReviewerCodeConfig.parallelfield with defaultTrueinshared/egg_contracts/models.py:301-339.get_reviewer_code_parallel()resolver handles all three None-layer paths.- Output filename pattern
{identifier}-implement-reviewer_{security,concurrency}-review.jsonis consistent with existing_verdict_path_for_type()convention. - README implement-box and step 3 wording, and the Concurrent Execution Mode line in
sdlc-pipeline.md:1208-1209, accurately reflect roster composition.
Non-blocking observations
-
Threshold wording is slightly imprecise.
agent-roles.mdsaysfiles_changed > 10 OR loc > 500. The actual gate inpipelines.py:4475isfiles_changed > 10 OR (loc_added + loc_removed) > 500. "loc" is ambiguous — readers could read it as "lines added" only. Suggest:loc_added + loc_removed > 500or "total LOC changed > 500". -
5-minute per-subagent timeout omitted. The fan-out prompt (
pipelines.py:4515) imposes a 300-second wall-clock cap per subagent that NACKs the partition on timeout. The doc paragraph mentions threshold/cap/consistency-pass but skips this. Useful operational detail; consider adding "5-minute (300s) per-subagent timeout". -
"Parallel?" column wording is inconsistent. Existing rows use
Yes (with <peer>, <peer>)to enumerate concurrent peers. The two new rows useYes (advisory)which conflates the parallelism column with criticality. The lens reviewers ARE concurrent withreviewer_code/reviewer_contract/each other — the column should ideally mirror that pattern, e.g.Yes (with reviewer_code, reviewer_contract, reviewer_concurrency). Criticality already has its own column elsewhere; "advisory" can live in the per-role section text. -
"Depends On = coder, tester" carries forward a doc/code drift. The
dependenciesfield inagent_roles.pyfor all four implement-phase reviewers (incl. the two existing ones) is[TASK_PLANNER, RISK_ANALYST], not[CODER, TESTER]. The new rows perpetuate the existing convention; matching the existing pattern is fine, but the underlying drift between the doc table's "Depends On" column and the code'sdependenciesattribute predates this PR. Not asking you to fix it here — flagging so it's visible.
Verdict
Approve. The new content is accurate and matches the code. The four notes above are stylistic / clarity improvements, not blockers.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
- Clarify fan-out LOC threshold as loc_added + loc_removed > 500 (matches pipelines.py:4475 gate, removes ambiguous "loc" wording). - Document 5-minute / 300-second per-subagent wall-clock timeout that NACKs the partition on overrun (pipelines.py:4515). - Replace 'Yes (advisory)' with the existing column convention 'Yes (with <peers>)' for reviewer_security and reviewer_concurrency rows; criticality lives in the per-role section, not the Parallel? column. Authored-by: egg
|
Thanks for the careful review. Pushed fbb297c addressing notes 1–3:
Note 4 ( — Authored by egg |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
No agent-mode design concerns. Re-review delta is a 3-line stylistic/clarity update to docs/reference/agent-roles.md (LOC threshold formula, 5-minute subagent timeout, Parallel? column convention) addressing prior review notes 1–3. No prompt content, output formats, pre-fetching, or LLM-invocation patterns changed.
— Authored by egg
There was a problem hiding this comment.
Re-review
Verified the delta (fbb297c) against source. All three actionable notes from my prior review are correctly addressed:
- Threshold wording —
loc > 500→loc_added + loc_removed > 500. Matches the gate atorchestrator/routes/pipelines.py:4475. - 5-minute timeout — added
(capped at 6, with a 5-minute / 300-second per-subagent wall-clock timeout that NACKs the partition on overrun). Matches the cap atpipelines.py:4515and the NACK-on-overrun rule atpipelines.py:4519-4521(subagents that exceed 300s yield a partition NACK with reason"subagent timeout"). - Parallel? column — both lens-reviewer rows now use
Yes (with reviewer_code, reviewer_contract, reviewer_<peer>), mirroring the existing convention. Criticality stays in the per-role section, as intended.
Note 4 (Depends On = coder, tester doc/code drift) was correctly left out of scope; it predates this PR and the convention is consistent across all four implement-phase reviewer rows.
No new issues introduced. Doc-only delta, no functional impact.
Verdict
Approve.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
| egg is addressing review feedback... |
|
egg feedback addressed. View run logs 6 previous review(s) hidden. |
docs: add lens reviewers and fan-out docs [doc-updater]
Update documentation to reflect changes from a1e69de (PR #2061):
docs/reference/agent-roles.md: Addedreviewer_securityandreviewer_concurrencyto the REVIEW category table and Role Overview table. Added dedicated sections for both advisory lens reviewers. Updatedreviewer_codesection to document the new subagent fan-out behavior (threshold gate, partition-by-task, 6-subagent cap, cross-partition consistency pass, and theparallelknob).README.md: Updated implement phase pipeline diagram and step-3 description to include the two new advisory lens reviewers.docs/guides/sdlc-pipeline.md: Addedreviewer_securityandreviewer_concurrencyto the Concurrent Execution Mode agent list. Addedreviewer_code.parallelto the phase_configs example and documented the knob in a reference table.Triggered by: #2061
Issue: none
Test Plan
shared/egg_contracts/agent_roles.py,orchestrator/review_graph.py,shared/egg_contracts/models.py, andorchestrator/routes/pipelines.pyAuthored-by: egg