Stop wrapping review prose in code fences - #17
Conversation
📋 SummaryNo linked issues found in the PR body (it references "a recent review" as an example, but no "Closes #N"/"Fixes #N"). 📌 Review Metadata
This PR fixes prompt-induced formatting in the advisory reviewer by removing the fenced code block around the per-issue output template in 🔴 Critical Issues (Must Fix - Blocks Merge)None identified. No previous automated reviews were found, so there is nothing to re-verify or acknowledge. The change is Markdown-only: no GDScript, shaders, scenes, worker-thread state, or asset/licensing surface is affected. The only remaining fence in the file is the JSON verdict block (
|
| Principle | Score | Notes |
|---|---|---|
| Single Responsibility | 8 | The prompt still does one thing (define the review rubric/output contract); the formatting rule is placed in the instructions list where it belongs |
| Open/Closed | 8 | The rule is stated generically (all prose, all sections) rather than patching each section, so future sections inherit it |
| Liskov Substitution | 8 | N/A for a prompt file; nothing replaces anything, placeholders ($PREVIOUS_REVIEWS) behave as before |
| Interface Segregation | 8 | The per-issue contract stays minimal and unchanged in content; only its presentation changed |
| Dependency Inversion | 8 | The prompt remains decoupled from the workflow via envsubst placeholders; no new coupling introduced |
| Average | 8.0 |
🎯 Final Assessment
Overall Confidence Score: 90%
Confidence Breakdown:
- Code Quality: 90% (minimal, precise diff that matches the stated intent exactly)
- Completeness: 95% (fixes both the reinforcing template fence and adds an explicit override for legacy fenced reviews injected via
$PREVIOUS_REVIEWS) - Risk Level: 95% (Markdown prompt only; no game code, workflows, or assets touched)
- Verification: 80% (no headless verifier applies to prompt files; inspection confirms wiring, and the next workflow run plus this review itself serve as the behavioral check — residual risk is that a model could still occasionally fence prose despite the instruction)
Merge Readiness:
- All critical issues resolved
- SOLID average score >= 6.0
- Overall confidence >= 60%
- No security concerns
- No unresolved worker-thread, determinism, or data-loss risk
Verdict:
MERGE
A correctly scoped, low-risk prompt fix that removes the root cause of fenced review prose and explicitly overrides the legacy pattern from injected previous reviews; the single Low note is cosmetic only.
Machine Readable Verdict
{
"reviewed_sha": "5b8ff008838ecb8a39dc704d112863b398d5ab9a",
"critical_issues": 0,
"high_priority_issues": 0,
"medium_priority_issues": 0,
"overall_confidence_score": 90,
"recommendation": "MERGE"
}
Problem
The opencode PR reviewer renders each issue as a
textcode block, so all of the prose (description, impact, confidence) appears in a fence instead of only actual code. See the Medium Priority section of a recent review for an example.Cause
.github/prompts/pr-review.mdpresented the per-issue output template inside a fenced code block. The model followed "use this exact format" literally and reproduced the fence around every issue.Fix
gdscriptwhen it is GDScript.High/Medium/Low sections reference "Same format as Critical", so they inherit the corrected behavior.
Notes
$PREVIOUS_REVIEWSstill injects older fenced reviews into the prompt, which reinforced the bad pattern. The new explicit instruction overrides that, and the reinforcement goes away once the first clean review is posted.