gentle-pi 2.1.2 → 2.3.0

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 (228) hide show
  1. package/README.md +108 -79
  2. package/assets/agents/gentle-ai-worker.md +7 -3
  3. package/assets/agents/jd-fix-agent.md +1 -1
  4. package/assets/agents/jd-judge-a.md +3 -1
  5. package/assets/agents/jd-judge-b.md +3 -1
  6. package/assets/agents/review-readability.md +4 -3
  7. package/assets/agents/review-reliability.md +4 -3
  8. package/assets/agents/review-resilience.md +4 -3
  9. package/assets/agents/review-risk.md +4 -3
  10. package/assets/agents/sdd-apply.md +11 -4
  11. package/assets/agents/sdd-archive.md +6 -1
  12. package/assets/agents/sdd-design.md +6 -1
  13. package/assets/agents/sdd-explore.md +6 -2
  14. package/assets/agents/sdd-init.md +10 -2
  15. package/assets/agents/sdd-onboard.md +6 -1
  16. package/assets/agents/sdd-proposal.md +8 -1
  17. package/assets/agents/sdd-research.md +54 -0
  18. package/assets/agents/sdd-spec.md +6 -1
  19. package/assets/agents/sdd-status.md +10 -5
  20. package/assets/agents/sdd-sync.md +6 -1
  21. package/assets/agents/sdd-tasks.md +8 -4
  22. package/assets/agents/sdd-verify.md +27 -2
  23. package/assets/chains/4r-review.chain.md +2 -0
  24. package/assets/chains/sdd-full.chain.md +2 -2
  25. package/assets/chains/sdd-plan.chain.md +1 -1
  26. package/assets/chains/sdd-verify.chain.md +2 -2
  27. package/assets/orchestrator-delegation.md +145 -160
  28. package/assets/orchestrator-memory.md +2 -0
  29. package/assets/orchestrator.md +25 -48
  30. package/assets/sdd-orchestrator-workflow.md +163 -25
  31. package/assets/support/sdd-status-contract.md +24 -6
  32. package/contracts/review-integration/v1/fixtures/consent.fixture.json +3 -3
  33. package/contracts/review-integration/v1/fixtures/start-v2.fixture.json +19 -28
  34. package/contracts/review-integration/v1/fixtures/start.fixture.json +1 -10
  35. package/contracts/review-integration/v1/fixtures/status-v2.fixture.json +12 -21
  36. package/contracts/review-integration/v1/schemas/correction-plan-request.schema.json +49 -0
  37. package/contracts/review-integration/v1/schemas/operation.schema.json +76 -0
  38. package/contracts/review-integration/v1/schemas/repair.schema.json +39 -0
  39. package/contracts/review-integration/v1/schemas/status-v2.schema.json +4 -2
  40. package/contracts/review-integration/v1/schemas/status.schema.json +4 -2
  41. package/contracts/review-integration/v1/schemas/transition-execution.schema.json +42 -0
  42. package/contracts/review-integration/v2/fixtures/consent.fixture.json +1 -1
  43. package/contracts/review-integration/v2/fixtures/start.fixture.json +1 -10
  44. package/contracts/review-integration/v2/fixtures/status.fixture.json +1 -10
  45. package/contracts/review-integration/v2/schemas/failure.schema.json +5 -1
  46. package/contracts/review-integration/v2/schemas/last-event-closure.schema.json +66 -0
  47. package/contracts/review-integration/v2/schemas/opencode-provider-role.schema.json +14 -0
  48. package/contracts/review-integration/v2/schemas/operation.schema.json +6 -1
  49. package/contracts/review-integration/v2/schemas/repair.schema.json +4 -2
  50. package/contracts/review-integration/v2/schemas/start.schema.json +5 -2
  51. package/contracts/review-integration/v2/schemas/status.schema.json +4 -2
  52. package/contracts/review-provider-contract-mirror/provider-contract.lock.json +30 -0
  53. package/contracts/review-provider-contract-mirror/v1.1.0/bundle/README.md +12 -0
  54. package/contracts/review-provider-contract-mirror/v1.1.0/bundle/manifest.json +65 -0
  55. package/contracts/review-provider-contract-mirror/v1.1.0/bundle/schemas/lens.schema.json +16 -0
  56. package/contracts/review-provider-contract-mirror/v1.1.0/bundle/schemas/refuter.schema.json +1 -0
  57. package/contracts/review-provider-contract-mirror/v1.1.0/bundle/schemas/targeted-validator.schema.json +1 -0
  58. package/contracts/review-provider-contract-mirror/v1.1.0/bundle/vectors/lens.json +1 -0
  59. package/contracts/review-provider-contract-mirror/v1.1.0/bundle/vectors/refuter.json +1 -0
  60. package/contracts/review-provider-contract-mirror/v1.1.0/bundle/vectors/targeted-validator.json +1 -0
  61. package/contracts/review-provider-contract-mirror/v1.1.0/generated/provider-capabilities.baseline.json +15 -0
  62. package/contracts/review-provider-contract-mirror/v1.1.0/generated/provider-roles.baseline.json +42 -0
  63. package/docs/native-authority-architecture.md +14 -16
  64. package/docs/review-integration.md +27 -353
  65. package/extensions/ask-user-choice.ts +151 -0
  66. package/extensions/gentle-ai.ts +2710 -3211
  67. package/extensions/quiet-tools.ts +515 -32
  68. package/extensions/sdd-init.ts +21 -12
  69. package/extensions/skill-registry.ts +10 -2
  70. package/extensions/startup-banner.ts +10 -4
  71. package/lib/gentle-ai-binary.ts +173 -2
  72. package/lib/gentle-ai-renderer.ts +70 -0
  73. package/lib/model-routing-authority.ts +133 -0
  74. package/lib/native-review-cli.ts +676 -781
  75. package/lib/opaque-pi-reviewer-adapter.ts +284 -0
  76. package/lib/provider-contract-bundle.ts +704 -0
  77. package/lib/review-candidate-view.ts +836 -118
  78. package/lib/review-compact-contract.ts +59 -248
  79. package/lib/review-host-relay.ts +578 -0
  80. package/lib/review-integration-v2.ts +1254 -221
  81. package/lib/review-last-event-controller.ts +35 -0
  82. package/lib/review-relay-contract.ts +16 -0
  83. package/lib/sdd-preflight.ts +230 -67
  84. package/lib/sdd-status.ts +66 -111
  85. package/lib/terminal-theme.ts +1 -1
  86. package/package.json +83 -79
  87. package/runtime/gentle-ai-binary.mjs +174 -3
  88. package/runtime/native-review-cli.mjs +610 -715
  89. package/runtime/review-integration-v2.mjs +1223 -190
  90. package/runtime/review-relay-contract.mjs +17 -0
  91. package/scripts/{build-git-commit-transaction-runner.mjs → build-runtime-modules.mjs} +5 -5
  92. package/scripts/check-provider-contract.mjs +138 -0
  93. package/scripts/gentle-ai-installer.mjs +85 -22
  94. package/scripts/maintainer/provider-relay-matrix.mjs +403 -0
  95. package/scripts/mirror-provider-contract.mjs +143 -0
  96. package/scripts/test-packed-runner.mjs +20 -9
  97. package/scripts/verify-package-files.mjs +119 -43
  98. package/skills/_shared/review-ledger-contract.md +11 -19
  99. package/skills/chained-pr/SKILL.md +3 -0
  100. package/skills/cognitive-doc-design/SKILL.md +1 -1
  101. package/skills/comment-writer/SKILL.md +1 -1
  102. package/skills/gentle-ai/SKILL.md +7 -74
  103. package/skills/issue-creation/SKILL.md +94 -168
  104. package/skills/judgment-day/SKILL.md +9 -5
  105. package/skills/judgment-day/references/prompts-and-formats.md +2 -0
  106. package/skills/rdd-defect-workflow/SKILL.md +54 -0
  107. package/skills/release/SKILL.md +3 -3
  108. package/skills/skill-registry/SKILL.md +1 -1
  109. package/skills/work-unit-commits/SKILL.md +3 -1
  110. package/tests/artifact-language.test.ts +24 -11
  111. package/tests/ask-user-choice.test.ts +264 -0
  112. package/tests/background-subagents.test.ts +771 -0
  113. package/tests/codegraph-tools.test.ts +3 -3
  114. package/tests/crosslane/cross-lane.mjs +16 -0
  115. package/tests/delegated-key-learnings-contract.test.ts +240 -0
  116. package/tests/devbinary/native-review-parity.devtest.ts +167 -250
  117. package/tests/devbinary/pi-host-relay.devtest.ts +867 -0
  118. package/tests/fixtures/devbinary/capabilities-v2.1.derived.json +331 -0
  119. package/tests/fixtures/devbinary/capabilities-v2.2.captured.json +340 -0
  120. package/tests/fixtures/devbinary/consent-v3.captured.json +37 -0
  121. package/tests/fixtures/devbinary/failure-v2-capture-evidence.captured.json +16 -0
  122. package/tests/fixtures/devbinary/last-event-capture-correction-plan.captured.json +10 -0
  123. package/tests/fixtures/devbinary/last-event-capture-refuter-approved.captured.json +20 -0
  124. package/tests/fixtures/devbinary/last-event-capture-refuter-correction-required.captured.json +26 -0
  125. package/tests/fixtures/devbinary/last-event-capture-result-approved.captured.json +8 -0
  126. package/tests/fixtures/devbinary/last-event-capture-result-correction-required.captured.json +26 -0
  127. package/tests/fixtures/devbinary/last-event-capture-validation-approved.captured.json +8 -0
  128. package/tests/fixtures/devbinary/last-event-closure.provenance.md +13 -0
  129. package/tests/fixtures/devbinary/result-artifact-v2-path.captured.json +12 -0
  130. package/tests/fixtures/devbinary/result-artifact-v2.captured.json +12 -0
  131. package/tests/fixtures/devbinary/review-acknowledged-v1.captured.json +9 -0
  132. package/tests/fixtures/devbinary/review-acknowledged.provenance.md +31 -0
  133. package/tests/fixtures/devbinary/start-v3-consent-declined.captured.json +19 -0
  134. package/tests/fixtures/devbinary/start-v3-consent-granted.captured.json +109 -0
  135. package/tests/fixtures/devbinary/start-v3-zero-lens-closed.captured.json +21 -0
  136. package/tests/fixtures/devbinary/status-v5-capture-result-submission.captured.json +184 -0
  137. package/tests/fixtures/devbinary/status-v5-repository-context.captured.json +138 -0
  138. package/tests/fixtures/devbinary/status-v5.captured.json +88 -0
  139. package/tests/fixtures/native-review-cli/v2.5.0-rc.1/PROVENANCE.txt +15 -0
  140. package/tests/fixtures/provider-contract-bundle/v1.1.0/README.md +12 -0
  141. package/tests/fixtures/provider-contract-bundle/v1.1.0/manifest.json +65 -0
  142. package/tests/fixtures/provider-contract-bundle/v1.1.0/schemas/lens.schema.json +16 -0
  143. package/tests/fixtures/provider-contract-bundle/v1.1.0/schemas/refuter.schema.json +1 -0
  144. package/tests/fixtures/provider-contract-bundle/v1.1.0/schemas/targeted-validator.schema.json +1 -0
  145. package/tests/fixtures/provider-contract-bundle/v1.1.0/vectors/lens.json +1 -0
  146. package/tests/fixtures/provider-contract-bundle/v1.1.0/vectors/refuter.json +1 -0
  147. package/tests/fixtures/provider-contract-bundle/v1.1.0/vectors/targeted-validator.json +1 -0
  148. package/tests/gentle-ai-binary.test.ts +83 -13
  149. package/tests/gentle-ai-dev-binary-surfacing.test.ts +195 -0
  150. package/tests/gentle-ai-dev-binary.test.ts +159 -0
  151. package/tests/gentle-ai-installer.test.ts +138 -48
  152. package/tests/gentle-ai.test.ts +820 -131
  153. package/tests/gentle-theme.test.ts +133 -0
  154. package/tests/maintainer/provider-relay.maintest.ts +601 -0
  155. package/tests/model-routing-authority.test.ts +257 -0
  156. package/tests/native-review-capability-contract.test.ts +75 -2
  157. package/tests/native-review-cli.test.ts +588 -908
  158. package/tests/native-review-consent.test.ts +283 -38
  159. package/tests/native-review-parity-runtime.test.ts +108 -350
  160. package/tests/native-review-parity.test.ts +684 -732
  161. package/tests/native-sdd-attempt-authority.test.ts +235 -0
  162. package/tests/opaque-pi-reviewer-adapter.test.ts +266 -0
  163. package/tests/orchestrator-budget.test.ts +158 -89
  164. package/tests/orchestrator-rdd-ownership.test.ts +103 -0
  165. package/tests/package-manifest.test.ts +128 -100
  166. package/tests/provider-contract-bundle.test.ts +385 -0
  167. package/tests/provider-contract-mirror.test.ts +206 -0
  168. package/tests/provider-defect-handoff.test.ts +252 -0
  169. package/tests/quiet-tool-rendering.test.ts +1055 -28
  170. package/tests/review-actor-tool-deny.test.ts +12 -13
  171. package/tests/review-authority-recovery-docs.test.ts +1 -2
  172. package/tests/review-candidate-view.test.ts +898 -12
  173. package/tests/review-compact-contract.test.ts +29 -122
  174. package/tests/review-controller-lock-status.test.ts +2 -2
  175. package/tests/review-controller-native-recovery.test.ts +366 -857
  176. package/tests/review-controller-native-routing.test.ts +1253 -4199
  177. package/tests/review-controller-retired-ops.test.ts +1 -1
  178. package/tests/review-controller-workspace-root.test.ts +236 -70
  179. package/tests/review-controller.test.ts +26 -816
  180. package/tests/review-corrected-finalize-binding.test.ts +134 -0
  181. package/tests/review-dispatch-hydration-gap.test.ts +145 -0
  182. package/tests/review-gate.test.ts +0 -45
  183. package/tests/review-host-relay-restart-parity.test.ts +360 -0
  184. package/tests/review-host-relay-routing.test.ts +352 -0
  185. package/tests/review-host-relay.test.ts +754 -0
  186. package/tests/review-integration-v2-forward.test.ts +654 -0
  187. package/tests/review-integration-v2.test.ts +317 -129
  188. package/tests/review-last-event-closure.test.ts +408 -0
  189. package/tests/review-ledger-contract.test.ts +106 -60
  190. package/tests/review-recovered-lineage-routing.test.ts +199 -0
  191. package/tests/review-relay-transport-agent.test.ts +322 -0
  192. package/tests/review-snapshot.test.ts +3 -2
  193. package/tests/runtime-harness.mjs +573 -180
  194. package/tests/sdd-agent-tools.test.ts +53 -32
  195. package/tests/sdd-preflight.test.ts +81 -15
  196. package/tests/sdd-status.test.ts +109 -110
  197. package/tests/skill-collision-prefixes.test.ts +6 -8
  198. package/tests/skill-registry.test.ts +50 -1
  199. package/tests/verify-package-files.test.ts +62 -0
  200. package/tests/writer-edit-surface-scope.test.ts +230 -0
  201. package/themes/Gentleman-Cute.json +94 -0
  202. package/themes/Gentleman-Sexy.json +92 -0
  203. package/assets/agents/review-refuter.md +0 -40
  204. package/assets/agents/review-validator.md +0 -23
  205. package/lib/git-commit-transaction.ts +0 -801
  206. package/lib/native-review-remediation.ts +0 -49
  207. package/lib/review-compact.ts +0 -947
  208. package/lib/review-refuter-adapter.ts +0 -129
  209. package/lib/review-runtime-contract.ts +0 -68
  210. package/prompts/gcl.md +0 -54
  211. package/prompts/gis.md +0 -25
  212. package/prompts/gpr.md +0 -41
  213. package/prompts/gwr.md +0 -31
  214. package/runtime/git-commit-transaction.mjs +0 -802
  215. package/scripts/run-git-commit-transaction.mjs +0 -35
  216. package/tests/fixtures/native-review-cli/v2.1.2/bind-sdd.json +0 -25
  217. package/tests/fixtures/native-review-cli/v2.1.2/finalize.json +0 -8
  218. package/tests/fixtures/native-review-cli/v2.1.2/sdd-status-engram.json +0 -139
  219. package/tests/fixtures/native-review-cli/v2.1.2/sdd-status.json +0 -200
  220. package/tests/fixtures/native-review-cli/v2.1.2/start.json +0 -12
  221. package/tests/fixtures/native-review-cli/v2.1.2/validate-allow.json +0 -24
  222. package/tests/fixtures/native-review-cli/v2.1.2/validate-deny-empty-context.json +0 -20
  223. package/tests/fixtures/native-review-cli/v2.1.2/validate-deny.json +0 -28
  224. package/tests/fixtures/native-review-cli/v2.1.3/sdd-status-engram.json +0 -139
  225. package/tests/fixtures/native-review-cli/v2.1.3/sdd-status.json +0 -200
  226. package/tests/git-commit-transaction.test.ts +0 -302
  227. package/tests/review-compact.test.ts +0 -243
  228. package/tests/review-refuter-adapter.test.ts +0 -89
@@ -0,0 +1,331 @@
1
+ {
2
+ "schema": "gentle-ai.review-integration.capabilities/v2.1",
3
+ "contract": "gentle-ai.review-integration/v2",
4
+ "protocol": {
5
+ "major": 2,
6
+ "minor": 1
7
+ },
8
+ "package": {
9
+ "name": "gentle-ai",
10
+ "version": "2.4.0-rc.8+fix.verify-attestation-recovery",
11
+ "release_channel": "prerelease"
12
+ },
13
+ "build": {
14
+ "id": "sha256:4db874cd6a31fc1bc0deb2b94c22ad4668e878ffc5c0bc9acc2c81bcbe03e054",
15
+ "go_version": "go1.26.5",
16
+ "module_version": "(devel)",
17
+ "vcs": "git",
18
+ "vcs_revision": "",
19
+ "vcs_time": "",
20
+ "vcs_modified": "true"
21
+ },
22
+ "executable": {
23
+ "sha256": "sha256:ffc91d8fa79c869aba9aa3d1ec80edebb5b1744e5a06fef75d4c8b73c0e46bc1",
24
+ "evidence": "self-reported",
25
+ "verification": "compare-with-published-manifest"
26
+ },
27
+ "operations": [
28
+ "review.bind_sdd",
29
+ "review.capabilities",
30
+ "review.finalize",
31
+ "review.repair",
32
+ "review.retry_final_verification",
33
+ "review.start",
34
+ "review.status",
35
+ "review.validate"
36
+ ],
37
+ "gates": [
38
+ "post-apply",
39
+ "pre-commit",
40
+ "pre-push",
41
+ "pre-pr",
42
+ "release"
43
+ ],
44
+ "projections": [
45
+ "staged",
46
+ "workspace"
47
+ ],
48
+ "schemas": [
49
+ "gentle-ai.review-admitted-result/v2",
50
+ "gentle-ai.review-artifact-subject/v2",
51
+ "gentle-ai.review-authority-repair-assessment/v1",
52
+ "gentle-ai.review-authority-status/v1",
53
+ "gentle-ai.review-gate-request/v1",
54
+ "gentle-ai.review-integration.capabilities/v2.1",
55
+ "gentle-ai.review-integration.failure/v2",
56
+ "gentle-ai.review-final-verification-incident/v1",
57
+ "gentle-ai.review-integration.operation/v2",
58
+ "gentle-ai.review-integration.projection/v1",
59
+ "gentle-ai.review-integration.repair/v2",
60
+ "gentle-ai.review-integration.start/v3",
61
+ "gentle-ai.review-integration.status/v3",
62
+ "gentle-ai.review-receipt/v1",
63
+ "gentle-ai.review-receipt/v2",
64
+ "gentle-ai.review-result-artifact/v2",
65
+ "gentle-ai.review-targeted-validation-request/v1",
66
+ "gentle-ai.review-verification-evidence/v2",
67
+ "https://gentle-ai.dev/schema/review/refuter/v1",
68
+ "https://gentle-ai.dev/schema/review/reviewer/v1",
69
+ "https://gentle-ai.dev/schema/review/validator/v1",
70
+ "gentle-ai.review-integration.consent/v3"
71
+ ],
72
+ "features": {
73
+ "mandatory": [
74
+ {
75
+ "name": "compact_v2_authority",
76
+ "supported": true,
77
+ "requires": []
78
+ },
79
+ {
80
+ "name": "exact_receipt_replay",
81
+ "supported": true,
82
+ "requires": [
83
+ "compact_v2_authority"
84
+ ]
85
+ },
86
+ {
87
+ "name": "five_delivery_gates",
88
+ "supported": true,
89
+ "requires": [
90
+ "compact_v2_authority"
91
+ ]
92
+ },
93
+ {
94
+ "name": "immutable_snapshot",
95
+ "supported": true,
96
+ "requires": []
97
+ },
98
+ {
99
+ "name": "legacy_v1_target_scoped_read_only",
100
+ "supported": true,
101
+ "requires": [
102
+ "target_scoped_status"
103
+ ]
104
+ },
105
+ {
106
+ "name": "repository_independent_capabilities",
107
+ "supported": true,
108
+ "requires": []
109
+ },
110
+ {
111
+ "name": "restart_safe_projection",
112
+ "supported": true,
113
+ "requires": [
114
+ "target_scoped_status"
115
+ ]
116
+ },
117
+ {
118
+ "name": "sdd_receipt_binding",
119
+ "supported": true,
120
+ "requires": [
121
+ "compact_v2_authority"
122
+ ]
123
+ },
124
+ {
125
+ "name": "target_scoped_status",
126
+ "supported": true,
127
+ "requires": [
128
+ "repository_independent_capabilities"
129
+ ]
130
+ },
131
+ {
132
+ "name": "uniform_failure_envelope",
133
+ "supported": true,
134
+ "requires": [
135
+ "repository_independent_capabilities"
136
+ ]
137
+ }
138
+ ],
139
+ "optional": [
140
+ {
141
+ "name": "base_ref_workspace_overlay",
142
+ "supported": true,
143
+ "requires": [
144
+ "immutable_snapshot",
145
+ "restart_safe_projection"
146
+ ]
147
+ },
148
+ {
149
+ "name": "bounded_process_waits",
150
+ "supported": true,
151
+ "requires": [
152
+ "uniform_failure_envelope"
153
+ ]
154
+ },
155
+ {
156
+ "name": "classified_authority_repair",
157
+ "supported": true,
158
+ "requires": [
159
+ "native_next_transition",
160
+ "uniform_failure_envelope"
161
+ ]
162
+ },
163
+ {
164
+ "name": "exact_gate_receipt_discovery",
165
+ "supported": true,
166
+ "requires": [
167
+ "five_delivery_gates"
168
+ ]
169
+ },
170
+ {
171
+ "name": "native_frozen_candidate_context",
172
+ "supported": true,
173
+ "requires": [
174
+ "immutable_snapshot"
175
+ ]
176
+ },
177
+ {
178
+ "name": "native_low_risk_verification",
179
+ "supported": true,
180
+ "requires": [
181
+ "compact_v2_authority"
182
+ ]
183
+ },
184
+ {
185
+ "name": "native_next_transition",
186
+ "supported": true,
187
+ "requires": [
188
+ "target_scoped_status"
189
+ ]
190
+ },
191
+ {
192
+ "name": "one_shot_final_verification_retry",
193
+ "supported": true,
194
+ "requires": [
195
+ "compact_v2_authority",
196
+ "exact_receipt_replay",
197
+ "native_next_transition"
198
+ ]
199
+ },
200
+ {
201
+ "name": "opaque_repository_context",
202
+ "supported": true,
203
+ "requires": [
204
+ "compact_v2_authority",
205
+ "native_next_transition"
206
+ ]
207
+ },
208
+ {
209
+ "name": "outcome_bound_verification_evidence",
210
+ "supported": true,
211
+ "requires": [
212
+ "compact_v2_authority",
213
+ "native_next_transition"
214
+ ]
215
+ },
216
+ {
217
+ "name": "provider_artifact_admission",
218
+ "supported": true,
219
+ "requires": [
220
+ "compact_v2_authority",
221
+ "native_frozen_candidate_context",
222
+ "opaque_repository_context"
223
+ ]
224
+ },
225
+ {
226
+ "name": "provider_targeted_validation_request",
227
+ "supported": true,
228
+ "requires": [
229
+ "compact_v2_authority",
230
+ "native_next_transition"
231
+ ]
232
+ },
233
+ {
234
+ "name": "recovered_correction_evidence",
235
+ "supported": true,
236
+ "requires": [
237
+ "compact_v2_authority",
238
+ "provider_targeted_validation_request"
239
+ ]
240
+ },
241
+ {
242
+ "name": "risk_reasons",
243
+ "supported": true,
244
+ "requires": [
245
+ "repository_independent_capabilities"
246
+ ]
247
+ },
248
+ {
249
+ "name": "scope_change_diagnostics",
250
+ "supported": true,
251
+ "requires": [
252
+ "uniform_failure_envelope"
253
+ ]
254
+ },
255
+ {
256
+ "name": "validating_result_reopen",
257
+ "supported": true,
258
+ "requires": [
259
+ "compact_v2_authority",
260
+ "provider_artifact_admission"
261
+ ]
262
+ },
263
+ {
264
+ "name": "provider_bound_native_git_context",
265
+ "supported": true,
266
+ "requires": [
267
+ "native_frozen_candidate_context",
268
+ "opaque_repository_context",
269
+ "provider_artifact_admission"
270
+ ]
271
+ }
272
+ ]
273
+ },
274
+ "bootstrap": {
275
+ "command": "gentle-ai review status --cwd <repo> --contract gentle-ai.review-integration/v2 --next-transition",
276
+ "target_selector_variants": [
277
+ {
278
+ "target_type": "staged",
279
+ "arguments": [
280
+ "--projection",
281
+ "staged"
282
+ ]
283
+ },
284
+ {
285
+ "target_type": "base_ref",
286
+ "arguments": [
287
+ "--base-ref",
288
+ "<ref>"
289
+ ]
290
+ },
291
+ {
292
+ "target_type": "workspace_overlay_base_ref",
293
+ "arguments": [
294
+ "--workspace-overlay",
295
+ "--base-ref",
296
+ "<ref>"
297
+ ]
298
+ },
299
+ {
300
+ "target_type": "workspace_overlay_base_tree",
301
+ "arguments": [
302
+ "--workspace-overlay",
303
+ "--base-tree",
304
+ "<tree>"
305
+ ]
306
+ }
307
+ ],
308
+ "required_feature": "native_next_transition",
309
+ "unsupported_outcome": "unsupported-capability",
310
+ "parent_only": true
311
+ },
312
+ "compatibility": {
313
+ "minimum_protocol_major": 2,
314
+ "maximum_protocol_major": 2,
315
+ "additive_minor_policy": "optional-fields-only",
316
+ "unknown_mandatory": "reject",
317
+ "unknown_optional": "ignore",
318
+ "modes": [
319
+ "compact-v2",
320
+ "legacy-v1"
321
+ ],
322
+ "legacy_window": {
323
+ "mode": "legacy-v1",
324
+ "state": "active",
325
+ "read_only": true,
326
+ "deprecation_started": true,
327
+ "removal": "not-scheduled",
328
+ "minimum_compatibility_releases": 1
329
+ }
330
+ }
331
+ }
@@ -0,0 +1,340 @@
1
+ {
2
+ "schema": "gentle-ai.review-integration.capabilities/v2.2",
3
+ "contract": "gentle-ai.review-integration/v2",
4
+ "protocol": {
5
+ "major": 2,
6
+ "minor": 2
7
+ },
8
+ "package": {
9
+ "name": "gentle-ai",
10
+ "version": "2.4.0-rc.8+fix.verify-attestation-recovery",
11
+ "release_channel": "prerelease"
12
+ },
13
+ "build": {
14
+ "id": "sha256:4db874cd6a31fc1bc0deb2b94c22ad4668e878ffc5c0bc9acc2c81bcbe03e054",
15
+ "go_version": "go1.26.5",
16
+ "module_version": "(devel)",
17
+ "vcs": "git",
18
+ "vcs_revision": "",
19
+ "vcs_time": "",
20
+ "vcs_modified": "true"
21
+ },
22
+ "executable": {
23
+ "sha256": "sha256:ffc91d8fa79c869aba9aa3d1ec80edebb5b1744e5a06fef75d4c8b73c0e46bc1",
24
+ "evidence": "self-reported",
25
+ "verification": "compare-with-published-manifest"
26
+ },
27
+ "operations": [
28
+ "review.bind_sdd",
29
+ "review.capabilities",
30
+ "review.finalize",
31
+ "review.repair",
32
+ "review.retry_final_verification",
33
+ "review.start",
34
+ "review.status",
35
+ "review.validate"
36
+ ],
37
+ "gates": [
38
+ "post-apply",
39
+ "pre-commit",
40
+ "pre-push",
41
+ "pre-pr",
42
+ "release"
43
+ ],
44
+ "projections": [
45
+ "staged",
46
+ "workspace"
47
+ ],
48
+ "schemas": [
49
+ "gentle-ai.review-admitted-result/v2",
50
+ "gentle-ai.review-artifact-subject/v2",
51
+ "gentle-ai.review-authority-repair-assessment/v1",
52
+ "gentle-ai.review-authority-status/v1",
53
+ "gentle-ai.review-gate-request/v1",
54
+ "gentle-ai.review-integration.capabilities/v2.2",
55
+ "gentle-ai.review-integration.failure/v2",
56
+ "gentle-ai.review-final-verification-incident/v1",
57
+ "gentle-ai.review-integration.operation/v2",
58
+ "gentle-ai.review-integration.projection/v1",
59
+ "gentle-ai.review-integration.repair/v2",
60
+ "gentle-ai.review-integration.start/v3",
61
+ "gentle-ai.review-integration.status/v5",
62
+ "gentle-ai.review-receipt/v1",
63
+ "gentle-ai.review-receipt/v2",
64
+ "gentle-ai.review-result-artifact/v2",
65
+ "gentle-ai.review-targeted-validation-request/v1",
66
+ "gentle-ai.review-verification-evidence/v2",
67
+ "https://gentle-ai.dev/schema/review/refuter/v1",
68
+ "https://gentle-ai.dev/schema/review/reviewer/v1",
69
+ "https://gentle-ai.dev/schema/review/validator/v1",
70
+ "gentle-ai.review-integration.consent/v3"
71
+ ],
72
+ "features": {
73
+ "mandatory": [
74
+ {
75
+ "name": "compact_v2_authority",
76
+ "supported": true,
77
+ "requires": []
78
+ },
79
+ {
80
+ "name": "exact_receipt_replay",
81
+ "supported": true,
82
+ "requires": [
83
+ "compact_v2_authority"
84
+ ]
85
+ },
86
+ {
87
+ "name": "five_delivery_gates",
88
+ "supported": true,
89
+ "requires": [
90
+ "compact_v2_authority"
91
+ ]
92
+ },
93
+ {
94
+ "name": "immutable_snapshot",
95
+ "supported": true,
96
+ "requires": []
97
+ },
98
+ {
99
+ "name": "legacy_v1_target_scoped_read_only",
100
+ "supported": true,
101
+ "requires": [
102
+ "target_scoped_status"
103
+ ]
104
+ },
105
+ {
106
+ "name": "repository_independent_capabilities",
107
+ "supported": true,
108
+ "requires": []
109
+ },
110
+ {
111
+ "name": "restart_safe_projection",
112
+ "supported": true,
113
+ "requires": [
114
+ "target_scoped_status"
115
+ ]
116
+ },
117
+ {
118
+ "name": "sdd_receipt_binding",
119
+ "supported": true,
120
+ "requires": [
121
+ "compact_v2_authority"
122
+ ]
123
+ },
124
+ {
125
+ "name": "target_scoped_status",
126
+ "supported": true,
127
+ "requires": [
128
+ "repository_independent_capabilities"
129
+ ]
130
+ },
131
+ {
132
+ "name": "uniform_failure_envelope",
133
+ "supported": true,
134
+ "requires": [
135
+ "repository_independent_capabilities"
136
+ ]
137
+ }
138
+ ],
139
+ "optional": [
140
+ {
141
+ "name": "base_ref_workspace_overlay",
142
+ "supported": true,
143
+ "requires": [
144
+ "immutable_snapshot",
145
+ "restart_safe_projection"
146
+ ]
147
+ },
148
+ {
149
+ "name": "bounded_process_waits",
150
+ "supported": true,
151
+ "requires": [
152
+ "uniform_failure_envelope"
153
+ ]
154
+ },
155
+ {
156
+ "name": "classified_authority_repair",
157
+ "supported": true,
158
+ "requires": [
159
+ "native_next_transition",
160
+ "uniform_failure_envelope"
161
+ ]
162
+ },
163
+ {
164
+ "name": "exact_gate_receipt_discovery",
165
+ "supported": true,
166
+ "requires": [
167
+ "five_delivery_gates"
168
+ ]
169
+ },
170
+ {
171
+ "name": "native_frozen_candidate_context",
172
+ "supported": true,
173
+ "requires": [
174
+ "immutable_snapshot"
175
+ ]
176
+ },
177
+ {
178
+ "name": "native_low_risk_verification",
179
+ "supported": true,
180
+ "requires": [
181
+ "compact_v2_authority"
182
+ ]
183
+ },
184
+ {
185
+ "name": "native_next_transition",
186
+ "supported": true,
187
+ "requires": [
188
+ "target_scoped_status"
189
+ ]
190
+ },
191
+ {
192
+ "name": "one_shot_final_verification_retry",
193
+ "supported": true,
194
+ "requires": [
195
+ "compact_v2_authority",
196
+ "exact_receipt_replay",
197
+ "native_next_transition"
198
+ ]
199
+ },
200
+ {
201
+ "name": "opaque_repository_context",
202
+ "supported": true,
203
+ "requires": [
204
+ "compact_v2_authority",
205
+ "native_next_transition"
206
+ ]
207
+ },
208
+ {
209
+ "name": "outcome_bound_verification_evidence",
210
+ "supported": true,
211
+ "requires": [
212
+ "compact_v2_authority",
213
+ "native_next_transition"
214
+ ]
215
+ },
216
+ {
217
+ "name": "provider_artifact_admission",
218
+ "supported": true,
219
+ "requires": [
220
+ "compact_v2_authority",
221
+ "native_frozen_candidate_context",
222
+ "opaque_repository_context"
223
+ ]
224
+ },
225
+ {
226
+ "name": "provider_targeted_validation_request",
227
+ "supported": true,
228
+ "requires": [
229
+ "compact_v2_authority",
230
+ "native_next_transition"
231
+ ]
232
+ },
233
+ {
234
+ "name": "recovered_correction_evidence",
235
+ "supported": true,
236
+ "requires": [
237
+ "compact_v2_authority",
238
+ "provider_targeted_validation_request"
239
+ ]
240
+ },
241
+ {
242
+ "name": "risk_reasons",
243
+ "supported": true,
244
+ "requires": [
245
+ "repository_independent_capabilities"
246
+ ]
247
+ },
248
+ {
249
+ "name": "scope_change_diagnostics",
250
+ "supported": true,
251
+ "requires": [
252
+ "uniform_failure_envelope"
253
+ ]
254
+ },
255
+ {
256
+ "name": "validating_result_reopen",
257
+ "supported": true,
258
+ "requires": [
259
+ "compact_v2_authority",
260
+ "provider_artifact_admission"
261
+ ]
262
+ },
263
+ {
264
+ "name": "provider_bound_native_git_context",
265
+ "supported": true,
266
+ "requires": [
267
+ "native_frozen_candidate_context",
268
+ "opaque_repository_context",
269
+ "provider_artifact_admission"
270
+ ]
271
+ },
272
+ {
273
+ "name": "provider_submission_descriptors",
274
+ "supported": true,
275
+ "requires": [
276
+ "native_next_transition",
277
+ "opaque_repository_context",
278
+ "provider_targeted_validation_request"
279
+ ]
280
+ }
281
+ ]
282
+ },
283
+ "bootstrap": {
284
+ "command": "gentle-ai review status --cwd \u003crepo\u003e --contract gentle-ai.review-integration/v2 --next-transition",
285
+ "target_selector_variants": [
286
+ {
287
+ "target_type": "staged",
288
+ "arguments": [
289
+ "--projection",
290
+ "staged"
291
+ ]
292
+ },
293
+ {
294
+ "target_type": "base_ref",
295
+ "arguments": [
296
+ "--base-ref",
297
+ "\u003cref\u003e"
298
+ ]
299
+ },
300
+ {
301
+ "target_type": "workspace_overlay_base_ref",
302
+ "arguments": [
303
+ "--workspace-overlay",
304
+ "--base-ref",
305
+ "\u003cref\u003e"
306
+ ]
307
+ },
308
+ {
309
+ "target_type": "workspace_overlay_base_tree",
310
+ "arguments": [
311
+ "--workspace-overlay",
312
+ "--base-tree",
313
+ "\u003ctree\u003e"
314
+ ]
315
+ }
316
+ ],
317
+ "required_feature": "native_next_transition",
318
+ "unsupported_outcome": "unsupported-capability",
319
+ "parent_only": true
320
+ },
321
+ "compatibility": {
322
+ "minimum_protocol_major": 2,
323
+ "maximum_protocol_major": 2,
324
+ "additive_minor_policy": "optional-fields-only",
325
+ "unknown_mandatory": "reject",
326
+ "unknown_optional": "ignore",
327
+ "modes": [
328
+ "compact-v2",
329
+ "legacy-v1"
330
+ ],
331
+ "legacy_window": {
332
+ "mode": "legacy-v1",
333
+ "state": "active",
334
+ "read_only": true,
335
+ "deprecation_started": true,
336
+ "removal": "not-scheduled",
337
+ "minimum_compatibility_releases": 1
338
+ }
339
+ }
340
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "schema": "gentle-ai.review-integration.consent/v3",
3
+ "contract": "gentle-ai.review-integration/v2",
4
+ "operation": "review.start",
5
+ "action": "consent_required",
6
+ "agent": "claude-code",
7
+ "blocking": true,
8
+ "target_identity": "sha256:377c60e10b852cfcbcca6cd101e6ee7def9621a24a9f4b361d32137a3b0b3988",
9
+ "projection": "workspace",
10
+ "risk_level": "high",
11
+ "changed_files": 2,
12
+ "changed_lines": 12,
13
+ "headline": "Gentle AI can review this change before you call it done.",
14
+ "reason": "this change gets a deeper review because it touches code that starts other processes in internal/runner/runner.go.",
15
+ "value": "Reviewing takes a bit longer, and it makes the result substantially safer.",
16
+ "risk_evidence": [
17
+ "code that starts other processes in internal/runner/runner.go"
18
+ ],
19
+ "choices": [
20
+ {
21
+ "answer": "granted",
22
+ "label": "Run the review now",
23
+ "effect": "Reviews this exact frozen candidate now; nothing is granted for later candidates, so each later medium- or high-risk candidate asks again.",
24
+ "invocation": "gentle-ai review start --contract gentle-ai.review-integration/v2 --cwd /tmp/claude-1000/-home-gentleman-work-gentle-ai/7629c2de-8b8b-4005-b117-ab45c0869f70/scratchpad/consentcap/repo --target sha256:377c60e10b852cfcbcca6cd101e6ee7def9621a24a9f4b361d32137a3b0b3988 --projection workspace --consent granted"
25
+ },
26
+ {
27
+ "answer": "declined",
28
+ "label": "Not now, just this once",
29
+ "effect": "Skips the review for this exact candidate only; no review lineage or receipt is created, and ordinary delivery is unmanaged by candidate choice. The next candidate is asked again. This is not the kill switch.",
30
+ "invocation": "gentle-ai review start --contract gentle-ai.review-integration/v2 --cwd /tmp/claude-1000/-home-gentleman-work-gentle-ai/7629c2de-8b8b-4005-b117-ab45c0869f70/scratchpad/consentcap/repo --target sha256:377c60e10b852cfcbcca6cd101e6ee7def9621a24a9f4b361d32137a3b0b3988 --projection workspace --consent declined"
31
+ }
32
+ ],
33
+ "off_path": {
34
+ "note": "To turn reviews off for good, run 'gentle-ai review mode disable'.",
35
+ "command": "gentle-ai review mode disable"
36
+ }
37
+ }