@motivation-labs/crosscheck 0.14.0-beta.111 → 0.14.0-beta.114

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +93 -64
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -14,29 +14,12 @@
14
14
  <img src="./assets/screenshot-watch.png" alt="crosscheck watch — live pipeline view" width="860" />
15
15
  </p>
16
16
 
17
- <p align="center">
18
- <sub>
19
- <b>①</b> Session header — profile, orgs, config path, and registered webhooks at a glance. &nbsp;|&nbsp;
20
- <b>②</b> Per-PR event row — origin detection (<code>via=commits</code>), assigned reviewer, and elapsed time. &nbsp;|&nbsp;
21
- <b>③</b> Live pipeline stripe — PR size · CR verdict · Fix count · Recheck status, updating in real time.
22
- </sub>
23
- </p>
24
-
25
17
  **Auto Code Review Pipeline — customizable PR → Review → Fix → Recheck loop, single-vendor or cross-vendor, zero new infrastructure.**
26
18
 
27
19
  Define the review pipeline in `workflow.yml`: review-only, review + fix, or the full review + fix + recheck cycle. Each step runs through the `claude` or `codex` CLI against your existing subscriptions — no API keys, no per-review cost.
28
20
 
29
21
  ---
30
22
 
31
- ## Highlights
32
-
33
- - **Configurable pipeline** — compose steps in `workflow.yml`: a `review` step, an optional `fix` step, and an optional `recheck` step. Add per-step `instructions:` and `when:` conditions to control exactly what runs and when.
34
- - **Single-vendor and cross-vendor modes** — single-vendor uses whatever AI you have enabled. Cross-vendor routes each PR to the rival AI for an independent review (Claude reviews Codex PRs, Codex reviews Claude PRs). Switch with one config line.
35
- - **Subscription-funded, not token-billed** — runs through the `claude` and `codex` CLIs against your Claude Pro/Max and ChatGPT Plus/Pro plans. No API keys, no per-review cost.
36
- - **`watch` for personal use, `serve` for your team** — `crosscheck watch` runs on your laptop with an auto-tunnel, ideal for solo use. `crosscheck serve` binds to a fixed port on a shared machine so the whole team is covered.
37
-
38
- ---
39
-
40
23
  ## Quick start
41
24
 
42
25
  ```bash
@@ -54,69 +37,124 @@ crosscheck watch # personal laptop
54
37
  crosscheck serve # always-on team server
55
38
  ```
56
39
 
57
- `crosscheck onboard` walks you through repo selection, vendor mode, pipeline steps, and tunnel choice. After that, `watch` or `serve` is all you need.
40
+ ---
41
+
42
+ ## Commands
43
+
44
+ ### `crosscheck onboard`
45
+
46
+ Interactive setup wizard. Picks repos/orgs to monitor, selects single-vendor or cross-vendor mode, configures the review pipeline, and writes `~/.crosscheck/config.yml` and `workflow.yml`.
47
+
48
+ ```bash
49
+ crosscheck onboard # guided setup
50
+ crosscheck onboard --personal # skip persona prompt, go straight to personal mode
51
+ crosscheck onboard --team # skip persona prompt, go straight to team mode
52
+ crosscheck onboard -y # accept all defaults non-interactively
53
+ ```
58
54
 
59
55
  ---
60
56
 
61
- ## What it looks like
57
+ ### `crosscheck watch`
62
58
 
59
+ Personal mode. Starts an SSH tunnel (localhost.run), registers GitHub webhooks, and listens for PR events. Everything self-cleans on Ctrl+C.
60
+
61
+ ```bash
62
+ crosscheck watch
63
+ crosscheck watch --no-backtrace # skip startup scan for unreviewed open PRs
64
+ crosscheck watch --reconfigure # re-run deployment setup before starting
63
65
  ```
64
- $ crosscheck watch
65
66
 
66
- "Move fast and review things."
67
+ ---
67
68
 
68
- profile personal · cross-vendor · balanced
69
- pipeline review → fix → recheck
70
- users your-github-login (5 repos)
71
- config ./crosscheck.config.yml
69
+ ### `crosscheck serve`
72
70
 
73
- tunnel ready: https://abc123.lhr.life
74
- ✓ webhook registered for your-org/your-repo
75
- Waiting for PR events — Ctrl+C to stop.
71
+ Team mode. Binds to a fixed port — register the webhook once, cover the whole team. Designed for a mac-mini or home server.
76
72
 
77
- PR #47 opened: add retry logic for flaky network calls
78
- origin=claude reviewer=codex
79
- codex reviewing... (12s) NEEDS WORK (8.4K)
80
- claude fixing... fixed ✓ (11.2K)
81
- codex rechecking... (9s) APPROVE (6.1K)
73
+ ```bash
74
+ crosscheck serve
75
+ crosscheck serve --no-backtrace # skip startup scan
76
+ crosscheck serve --personal # personal scope this session only
77
+ crosscheck serve --reconfigure # re-run deployment setup
78
+ ```
82
79
 
83
- PR #49 opened: implement caching layer
84
- origin=codex reviewer=claude
85
- claude reviewing... (18s) APPROVE (9.8K)
80
+ ---
81
+
82
+ ### `crosscheck review <pr-url>`
83
+
84
+ One-shot review of a single PR. Clones, checks out, reviews, and posts the comment.
85
+
86
+ ```bash
87
+ crosscheck review https://github.com/org/repo/pull/42
88
+ crosscheck review <pr-url> --reviewer claude # force Claude regardless of detection
89
+ crosscheck review <pr-url> --reviewer codex # force Codex regardless of detection
86
90
  ```
87
91
 
88
92
  ---
89
93
 
90
- ## Commands
94
+ ### `crosscheck run <pr-url>`
95
+
96
+ Runs the full configured workflow against one PR: review → fix → recheck. Same logic as `watch`/`serve`, but triggered manually.
91
97
 
92
98
  ```bash
93
- crosscheck init # check prerequisites, write starter config
94
- crosscheck onboard # guided setup pick repos, mode, and pipeline
95
- crosscheck review <pr-url> # one-shot review of a specific PR
96
- crosscheck watch # personal use tunnel + webhook + listening on your laptop
97
- crosscheck serve # team use fixed port, register webhook once
98
- crosscheck status # auth state, config summary, CLI versions
99
+ crosscheck run <pr-url>
100
+ crosscheck run <pr-url> --steps review # only the review step
101
+ crosscheck run <pr-url> --steps fix,recheck # skip initial review
102
+ crosscheck run <pr-url> --reviewer claude # override reviewer assignment
103
+ crosscheck run <pr-url> --dry-run # review without posting or fixing
99
104
  ```
100
105
 
101
- **Continuous improvement** *(experimental)*
106
+ ---
107
+
108
+ ### `crosscheck scan`
109
+
110
+ Scans every open PR in the configured monitor scope and reports where each one is in the crosscheck workflow. Results are cached for 60 seconds.
111
+
112
+ States: `PR` (needs review) · `APPROVE` · `NEEDS_WORK` · `BLOCK` · `RECHECK` (fix applied, needs recheck)
102
113
 
103
114
  ```bash
104
- crosscheck diagnose # surface failure patterns from review logs
105
- crosscheck optimize [--apply] # rewrite reviewer instructions based on diagnose output
106
- crosscheck impact [--money] # time saved, issues caught, code quality trends
107
- crosscheck issue # draft and file a bug report from recent error logs
115
+ crosscheck scan # all open PRs, grouped stale/not-stale
116
+ crosscheck scan --tidy # stale actionable rows only
117
+ crosscheck scan --stale-after 4h # custom staleness threshold (default 24h)
118
+ crosscheck scan --force # bypass cache
119
+ crosscheck scan --json # machine-readable output
108
120
  ```
109
121
 
110
122
  ---
111
123
 
124
+ ### `crosscheck kickass`
125
+
126
+ Selects stale PRs from the operator queue and advances them — runs `scan` first, presents a multi-select picker, shows a preflight summary, then executes after confirmation.
127
+
128
+ ```bash
129
+ crosscheck kickass # interactive operator queue
130
+ crosscheck kickass --dry-run # preflight only — no mutations
131
+ crosscheck kickass --stale-after 2h # tighter staleness threshold
132
+ crosscheck kickass --force # bypass scan cache before picking
133
+ ```
134
+
135
+ Actions: `PR → CR` · `NEEDS_WORK/BLOCK → Fix` · `FIX/RECHECK → Recheck` · `APPROVE → Merge`
136
+
137
+ ---
138
+
112
139
  ## Configuration
113
140
 
114
- ### Pipeline (`workflow.yml`)
141
+ ### Review depth (`quality.tier`)
115
142
 
116
- The pipeline lives in `workflow.yml` alongside your config. Compose `review`, `fix`, and `recheck` steps in any order and add per-step instructions and `when:` conditions.
143
+ ```yaml
144
+ # crosscheck.config.yml
145
+ quality:
146
+ tier: balanced # fast | balanced | thorough
147
+ ```
148
+
149
+ | Tier | Claude model | Codex model | Latency |
150
+ |---|---|---|---|
151
+ | `fast` | Haiku | default | ~10s |
152
+ | `balanced` | Sonnet (default) | default | ~30s |
153
+ | `thorough` | Opus | default | ~60s |
154
+
155
+ ### Pipeline (`workflow.yml`)
117
156
 
118
157
  ```yaml
119
- # workflow.yml — define the review pipeline
120
158
  steps:
121
159
  - name: review
122
160
  type: review
@@ -124,7 +162,7 @@ steps:
124
162
 
125
163
  - name: fix
126
164
  type: fix
127
- reviewer: origin # fix with the same vendor that wrote the PR
165
+ reviewer: origin
128
166
  when: review.verdict != 'APPROVE'
129
167
 
130
168
  - name: recheck
@@ -133,11 +171,10 @@ steps:
133
171
  when: fix.applied_count > 0
134
172
  ```
135
173
 
136
- ### Config (`crosscheck.config.yml`)
137
-
138
- Config lives at `~/.crosscheck/config.yml` — one file covers all your repos. Run `crosscheck init` to generate it, or let `crosscheck onboard` write it for you.
174
+ ### Config snapshot
139
175
 
140
176
  ```yaml
177
+ # ~/.crosscheck/config.yml
141
178
  orgs:
142
179
  - your-org
143
180
 
@@ -154,7 +191,7 @@ vendors:
154
191
  enabled: true
155
192
 
156
193
  quality:
157
- tier: balanced # fast | balanced | thorough
194
+ tier: balanced
158
195
 
159
196
  clone_protocol: ssh # ssh (default) | https
160
197
  ```
@@ -163,14 +200,6 @@ Full reference: [get-started.md](./get-started.md)
163
200
 
164
201
  ---
165
202
 
166
- ## Deployment
167
-
168
- **Personal (`crosscheck watch`)** — runs on your laptop. An SSH tunnel through `localhost.run` handles GitHub webhook delivery automatically — no port-forwarding, no cloud account needed. Reconnects if the tunnel drops.
169
-
170
- **Team (`crosscheck serve`)** — bind to a fixed port on a machine with a public IP or behind a reverse proxy. Register the webhook once; the whole team is covered without anyone's laptop staying on.
171
-
172
- ---
173
-
174
203
  ## Requirements
175
204
 
176
205
  | | Minimum |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@motivation-labs/crosscheck",
3
- "version": "0.14.0-beta.111",
3
+ "version": "0.14.0-beta.114",
4
4
  "description": "Cross-vendor AI code review orchestrator — Claude Code ↔ Codex",
5
5
  "bin": {
6
6
  "crosscheck": "dist/cli.js",