Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions plugins/ship-check/agents/bug-checker.md
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ Return a structured summary to the orchestrator:
```
Bug check complete:
- Files checked: N
- Reviewed at: <PR head SHA>
- Bugs found: N (M fixed, K flagged)
- Flagged breakdown: (include only when K > 0)
- Uncertain diagnosis: A
Expand All @@ -164,13 +165,15 @@ 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

```
Bug check complete (comment mode):
- Files checked: N
- Reviewed at: <PR head SHA>
- Bugs found: N (M would-fix, K flagged)
- Review posted: yes / no (0 findings)
- By dimension:
Expand All @@ -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")
```
4 changes: 4 additions & 0 deletions plugins/ship-check/agents/code-quality-reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ Return a structured summary to the orchestrator:
```
Code quality complete:
- Files reviewed: N
- Reviewed at: <PR head SHA>
- Findings: N total, all fixed
- By category:
- Naming: A
Expand All @@ -131,13 +132,15 @@ Code quality complete:
- Module conventions: E
- Concision: F
- Tests: passing / N failures
- Dismissed: N (proof-of-dismissal one-liners follow — or "none")
```

### Comment mode

```
Code quality complete (comment mode):
- Files reviewed: N
- Reviewed at: <PR head SHA>
- Findings: N total, all commented
- Review posted: yes / no (0 findings)
- By category:
Expand All @@ -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")
```
4 changes: 4 additions & 0 deletions plugins/ship-check/agents/pr-reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ Return a structured summary to the orchestrator:
```
PR Review complete:
- Files reviewed: N
- Reviewed at: <PR head SHA>
- Findings: N total (M fixed, K flagged)
- Flagged breakdown: (include only when K > 0)
- Uncertain diagnosis: A
Expand All @@ -158,13 +159,15 @@ 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

```
PR Review complete (comment mode):
- Files reviewed: N
- Reviewed at: <PR head SHA>
- Findings: N total (M would-fix, K flagged)
- Review posted: yes / no (0 findings)
- By dimension:
Expand All @@ -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")
```
4 changes: 4 additions & 0 deletions plugins/ship-check/agents/test-auditor.md
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ Return a structured summary to the orchestrator:
```
Test audit complete:
- Test files audited: N
- Reviewed at: <PR head SHA>
- Findings: N total (M fixed)
- By category:
- Two-bar violations: A
Expand All @@ -129,13 +130,15 @@ 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

```
Test audit complete (comment mode):
- Test files audited: N
- Reviewed at: <PR head SHA>
- Findings: N total, all commented
- Review posted: yes / no (0 findings)
- By category:
Expand All @@ -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")
```
23 changes: 21 additions & 2 deletions plugins/ship-check/skills/bug-check/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -425,6 +425,7 @@ yours. Convention violations in your fixes ship unchecked.
```
Bug check complete:
- Files checked: N
- Reviewed at: <PR head SHA>
- Bugs found: N (M fixed, K flagged for review)
- By dimension:
- Description mismatch: A
Expand All @@ -435,8 +436,23 @@ 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. 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
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 thread
aliasunder marked this conversation as resolved.

## Comment mode

When the dispatch prompt says **COMMENT MODE**, do not edit files, commit, or push.
Expand All @@ -459,7 +475,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 <HEAD_SHA>.\nConfidence: A high, B medium, C low\n\nDismissed: <proof-of-dismissal one-liners — or \"none\">\n\n---\n*🔍 ship-check · bug-check · MODEL_ID*",
"comments": [
{
"path": "src/file.ts",
Expand All @@ -474,7 +490,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:
Expand Down
19 changes: 17 additions & 2 deletions plugins/ship-check/skills/code-quality/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,18 @@ 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. 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
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.
Expand All @@ -334,7 +346,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 <HEAD_SHA>.\n\nDismissed: <proof-of-dismissal one-liners — or \"none\">\n\n---\n*🔍 ship-check · code-quality · MODEL_ID*",
"comments": [
{
"path": "src/file.ts",
Expand All @@ -349,7 +361,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:
Expand Down
19 changes: 17 additions & 2 deletions plugins/ship-check/skills/pr-review/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,18 @@ 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. 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
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.
Expand All @@ -245,7 +257,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 <HEAD_SHA>.\n\n**Verdict**: ship / ship-with-minor-fixes / needs-changes\n\nDismissed: <proof-of-dismissal one-liners — or \"none\">\n\n---\n*🔍 ship-check · pr-review · MODEL_ID*",
"comments": [
{
"path": "src/file.ts",
Expand All @@ -260,7 +272,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*`
Expand Down
19 changes: 17 additions & 2 deletions plugins/ship-check/skills/test-audit/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,18 @@ 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. 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
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,
Expand Down Expand Up @@ -356,7 +368,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 <HEAD_SHA>.\n\nDismissed: <proof-of-dismissal one-liners — or \"none\">\n\n---\n*🔍 ship-check · test-audit · MODEL_ID*",
"comments": [
{
"path": "src/file.test.ts",
Expand All @@ -376,7 +388,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:
Expand Down