@humanbased/crosscheck 0.14.0 → 0.15.0-beta.145

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 (176) hide show
  1. package/ISSUE.md +1 -1
  2. package/LICENSE +1 -1
  3. package/README.md +191 -8
  4. package/README.zh.md +1 -1
  5. package/crosscheck.config.example.yml +4 -2
  6. package/dist/__tests__/backtrace.test.js +1 -1
  7. package/dist/__tests__/backtrace.test.js.map +1 -1
  8. package/dist/__tests__/diagnose.test.js +36 -0
  9. package/dist/__tests__/diagnose.test.js.map +1 -1
  10. package/dist/__tests__/durations.test.js +5 -1
  11. package/dist/__tests__/durations.test.js.map +1 -1
  12. package/dist/__tests__/error-classification.test.d.ts +2 -0
  13. package/dist/__tests__/error-classification.test.d.ts.map +1 -0
  14. package/dist/__tests__/error-classification.test.js +36 -0
  15. package/dist/__tests__/error-classification.test.js.map +1 -0
  16. package/dist/__tests__/fix.test.js +48 -1
  17. package/dist/__tests__/fix.test.js.map +1 -1
  18. package/dist/__tests__/issue.test.js +2 -2
  19. package/dist/__tests__/issue.test.js.map +1 -1
  20. package/dist/__tests__/kickass.test.js +362 -69
  21. package/dist/__tests__/kickass.test.js.map +1 -1
  22. package/dist/__tests__/optimize.test.js +3 -3
  23. package/dist/__tests__/optimize.test.js.map +1 -1
  24. package/dist/__tests__/pr-picker.test.js +8 -7
  25. package/dist/__tests__/pr-picker.test.js.map +1 -1
  26. package/dist/__tests__/pr-status.test.js +41 -20
  27. package/dist/__tests__/pr-status.test.js.map +1 -1
  28. package/dist/__tests__/pr-workflow-state.test.d.ts +2 -0
  29. package/dist/__tests__/pr-workflow-state.test.d.ts.map +1 -0
  30. package/dist/__tests__/pr-workflow-state.test.js +184 -0
  31. package/dist/__tests__/pr-workflow-state.test.js.map +1 -0
  32. package/dist/__tests__/review-models.test.js +18 -0
  33. package/dist/__tests__/review-models.test.js.map +1 -1
  34. package/dist/__tests__/run.test.d.ts +2 -0
  35. package/dist/__tests__/run.test.d.ts.map +1 -0
  36. package/dist/__tests__/run.test.js +81 -0
  37. package/dist/__tests__/run.test.js.map +1 -0
  38. package/dist/__tests__/runner.test.js +117 -1
  39. package/dist/__tests__/runner.test.js.map +1 -1
  40. package/dist/__tests__/scopes.test.js +11 -11
  41. package/dist/__tests__/scopes.test.js.map +1 -1
  42. package/dist/__tests__/smart-switch.test.js +1 -1
  43. package/dist/__tests__/smart-switch.test.js.map +1 -1
  44. package/dist/__tests__/tier-timeouts.test.d.ts +2 -0
  45. package/dist/__tests__/tier-timeouts.test.d.ts.map +1 -0
  46. package/dist/__tests__/tier-timeouts.test.js +23 -0
  47. package/dist/__tests__/tier-timeouts.test.js.map +1 -0
  48. package/dist/__tests__/webhook.test.d.ts +2 -0
  49. package/dist/__tests__/webhook.test.d.ts.map +1 -0
  50. package/dist/__tests__/webhook.test.js +197 -0
  51. package/dist/__tests__/webhook.test.js.map +1 -0
  52. package/dist/cli.js +38 -5
  53. package/dist/cli.js.map +1 -1
  54. package/dist/commands/detect-step.d.ts +5 -0
  55. package/dist/commands/detect-step.d.ts.map +1 -0
  56. package/dist/commands/detect-step.js +124 -0
  57. package/dist/commands/detect-step.js.map +1 -0
  58. package/dist/commands/diagnose.d.ts +1 -1
  59. package/dist/commands/diagnose.d.ts.map +1 -1
  60. package/dist/commands/diagnose.js +30 -1
  61. package/dist/commands/diagnose.js.map +1 -1
  62. package/dist/commands/kickass.d.ts +28 -10
  63. package/dist/commands/kickass.d.ts.map +1 -1
  64. package/dist/commands/kickass.js +295 -68
  65. package/dist/commands/kickass.js.map +1 -1
  66. package/dist/commands/review.d.ts.map +1 -1
  67. package/dist/commands/review.js +14 -5
  68. package/dist/commands/review.js.map +1 -1
  69. package/dist/commands/run.d.ts +16 -1
  70. package/dist/commands/run.d.ts.map +1 -1
  71. package/dist/commands/run.js +347 -44
  72. package/dist/commands/run.js.map +1 -1
  73. package/dist/commands/serve.d.ts.map +1 -1
  74. package/dist/commands/serve.js +41 -3
  75. package/dist/commands/serve.js.map +1 -1
  76. package/dist/commands/status.d.ts.map +1 -1
  77. package/dist/commands/status.js +10 -2
  78. package/dist/commands/status.js.map +1 -1
  79. package/dist/commands/watch.d.ts.map +1 -1
  80. package/dist/commands/watch.js +200 -6
  81. package/dist/commands/watch.js.map +1 -1
  82. package/dist/config/schema.d.ts +52 -0
  83. package/dist/config/schema.d.ts.map +1 -1
  84. package/dist/config/schema.js +24 -1
  85. package/dist/config/schema.js.map +1 -1
  86. package/dist/github/client.d.ts +40 -1
  87. package/dist/github/client.d.ts.map +1 -1
  88. package/dist/github/client.js +69 -9
  89. package/dist/github/client.js.map +1 -1
  90. package/dist/github/review-status.d.ts.map +1 -1
  91. package/dist/github/review-status.js +7 -4
  92. package/dist/github/review-status.js.map +1 -1
  93. package/dist/github/webhook.d.ts +25 -1
  94. package/dist/github/webhook.d.ts.map +1 -1
  95. package/dist/github/webhook.js +37 -1
  96. package/dist/github/webhook.js.map +1 -1
  97. package/dist/lib/annotation.d.ts +4 -0
  98. package/dist/lib/annotation.d.ts.map +1 -1
  99. package/dist/lib/annotation.js +5 -1
  100. package/dist/lib/annotation.js.map +1 -1
  101. package/dist/lib/board.d.ts.map +1 -1
  102. package/dist/lib/board.js +7 -5
  103. package/dist/lib/board.js.map +1 -1
  104. package/dist/lib/comment-bodies.d.ts.map +1 -1
  105. package/dist/lib/comment-bodies.js +3 -2
  106. package/dist/lib/comment-bodies.js.map +1 -1
  107. package/dist/lib/durations.d.ts.map +1 -1
  108. package/dist/lib/durations.js +5 -3
  109. package/dist/lib/durations.js.map +1 -1
  110. package/dist/lib/logger.d.ts +4 -1
  111. package/dist/lib/logger.d.ts.map +1 -1
  112. package/dist/lib/logger.js +41 -5
  113. package/dist/lib/logger.js.map +1 -1
  114. package/dist/lib/pr-picker.d.ts.map +1 -1
  115. package/dist/lib/pr-picker.js +5 -1
  116. package/dist/lib/pr-picker.js.map +1 -1
  117. package/dist/lib/pr-status.d.ts +4 -3
  118. package/dist/lib/pr-status.d.ts.map +1 -1
  119. package/dist/lib/pr-status.js +19 -13
  120. package/dist/lib/pr-status.js.map +1 -1
  121. package/dist/lib/pr-workflow-state.d.ts +68 -0
  122. package/dist/lib/pr-workflow-state.d.ts.map +1 -0
  123. package/dist/lib/pr-workflow-state.js +328 -0
  124. package/dist/lib/pr-workflow-state.js.map +1 -0
  125. package/dist/lib/product.d.ts +3 -0
  126. package/dist/lib/product.d.ts.map +1 -0
  127. package/dist/lib/product.js +5 -0
  128. package/dist/lib/product.js.map +1 -0
  129. package/dist/lib/repo-picker.d.ts +1 -0
  130. package/dist/lib/repo-picker.d.ts.map +1 -1
  131. package/dist/lib/repo-picker.js +50 -33
  132. package/dist/lib/repo-picker.js.map +1 -1
  133. package/dist/lib/review-models.d.ts +2 -2
  134. package/dist/lib/review-models.d.ts.map +1 -1
  135. package/dist/lib/review-models.js +6 -1
  136. package/dist/lib/review-models.js.map +1 -1
  137. package/dist/lib/runner.d.ts +19 -1
  138. package/dist/lib/runner.d.ts.map +1 -1
  139. package/dist/lib/runner.js +338 -55
  140. package/dist/lib/runner.js.map +1 -1
  141. package/dist/lib/scopes.js +1 -1
  142. package/dist/lib/scopes.js.map +1 -1
  143. package/dist/lib/smart-switch.js +1 -1
  144. package/dist/lib/smart-switch.js.map +1 -1
  145. package/dist/lib/vendor.d.ts +4 -0
  146. package/dist/lib/vendor.d.ts.map +1 -0
  147. package/dist/lib/vendor.js +14 -0
  148. package/dist/lib/vendor.js.map +1 -0
  149. package/dist/lib/workflow.d.ts +5 -0
  150. package/dist/lib/workflow.d.ts.map +1 -1
  151. package/dist/lib/workflow.js.map +1 -1
  152. package/dist/reviewers/claude.d.ts +3 -1
  153. package/dist/reviewers/claude.d.ts.map +1 -1
  154. package/dist/reviewers/claude.js +15 -10
  155. package/dist/reviewers/claude.js.map +1 -1
  156. package/dist/reviewers/codex.d.ts +1 -1
  157. package/dist/reviewers/codex.d.ts.map +1 -1
  158. package/dist/reviewers/codex.js +7 -10
  159. package/dist/reviewers/codex.js.map +1 -1
  160. package/dist/reviewers/conflict-resolve.d.ts +1 -1
  161. package/dist/reviewers/conflict-resolve.d.ts.map +1 -1
  162. package/dist/reviewers/conflict-resolve.js +3 -2
  163. package/dist/reviewers/conflict-resolve.js.map +1 -1
  164. package/dist/reviewers/fix.d.ts +5 -1
  165. package/dist/reviewers/fix.d.ts.map +1 -1
  166. package/dist/reviewers/fix.js +68 -2
  167. package/dist/reviewers/fix.js.map +1 -1
  168. package/dist/reviewers/tier-timeouts.d.ts +5 -0
  169. package/dist/reviewers/tier-timeouts.d.ts.map +1 -0
  170. package/dist/reviewers/tier-timeouts.js +14 -0
  171. package/dist/reviewers/tier-timeouts.js.map +1 -0
  172. package/docs/fixture-pr.md +112 -0
  173. package/docs/proof-demo.md +102 -0
  174. package/get-started.md +128 -31
  175. package/get-started.zh.md +7 -1
  176. package/package.json +4 -2
@@ -1,6 +1,10 @@
1
1
  import type { Config } from '../config/schema.js';
2
2
  export declare function applyEdit(fileContent: string, oldText: string, newText: string): string | null;
3
- export declare function runFixStep(tmpDir: string, baseRef: string, prTitle: string, reviewComment: string, instructions: string, config: Config, model?: string): Promise<{
3
+ export declare function runFixStep(tmpDir: string, baseRef: string, prTitle: string, reviewComment: string, instructions: string, config: Config, model?: string, timeoutMs?: number): Promise<{
4
+ appliedCount: number;
5
+ tokensUsed?: number;
6
+ }>;
7
+ export declare function runCodexFixStep(tmpDir: string, baseRef: string, prTitle: string, reviewComment: string, instructions: string, model?: string, timeoutMs?: number): Promise<{
4
8
  appliedCount: number;
5
9
  tokensUsed?: number;
6
10
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/reviewers/fix.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AA4DjD,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO9F;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,SAAY,GAChB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkIxD"}
1
+ {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../../src/reviewers/fix.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AA4DjD,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO9F;AAED,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,KAAK,SAAY,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmIxD;AA2BD,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,YAAY,EAAE,MAAM,EACpB,KAAK,SAAY,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6CxD"}
@@ -62,7 +62,7 @@ export function applyEdit(fileContent, oldText, newText) {
62
62
  return null;
63
63
  return fileContent.slice(0, idx) + newText + fileContent.slice(idx + oldText.length);
64
64
  }
65
- export async function runFixStep(tmpDir, baseRef, prTitle, reviewComment, instructions, config, model = 'default') {
65
+ export async function runFixStep(tmpDir, baseRef, prTitle, reviewComment, instructions, config, model = 'default', timeoutMs) {
66
66
  let diff = '';
67
67
  try {
68
68
  diff = execSync(`git diff origin/${baseRef}...HEAD`, { cwd: tmpDir, encoding: 'utf8' });
@@ -82,9 +82,10 @@ export async function runFixStep(tmpDir, baseRef, prTitle, reviewComment, instru
82
82
  let tokensUsed;
83
83
  try {
84
84
  const modelArgs = model !== 'default' ? ['--model', model] : [];
85
+ const resolvedTimeout = timeoutMs === undefined ? 180_000 : timeoutMs === 0 ? undefined : timeoutMs;
85
86
  const { stdout } = await execa('claude', ['--print', '--output-format', 'json', ...modelArgs], {
86
87
  input: prompt,
87
- timeout: 180_000,
88
+ timeout: resolvedTimeout,
88
89
  env: { ...process.env },
89
90
  });
90
91
  const raw = stdout.trim();
@@ -194,4 +195,69 @@ export async function runFixStep(tmpDir, baseRef, prTitle, reviewComment, instru
194
195
  }
195
196
  return { appliedCount, tokensUsed };
196
197
  }
198
+ // Codex fix: codex is an agentic tool that edits files directly on disk.
199
+ // We pass the fix context as a prompt, run codex in full-auto mode, then
200
+ // detect how many files changed via git diff rather than parsing edit blocks.
201
+ const CODEX_FIX_PROMPT = `You opened a pull request that received the following code review.
202
+
203
+ PR title: {PR_TITLE}
204
+
205
+ Code review comment:
206
+ ---
207
+ {REVIEW_COMMENT}
208
+ ---
209
+
210
+ Diff of your changes (base..head):
211
+ ---
212
+ {DIFF}
213
+ ---
214
+
215
+ {EXTRA_INSTRUCTIONS}
216
+
217
+ Please address the issues raised in the review. Rules:
218
+ - Only fix what the review explicitly calls out
219
+ - Do not refactor unrelated code, rename variables, or add tests unless asked
220
+ - If a comment requires deeper understanding of business logic, skip it
221
+ - If there are no actionable code changes, exit immediately without modifying any files`;
222
+ export async function runCodexFixStep(tmpDir, baseRef, prTitle, reviewComment, instructions, model = 'default', timeoutMs) {
223
+ let diff = '';
224
+ try {
225
+ diff = execSync(`git diff origin/${baseRef}...HEAD`, { cwd: tmpDir, encoding: 'utf8' });
226
+ }
227
+ catch {
228
+ try {
229
+ diff = execSync('git diff HEAD~1', { cwd: tmpDir, encoding: 'utf8' });
230
+ }
231
+ catch { /* proceed with empty diff */ }
232
+ }
233
+ const prompt = CODEX_FIX_PROMPT
234
+ .replace('{PR_TITLE}', prTitle)
235
+ .replace('{REVIEW_COMMENT}', reviewComment.slice(0, 8000))
236
+ .replace('{DIFF}', diff.slice(0, 16000))
237
+ .replace('{EXTRA_INSTRUCTIONS}', instructions ? `Additional instructions: ${instructions}` : '');
238
+ const resolvedTimeout = timeoutMs === undefined ? 300_000 : timeoutMs === 0 ? undefined : timeoutMs;
239
+ const modelArgs = model !== 'default' ? ['-c', `model="${model}"`] : [];
240
+ try {
241
+ await execa('codex', ['exec', ...modelArgs, prompt], {
242
+ cwd: tmpDir,
243
+ timeout: resolvedTimeout,
244
+ env: { ...process.env, CODEX_QUIET_MODE: '1', HOME: process.env.HOME ?? '' },
245
+ });
246
+ }
247
+ catch (err) {
248
+ const msg = err instanceof Error ? err.message : String(err);
249
+ if (/not logged in|auth|credential/i.test(msg)) {
250
+ throw new Error('codex auth failure during fix step — run: codex login');
251
+ }
252
+ throw err;
253
+ }
254
+ // Count all files codex touched: modified/deleted (git diff) + newly created (git ls-files --others)
255
+ const changedOutput = execSync('git diff --name-only', { cwd: tmpDir, encoding: 'utf8' }).trim();
256
+ const untrackedOutput = execSync('git ls-files --others --exclude-standard', { cwd: tmpDir, encoding: 'utf8' }).trim();
257
+ const changedFiles = [
258
+ ...(changedOutput ? changedOutput.split('\n').filter(Boolean) : []),
259
+ ...(untrackedOutput ? untrackedOutput.split('\n').filter(Boolean) : []),
260
+ ];
261
+ return { appliedCount: changedFiles.length };
262
+ }
197
263
  //# sourceMappingURL=fix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/reviewers/fix.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fix.js","sourceRoot":"","sources":["../../src/reviewers/fix.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAQ7B,mFAAmF;AACnF,yDAAyD;AACzD,MAAM,cAAc,GAAG,GAAG,CAAA;AAE1B,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAyCgC,CAAA;AAExD,SAAS,UAAU,CAAC,QAAgB;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC9D,CAAC;AAED,yEAAyE;AACzE,mFAAmF;AACnF,MAAM,UAAU,SAAS,CAAC,WAAmB,EAAE,OAAe,EAAE,OAAe;IAC7E,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC3B,gFAAgF;IAChF,mFAAmF;IACnF,IAAI,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IACzD,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AACtF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,OAAe,EACf,OAAe,EACf,aAAqB,EACrB,YAAoB,EACpB,MAAc,EACd,KAAK,GAAG,SAAS,EACjB,SAAkB;IAElB,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI,CAAC;QACH,IAAI,GAAG,QAAQ,CAAC,mBAAmB,OAAO,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QACvE,CAAC;QAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,eAAe;SAC3B,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC;SAC9B,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SACzD,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SACvC,OAAO,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAElG,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAI,UAA8B,CAAA;IAClC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC/D,MAAM,eAAe,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;QACnG,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE;YAC7F,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,eAAe;YACxB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;SACxB,CAAC,CAAA;QACF,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAqB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAChD,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAA;YAChE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,YAAY,CAAA;YACxC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,aAAa,CAAA;YAC1C,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;QACnG,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,GAAG,CAAA;QACd,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,IAAI,gCAAgC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;QACjF,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAA;IAE9E,IAAI,YAAY,GAAG,CAAC,CAAA;IAEpB,8EAA8E;IAC9E,gFAAgF;IAChF,MAAM,SAAS,GAAG,0CAA0C,CAAA;IAC5D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAA,CAAG,gCAAgC;IAC9E,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAA,CAAG,yCAAyC;IAEvF,IAAI,KAA6B,CAAA;IACjC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACjD,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,KAAK,CAAA;QAChC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAQ;QAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;QACrD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ;YAAE,SAAQ;QAEpC,yEAAyE;QACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACjE,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QAEjE,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACtC,2EAA2E;QAC3E,+EAA+E;QAC/E,0EAA0E;QAC1E,IAAI,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAChE,MAAM,YAAY,GAAG,OAAO,KAAK,SAAS,CAAA;QAE1C,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,OAAO,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;gBACvC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAClC,CAAC;YAAC,MAAM,CAAC;gBACP,iFAAiF;gBACjF,kEAAkE;gBAClE,IAAI,OAAO,KAAK,EAAE;oBAAE,SAAQ;gBAC5B,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;gBAChC,SAAQ;YACV,CAAC;QACH,CAAC;QAED,8EAA8E;QAC9E,iFAAiF;QACjF,IAAI,OAAO,KAAK,EAAE;YAAE,SAAQ;QAE5B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QACrD,IAAI,OAAO,KAAK,IAAI;YAAE,SAAQ,CAAE,0CAA0C;QAC1E,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAClC,CAAC;IAED,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC;YACH,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAChD,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAC/B,YAAY,EAAE,CAAA;QAChB,CAAC;QAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;IACzC,CAAC;IAED,8EAA8E;IAC9E,qFAAqF;IACrF,+CAA+C;IAC/C,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,SAAS,GAAG,0CAA0C,CAAA;QAC5D,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACjD,MAAM,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,KAAK,CAAA;YACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,SAAQ;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YACtC,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YAChD,IAAI,CAAC;gBACH,IAAI,iBAAiB,GAAG,CAAC,CAAA;gBACzB,IAAI,CAAC;oBACH,iBAAiB,GAAG,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;gBACtE,CAAC;gBAAC,MAAM,CAAC,CAAC,qCAAqC,CAAC,CAAC;gBACjD,IAAI,iBAAiB,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAA;oBAClD,IAAI,YAAY,GAAG,iBAAiB,GAAG,cAAc;wBAAE,SAAQ,CAAE,4BAA4B;gBAC/F,CAAC;gBACD,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;gBAClC,YAAY,EAAE,CAAA;YAChB,CAAC;YAAC,MAAM,CAAC,CAAC,2BAA2B,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAA;AACrC,CAAC;AAED,yEAAyE;AACzE,yEAAyE;AACzE,8EAA8E;AAC9E,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;wFAoB+D,CAAA;AAExF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,OAAe,EACf,OAAe,EACf,aAAqB,EACrB,YAAoB,EACpB,KAAK,GAAG,SAAS,EACjB,SAAkB;IAElB,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI,CAAC;QACH,IAAI,GAAG,QAAQ,CAAC,mBAAmB,OAAO,SAAS,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;IACzF,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QACvE,CAAC;QAAC,MAAM,CAAC,CAAC,6BAA6B,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,gBAAgB;SAC5B,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC;SAC9B,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;SACzD,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;SACvC,OAAO,CAAC,sBAAsB,EAAE,YAAY,CAAC,CAAC,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;IAElG,MAAM,eAAe,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IACnG,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEvE,IAAI,CAAC;QACH,MAAM,KAAK,CACT,OAAO,EACP,CAAC,MAAM,EAAE,GAAG,SAAS,EAAE,MAAM,CAAC,EAC9B;YACE,GAAG,EAAE,MAAM;YACX,OAAO,EAAE,eAAe;YACxB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE;SAC7E,CACF,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5D,IAAI,gCAAgC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;QAC1E,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;IAED,qGAAqG;IACrG,MAAM,aAAa,GAAG,QAAQ,CAAC,sBAAsB,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IAChG,MAAM,eAAe,GAAG,QAAQ,CAAC,0CAA0C,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACtH,MAAM,YAAY,GAAG;QACnB,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACxE,CAAA;IACD,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,MAAM,EAAE,CAAA;AAC9C,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { QualityConfig } from '../config/schema.js';
2
+ export declare const TIER_TIMEOUT_MS: Record<QualityConfig['tier'], number>;
3
+ export declare const DEFAULT_TIER_TIMEOUT_MS: number;
4
+ export declare function tierTimeoutMs(tier: QualityConfig['tier']): number;
5
+ //# sourceMappingURL=tier-timeouts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier-timeouts.d.ts","sourceRoot":"","sources":["../../src/reviewers/tier-timeouts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAMxD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,CAIjE,CAAA;AAED,eAAO,MAAM,uBAAuB,QAA2B,CAAA;AAE/D,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAEjE"}
@@ -0,0 +1,14 @@
1
+ // Default reviewer subprocess timeouts per quality tier. Applied when
2
+ // neither --timeout nor vendor.timeout_sec is set. Both claude and codex
3
+ // reviewers share this table so that quality.tier has a consistent effect
4
+ // across vendors.
5
+ export const TIER_TIMEOUT_MS = {
6
+ fast: 300_000,
7
+ balanced: 600_000,
8
+ thorough: 1_200_000,
9
+ };
10
+ export const DEFAULT_TIER_TIMEOUT_MS = TIER_TIMEOUT_MS.balanced;
11
+ export function tierTimeoutMs(tier) {
12
+ return TIER_TIMEOUT_MS[tier] ?? DEFAULT_TIER_TIMEOUT_MS;
13
+ }
14
+ //# sourceMappingURL=tier-timeouts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier-timeouts.js","sourceRoot":"","sources":["../../src/reviewers/tier-timeouts.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,yEAAyE;AACzE,0EAA0E;AAC1E,kBAAkB;AAClB,MAAM,CAAC,MAAM,eAAe,GAA0C;IACpE,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,SAAS;CACpB,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC,QAAQ,CAAA;AAE/D,MAAM,UAAU,aAAa,CAAC,IAA2B;IACvD,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAA;AACzD,CAAC"}
@@ -0,0 +1,112 @@
1
+ # Fixture PR Plan
2
+
3
+ The fixture PR gives new users a safe, inspectable way to understand Crosscheck before trying it on production code.
4
+
5
+ ## Repository
6
+
7
+ Create:
8
+
9
+ ```text
10
+ humanbased-ai/crosscheck-proof-fixture
11
+ ```
12
+
13
+ Use a small TypeScript service with:
14
+
15
+ - account transaction listing
16
+ - authenticated user context
17
+ - pagination
18
+ - one regression test covering tenant/user scoping
19
+
20
+ ## Pull request
21
+
22
+ Title:
23
+
24
+ ```text
25
+ Add account transaction pagination
26
+ ```
27
+
28
+ The PR should look useful and plausible. It should add pagination to a transaction query while accidentally removing the authenticated user scope.
29
+
30
+ Bug shape:
31
+
32
+ ```ts
33
+ // secure baseline
34
+ where: { accountId, ownerId: ctx.user.id }
35
+
36
+ // buggy PR
37
+ where: { accountId }
38
+ ```
39
+
40
+ Expected risk:
41
+
42
+ ```text
43
+ Any authenticated user can read another account's transactions by guessing accountId.
44
+ ```
45
+
46
+ ## PR timeline
47
+
48
+ The public timeline should contain:
49
+
50
+ 1. Initial agent-authored feature commit.
51
+ 2. Crosscheck review comment with `VERDICT: BLOCK`.
52
+ 3. Crosscheck fix commit restoring user scope.
53
+ 4. Regression test proving cross-user access is blocked.
54
+ 5. Crosscheck recheck comment with `VERDICT: APPROVE`.
55
+
56
+ ## User-facing first-run path
57
+
58
+ The first-run docs should recommend:
59
+
60
+ ```bash
61
+ npm install -g @humanbased/crosscheck
62
+ gh auth login
63
+ codex login --device-auth
64
+ crosscheck status
65
+ crosscheck review https://github.com/humanbased-ai/crosscheck-proof-fixture/pull/1 --reviewer codex
66
+ ```
67
+
68
+ Use `--reviewer claude` when Claude Code is the authenticated reviewer.
69
+
70
+ After review succeeds, the user can try:
71
+
72
+ ```bash
73
+ crosscheck run https://github.com/humanbased-ai/crosscheck-proof-fixture/pull/1 --steps fix,recheck --fixer claude --reviewer codex
74
+ ```
75
+
76
+ ## Acceptance criteria
77
+
78
+ - The PR is public.
79
+ - The bug is realistic and easy to explain.
80
+ - The first review produces a merge-relevant finding.
81
+ - The fix is small and inspectable.
82
+ - The recheck closes the loop.
83
+ - The demo does not require `watch`, `serve`, tunnels, or webhooks.
84
+
85
+ ## Publish commands
86
+
87
+ From the prepared fixture repository:
88
+
89
+ ```bash
90
+ cd "/Users/beingzy/Documents/New project 2/crosscheck-proof-fixture"
91
+
92
+ gh repo create humanbased-ai/crosscheck-proof-fixture \
93
+ --public \
94
+ --source . \
95
+ --remote origin \
96
+ --description "Proof fixture for Crosscheck's review-fix-recheck demo" \
97
+ --push
98
+
99
+ git push origin add-transaction-pagination
100
+
101
+ gh pr create \
102
+ --base main \
103
+ --head add-transaction-pagination \
104
+ --title "Add account transaction pagination" \
105
+ --body "This fixture PR intentionally adds pagination while dropping authenticated-user scoping, so Crosscheck can demonstrate a BLOCK -> fix -> recheck loop."
106
+ ```
107
+
108
+ If GitHub CLI keyring auth times out, refresh auth with:
109
+
110
+ ```bash
111
+ gh auth login
112
+ ```
@@ -0,0 +1,102 @@
1
+ # Proof Demo: BLOCK to APPROVE
2
+
3
+ The first public proof asset should be a real GitHub PR timeline plus a 60-90 second narrated screen recording. The video creates attention, but the public PR is the evidence.
4
+
5
+ The intended chain is:
6
+
7
+ ```text
8
+ agent PR opened -> Crosscheck BLOCK finding -> [crosscheck] fix commit -> recheck APPROVE -> merge-ready
9
+ ```
10
+
11
+ ## Demo fixture
12
+
13
+ Repository:
14
+
15
+ ```text
16
+ https://github.com/humanbased-ai/crosscheck-proof-fixture
17
+ ```
18
+
19
+ PR title:
20
+
21
+ ```text
22
+ Add account transaction pagination
23
+ ```
24
+
25
+ Seed bug:
26
+
27
+ The PR adds pagination but accidentally drops tenant/user scoping.
28
+
29
+ ```ts
30
+ // before: scoped to the authenticated user
31
+ where: { accountId, ownerId: ctx.user.id }
32
+
33
+ // buggy PR: ownerId dropped
34
+ where: { accountId }
35
+ ```
36
+
37
+ Expected Crosscheck finding:
38
+
39
+ ```text
40
+ BLOCK: Any authenticated user can read another account's transactions by guessing accountId.
41
+ ```
42
+
43
+ ## Demo commands
44
+
45
+ ```bash
46
+ export PR_URL=https://github.com/humanbased-ai/crosscheck-proof-fixture/pull/1
47
+
48
+ crosscheck detect-step "$PR_URL"
49
+
50
+ crosscheck run "$PR_URL" \
51
+ --steps review \
52
+ --reviewer codex \
53
+ --timeout 10m
54
+
55
+ crosscheck detect-step "$PR_URL"
56
+
57
+ crosscheck run "$PR_URL" \
58
+ --steps fix,recheck \
59
+ --fixer claude \
60
+ --reviewer codex \
61
+ --timeout 10m
62
+
63
+ crosscheck scan --force --tidy
64
+ ```
65
+
66
+ ## Video beats
67
+
68
+ 1. Open the PR: "An agent shipped a plausible feature."
69
+ 2. Show the diff where `ownerId` was removed.
70
+ 3. Run the review command.
71
+ 4. Open Crosscheck's GitHub comment with the `BLOCK` finding.
72
+ 5. Run fix and recheck.
73
+ 6. Show the `[crosscheck] fix:` commit restoring authorization scope and adding or repairing a regression test.
74
+ 7. Show the recheck comment with `APPROVE`.
75
+ 8. End on `crosscheck scan` showing the PR as approved and ready for a human merge decision.
76
+
77
+ ## Assets to produce
78
+
79
+ - `assets/demo-block-to-approve.mp4`
80
+ - `assets/demo-block-to-approve.gif`
81
+ - `assets/demo-pr-timeline.png`
82
+ - `assets/demo-crosscheck-comment-block.png`
83
+ - `assets/demo-recheck-approve.png`
84
+
85
+ ## Launch-ready rubric
86
+
87
+ - A viewer understands the bug in under 15 seconds.
88
+ - The Crosscheck finding is genuinely blocking, not cosmetic.
89
+ - The finding explains the production risk.
90
+ - The fix commit is inspectable and clearly tied to the finding.
91
+ - The recheck comment closes the loop with `APPROVE`.
92
+ - The PR timeline is public and reproducible.
93
+ - The video is 60-90 seconds with no setup detours.
94
+ - The README first screen includes the proof before asking users to install.
95
+ - A skeptical engineer can say: "Yes, this would have prevented a bad merge."
96
+
97
+ ## Trust guardrails
98
+
99
+ - Do not imply automatic merge.
100
+ - Do not imply guaranteed correctness.
101
+ - Say "merge-ready" as a human decision state, not a machine guarantee.
102
+ - Show review-only mode as the conservative first step when discussing team adoption.