Skip to content

chore(panel-review): tighten one-comment contract; safety cap 1 -> 7 - #905

Merged
Daniel Meppiel (danielmeppiel) merged 1 commit into
mainfrom
chore/panel-review-max-7-comments
Apr 24, 2026
Merged

chore(panel-review): tighten one-comment contract; safety cap 1 -> 7#905
Daniel Meppiel (danielmeppiel) merged 1 commit into
mainfrom
chore/panel-review-max-7-comments

Conversation

@danielmeppiel

@danielmeppielDaniel Meppiel (danielmeppiel) commented Apr 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

Tighten the panel-review one-comment contract at the prompt layer, and convert the safe-outputs cap from a hard fail-stop into a soft ceiling.

Changes

Prompt (Step 3 — Output contract)

  • Make it explicit that the single allowed comment must be the CEO's final synthesized verdict, not any sub-agent's intermediate output.
  • Instruct the orchestrator to tell each sub-agent persona: "do not post any comment; return your findings to the orchestrator."
  • Keep the "no GitHub API directly — use the output channel" rule.

Bloat removal

  • Drop the workflow-only ASCII rule from the prompt — it's a project source-code rule, doesn't apply to PR-comment prose.
  • Drop meta references to safe-outputs.add-comment internals — the agent doesn't need to know it runs inside gh-aw.

Safe-outputs (frontmatter)

  • safe-outputs.add-comment.max: 17. With the strengthened prompt-level contract above, the cap becomes a fail-soft ceiling: occasional LLM drift no longer aborts the run at the safe-outputs gate and loses the verdict.

Lockfile

  • .github/workflows/pr-review-panel.lock.yml — recompiled via gh aw compile pr-review-panel (0 errors / 0 warnings).

Security surface

Unchanged. Only write surface remains the safe-outputs comment channel; the permission-isolated downstream job remains the sole publisher. No new secrets, actions, or permissions. Trigger gating untouched.

CopilotAI review requested due to automatic review settings April 24, 2026 14:54

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR increases the safe-outputs.add-comment.max limit for the pr-review-panel agentic workflow so the panel can emit multiple PR comments instead of being restricted to a single comment.

Changes:

  • Bumped .github/workflows/pr-review-panel.mdsafe-outputs.add-comment.max from 1 to 7 and updated related workflow instructions.
  • Recompiled .github/workflows/pr-review-panel.lock.yml to propagate the new safe-outputs configuration.
Show a summary per file
FileDescription
.github/workflows/pr-review-panel.mdRaises the safe-outputs add-comment cap and updates the prompt text about comment emission.
.github/workflows/pr-review-panel.lock.ymlMechanical regen reflecting add_comment.max: 7 in the compiled workflow prompt/config.

Copilot's findings

  • Files reviewed: 2/2 changed files
  • Comments generated: 2

Comment thread.github/workflows/pr-review-panel.md Outdated
Comment on lines +20 to +21
# - the only write surface is safe-outputs.add-comment (max 7,
# one per persona)

CopilotAIApr 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow frontmatter description: still says it posts a single synthesized verdict comment, but this workflow is now configured to allow up to 7 comments. Please update the description: (and any other "single comment" wording) to match the new behavior, then recompile the lockfile so the generated header stays consistent.

Copilot uses AI. Check for mistakes.
Comment thread.github/workflows/pr-review-panel.md Outdated
Comment on lines +133 to +145
@@ -139,8 +141,8 @@ owns the review behavior; this step owns only the emission boundary.
## Step 4: Emit the safe output

Post the verdict by writing the comment body to the agent output channel.
The `safe-outputs.add-comment` job (capped at 1) will pick it up and
post it to PR #$PR.
The `safe-outputs.add-comment` job (capped at 7) will pick them up and
post them to PR #$PR.

CopilotAIApr 24, 2026

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Step 2 instructs the agent to follow the apm-review-panel skill's output contract exactly, but Step 3/4 now instruct emitting up to 7 safe-outputs.add-comment items. The skill currently specifies "exactly ONE comment" and references safe-outputs.add-comment.max: 1, so these instructions are contradictory and may lead to inconsistent agent behavior. To achieve the PR goal (one comment per persona), update the apm-review-panel skill output contract/verdict template to explicitly support multi-comment emission (or keep single-comment emission here and treat max: 7 only as a safety cap).

Copilot uses AI. Check for mistakes.
@danielmeppiel
Daniel Meppiel (danielmeppiel)force-pushed the chore/panel-review-max-7-comments branch 3 times, most recently from a66f98e to e799f18CompareApril 24, 2026 15:02
@danielmeppielDaniel Meppiel (danielmeppiel) changed the title chore(panel-review): raise safe-outputs add-comment cap from 1 to 7chore(panel-review): tighten one-comment contract; safety cap 1 -> 7Apr 24, 2026
Two coupled changes to the panel review workflow:
1. Output contract (Step 3): make it explicit that the single allowed
comment MUST be the CEO's final synthesized verdict, not any
sub-agent's intermediate output. The orchestrator is now instructed
to tell each sub-agent: 'do not post any comment; return your
findings to the orchestrator.'
2. Safe-outputs cap (frontmatter): bump add-comment max from 1 to 7.
With the prompt-level contract above, the cap is just a fail-soft
ceiling: when an LLM occasionally drifts and tries to emit an extra
comment, the run no longer aborts at the safe-outputs gate and lose
the verdict.
Bloat removal: dropped the workflow-only ASCII rule from the agent
prompt (it's a project source-code rule that doesn't apply to
PR-comment prose) and the meta references to safe-outputs internals
(the agent doesn't need to know it runs in gh-aw).
Recompiled pr-review-panel.lock.yml via 'gh aw compile pr-review-panel'.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@danielmeppiel
Daniel Meppiel (danielmeppiel) merged commit 1e6a621 into mainApr 24, 2026
7 checks passed
@danielmeppiel
Daniel Meppiel (danielmeppiel) deleted the chore/panel-review-max-7-comments branch April 24, 2026 15:19
Daniel Meppiel (danielmeppiel) added a commit that referenced this pull request Apr 24, 2026
…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>
Daniel Meppiel (danielmeppiel) added a commit that referenced this pull request Apr 24, 2026
…ntract (#907)
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>
Sergio Sisternes (sergio-sisternes-epam) pushed a commit that referenced this pull request May 19, 2026
…905)
Two coupled changes to the panel review workflow:
1. Output contract (Step 3): make it explicit that the single allowed
comment MUST be the CEO's final synthesized verdict, not any
sub-agent's intermediate output. The orchestrator is now instructed
to tell each sub-agent: 'do not post any comment; return your
findings to the orchestrator.'
2. Safe-outputs cap (frontmatter): bump add-comment max from 1 to 7.
With the prompt-level contract above, the cap is just a fail-soft
ceiling: when an LLM occasionally drifts and tries to emit an extra
comment, the run no longer aborts at the safe-outputs gate and lose
the verdict.
Bloat removal: dropped the workflow-only ASCII rule from the agent
prompt (it's a project source-code rule that doesn't apply to
PR-comment prose) and the meta references to safe-outputs internals
(the agent doesn't need to know it runs in gh-aw).
Recompiled pr-review-panel.lock.yml via 'gh aw compile pr-review-panel'.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sergio Sisternes (sergio-sisternes-epam) pushed a commit that referenced this pull request May 19, 2026
…ntract (#907)
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>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@danielmeppiel