From 68fc8c7866e048abeb7981469f64d7f4125a839b Mon Sep 17 00:00:00 2001 From: Tanisha Aberdeen <32620895+aliasunder@users.noreply.github.com> Date: Fri, 4 Sep 2026 18:45:57 -0400 Subject: [PATCH 1/3] feat(ship-check): port output-honesty contracts from plan-review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Every phase summary now names the PR head SHA it actually reviewed (a review that doesn't say what it checked is indistinguishable from one that checked nothing — and pr-monitor's delta review keys off this SHA), and closes with proof-of-dismissal one-liners for suspicions considered and dropped, so a clean bill is distinguishable from an unexamined diff. Applied to all four phase skills (report sections + comment-mode review bodies) and their agents' output templates. Verification-state pinning was not ported — a PR head is already a pinned state. Co-Authored-By: Claude Fable 5 --- plugins/ship-check/agents/bug-checker.md | 4 ++++ .../ship-check/agents/code-quality-reviewer.md | 4 ++++ plugins/ship-check/agents/pr-reviewer.md | 4 ++++ plugins/ship-check/agents/test-auditor.md | 4 ++++ plugins/ship-check/skills/bug-check/SKILL.md | 17 ++++++++++++++++- plugins/ship-check/skills/code-quality/SKILL.md | 13 ++++++++++++- plugins/ship-check/skills/pr-review/SKILL.md | 13 ++++++++++++- plugins/ship-check/skills/test-audit/SKILL.md | 13 ++++++++++++- 8 files changed, 68 insertions(+), 4 deletions(-) diff --git a/plugins/ship-check/agents/bug-checker.md b/plugins/ship-check/agents/bug-checker.md index 2f2d43e..09c6eaa 100644 --- a/plugins/ship-check/agents/bug-checker.md +++ b/plugins/ship-check/agents/bug-checker.md @@ -148,6 +148,7 @@ Return a structured summary to the orchestrator: ``` Bug check complete: - Files checked: N +- Reviewed at: - Bugs found: N (M fixed, K flagged) - Flagged breakdown: (include only when K > 0) - Uncertain diagnosis: A @@ -164,6 +165,7 @@ Bug check complete: - Platform/encoding: G - Confidence: N high, M medium, K low - Tests: passing / N failures +- Dismissed: N (proof-of-dismissal one-liners follow — or "none") ``` ### Comment mode @@ -171,6 +173,7 @@ Bug check complete: ``` Bug check complete (comment mode): - Files checked: N +- Reviewed at: - Bugs found: N (M would-fix, K flagged) - Review posted: yes / no (0 findings) - By dimension: @@ -182,4 +185,5 @@ Bug check complete (comment mode): - Input validation: F - Platform/encoding: G - Confidence: N high, M medium, K low +- Dismissed: N (proof-of-dismissal one-liners follow — or "none") ``` diff --git a/plugins/ship-check/agents/code-quality-reviewer.md b/plugins/ship-check/agents/code-quality-reviewer.md index 9389617..75f4559 100644 --- a/plugins/ship-check/agents/code-quality-reviewer.md +++ b/plugins/ship-check/agents/code-quality-reviewer.md @@ -122,6 +122,7 @@ Return a structured summary to the orchestrator: ``` Code quality complete: - Files reviewed: N +- Reviewed at: - Findings: N total, all fixed - By category: - Naming: A @@ -131,6 +132,7 @@ Code quality complete: - Module conventions: E - Concision: F - Tests: passing / N failures +- Dismissed: N (proof-of-dismissal one-liners follow — or "none") ``` ### Comment mode @@ -138,6 +140,7 @@ Code quality complete: ``` Code quality complete (comment mode): - Files reviewed: N +- Reviewed at: - Findings: N total, all commented - Review posted: yes / no (0 findings) - By category: @@ -147,4 +150,5 @@ Code quality complete (comment mode): - Simplicity: D - Module conventions: E - Concision: F +- Dismissed: N (proof-of-dismissal one-liners follow — or "none") ``` diff --git a/plugins/ship-check/agents/pr-reviewer.md b/plugins/ship-check/agents/pr-reviewer.md index f7258b7..1755ea3 100644 --- a/plugins/ship-check/agents/pr-reviewer.md +++ b/plugins/ship-check/agents/pr-reviewer.md @@ -145,6 +145,7 @@ Return a structured summary to the orchestrator: ``` PR Review complete: - Files reviewed: N +- Reviewed at: - Findings: N total (M fixed, K flagged) - Flagged breakdown: (include only when K > 0) - Uncertain diagnosis: A @@ -158,6 +159,7 @@ PR Review complete: - Stale paths: E (or "N/A — no file moves/renames") - Tests: passing / N failures - Verdict: ship / ship-with-minor-fixes / needs-changes +- Dismissed: N (proof-of-dismissal one-liners follow — or "none") ``` ### Comment mode @@ -165,6 +167,7 @@ PR Review complete: ``` PR Review complete (comment mode): - Files reviewed: N +- Reviewed at: - Findings: N total (M would-fix, K flagged) - Review posted: yes / no (0 findings) - By dimension: @@ -174,4 +177,5 @@ PR Review complete (comment mode): - Feature surface docs: D (or "N/A") - Stale paths: E (or "N/A") - Verdict: ship / ship-with-minor-fixes / needs-changes +- Dismissed: N (proof-of-dismissal one-liners follow — or "none") ``` diff --git a/plugins/ship-check/agents/test-auditor.md b/plugins/ship-check/agents/test-auditor.md index a0f328f..a1b9c81 100644 --- a/plugins/ship-check/agents/test-auditor.md +++ b/plugins/ship-check/agents/test-auditor.md @@ -118,6 +118,7 @@ Return a structured summary to the orchestrator: ``` Test audit complete: - Test files audited: N +- Reviewed at: - Findings: N total (M fixed) - By category: - Two-bar violations: A @@ -129,6 +130,7 @@ Test audit complete: - Tests written: J - Mutation-tested: L - Suite: passing / N failures (total test count) +- Dismissed: N (proof-of-dismissal one-liners follow — or "none") ``` ### Comment mode @@ -136,6 +138,7 @@ Test audit complete: ``` Test audit complete (comment mode): - Test files audited: N +- Reviewed at: - Findings: N total, all commented - Review posted: yes / no (0 findings) - By category: @@ -146,4 +149,5 @@ Test audit complete (comment mode): - Coverage regressions: E - Coverage gaps reported: K - Mutation-tested: L (diagnostic only) +- Dismissed: N (proof-of-dismissal one-liners follow — or "none") ``` diff --git a/plugins/ship-check/skills/bug-check/SKILL.md b/plugins/ship-check/skills/bug-check/SKILL.md index c38e64a..75b6f1a 100644 --- a/plugins/ship-check/skills/bug-check/SKILL.md +++ b/plugins/ship-check/skills/bug-check/SKILL.md @@ -425,6 +425,7 @@ yours. Convention violations in your fixes ship unchecked. ``` Bug check complete: - Files checked: N +- Reviewed at: - Bugs found: N (M fixed, K flagged for review) - By dimension: - Description mismatch: A @@ -435,8 +436,22 @@ Bug check complete: - Input validation: F - Platform/encoding: G - Confidence: N high, M medium, K low +- Dismissed: N (proof-of-dismissal one-liners follow — or "none") ``` +**Output honesty (both modes):** + +- **State what you reviewed.** The summary names the PR head SHA actually + reviewed — a review that doesn't say what it checked is indistinguishable + from one that checked nothing. The pipeline's pre-merge delta review keys + off this SHA. +- **Close with proof of dismissal.** One line per suspicion you seriously + considered and dropped, with the reason it doesn't bite — or "none". This + extends "No silent skipping" to the negative space: findings you confirmed + go in the report, and suspicions you cleared go in the dismissal list — + without them, "no findings" could mean a clean diff or an unexamined one, + and the reader can't tell which. + ## Comment mode When the dispatch prompt says **COMMENT MODE**, do not edit files, commit, or push. @@ -459,7 +474,7 @@ gh api "repos/OWNER_REPO/pulls/PR_NUMBER/reviews" \ --method POST --input - <<'REVIEW' { "event": "COMMENT", - "body": "## Phase 4: Bug Check\n\nN bugs found across M files.\nConfidence: A high, B medium, C low\n\n---\n*🔍 ship-check · bug-check · MODEL_ID*", + "body": "## Phase 4: Bug Check\n\nN bugs found across M files. Reviewed at .\nConfidence: A high, B medium, C low\n\n---\n*🔍 ship-check · bug-check · MODEL_ID*", "comments": [ { "path": "src/file.ts", diff --git a/plugins/ship-check/skills/code-quality/SKILL.md b/plugins/ship-check/skills/code-quality/SKILL.md index 51a1a86..759cffb 100644 --- a/plugins/ship-check/skills/code-quality/SKILL.md +++ b/plugins/ship-check/skills/code-quality/SKILL.md @@ -314,6 +314,17 @@ clause is load-bearing, keep it and flag the uncertainty instead of trimming. 3. **Run tests** after all fixes to confirm no behavior change. 4. **Summarize**: files touched, count by category, test status. +**Output honesty (both modes):** + +- **State what you reviewed.** The summary names the PR head SHA actually + reviewed — a review that doesn't say what it checked is indistinguishable + from one that checked nothing. The pipeline's pre-merge delta review keys + off this SHA. +- **Close with proof of dismissal.** One line per suspicion you seriously + considered and dropped, with the reason it doesn't bite — or "none". The + clean-bill claims are part of the review: without them, "no findings" could + mean a clean diff or an unexamined one, and the reader can't tell which. + ## Comment mode When the dispatch prompt says **COMMENT MODE**, do not edit files, commit, or push. @@ -334,7 +345,7 @@ gh api "repos/OWNER_REPO/pulls/PR_NUMBER/reviews" \ --method POST --input - <<'REVIEW' { "event": "COMMENT", - "body": "## Phase 2: Code Quality\n\nN findings across M files.\n\n---\n*🔍 ship-check · code-quality · MODEL_ID*", + "body": "## Phase 2: Code Quality\n\nN findings across M files. Reviewed at .\n\n---\n*🔍 ship-check · code-quality · MODEL_ID*", "comments": [ { "path": "src/file.ts", diff --git a/plugins/ship-check/skills/pr-review/SKILL.md b/plugins/ship-check/skills/pr-review/SKILL.md index 1f10df3..78f9bad 100644 --- a/plugins/ship-check/skills/pr-review/SKILL.md +++ b/plugins/ship-check/skills/pr-review/SKILL.md @@ -222,6 +222,17 @@ comment mode. 5. **Summarize**: count by dimension, test status, verdict (ship / ship-with-minor-fixes / needs-changes). +**Output honesty (both modes):** + +- **State what you reviewed.** The summary names the PR head SHA actually + reviewed — a review that doesn't say what it checked is indistinguishable + from one that checked nothing. The pipeline's pre-merge delta review keys + off this SHA. +- **Close with proof of dismissal.** One line per suspicion you seriously + considered and dropped, with the reason it doesn't bite — or "none". The + clean-bill claims are part of the review: without them, "no findings" could + mean a clean diff or an unexamined one, and the reader can't tell which. + ## Comment mode When the dispatch prompt says **COMMENT MODE**, do not edit files, commit, or push. @@ -245,7 +256,7 @@ gh api "repos/OWNER_REPO/pulls/PR_NUMBER/reviews" \ --method POST --input - <<'REVIEW' { "event": "COMMENT", - "body": "## Phase 1: PR Review\n\nN findings across M files.\n\n**Verdict**: ship / ship-with-minor-fixes / needs-changes\n\n---\n*🔍 ship-check · pr-review · MODEL_ID*", + "body": "## Phase 1: PR Review\n\nN findings across M files. Reviewed at .\n\n**Verdict**: ship / ship-with-minor-fixes / needs-changes\n\n---\n*🔍 ship-check · pr-review · MODEL_ID*", "comments": [ { "path": "src/file.ts", diff --git a/plugins/ship-check/skills/test-audit/SKILL.md b/plugins/ship-check/skills/test-audit/SKILL.md index 1558169..0373198 100644 --- a/plugins/ship-check/skills/test-audit/SKILL.md +++ b/plugins/ship-check/skills/test-audit/SKILL.md @@ -327,6 +327,17 @@ This proves the test is load-bearing, not decorative. - **Summarize**: files audited, count by category, tests mutation-verified, coverage gaps found and tests written. +**Output honesty (both modes):** + +- **State what you reviewed.** The summary names the PR head SHA actually + reviewed — a review that doesn't say what it checked is indistinguishable + from one that checked nothing. The pipeline's pre-merge delta review keys + off this SHA. +- **Close with proof of dismissal.** One line per suspicion you seriously + considered and dropped, with the reason it doesn't bite — or "none". The + clean-bill claims are part of the review: without them, "no findings" could + mean a clean diff or an unexamined one, and the reader can't tell which. + ## Comment mode When the dispatch prompt says **COMMENT MODE**, do not edit files, write tests, commit, @@ -356,7 +367,7 @@ gh api "repos/OWNER_REPO/pulls/PR_NUMBER/reviews" \ --method POST --input - <<'REVIEW' { "event": "COMMENT", - "body": "## Phase 3: Test Audit\n\nN test quality findings, K coverage gaps across M files.\n\n---\n*🔍 ship-check · test-audit · MODEL_ID*", + "body": "## Phase 3: Test Audit\n\nN test quality findings, K coverage gaps across M files. Reviewed at .\n\n---\n*🔍 ship-check · test-audit · MODEL_ID*", "comments": [ { "path": "src/file.test.ts", From fa2d2b59bd3c500cadc06d11495764268f4b9cb3 Mon Sep 17 00:00:00 2001 From: Tanisha Aberdeen <32620895+aliasunder@users.noreply.github.com> Date: Fri, 4 Sep 2026 18:52:21 -0400 Subject: [PATCH 2/3] fix(ship-check): carry proof-of-dismissal into posted comment-mode reviews MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dismissal list only reached the orchestrator summary — in comment mode the PR-visible review body had no dismissal line, and a 0-findings phase skipped posting entirely, so the artifact meant to distinguish a clean diff from an unexamined one never landed on the PR. Added the dismissal line to all four review-body templates and narrowed the skip rule: skip only when there are neither findings nor dismissals. (umm-actually finding on PR #9.) Co-Authored-By: Claude Fable 5 --- plugins/ship-check/skills/bug-check/SKILL.md | 7 +++++-- plugins/ship-check/skills/code-quality/SKILL.md | 7 +++++-- plugins/ship-check/skills/pr-review/SKILL.md | 7 +++++-- plugins/ship-check/skills/test-audit/SKILL.md | 7 +++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/plugins/ship-check/skills/bug-check/SKILL.md b/plugins/ship-check/skills/bug-check/SKILL.md index 75b6f1a..4ddc865 100644 --- a/plugins/ship-check/skills/bug-check/SKILL.md +++ b/plugins/ship-check/skills/bug-check/SKILL.md @@ -474,7 +474,7 @@ gh api "repos/OWNER_REPO/pulls/PR_NUMBER/reviews" \ --method POST --input - <<'REVIEW' { "event": "COMMENT", - "body": "## Phase 4: Bug Check\n\nN bugs found across M files. Reviewed at .\nConfidence: A high, B medium, C low\n\n---\n*🔍 ship-check · bug-check · MODEL_ID*", + "body": "## Phase 4: Bug Check\n\nN bugs found across M files. Reviewed at .\nConfidence: A high, B medium, C low\n\nDismissed: \n\n---\n*🔍 ship-check · bug-check · MODEL_ID*", "comments": [ { "path": "src/file.ts", @@ -489,7 +489,10 @@ REVIEW Replace `OWNER_REPO` and `PR_NUMBER` with values from the dispatch prompt. Replace `MODEL_ID` with your own model ID (from your system prompt). -5. **If 0 findings**, skip the API call — report "0 findings" to the orchestrator only. +5. **If 0 findings and no dismissals**, skip the API call — report "0 findings" + to the orchestrator only. With 0 findings but cleared suspicions, post a + body-only review carrying the dismissal list — that is the artifact that lets + a PR reader tell a clean diff from an unexamined one. 6. **Footer on every comment.** Append `\n\n---\n*🔍 ship-check · bug-check · MODEL_ID*` to the review body AND each inline comment body. 7. **Format each inline comment body** as: diff --git a/plugins/ship-check/skills/code-quality/SKILL.md b/plugins/ship-check/skills/code-quality/SKILL.md index 759cffb..bd0d7dd 100644 --- a/plugins/ship-check/skills/code-quality/SKILL.md +++ b/plugins/ship-check/skills/code-quality/SKILL.md @@ -345,7 +345,7 @@ gh api "repos/OWNER_REPO/pulls/PR_NUMBER/reviews" \ --method POST --input - <<'REVIEW' { "event": "COMMENT", - "body": "## Phase 2: Code Quality\n\nN findings across M files. Reviewed at .\n\n---\n*🔍 ship-check · code-quality · MODEL_ID*", + "body": "## Phase 2: Code Quality\n\nN findings across M files. Reviewed at .\n\nDismissed: \n\n---\n*🔍 ship-check · code-quality · MODEL_ID*", "comments": [ { "path": "src/file.ts", @@ -360,7 +360,10 @@ REVIEW Replace `OWNER_REPO` and `PR_NUMBER` with values from the dispatch prompt. Replace `MODEL_ID` with your own model ID (from your system prompt). -4. **If 0 findings**, skip the API call — report "0 findings" to the orchestrator only. +4. **If 0 findings and no dismissals**, skip the API call — report "0 findings" + to the orchestrator only. With 0 findings but cleared suspicions, post a + body-only review carrying the dismissal list — that is the artifact that lets + a PR reader tell a clean diff from an unexamined one. 5. **Footer on every comment.** Append `\n\n---\n*🔍 ship-check · code-quality · MODEL_ID*` to the review body AND each inline comment body. 6. **Format each inline comment body** as: diff --git a/plugins/ship-check/skills/pr-review/SKILL.md b/plugins/ship-check/skills/pr-review/SKILL.md index 78f9bad..e51e8d1 100644 --- a/plugins/ship-check/skills/pr-review/SKILL.md +++ b/plugins/ship-check/skills/pr-review/SKILL.md @@ -256,7 +256,7 @@ gh api "repos/OWNER_REPO/pulls/PR_NUMBER/reviews" \ --method POST --input - <<'REVIEW' { "event": "COMMENT", - "body": "## Phase 1: PR Review\n\nN findings across M files. Reviewed at .\n\n**Verdict**: ship / ship-with-minor-fixes / needs-changes\n\n---\n*🔍 ship-check · pr-review · MODEL_ID*", + "body": "## Phase 1: PR Review\n\nN findings across M files. Reviewed at .\n\n**Verdict**: ship / ship-with-minor-fixes / needs-changes\n\nDismissed: \n\n---\n*🔍 ship-check · pr-review · MODEL_ID*", "comments": [ { "path": "src/file.ts", @@ -271,7 +271,10 @@ REVIEW Replace `OWNER_REPO` and `PR_NUMBER` with values from the dispatch prompt. Replace `MODEL_ID` with your own model ID (from your system prompt). -5. **If 0 findings**, skip the API call — report "0 findings" to the orchestrator only. +5. **If 0 findings and no dismissals**, skip the API call — report "0 findings" + to the orchestrator only. With 0 findings but cleared suspicions, post a + body-only review carrying the dismissal list — that is the artifact that lets + a PR reader tell a clean diff from an unexamined one. 6. **For findings without a specific line** (e.g., missing docs, cross-cutting concerns), put them in the review `body` rather than as inline comments. 7. **Footer on every comment.** Append `\n\n---\n*🔍 ship-check · pr-review · MODEL_ID*` diff --git a/plugins/ship-check/skills/test-audit/SKILL.md b/plugins/ship-check/skills/test-audit/SKILL.md index 0373198..eb034cc 100644 --- a/plugins/ship-check/skills/test-audit/SKILL.md +++ b/plugins/ship-check/skills/test-audit/SKILL.md @@ -367,7 +367,7 @@ gh api "repos/OWNER_REPO/pulls/PR_NUMBER/reviews" \ --method POST --input - <<'REVIEW' { "event": "COMMENT", - "body": "## Phase 3: Test Audit\n\nN test quality findings, K coverage gaps across M files. Reviewed at .\n\n---\n*🔍 ship-check · test-audit · MODEL_ID*", + "body": "## Phase 3: Test Audit\n\nN test quality findings, K coverage gaps across M files. Reviewed at .\n\nDismissed: \n\n---\n*🔍 ship-check · test-audit · MODEL_ID*", "comments": [ { "path": "src/file.test.ts", @@ -387,7 +387,10 @@ REVIEW Replace `OWNER_REPO` and `PR_NUMBER` with values from the dispatch prompt. Replace `MODEL_ID` with your own model ID (from your system prompt). -4. **If 0 findings**, skip the API call — report "0 findings" to the orchestrator only. +4. **If 0 findings and no dismissals**, skip the API call — report "0 findings" + to the orchestrator only. With 0 findings but cleared suspicions, post a + body-only review carrying the dismissal list — that is the artifact that lets + a PR reader tell a clean diff from an unexamined one. 5. **Footer on every comment.** Append `\n\n---\n*🔍 ship-check · test-audit · MODEL_ID*` to the review body AND each inline comment body. 6. **Format each inline comment body** as: From 755eee96bc0554451ee9d17c1e43ce26f24e7419 Mon Sep 17 00:00:00 2001 From: Tanisha Aberdeen <32620895+aliasunder@users.noreply.github.com> Date: Fri, 4 Sep 2026 18:58:31 -0400 Subject: [PATCH 3/3] fix(ship-check): align delta-review claim with the recorded-SHA mechanism The honesty block claimed the pre-merge delta review keys off the phase-reported SHA; the orchestrator actually records the branch head itself at Phase 4 close and nothing reads the phase's Reviewed-at field. Reworded to what the reported SHA really provides: a cross-check of what the phase saw against the orchestrator's own baseline. (umm-actually finding on PR #9.) Co-Authored-By: Claude Fable 5 --- plugins/ship-check/skills/bug-check/SKILL.md | 5 +++-- plugins/ship-check/skills/code-quality/SKILL.md | 5 +++-- plugins/ship-check/skills/pr-review/SKILL.md | 5 +++-- plugins/ship-check/skills/test-audit/SKILL.md | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/plugins/ship-check/skills/bug-check/SKILL.md b/plugins/ship-check/skills/bug-check/SKILL.md index 4ddc865..c36457f 100644 --- a/plugins/ship-check/skills/bug-check/SKILL.md +++ b/plugins/ship-check/skills/bug-check/SKILL.md @@ -443,8 +443,9 @@ Bug check complete: - **State what you reviewed.** The summary names the PR head SHA actually reviewed — a review that doesn't say what it checked is indistinguishable - from one that checked nothing. The pipeline's pre-merge delta review keys - off this SHA. + from one that checked nothing. It also lets the orchestrator cross-check + what this phase actually saw against the delta-review baseline it records + itself at Phase 4 close. - **Close with proof of dismissal.** One line per suspicion you seriously considered and dropped, with the reason it doesn't bite — or "none". This extends "No silent skipping" to the negative space: findings you confirmed diff --git a/plugins/ship-check/skills/code-quality/SKILL.md b/plugins/ship-check/skills/code-quality/SKILL.md index bd0d7dd..1ac4ed9 100644 --- a/plugins/ship-check/skills/code-quality/SKILL.md +++ b/plugins/ship-check/skills/code-quality/SKILL.md @@ -318,8 +318,9 @@ clause is load-bearing, keep it and flag the uncertainty instead of trimming. - **State what you reviewed.** The summary names the PR head SHA actually reviewed — a review that doesn't say what it checked is indistinguishable - from one that checked nothing. The pipeline's pre-merge delta review keys - off this SHA. + from one that checked nothing. It also lets the orchestrator cross-check + what this phase actually saw against the delta-review baseline it records + itself at Phase 4 close. - **Close with proof of dismissal.** One line per suspicion you seriously considered and dropped, with the reason it doesn't bite — or "none". The clean-bill claims are part of the review: without them, "no findings" could diff --git a/plugins/ship-check/skills/pr-review/SKILL.md b/plugins/ship-check/skills/pr-review/SKILL.md index e51e8d1..6c5f07a 100644 --- a/plugins/ship-check/skills/pr-review/SKILL.md +++ b/plugins/ship-check/skills/pr-review/SKILL.md @@ -226,8 +226,9 @@ comment mode. - **State what you reviewed.** The summary names the PR head SHA actually reviewed — a review that doesn't say what it checked is indistinguishable - from one that checked nothing. The pipeline's pre-merge delta review keys - off this SHA. + from one that checked nothing. It also lets the orchestrator cross-check + what this phase actually saw against the delta-review baseline it records + itself at Phase 4 close. - **Close with proof of dismissal.** One line per suspicion you seriously considered and dropped, with the reason it doesn't bite — or "none". The clean-bill claims are part of the review: without them, "no findings" could diff --git a/plugins/ship-check/skills/test-audit/SKILL.md b/plugins/ship-check/skills/test-audit/SKILL.md index eb034cc..a8f168d 100644 --- a/plugins/ship-check/skills/test-audit/SKILL.md +++ b/plugins/ship-check/skills/test-audit/SKILL.md @@ -331,8 +331,9 @@ This proves the test is load-bearing, not decorative. - **State what you reviewed.** The summary names the PR head SHA actually reviewed — a review that doesn't say what it checked is indistinguishable - from one that checked nothing. The pipeline's pre-merge delta review keys - off this SHA. + from one that checked nothing. It also lets the orchestrator cross-check + what this phase actually saw against the delta-review baseline it records + itself at Phase 4 close. - **Close with proof of dismissal.** One line per suspicion you seriously considered and dropped, with the reason it doesn't bite — or "none". The clean-bill claims are part of the review: without them, "no findings" could