The plan-review-agents skill produces a 15-section report with a final decision of Approve, Approve with revisions, or Reject. Currently all three outcomes follow the same code path — section 14 states the verdict in one line plus a rationale sentence. When a plan is rejected, the user must manually cross-reference sections 3 (highest-risk issues), 4 (blocking issues), and 12 (recommended changes) to understand what went wrong and what to fix. There is no actionable, consolidated output for rejection.
The project uses a “self-contained prompt” pattern in plan Next Steps sections: a label followed by a fenced ```text block containing a standalone prompt a user can copy-paste into Claude. This feature brings that pattern into the review panel’s rejection output.
A stress test of the initial design surfaced three high-severity gaps and several medium/low issues that this revised plan addresses:
Re-run loop breakage — Step 7 always appends a ## Panel Review section. On re-run after fixing a rejected plan, reviewers read their own old review and a second Panel Review gets appended. No handling exists for pre-existing panel review sections.
Background mode framing — “Paste into Claude” is wrong when the background agent is Claude. The prompt needs context-aware framing.
Triple-nested fences — The output template wraps the report in a 3-backtick ```markdown fence. Adding an inner ```text block breaks CommonMark parsing. The outer fence must be widened to 5 backticks.
Objective
Extend section 14 of the plan-review-agents report with decision-specific output:
Reject — a #### Rejection Summary (blocking issues with reviewer attribution) and a #### Remediation Prompt (self-contained, fenced ```text block the user can copy-paste into Claude to fix the plan and re-run the panel).
Approve / Approve with revisions — unchanged (verdict line + rationale).
The remediation prompt is context-aware (interactive vs. background mode), handles edge cases (empty blocking issues, split decisions), and the re-run loop works cleanly via dated ## Panel Review headings that preserve history across runs.
Steps
Widen the outer fence in output-template.md from 3 to 5 backticks (lines 20 and 194). Why: CommonMark terminates a 3-backtick fence at the first 3-backtick line it encounters. Verify: Lines 20 and 194 use 5 backticks.
Add reject-only subsections to section 14 in output-template.md. Add #### Rejection Summary and #### Remediation Prompt. Why: Data contract that drives all downstream rendering. Verify: Subsections exist, gated by HTML comments.
Handle empty section 4 in the rejection summary template. Why: A panel can reject without formal blockers. Verify: Template addresses the empty-section-4 case explicitly.
Make the remediation prompt context-aware for background mode. Why: “Paste into Claude” is wrong in background mode. Verify: Template has both variants with a clear mode gate.
Update SKILL.md Step 6 — add a “Rejection remediation” paragraph. Why: The lead needs explicit cross-referencing instructions. Verify: Step 6 names sections 3, 4, 12, plan path, mode detection.
Use dated ## Panel Review headings in SKILL.md Step 7 with seconds precision. Why: Preserve review history; avoid collisions. Verify: Format is ## Panel Review (YYYY-MM-DD HH:MM:SS UTC).
Update html-spec.md — replace badge with decision banner, add remediation section. Why: HTML artifact must render decision status prominently. Verify: Banner replaces badge; no duplicate announcements.
Add Step 8 re-read instruction to SKILL.md. Why: Step 8 needs the plan content including the just-appended Panel Review. Verify: Step 8 instructions include re-reading the plan file.
Update the header comment in output-template.md. Why: Document the rejection flow and 5-backtick convention. Verify: Header mentions rejection flow.
Bump version to 3.4.0 in CHANGELOG and marketplace.json. Why: New feature = MINOR bump. Verify: Both files updated.
Acceptance Criteria
Report output
When the final decision is Reject, section 14 includes #### Rejection Summary and #### Remediation Prompt
When the final decision is Approve or Approve with revisions, section 14 is unchanged
The remediation prompt is a fenced ```text block containing: plan path, blocking issues, critical concerns, recommended changes, and re-run instructions
The prompt is self-contained
Interactive mode says “Copy and paste into Claude”; background mode says “Re-run the panel”
Empty section 4 + Reject is handled with explanatory note
No section renumbering (still 15 sections: 1-14, 15a, 15b)
Re-run loop
Re-runs append a new dated ## Panel Review (YYYY-MM-DD HH:MM:SS UTC) section
Reviewers in subsequent runs see all historical reviews
15a edits still apply on Reject (partial improvement) with a note that some may fail
HTML artifact
Decision banner (<div role="status">) renders for all three outcomes
No decision badge remains in <header>
Reject banner includes remediation section with scrollable <pre>
Clipboard JS has execCommand('copy') fallback; aria-live announces success/failure
Copy button has aria-label (WCAG 4.1.2)
Copy button hidden in print
Historical reviews render as collapsed <details>, newest first
Reject-only remediation, not “approve with revisions”: Approve with revisions already has sections 12 + 15a. A lighter revisions prompt can follow later.
Inside section 14, not a new section: Avoids renumbering 15a/15b. Gated by HTML comments.
Reproduce, don’t summarize: Exact copies from sections 3/4/12 with reviewer role prefixes.
Banner replaces badge: Single <div role="status"> in <main>. No duplicate announcements.
Keep all reviews with dated headings: Seconds precision. No stripping. HTML renders each as collapsed <details>.
Apply 15a edits on Reject: Partial improvement is better than none.
Step 8 re-reads the plan file: Captures historical reviews for HTML generation.
execCommand('copy') fallback: Progressive enhancement for file:// origins.
aria-live pre-exists in DOM: WCAG 4.1.3 compliance.
Copy button aria-label: WCAG 4.1.2 compliance.
Scrollable <pre> with keyboard access: max-height: 300px, tabindex="0", role="region".
Mode-aware prompt variants in template: Single source of truth.
color-mix() with fallback: var(--surface) declared first.
Next Steps
Add a lighter revisions prompt for Approve with revisions: extend the section 14 conditional structure with #### Revisions Summary and #### Revisions Prompt. Bump to 3.5.0.
Add reviewer-prompt guard for ## Panel Review sections: instruct reviewers to treat historical reviews as context, not plan content.
Interview Summary
Interview conducted 2026-05-18. 14 key decisions confirmed across 3 rounds covering technical trade-offs, UI/UX flows, accessibility, and edge cases.
Key Decisions Confirmed
Keep historical reviews inline with dated headings
Both prompt variants in the template
Apply 15a edits on Reject
5-backtick outer fence is safe
Always show a decision banner for all outcomes
All historical reviews in HTML as collapsed sections
Silent clipboard fail (visually); aria-live announces for assistive technology
role="status" on decision banner
Max-height with scroll on remediation <pre>
Manual trace verification
Include all three decision banners in this version
Open Risks
Plan file growth with each re-run
Decision banner scope increase beyond original ask
Dated heading parsing adds logic to Step 8
Scrollable <pre> a11y implementation complexity
Approve with revisions
The plan is well-designed and addresses the core user need. The three highest-risk items are all addressable within the existing plan structure.
Panel Review (2026-05-18 17:45:00 UTC) — full 15-section report
1. Executive Summary
Six reviewers assessed the plan for adding rejection remediation prompts to the plan-review-agents skill. The plan is well-structured with clear steps, strong accessibility considerations, and thoughtful edge case handling. All six reviewers provided findings.
Overall assessment: Approve with revisions — the plan is implementable as-is but benefits from the refinements identified below.
2. Role-by-Role Review
Product Manager
Approval
Approve with revisions
Works well
Feature addresses a real pain point; self-contained prompt pattern aligns with project conventions
Critical concerns
Scope expansion to all-outcome banners is a risk to delivery timeline
Missing requirements
Success metrics for measuring feature adoption
Lead Developer
Approval
Approve with revisions
Works well
5-backtick CommonMark approach, section 14 nesting, mode-aware branching are sound
Critical concerns
Step 8 cannot access historical reviews without re-reading plan file after Step 7; 15a edits on Reject may partially fail
Missing requirements
Re-read instruction between Steps 7 and 8; partial-edit documentation
UX Designer
Approval
Approve with revisions
Works well
Decision banner placement follows UX best practices; copy-paste workflow is validated
Critical concerns
“Silent clipboard fail” language contradicts aria-live announcement
Missing requirements
Clarify “silent” means visually silent only
Lead Frontend Engineer
Approval
Approve with revisions
Works well
Architecture is sound; section 14 nesting avoids renumbering
Banner must replace badge; extend Security & Escaping Contract
Accessibility Expert
Approval
Approve with revisions
Works well
role="status" on banner, tabindex="0" on scrollable <pre>, aria-live feedback are correct; WCAG 1.4.1 compliance via text labels
Critical concerns
aria-live span must pre-exist in DOM (WCAG 4.1.3); copy button needs aria-label (WCAG 4.1.2)
Missing requirements
Pre-existing aria-live span in HTML skeleton; accessible copy button name
Security Expert
Approval
Approve with revisions
Works well
Existing CSP is adequate; clipboard as progressive enhancement is correct
Critical concerns
Remediation prompt content must be HTML-escaped before injection into <pre>
Missing requirements
Security & Escaping Contract must explicitly name remediation content
3. Highest-Risk Issues
[Lead Dev] Step 8 re-read gap — Step 8 only has the synthesized report from Step 6, not the modified file. Historical Panel Review sections won’t appear in the HTML. Severity: High.
[Frontend] Badge/banner duplication — Two announcement points cause screen readers to announce the decision twice. Severity: High.
[Security] Remediation content escaping — User-authored plan text in remediation prompt could break <pre> rendering or create injection vectors. Severity: Medium.
4. Blocking Issues
No formally blocking issues. All three highest-risk items are addressable within the existing plan structure.
5. Non-Blocking Improvements
[PM] Add success metrics
[UX] Clarify “silent fail” language
[A11y] Copy button aria-label
[Frontend]color-mix() CSS fallback
[Lead Dev] Partial-edit note for Reject
[A11y]aria-live span must pre-exist in DOM
[Security] Extend Security & Escaping Contract
6. Cross-Reviewer Agreements
All reviewers agree the 5-backtick fence approach is correct
PM + UX + A11y agree the decision banner should be visible for all outcomes
Lead Dev + Frontend + Security agree the architecture is sound
UX + A11y agree remediation must be outside collapsed appendix
Frontend + A11y agree the banner should replace the badge
7. Cross-Reviewer Conflicts
Topic
Conflict
Resolution
“Silent fail” vs. aria-live
Interview says “silent clipboard fail” but also “announce both success and failure”
PM: unbounded file growth. Lead Dev: reviewers benefit from history.
Accept growth; Next Steps item for reviewer-prompt guard
8. Assumption Challenges
Users will know to copy the prompt — Decision banner placement and copy button mitigate this; ensure clear introductory text.
execCommand('copy') will continue working — Deprecated but plan treats clipboard as progressive enhancement. Acceptable.
9. Balance Assessment
All six perspectives represented. The plan leans technical but PM and UX reviews ensured user-value and interaction-design concerns were addressed. No single perspective dominated.
10. Risk Matrix
Risk
Likelihood
Impact
Mitigation
Step 8 re-read gap
High (confirmed)
High
Add re-read instruction
Badge/banner duplication
High (confirmed)
High
Replace badge with banner
Remediation content injection
Medium
Medium
Extend Escaping Contract
color-mix() unsupported
Low
Low
var(--surface) fallback
Plan file growth
Medium
Low
Reviewer-prompt guard (Next Steps)
15a edits partially fail on Reject
Medium
Low
Partial-edit note
11. Missing Requirements
No success metrics (deferred to implementation)
No explicit clipboard test plan (acceptable for plan-level spec)
No rollback strategy (acceptable — all changes are additive)
12. Recommended Changes
Add Step 8 re-read instruction to SKILL.md
Replace badge with banner in html-spec.md
Extend Security & Escaping Contract for remediation content
Add aria-label to copy button
Add pre-existing aria-live span to HTML skeleton
Add color-mix() CSS fallback
Clarify “silent fail” in key design decisions
Add partial-edit note to Step 7 Pass 1
Use seconds precision in dated headings
Update plan Objective to name the two subsections
13. Implementation Priorities
Critical (must be in this version)
Step 8 re-read instruction
Badge-to-banner replacement
Security & Escaping Contract extension
Important (strongly recommended)
aria-label on copy button (WCAG 4.1.2)
aria-live span pre-existing in DOM (WCAG 4.1.3)
color-mix() CSS fallback
Seconds precision in dated headings
Nice to have (can defer)
Success metrics
Partial-edit note
14. Final Decision
Approve with revisions.
The plan is well-designed and addresses the core user need. The three highest-risk items (Step 8 re-read, badge/banner duplication, remediation content escaping) are all addressable within the existing plan structure. The recommended changes strengthen accessibility, security, and correctness without changing the architecture.
15a. Inline Edits Applied
Target Section
Action
Summary
Objective
edit
Added labeled internal structure, split decision definition by outcome
Steps
edit
Added Step 8 re-read, seconds precision, partial-edit note, Security & Escaping Contract, badge-to-banner, copy button aria-label, aria-live pre-existing in DOM
Acceptance Criteria
edit
Expanded to 21-item grouped checklist
Verification
edit
Expanded to 9 items with separate traces per decision path
Files to modify
edit
Expanded change descriptions
Key design decisions
edit
Expanded to 14 numbered decisions
15b. Revised Plan
The revised plan with all inline edits applied is the content of the source plan file above the Panel Review section.