@humanbased/crosscheck 1.2.0-beta.57 → 1.2.0-beta.71

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 (165) hide show
  1. package/README.md +28 -0
  2. package/assets/skills/code-review/.crosscheck-skill.json +9 -0
  3. package/assets/skills/code-review/LICENSE +21 -0
  4. package/assets/skills/code-review/SKILL.md +89 -0
  5. package/assets/skills/code-review/agents/openai.yaml +3 -0
  6. package/assets/skills/code-review-skill/.crosscheck-skill.json +9 -0
  7. package/assets/skills/code-review-skill/LICENSE +21 -0
  8. package/assets/skills/code-review-skill/SKILL.md +231 -0
  9. package/assets/skills/code-review-skill/assets/pr-review-template.md +137 -0
  10. package/assets/skills/code-review-skill/assets/review-checklist.md +123 -0
  11. package/assets/skills/code-review-skill/reference/angular.md +768 -0
  12. package/assets/skills/code-review-skill/reference/architecture-review-guide.md +472 -0
  13. package/assets/skills/code-review-skill/reference/c.md +890 -0
  14. package/assets/skills/code-review-skill/reference/code-quality-universal.md +488 -0
  15. package/assets/skills/code-review-skill/reference/code-review-best-practices.md +136 -0
  16. package/assets/skills/code-review-skill/reference/common-bugs-checklist.md +286 -0
  17. package/assets/skills/code-review-skill/reference/cpp.md +893 -0
  18. package/assets/skills/code-review-skill/reference/cross-cutting/async-concurrency-patterns.md +515 -0
  19. package/assets/skills/code-review-skill/reference/cross-cutting/error-handling-principles.md +492 -0
  20. package/assets/skills/code-review-skill/reference/cross-cutting/n-plus-one-queries.md +309 -0
  21. package/assets/skills/code-review-skill/reference/cross-cutting/sql-injection-prevention.md +308 -0
  22. package/assets/skills/code-review-skill/reference/cross-cutting/xss-prevention.md +264 -0
  23. package/assets/skills/code-review-skill/reference/csharp.md +525 -0
  24. package/assets/skills/code-review-skill/reference/css-less-sass.md +661 -0
  25. package/assets/skills/code-review-skill/reference/django.md +985 -0
  26. package/assets/skills/code-review-skill/reference/fastapi.md +580 -0
  27. package/assets/skills/code-review-skill/reference/go.md +993 -0
  28. package/assets/skills/code-review-skill/reference/java.md +409 -0
  29. package/assets/skills/code-review-skill/reference/java8.md +586 -0
  30. package/assets/skills/code-review-skill/reference/kotlin.md +1018 -0
  31. package/assets/skills/code-review-skill/reference/nestjs.md +593 -0
  32. package/assets/skills/code-review-skill/reference/performance-review-guide.md +816 -0
  33. package/assets/skills/code-review-skill/reference/php.md +684 -0
  34. package/assets/skills/code-review-skill/reference/python.md +1073 -0
  35. package/assets/skills/code-review-skill/reference/qt.md +757 -0
  36. package/assets/skills/code-review-skill/reference/react.md +871 -0
  37. package/assets/skills/code-review-skill/reference/ruby.md +964 -0
  38. package/assets/skills/code-review-skill/reference/rust.md +846 -0
  39. package/assets/skills/code-review-skill/reference/security-review-guide.md +494 -0
  40. package/assets/skills/code-review-skill/reference/svelte.md +1064 -0
  41. package/assets/skills/code-review-skill/reference/swift.md +936 -0
  42. package/assets/skills/code-review-skill/reference/typescript.md +1016 -0
  43. package/assets/skills/code-review-skill/reference/vue.md +924 -0
  44. package/assets/skills/code-review-skill/reference/zig.md +440 -0
  45. package/assets/skills/code-review-skill/scripts/pr-analyzer.py +435 -0
  46. package/assets/skills/code-review-skill/scripts/test_pr_analyzer.py +380 -0
  47. package/assets/skills/codebase-design/.crosscheck-skill.json +9 -0
  48. package/assets/skills/codebase-design/DEEPENING.md +37 -0
  49. package/assets/skills/codebase-design/DESIGN-IT-TWICE.md +44 -0
  50. package/assets/skills/codebase-design/LICENSE +21 -0
  51. package/assets/skills/codebase-design/SKILL.md +114 -0
  52. package/assets/skills/codebase-design/agents/openai.yaml +3 -0
  53. package/assets/skills/diagnosing-bugs/.crosscheck-skill.json +9 -0
  54. package/assets/skills/diagnosing-bugs/LICENSE +21 -0
  55. package/assets/skills/diagnosing-bugs/SKILL.md +134 -0
  56. package/assets/skills/diagnosing-bugs/agents/openai.yaml +3 -0
  57. package/assets/skills/diagnosing-bugs/scripts/hitl-loop.template.sh +41 -0
  58. package/crosscheck.config.example.yml +10 -0
  59. package/dist/__tests__/conflict-resolve.test.js +44 -1
  60. package/dist/__tests__/conflict-resolve.test.js.map +1 -1
  61. package/dist/__tests__/fix.test.js +31 -0
  62. package/dist/__tests__/fix.test.js.map +1 -1
  63. package/dist/__tests__/onboard-preservation.test.js +5 -0
  64. package/dist/__tests__/onboard-preservation.test.js.map +1 -1
  65. package/dist/__tests__/optimize.test.js +1 -0
  66. package/dist/__tests__/optimize.test.js.map +1 -1
  67. package/dist/__tests__/repo-picker.test.js +7 -1
  68. package/dist/__tests__/repo-picker.test.js.map +1 -1
  69. package/dist/__tests__/repository-guidance.test.d.ts +2 -0
  70. package/dist/__tests__/repository-guidance.test.d.ts.map +1 -0
  71. package/dist/__tests__/repository-guidance.test.js +89 -0
  72. package/dist/__tests__/repository-guidance.test.js.map +1 -0
  73. package/dist/__tests__/skill-attribution.test.d.ts +2 -0
  74. package/dist/__tests__/skill-attribution.test.d.ts.map +1 -0
  75. package/dist/__tests__/skill-attribution.test.js +37 -0
  76. package/dist/__tests__/skill-attribution.test.js.map +1 -0
  77. package/dist/__tests__/skill-broker.test.d.ts +2 -0
  78. package/dist/__tests__/skill-broker.test.d.ts.map +1 -0
  79. package/dist/__tests__/skill-broker.test.js +100 -0
  80. package/dist/__tests__/skill-broker.test.js.map +1 -0
  81. package/dist/__tests__/skill-catalog.test.d.ts +2 -0
  82. package/dist/__tests__/skill-catalog.test.d.ts.map +1 -0
  83. package/dist/__tests__/skill-catalog.test.js +40 -0
  84. package/dist/__tests__/skill-catalog.test.js.map +1 -0
  85. package/dist/__tests__/skill-installer.test.d.ts +2 -0
  86. package/dist/__tests__/skill-installer.test.d.ts.map +1 -0
  87. package/dist/__tests__/skill-installer.test.js +96 -0
  88. package/dist/__tests__/skill-installer.test.js.map +1 -0
  89. package/dist/__tests__/skills-config.test.d.ts +2 -0
  90. package/dist/__tests__/skills-config.test.d.ts.map +1 -0
  91. package/dist/__tests__/skills-config.test.js +12 -0
  92. package/dist/__tests__/skills-config.test.js.map +1 -0
  93. package/dist/cli.js +7 -0
  94. package/dist/cli.js.map +1 -1
  95. package/dist/commands/onboard.d.ts +1 -0
  96. package/dist/commands/onboard.d.ts.map +1 -1
  97. package/dist/commands/onboard.js +36 -1
  98. package/dist/commands/onboard.js.map +1 -1
  99. package/dist/commands/review.d.ts.map +1 -1
  100. package/dist/commands/review.js +15 -4
  101. package/dist/commands/review.js.map +1 -1
  102. package/dist/commands/skill.d.ts +2 -0
  103. package/dist/commands/skill.d.ts.map +1 -0
  104. package/dist/commands/skill.js +16 -0
  105. package/dist/commands/skill.js.map +1 -0
  106. package/dist/commands/status.d.ts.map +1 -1
  107. package/dist/commands/status.js +10 -0
  108. package/dist/commands/status.js.map +1 -1
  109. package/dist/config/schema.d.ts +21 -0
  110. package/dist/config/schema.d.ts.map +1 -1
  111. package/dist/config/schema.js +4 -0
  112. package/dist/config/schema.js.map +1 -1
  113. package/dist/lib/repo-picker.d.ts +3 -0
  114. package/dist/lib/repo-picker.d.ts.map +1 -1
  115. package/dist/lib/repo-picker.js +45 -9
  116. package/dist/lib/repo-picker.js.map +1 -1
  117. package/dist/lib/repository-guidance.d.ts +2 -0
  118. package/dist/lib/repository-guidance.d.ts.map +1 -0
  119. package/dist/lib/repository-guidance.js +55 -0
  120. package/dist/lib/repository-guidance.js.map +1 -0
  121. package/dist/lib/runner.d.ts.map +1 -1
  122. package/dist/lib/runner.js +50 -19
  123. package/dist/lib/runner.js.map +1 -1
  124. package/dist/reviewers/claude.d.ts +2 -1
  125. package/dist/reviewers/claude.d.ts.map +1 -1
  126. package/dist/reviewers/claude.js +21 -3
  127. package/dist/reviewers/claude.js.map +1 -1
  128. package/dist/reviewers/codex.d.ts +2 -1
  129. package/dist/reviewers/codex.d.ts.map +1 -1
  130. package/dist/reviewers/codex.js +7 -3
  131. package/dist/reviewers/codex.js.map +1 -1
  132. package/dist/reviewers/conflict-resolve.d.ts +2 -1
  133. package/dist/reviewers/conflict-resolve.d.ts.map +1 -1
  134. package/dist/reviewers/conflict-resolve.js +12 -3
  135. package/dist/reviewers/conflict-resolve.js.map +1 -1
  136. package/dist/reviewers/fix.d.ts +3 -2
  137. package/dist/reviewers/fix.d.ts.map +1 -1
  138. package/dist/reviewers/fix.js +15 -6
  139. package/dist/reviewers/fix.js.map +1 -1
  140. package/dist/skills/attribution.d.ts +4 -0
  141. package/dist/skills/attribution.d.ts.map +1 -0
  142. package/dist/skills/attribution.js +10 -0
  143. package/dist/skills/attribution.js.map +1 -0
  144. package/dist/skills/broker-server.d.ts +2 -0
  145. package/dist/skills/broker-server.d.ts.map +1 -0
  146. package/dist/skills/broker-server.js +30 -0
  147. package/dist/skills/broker-server.js.map +1 -0
  148. package/dist/skills/broker.d.ts +42 -0
  149. package/dist/skills/broker.d.ts.map +1 -0
  150. package/dist/skills/broker.js +177 -0
  151. package/dist/skills/broker.js.map +1 -0
  152. package/dist/skills/catalog.d.ts +28 -0
  153. package/dist/skills/catalog.d.ts.map +1 -0
  154. package/dist/skills/catalog.js +104 -0
  155. package/dist/skills/catalog.js.map +1 -0
  156. package/dist/skills/installer.d.ts +10 -0
  157. package/dist/skills/installer.d.ts.map +1 -0
  158. package/dist/skills/installer.js +136 -0
  159. package/dist/skills/installer.js.map +1 -0
  160. package/dist/skills/integrity.d.ts +4 -0
  161. package/dist/skills/integrity.d.ts.map +1 -0
  162. package/dist/skills/integrity.js +36 -0
  163. package/dist/skills/integrity.js.map +1 -0
  164. package/get-started.md +58 -1
  165. package/package.json +1 -1
package/get-started.md CHANGED
@@ -22,6 +22,7 @@
22
22
  - [Multi-PR syntax](#multi-pr-syntax)
23
23
  - [watch](#crosscheck-watch)
24
24
  - [status](#crosscheck-status)
25
+ - [skill install](#crosscheck-skill-install-source)
25
26
  - [diagnose](#crosscheck-diagnose)
26
27
  - [optimize](#crosscheck-optimize)
27
28
  - [impact](#crosscheck-impact)
@@ -391,6 +392,8 @@ crosscheck onboard --reconfigure # re-run setup even if config already exists
391
392
 
392
393
  **Step 6 — Review quality.** Choose the speed/thoroughness tier for review prompts and reviewer timeouts.
393
394
 
395
+ **Step 6.5 — Agent skills.** Choose which preloaded or custom-installed skills are enabled for coding agents. New setups preselect `code-review-skill (by @awesome-skills, MIT)` and `diagnosing-bugs (by @mattpocock, MIT)`. Matt Pocock's `code-review` and `codebase-design` are available but off by default. Re-running onboard preserves your selection. Skills are made available across workflow operations, and each skill's description plus the coding agent decides when it applies.
396
+
394
397
  **Step 7 — Workflow pipeline.** Choose what happens after a review:
395
398
 
396
399
  ```
@@ -444,6 +447,12 @@ crosscheck onboard
444
447
  [1] fast [2] balanced [3] thorough
445
448
  Choice [2]: 2
446
449
 
450
+ Step 6.5 — agent skills
451
+ [ ] code-review (by @mattpocock, MIT)
452
+ [x] code-review-skill (by @awesome-skills, MIT)
453
+ [x] codebase-design (by @mattpocock, MIT)
454
+ [x] diagnosing-bugs (by @mattpocock, MIT)
455
+
447
456
  Step 7 — workflow pipeline
448
457
  [1] review only [2] review → fix [3] review → fix → re-check
449
458
  Choice [2]: 3
@@ -767,6 +776,8 @@ crosscheck status
767
776
  Config
768
777
  mode cross-vendor
769
778
  quality tier balanced
779
+ installed skills code-review (by @mattpocock, MIT), code-review-skill (by @awesome-skills, MIT), codebase-design (by @mattpocock, MIT), diagnosing-bugs (by @mattpocock, MIT)
780
+ enabled skills code-review-skill (by @awesome-skills, MIT), diagnosing-bugs (by @mattpocock, MIT)
770
781
  codex auth subscription
771
782
  claude model sonnet
772
783
  per-review budget $2.00/review
@@ -790,6 +801,39 @@ crosscheck status
790
801
 
791
802
  ---
792
803
 
804
+ ### `crosscheck skill install <source>`
805
+
806
+ Installs an Agent Skill from a Git URL or local directory into `~/.crosscheck/skills`. Crosscheck validates `SKILL.md`, rejects unsafe names and symbolic links, and records source, revision, author, license, and package integrity. Installation does not enable a skill automatically.
807
+
808
+ Crosscheck itself ships with this preloaded catalog:
809
+
810
+ | Skill | Onboarding default | Best fit |
811
+ |---|---:|---|
812
+ | [`code-review-skill`](https://github.com/awesome-skills/code-review-skill) (by `@awesome-skills`, MIT) | On | General default: broad language, correctness, security, performance, and architecture coverage |
813
+ | [`codebase-design`](https://github.com/mattpocock/skills/tree/main/skills/engineering/codebase-design) (by `@mattpocock`, MIT) | On | Architecture-heavy changes: deep modules, small interfaces, clean seams, and testability |
814
+ | [`diagnosing-bugs`](https://github.com/mattpocock/skills/tree/main/skills/engineering/diagnosing-bugs) (by `@mattpocock`, MIT) | On | Hard bugs and regressions: reproducible signals, ranked hypotheses, and regression evidence |
815
+ | [`code-review`](https://github.com/mattpocock/skills/tree/main/skills/engineering/code-review) (by `@mattpocock`, MIT) | Off | Evidence-rich repositories: separately checks documented standards and issue/PRD fidelity |
816
+
817
+ `code-review` and `code-review-skill` are competing review baselines. The onboarding picker highlights the conflict and will not enable one until the selected counterpart is deselected; the runtime broker also rejects activation of a second baseline. The other bundled skills are complementary.
818
+
819
+ ```bash
820
+ crosscheck skill install https://github.com/owner/my-skill.git
821
+ crosscheck skill install /path/to/my-skill
822
+ crosscheck onboard # enable installed skills
823
+ ```
824
+
825
+ The Git repository or local directory must have `SKILL.md` at its root. For a skill nested in a monorepo, clone it and pass the nested local directory.
826
+
827
+ `crosscheck status` distinguishes the full installed catalog from the enabled selection and renders attributed identities as `skill-name (by @author, license)`.
828
+
829
+ At runtime, Crosscheck distinguishes three states: **installed** skills are in the catalog, **enabled** skills are available to agents, and **activated** skills were actually loaded for one workflow step. The terminal and each PR comment attribute only that step's activated skills, for example: `code-review-skill (by @awesome-skills, MIT)`.
830
+
831
+ Upgrading from an earlier Crosscheck release is opt-in: existing configs default to `skills.enabled: []`. Re-run `crosscheck onboard` to choose the recommended bundle or any additional installed skills.
832
+
833
+ Review and recheck also honor repository practices in `AGENTS.md` and `CLAUDE.md`. These repository-defined practices take precedence over bundled skill advice. Crosscheck reads the root files plus any nested files whose directory contains a changed path, orders them from broadest to most specific, and lets nested guidance override root guidance. It reads these files from the PR's base branch and disables vendor-native discovery for the run, so guidance added or modified by the PR cannot influence its own review.
834
+
835
+ ---
836
+
793
837
  ### `crosscheck diagnose`
794
838
 
795
839
  Reads `~/.crosscheck/logs/` and surfaces failure patterns, reviewer performance, and improvement suggestions.
@@ -1011,7 +1055,7 @@ If no errors are found in recent logs, crosscheck prints `No errors found in rec
1011
1055
 
1012
1056
  On re-runs, `onboard` updates only the fields it collected answers for. Everything else survives unchanged.
1013
1057
 
1014
- **Updated on every run:** `deployment`, `orgs`, `repos`, `mode`, `clone_protocol`, `vendors.*.enabled`, `vendors.*.effort`, `quality.tier`, `tunnel.*`, `post_review.auto_fix.*`
1058
+ **Updated on every run:** `deployment`, `orgs`, `repos`, `mode`, `clone_protocol`, `vendors.*.enabled`, `vendors.*.effort`, `quality.tier`, `skills.enabled`, `tunnel.*`, `post_review.auto_fix.*`
1015
1059
 
1016
1060
  **Never touched by onboard:** per-repo overrides in `~/.crosscheck/workflows/` (owned by `crosscheck alter`), and `~/.crosscheck/workflow.yml` after its first write
1017
1061
 
@@ -1081,6 +1125,16 @@ quality:
1081
1125
  custom_prompt: | # appended to every review prompt
1082
1126
  Be concise. Flag only issues that would block a merge.
1083
1127
 
1128
+ # ── Agent skills ──────────────────────────────────────────────────────────────
1129
+ # Enabled means available to every coding-agent operation. The skill description
1130
+ # and agent decide whether to activate it for a particular step.
1131
+ skills:
1132
+ enabled:
1133
+ - code-review-skill # recommended · @awesome-skills, MIT
1134
+ - diagnosing-bugs # recommended · @mattpocock, MIT
1135
+ # - code-review # preloaded, opt-in · @mattpocock, MIT
1136
+ # - codebase-design # preloaded, opt-in · @mattpocock, MIT
1137
+
1084
1138
  # ── Budget ────────────────────────────────────────────────────────────────────
1085
1139
  budget:
1086
1140
  codex_monthly_usd: 20 # null = unlimited; only applies when auth: api-key
@@ -1376,6 +1430,9 @@ The fix (file lock for same-machine + GitHub commit status for cross-machine) is
1376
1430
  - **Temp isolation** — each PR cloned into a fresh temp dir, deleted after review
1377
1431
  - **Read-only tools** — Claude restricted to `git diff` and `git log` only
1378
1432
  - **Temp credential isolation** — with `clone_protocol: ssh` (default) no tokens touch disk; with `clone_protocol: https` a short-lived token is embedded in the temp clone's remote URL and removed when the temp dir is deleted after review
1433
+ - **Skill package validation** — installs reject unsafe names, attribution injection, symbolic links, packages over 1,000 files or 10 MiB, and collisions; Git sources record their checked-out commit
1434
+ - **Skill integrity** — Crosscheck verifies every installed package against its SHA-256 receipt before exposing it to agents; modified or malformed packages fail closed and appear as unavailable in `crosscheck status`
1435
+ - **Skill execution boundary** — the activation broker exposes instructions and referenced files but never executes bundled scripts itself. Skills are third-party instructions: inspect their source and license before enabling them; the selected coding agent still operates under its normal sandbox and permissions
1379
1436
 
1380
1437
  ---
1381
1438
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@humanbased/crosscheck",
3
- "version": "1.2.0-beta.57",
3
+ "version": "1.2.0-beta.71",
4
4
  "description": "AI code review pipeline that turns agent-written PRs into merge-ready patches",
5
5
  "bin": {
6
6
  "crosscheck": "dist/cli.js",