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
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "shiplog",
"description": "Git-as-knowledge-graph workflow for traceability across issues, branches, commits, reviews, and PRs.",
"version": "0.5.0",
"version": "0.5.1",
"author": {
"name": "devallibus"
},
Expand Down
11 changes: 4 additions & 7 deletions commands/shiplog/hunt.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,12 @@ gh issue list --state open --json number,title,labels --limit 30

### Step 2 — Fetch open PRs with comments

Fetch the PR list including body, reviews, and commits:
Fetch the PR list including body, reviews, commits, and comments in a single call so signed-review evidence is present from the first turn:
```bash
gh pr list --state open --json number,title,isDraft,reviewDecision,reviews,body,url,headRefName --limit 20
gh pr list --state open --json number,title,isDraft,reviewDecision,reviews,body,url,headRefName,comments,commits --limit 20
```

Then for **each open PR**, fetch comments to detect signed reviews:
```bash
gh pr view <N> --json comments,commits
```
`comments` and `commits` are supported `gh pr list` JSON fields, so one call returns every open PR's top-level comment thread — where signed `Reviewed-by:` / `Disposition:` artifacts live. If the payload is truncated (very large repos, very long comment threads), fall back to a per-PR `gh pr view <N> --json comments,commits` call for the affected PRs only.

Signed-review detection — scan each comment body for both patterns:
```
Expand Down Expand Up @@ -159,7 +156,7 @@ Tier constraints:

## Acceptance Checklist

- [ ] For every open PR, `gh pr view <N> --json comments` was fetched and scanned for `Reviewed-by:` + `Disposition:` lines before classifying review status
- [ ] For every open PR, the `comments` payload (from the `gh pr list` call in Step 2, or a per-PR `gh pr view <N> --json comments` fallback when truncated) was scanned for `Reviewed-by:` + `Disposition:` lines before classifying review status
- [ ] No PR with a valid signed `Disposition: approve` comment appears in the "needs review" bucket
- [ ] No PR with `Disposition: request-changes` is classified as approved
- [ ] Each PR's last-code author was resolved via the fallback chain (not assumed from `Authored-by:` alone)
Expand Down
Loading