fix(panel-review): orchestrator self-arbitrates and emits in skill contract#907
Merged
danielmeppiel merged 1 commit intomainfrom Apr 24, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Fixes the PR Review Panel workflow prompt so the orchestrator reliably produces a single synthesized verdict comment (addressing the “zero comments emitted” regression introduced by the Step 3 prompt rewrite in #905).
Changes:
- Replaces “Output contract” wording with “Workflow-only guardrails” to avoid implying a separate CEO agent must emit the final verdict.
- Explicitly states the orchestrator performs CEO arbitration and must emit the final synthesized verdict itself.
- Clarifies the comment is written via the output channel and published by a downstream job.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/pr-review-panel.md | Updates Step 3/4 prompt text to ensure the orchestrator self-synthesizes and emits exactly one final verdict comment. |
Copilot's findings
- Files reviewed: 1/1 changed files
- Comments generated: 0
…ntract The previous wording in #905 framed the CEO as a separate emitter and told the orchestrator to instruct each sub-agent 'do not post any comment'. This produced two regressions: 1. Sub-agents launched via the task tool do not have safe-outputs MCP access to begin with -- the no-op instruction added orchestration bloat without protecting anything. 2. The 'CEO synthesizes the single verdict' phrasing made the orchestrator wait for a CEO sub-agent that was never dispatched. Result: agent_output.json={"items":[]} -- zero comments posted. Fix lives in the skill (the authoritative source), not the workflow: - SKILL.md execution checklist step 5: orchestrator runs CEO arbitration as itself, never delegates to a sub-agent. - SKILL.md execution checklist step 7: orchestrator writes the comment to safe-outputs.add-comment, never calls GitHub API. - SKILL.md output contract: cap reference updated to fail-soft ceiling of 7 (matches workflow frontmatter). Workflow .md is now a thin shell: gather PR context, then defer to the skill for routing, dispatch, arbitration, emission. No more duplicated orchestration logic at the workflow boundary. Closes #906 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
cab3289 to
9bf2770
Compare
This was referenced Apr 24, 2026
Merged
Merged
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.
Problem
PR #905 broke the panel: agent posts zero comments. Issue #906 captures the failure on run 24897368527.
Root cause
Inspected the agent artifact (
agent_output.json={"items":[]}, full stdio transcript). Two coupled issues with #905:The 'do not post any comment; return to orchestrator' instruction is a no-op. Sub-agents launched via the
tasktool do not have safe-outputs MCP access -- only the orchestrator session does.Real bug: phrasing the contract as 'CEO synthesizes the single verdict' framed CEO as a separate emitter. The orchestrator dispatched 5 personas, got 4 results, was waiting on a slow one, never dispatched apm-ceo, and the session ended at 6m without ever reaching synthesis.
Fix lives in the skill, not the workflow
The user's architectural point:
.apm/skills/apm-review-panel/SKILL.mdis the authoritative source for routing, dispatch, arbitration, emission. The workflow .md should be a thin shell.This PR:
safe-outputs.add-comment, never the GitHub API.maxcap reference updated to fail-soft ceiling of 7 (matches workflow frontmatter).Stats
3 files changed, 23 insertions(+), 36 deletions(-)-- net simpler, single source of truth.Verification
Will be verified live by re-triggering the panel on PR #889 after merge.
Closes #906.