Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
08f4b01
feat: Auto-resolve active repository from file paths in MCP tool params
SimplyLiz Feb 7, 2026
f185889
fix: Bump Go to 1.24.13 and add tests for repo resolver/engine cache
SimplyLiz Feb 13, 2026
1db8266
fix: Annotate all gosec G115 integer overflow false positives
SimplyLiz Mar 11, 2026
33f5896
fix: Resolve remaining gosec findings (rune bugs + annotations)
SimplyLiz Mar 11, 2026
1e6f48c
fix: Annotate remaining gosec G304/G306 path traversal false positives
SimplyLiz Mar 11, 2026
7688190
fix: Use correct gosec rule IDs (G703/G122) for nosec annotations
SimplyLiz Mar 11, 2026
f13bcee
fix: Bump Go to 1.26.0 and exclude G703 from gosec security gate
SimplyLiz Mar 11, 2026
1450a45
Merge pull request #131 from SimplyLiz/feature/mcp-auto-repo-resolve
SimplyLiz Mar 11, 2026
eb3a2bc
fix: Update index metadata after incremental refresh and ignore untra…
SimplyLiz Mar 11, 2026
4550ffb
fix(deps): bump the go-deps group with 2 updates
dependabot[bot] Mar 17, 2026
f1437e4
feat: Add unified PR review engine (ckb review) — MVP Batch 1+2
SimplyLiz Mar 18, 2026
f5838af
feat: Add Large PR Intelligence — Batch 3
SimplyLiz Mar 18, 2026
d23d369
feat: Add code health, baselines, compliance, CI/CD formats — Batches…
SimplyLiz Mar 18, 2026
11b2765
ci: Add review engine test job to CI pipeline
SimplyLiz Mar 18, 2026
f50f2bb
fix: Serialize tree-sitter checks, fix SARIF compliance, harden inputs
SimplyLiz Mar 19, 2026
c28bd90
fix: Harden action.yml, cap score deductions, clean up dead code
SimplyLiz Mar 19, 2026
0d654a1
perf: Cut health check subprocess calls by ~60%, add cancellation
SimplyLiz Mar 19, 2026
3155d99
docs: Update CLAUDE.md and fix reviewPR tool description, reuse analyzer
SimplyLiz Mar 19, 2026
e5e2f0e
ci: Add PR review to CI pipeline, add example workflow
SimplyLiz Mar 19, 2026
c59409d
fix: Render Top Risks in markdown review, fix null reviewers fallback
SimplyLiz Mar 19, 2026
cef1a49
security: Scope PR permissions, fix cancel-in-progress, pin action SHA
SimplyLiz Mar 19, 2026
148c598
fix: Bump Go 1.26.0→1.26.1 (4 stdlib CVEs), fix download-artifact SHA
SimplyLiz Mar 19, 2026
be97882
fix: Add missing SCORE env var in CI, omitempty on reviewers JSON field
SimplyLiz Mar 19, 2026
68139c7
fix: Make review output useful for large PRs (600+ files)
SimplyLiz Mar 19, 2026
0fbf748
fix: Eliminate O(N) GetHotspots/GetOwnership calls causing review hang
SimplyLiz Mar 19, 2026
daed8cf
feat: Add --lint-report flag to deduplicate findings against SARIF
SimplyLiz Mar 19, 2026
a5e8894
feat: Wire dead-code, test-gaps, blast-radius checks and --staged/--s…
SimplyLiz Mar 19, 2026
616184c
perf: Break tree-sitter serialization, batch git ops, cache hotspot s…
SimplyLiz Mar 19, 2026
aa0a617
fix: Reduce review noise — secrets false positives, coupling CI spam,…
SimplyLiz Mar 19, 2026
019ef6e
fix: Sort findings by tier before budget cap, enrich reviewer routing
SimplyLiz Mar 19, 2026
e9db780
fix: Overhaul review formatter output and update CI workflows
SimplyLiz Mar 19, 2026
3c10ef7
docs: Add review architecture SVG, update CLAUDE.md for 17 checks
SimplyLiz Mar 19, 2026
ecc1e49
fix: Make pr-review job resilient to upstream CI failures
SimplyLiz Mar 20, 2026
0e9fcde
fix: Address review findings — health scoring, format constants, API …
SimplyLiz Mar 20, 2026
22b3a8e
feat: Add comment-drift, format-consistency checks and enhance existi…
SimplyLiz Mar 20, 2026
de69cf1
feat: Add review engine v8.4 — HoldTheLine, bug-patterns, LLM narrative
SimplyLiz Mar 20, 2026
a621676
feat: Reduce review noise, add multi-provider LLM, compact MCP mode
SimplyLiz Mar 21, 2026
06bdda6
fix: Eliminate dead-code FP, show test-gap details, fix config merge
SimplyLiz Mar 21, 2026
224320a
feat: Add LLM FP triage, PR posting, feedback learning, skill shipping
SimplyLiz Mar 21, 2026
471702a
fix: Fix 4 bugs found by CKB review, add marketing docs
SimplyLiz Mar 21, 2026
56e0740
Merge pull request #137 from SimplyLiz/feature/review-engine
SimplyLiz Mar 21, 2026
f271bb8
ci(deps): bump the actions group across 1 directory with 7 updates
dependabot[bot] Mar 21, 2026
88cb5d1
docs: Add v8.2.0 changelog
SimplyLiz Mar 21, 2026
13f93ee
Merge pull request #168 from SimplyLiz/dependabot/github_actions/deve…
SimplyLiz Mar 21, 2026
11101fd
Merge pull request #132 from SimplyLiz/dependabot/go_modules/develop/…
SimplyLiz Mar 21, 2026
fdb6503
fix: Fix lint errors, remove dead code, tighten file permissions
SimplyLiz Mar 21, 2026
8d915b4
security: Upgrade docker/cli (CVE-2025-15558) and otel/sdk (CVE-2026-…
SimplyLiz Mar 21, 2026
28b5492
chore: Bump npm package version to 8.2.0
SimplyLiz Mar 21, 2026
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
98 changes: 98 additions & 0 deletions .claude/commands/review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
Run a comprehensive code review using CKB's deterministic analysis + your semantic review.

## Input
$ARGUMENTS - Optional: base branch (default: main), or "staged" for staged changes, or a PR number

## MCP vs CLI

CKB runs as an MCP server in this environment. MCP mode is strongly preferred for interactive review because the SCIP index stays loaded between calls — drill-down tools like `findReferences`, `analyzeImpact`, and `explainSymbol` execute instantly against the in-memory index. CLI mode reloads the index on every invocation.

## The Three Phases

### Phase 1: CKB structural scan (5 seconds, 0 tokens)

Call the `reviewPR` MCP tool with compact mode:
```
reviewPR(baseBranch: "main", compact: true)
```

This returns ~1k tokens instead of ~30k — just the verdict, non-pass checks, top 10 findings, and action items. Use `compact: false` only if you need the full raw data.

If a PR number was given, get the base branch first:
```bash
BASE=$(gh pr view $ARGUMENTS --json baseRefName -q .baseRefName)
```
Then pass it: `reviewPR(baseBranch: BASE, compact: true)`

> **If CKB is not running as an MCP server** (last resort), use the CLI instead:
> ```bash
> ./ckb review --base=main --format=json
> ```
> Note: CLI mode reloads the SCIP index on every call, so drill-down steps will be slower.

From CKB's output, immediately note:
- **Passed checks** → skip these categories. Don't waste tokens re-checking secrets, breaking changes, test coverage, etc.
- **Warned checks** → your review targets
- **Top hotspot files** → read these first
- **Test gaps** → functions to evaluate

### Phase 2: Drill down on CKB findings (0 tokens via MCP)

Before reading source code, use CKB's MCP tools to investigate specific findings. These calls are instant because the SCIP index is already loaded from Phase 1.

| CKB finding | Drill-down tool | What to check |
|---|---|---|
| Dead code | `findReferences(symbolId: "...")` or `searchSymbols` → `findReferences` | Does it actually have references? CKB's SCIP index can miss cross-package refs |
| Blast radius | `analyzeImpact(symbolId: "...")` | Are the "callers" real logic or just framework registrations? |
| Coupling gap | `explainSymbol(name: "...")` on the missing file | What does the co-change partner do? Does it actually need updates? |
| Bug patterns | Already verified by differential analysis | Just check the specific line CKB flagged |
| Complexity | `explainFile(path: "...")` | What functions are driving the increase? |
| Test gaps | `getAffectedTests(baseBranch: "main")` | Which tests exist? Which functions are actually untested? |
| Hotspots | `getHotspots(limit: 10)` | Full churn history for the flagged files |

### Phase 3: Semantic review of high-risk files

Now read the actual source — but only for:
1. Files CKB ranked as top hotspots
2. Files with warned findings that survived drill-down
3. New files (CKB can't assess design quality of new code)

For each file, look for things CKB CANNOT detect:
- Logic bugs (wrong conditions, off-by-one, race conditions)
- Security issues (injection, auth bypass, data exposure)
- Design problems (wrong abstraction, unclear naming, leaky interfaces)
- Edge cases (nil inputs, empty collections, concurrent access)
- Error handling quality (not just missing — wrong strategy)

### Phase 4: Write the review

Format:

```markdown
## Summary
One paragraph: what the PR does, overall assessment.

## Must Fix
Findings that should block merge. File:line references.

## Should Fix
Issues worth addressing but not blocking.

## CKB Analysis
- Verdict: [pass/warn/fail], Score: [0-100]
- [N] checks passed, [N] warned
- Key findings: [top 3]
- False positives identified: [any CKB findings you disproved]
- Test gaps: [N] untested functions — [your assessment of which matter]

## Recommendation
Approve / Request changes / Needs discussion
```

## Tips

- If CKB says "secrets: pass" — trust it, don't re-scan 100+ files
- If CKB says "breaking: pass" — trust it, SCIP-verified API comparison
- If CKB says "dead-code: FormatSARIF" — DON'T trust blindly, verify with `findReferences` or grep
- CKB's hotspot scores are based on git churn history — higher score = more volatile file = review more carefully
- CKB's complexity delta shows WHERE cognitive load increased — read those functions
13 changes: 7 additions & 6 deletions .github/workflows/build-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
cancel-in-progress: false # Runs on main only — don't cancel artifact builds

permissions:
contents: read
Expand All @@ -15,6 +15,7 @@ jobs:
build:
name: Build (${{ matrix.os }}/${{ matrix.arch }})
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
Expand All @@ -28,10 +29,10 @@ jobs:
- os: windows
arch: amd64
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6

- name: Set up Go
uses: actions/setup-go@v6
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6
with:
go-version-file: 'go.mod'
cache: true
Expand All @@ -42,13 +43,13 @@ jobs:
GOARCH: ${{ matrix.arch }}
run: |
ext=""
if [ "${{ matrix.os }}" = "windows" ]; then
if [ "$GOOS" = "windows" ]; then
ext=".exe"
fi
go build -ldflags="-s -w" -o ckb-${{ matrix.os }}-${{ matrix.arch }}${ext} ./cmd/ckb
go build -ldflags="-s -w" -o "ckb-${GOOS}-${GOARCH}${ext}" ./cmd/ckb

- name: Upload artifact
uses: actions/upload-artifact@v6
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
with:
name: ckb-${{ matrix.os }}-${{ matrix.arch }}
path: ckb-${{ matrix.os }}-${{ matrix.arch }}*
Expand Down
Loading
Loading