feat(code-review): render a two-part Technical + Functional review on every CR run#738
Merged
Conversation
… every CR run Every full-lens CR wrapper (code-review, code-review-github, code-review-jira, code-review-bugsnag) now produces an explicit two-part output (#737): the Technical review (existing strict rule-compliance analysis, unchanged, on the PR comment) and the Functional review (a full acceptance-criteria checklist with a Goal met: Yes/No verdict, Met/Not met/Partial/Divergent per criterion) built by assignment-compliance-check and published on the linked-tracker comment via pr-summary, mirrored as a one-line verdict on the PR comment summary. assignment-compliance-check now renders the block on every run with a linked tracker instead of gaps-only/omit-when-clean, including the fully affirmative report on a clean run -- a deliberate, narrow exception to the project's report-only-what-needs-action convention, scoped to the Functional-review verdict alone. pr-summary's {assignment_verdict} banner gained the matching affirmative variant. api-review is a documented carve-out: a light API contract matches assignment: Yes/No verdict instead of the full compliance engine. Canonical contract lives in rules/code-review/general.mdc; skills carry thin references only (code-review/SKILL.md stays under its 5000-token budget). Content-pin tests updated/added in CodeReviewContentTest.php and SkillsContentTest.php per the project's content-pin-tests-are-the-contract-enforcement convention.
Addresses argos CR #738 iteration 1: pin the api-review template's functional-cross-check row (M1), give code-review-bugsnag the same `assignment conformance:` Summary mirror as the other three wrappers (M2), scope the api-review light verdict to standalone runs only so it self-suppresses on an inline sub-lens invocation (Minor 1), and pin the Critical-fold clause in the canonical rule (Minor 2).
Owner
Author
Code Review
Status: Converged — 0 Critical / 0 Moderate (iteration 2, commit All four iteration-1 findings are resolved and no regressions were introduced:
Consolidated security review (athena, commit Summary: 0 Critical · 0 Moderate · 0 Minor · 0 Refactoring · assignment conformance: conformant |
pekral
marked this pull request as ready for review
July 16, 2026 10:12
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.
Summary
Closes #737.
Every full-lens CR wrapper (
code-review,code-review-github,code-review-jira,code-review-bugsnag) now produces an explicit two-part output on every run:Met/Not met/Partial/Divergentper criterion) plus an explicitGoal met: Yes/Noverdict. Built byassignment-compliance-check, published on the linked-tracker comment viapr-summary, with the one-line verdict mirrored onto the PR comment'sSummaryline.Key behavior change:
assignment-compliance-checknow renders the block on every run that has a linked tracker — including the fully affirmative report on a clean run — instead of the old "gaps-only, omit when clean" behavior. This is a deliberate, narrow exception to the project's "report only what needs action; never render a positive banner; omit when clean" convention, scoped to the Functional-review verdict alone; every other CR section (Technical review, Architecture, Coverage, …) keeps that convention unchanged.pr-summary's{assignment_verdict}top banner gained the matching affirmative variant (English + Czech).api-reviewis a documented carve-out (per orchestrator decision): instead of invoking the fullassignment-compliance-check, it renders a lightAPI contract matches assignment: Yes/Noverdict derived from its own Core Checks walk, so API-focused issues get a functional signal without running two full assignment-conformance engines over the same diff.Files changed
rules/code-review/general.mdc— canonical Two-part CR output — Technical & Functional review contract (replaces the old Assignment Conformance section).skills/code-review/SKILL.md— thin reference to the contract (stays under the 5000-token skill-check budget; verifiedstr_word_count< 5000 in a pinning test).skills/assignment-compliance-check/SKILL.md— core behavior change: full checklist + always-render + affirmative verdict.skills/pr-summary/SKILL.md+templates/pr-summary-{github,jira}.md— affirmative{assignment_verdict}banner variant.skills/code-review-{github,jira,bugsnag}/SKILL.md— updated wrapper prose describing the new always-render behavior.code-review,code-review-github,code-review-jira,code-review-bugsnag) — framed as "Technical review" with a pointer to the Functional review.skills/api-review/SKILL.md+templates/review-output.md— light functional cross-check carve-out.CHANGELOG.md—feat(code-review)entry.tests/Installer/CodeReviewContentTest.php,tests/Installer/SkillsContentTest.php— updated pins for the reversed convention (old "omit when clean" pins replaced) + new pins for the two-part contract, per the project's content-pin-tests-are-the-contract-enforcement convention.How to test
composer build— skill-check (0 errors/warnings, 62 skills), phpcs, Pint, Rector, phpstan, security-audit, and the full Pest suite (329 tests, 100% coverage) all pass.rules/code-review/general.mdcTwo-part CR output — Technical & Functional review and confirm it defines both halves, the affirmative exception, and the api-review carve-out.Goal met: Yes/Nochecklist (including Met entries) viapr-summary; a clean run renders✅ Changes satisfy the assignment — all N acceptance criteria metinstead of nothing.TODO
code-review-bugsnag's PR-comment summary line does not carry anassignment conformance: …mirror slot the way the other three wrappers do (pre-existing asymmetry, unrelated to this change) — worth a follow-up if full parity across all four wrappers' summary lines is desired.