@jjchill/probity-rules 0.2.3 → 0.4.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.
- package/CHANGELOG.md +71 -0
- package/dist/internal/kotlin-tdd.d.ts +3 -1
- package/dist/internal/kotlin-tdd.d.ts.map +1 -1
- package/dist/internal/kotlin-tdd.js +10 -3
- package/dist/internal/kotlin-tdd.js.map +1 -1
- package/dist/presets/js.d.ts +35 -17
- package/dist/presets/js.d.ts.map +1 -1
- package/dist/presets/js.js +110 -38
- package/dist/presets/js.js.map +1 -1
- package/dist/presets/kmp.d.ts +45 -8
- package/dist/presets/kmp.d.ts.map +1 -1
- package/dist/presets/kmp.js +65 -39
- package/dist/presets/kmp.js.map +1 -1
- package/dist/presets/kotlin.d.ts +3 -0
- package/dist/presets/kotlin.d.ts.map +1 -1
- package/dist/presets/kotlin.js +15 -3
- package/dist/presets/kotlin.js.map +1 -1
- package/dist/presets/swift.d.ts.map +1 -1
- package/dist/presets/swift.js +7 -1
- package/dist/presets/swift.js.map +1 -1
- package/dist/rules/gates.d.ts +30 -0
- package/dist/rules/gates.d.ts.map +1 -1
- package/dist/rules/gates.js +70 -0
- package/dist/rules/gates.js.map +1 -1
- package/dist/rules/kotlin.d.ts +12 -0
- package/dist/rules/kotlin.d.ts.map +1 -1
- package/dist/rules/kotlin.js +40 -3
- package/dist/rules/kotlin.js.map +1 -1
- package/dist/rules/scoping.d.ts +10 -0
- package/dist/rules/scoping.d.ts.map +1 -1
- package/dist/rules/scoping.js +20 -0
- package/dist/rules/scoping.js.map +1 -1
- package/dist/rules/spec-test-parity.d.ts +17 -0
- package/dist/rules/spec-test-parity.d.ts.map +1 -1
- package/dist/rules/spec-test-parity.js +17 -0
- package/dist/rules/spec-test-parity.js.map +1 -1
- package/dist/scripts/scope-report.js +49 -5
- package/dist/scripts/scope-report.js.map +1 -1
- package/package.json +1 -1
package/dist/presets/kmp.js
CHANGED
|
@@ -16,13 +16,14 @@
|
|
|
16
16
|
* package next to gradlew. The TDD fast-path parser ships as optional
|
|
17
17
|
* dependencies of the rule package.
|
|
18
18
|
*/
|
|
19
|
-
import { join } from 'node:path';
|
|
19
|
+
import { join, relative, sep } from 'node:path';
|
|
20
20
|
import { forbidContentPattern } from '@nizos/probity';
|
|
21
21
|
import { enforceKotlinTdd } from '../internal/kotlin-tdd.js';
|
|
22
22
|
import { enforceAcceptanceLanguage, withAcceptanceLanguageFastPath, } from '../rules/acceptance-language.js';
|
|
23
|
+
import { withExcludeGlobs } from '../rules/scoping.js';
|
|
23
24
|
import { enforceSpecTestParity, requireSpecBackedAcceptanceTest, surfaceScenarioLinkBreakage, } from '../rules/spec-test-parity.js';
|
|
24
25
|
import { surfaceGlossaryTermBreakage } from '../rules/ubiquitous-language.js';
|
|
25
|
-
import { enforceProbeReversion, forbidNewAmbientEffects, GRADLE_TEST_COMMAND, KOTLIN_BOUNDARY_ADDENDUM, KOTLIN_INFRASTRUCTURE_IMPORTS, MOCKING_LIBRARY_IMPORTS, requireGreenTestRun, withKotlinFastPath, withMutationProbe, withTelemetryFastPath, } from '../rules/kotlin.js';
|
|
26
|
+
import { enforceCharacterizationResolution, enforceProbeReversion, forbidNewAmbientEffects, GRADLE_TEST_COMMAND, KOTLIN_BOUNDARY_ADDENDUM, KOTLIN_INFRASTRUCTURE_IMPORTS, KOTLIN_TEST_SOURCE_PATTERN, MOCKING_LIBRARY_IMPORTS, requireGreenTestRun, withCharacterizationTest, withKotlinFastPath, withMutationProbe, withTelemetryFastPath, } from '../rules/kotlin.js';
|
|
26
27
|
import { enforceAdapterObservability, enforcePortsBoundary, } from '../rules/ports-and-adapters.js';
|
|
27
28
|
/**
|
|
28
29
|
* The rule entries, as a factory over the project root. Probity only
|
|
@@ -37,22 +38,34 @@ import { enforceAdapterObservability, enforcePortsBoundary, } from '../rules/por
|
|
|
37
38
|
* `loadConfig` anchors them against this file's directory at load
|
|
38
39
|
* time, and the tooling replicates that via `rules/scoping.ts`.
|
|
39
40
|
*
|
|
40
|
-
* `
|
|
41
|
-
*
|
|
41
|
+
* `options.driverScopes`/`options.defaultScopes` optionally switch on
|
|
42
|
+
* the per-scenario driver mapping on the commit-time parity gate —
|
|
42
43
|
* projects normally enable it by uncommenting the block in the
|
|
43
|
-
* `enforceSpecTestParity` call below; the
|
|
44
|
-
*
|
|
44
|
+
* `enforceSpecTestParity` call below; the workflow eval passes them
|
|
45
|
+
* directly so it can exercise the scope checks without changing the
|
|
45
46
|
* template's default-off posture.
|
|
46
47
|
*/
|
|
47
|
-
export function kmpRuleEntries(root,
|
|
48
|
+
export function kmpRuleEntries(root, options = {}) {
|
|
48
49
|
// Ubiquitous-language glossary (copy GLOSSARY.template.md here).
|
|
49
50
|
// The glossary-aware rules degrade gracefully while the file
|
|
50
51
|
// doesn't exist yet — wiring it up front costs nothing.
|
|
51
|
-
const glossary = join(root, 'docs/GLOSSARY.md');
|
|
52
|
+
const glossary = options.glossaryPath ?? join(root, 'docs/GLOSSARY.md');
|
|
53
|
+
// The glossary-drift block's files scope must track a custom
|
|
54
|
+
// glossaryPath, not just the default location.
|
|
55
|
+
const glossaryGlob = relative(root, glossary).split(sep).join('/');
|
|
56
|
+
const specsDir = options.specsDir ?? join(root, 'docs/specs');
|
|
57
|
+
const specGlobs = options.specGlobs ?? ['docs/specs/**/*.feature.md'];
|
|
58
|
+
const acceptanceTestGlobs = options.acceptanceTestGlobs ?? [
|
|
59
|
+
'**/acceptance/**/*Spec.kt',
|
|
60
|
+
'**/acceptance/**/*Test.kt',
|
|
61
|
+
];
|
|
62
|
+
const testRoots = options.testRoots ?? [root];
|
|
63
|
+
const baselinePath = options.baselinePath ?? join(root, 'docs/specs/.parity-baseline');
|
|
64
|
+
const excludeGlobs = options.excludeGlobs ?? ['spikes/**', '**/build/**'];
|
|
52
65
|
// Core purity scope — the inside of the hexagon: domain, ports,
|
|
53
66
|
// use cases, and MVI presentation in commonMain. Adapter, DI, and
|
|
54
67
|
// Compose ui packages import vendors by design — excluded.
|
|
55
|
-
const
|
|
68
|
+
const coreGlobs = options.coreGlobs ?? [
|
|
56
69
|
'**/src/commonMain/**/domain/**',
|
|
57
70
|
'**/src/commonMain/**/port/**',
|
|
58
71
|
'**/src/commonMain/**/usecase/**',
|
|
@@ -63,12 +76,12 @@ export function kmpRuleEntries(root, parity) {
|
|
|
63
76
|
// listed before any AI-validated rule (a model call per matching
|
|
64
77
|
// write). A write with a vendor import in core code must be
|
|
65
78
|
// rejected by the free import screen, not after a TDD model call.
|
|
66
|
-
|
|
79
|
+
const entries = [
|
|
67
80
|
// ── Deterministic wall ───────────────────────────────────────────
|
|
68
81
|
// Core import/effect screens. The import screen also catches Koin
|
|
69
82
|
// here: DI stays at the composition root, never in domain code.
|
|
70
83
|
{
|
|
71
|
-
files:
|
|
84
|
+
files: coreGlobs,
|
|
72
85
|
rules: [
|
|
73
86
|
forbidContentPattern({
|
|
74
87
|
match: KOTLIN_INFRASTRUCTURE_IMPORTS,
|
|
@@ -106,25 +119,30 @@ export function kmpRuleEntries(root, parity) {
|
|
|
106
119
|
// list of affected tests, so the rename updates its Covers: tags
|
|
107
120
|
// in the same change.
|
|
108
121
|
{
|
|
109
|
-
files:
|
|
110
|
-
rules: [
|
|
122
|
+
files: specGlobs,
|
|
123
|
+
rules: [
|
|
124
|
+
surfaceScenarioLinkBreakage({ testRoots, testFilePattern: options.testFilePattern }),
|
|
125
|
+
],
|
|
111
126
|
},
|
|
112
127
|
// Spec-first, at write time: adding a new acceptance test case
|
|
113
128
|
// requires a new Covers: tag resolving to a scenario that already
|
|
114
|
-
// exists in
|
|
129
|
+
// exists in specsDir — the feature file is written before the
|
|
115
130
|
// test that claims it. Scoped to the test-case layer only
|
|
116
131
|
// (*Spec.kt); drivers/DSL/scenario bodies add no @Test functions.
|
|
117
132
|
{
|
|
118
|
-
files:
|
|
133
|
+
files: acceptanceTestGlobs,
|
|
119
134
|
rules: [
|
|
120
|
-
requireSpecBackedAcceptanceTest({
|
|
135
|
+
requireSpecBackedAcceptanceTest({
|
|
136
|
+
specsDir,
|
|
137
|
+
testDeclarationPattern: options.testDeclarationPattern,
|
|
138
|
+
}),
|
|
121
139
|
],
|
|
122
140
|
},
|
|
123
141
|
// Ubiquitous-language drift: renaming or removing a glossary term
|
|
124
142
|
// that specs, tests, or code still use blocks the glossary edit
|
|
125
143
|
// with the list of users.
|
|
126
144
|
{
|
|
127
|
-
files: [
|
|
145
|
+
files: [glossaryGlob],
|
|
128
146
|
rules: [surfaceGlossaryTermBreakage({ searchRoots: [root] })],
|
|
129
147
|
},
|
|
130
148
|
// ── AI-validated judgment layer ──────────────────────────────────
|
|
@@ -136,7 +154,12 @@ export function kmpRuleEntries(root, parity) {
|
|
|
136
154
|
// lets a write marked `// probity: mutation-probe` (a deliberate
|
|
137
155
|
// break proving a retrofitted test bites) through without a
|
|
138
156
|
// red-before-green demand — enforceProbeReversion below blocks
|
|
139
|
-
// commits until the probe is reverted.
|
|
157
|
+
// commits until the probe is reverted. The characterization
|
|
158
|
+
// wrapper sanctions a test for behavior production already has
|
|
159
|
+
// (born green, so no red can precede it): a test-source write
|
|
160
|
+
// marked `// probity: characterization` passes, and
|
|
161
|
+
// enforceCharacterizationResolution below blocks commits until the
|
|
162
|
+
// marker comes off through a recorded red under a mutation probe.
|
|
140
163
|
{
|
|
141
164
|
files: [
|
|
142
165
|
'**/src/*Main/kotlin/**',
|
|
@@ -149,14 +172,14 @@ export function kmpRuleEntries(root, parity) {
|
|
|
149
172
|
// adapter-observability rule must not be judged as unasserted
|
|
150
173
|
// behavior by the TDD gate.
|
|
151
174
|
rules: [
|
|
152
|
-
withMutationProbe(withTelemetryFastPath(withKotlinFastPath(enforceKotlinTdd()))),
|
|
175
|
+
withCharacterizationTest(withMutationProbe(withTelemetryFastPath(withKotlinFastPath(enforceKotlinTdd()))), { filePattern: KOTLIN_TEST_SOURCE_PATTERN }),
|
|
153
176
|
],
|
|
154
177
|
},
|
|
155
178
|
// Boundaries: ports-and-adapters. The Dependency Rule judgments
|
|
156
179
|
// the import screen can't make — thin adapters, vendor types in
|
|
157
180
|
// port signatures, glossary-conflicting names.
|
|
158
181
|
{
|
|
159
|
-
files:
|
|
182
|
+
files: coreGlobs,
|
|
160
183
|
rules: [
|
|
161
184
|
enforcePortsBoundary({
|
|
162
185
|
instructions: (defaults) => defaults + KOTLIN_BOUNDARY_ADDENDUM,
|
|
@@ -189,13 +212,7 @@ export function kmpRuleEntries(root, parity) {
|
|
|
189
212
|
// and stay INCLUDED by design: they must read as pure domain
|
|
190
213
|
// language.
|
|
191
214
|
{
|
|
192
|
-
files: [
|
|
193
|
-
'docs/specs/**/*.feature.md',
|
|
194
|
-
'**/acceptance/**',
|
|
195
|
-
'!**/*Robot.kt',
|
|
196
|
-
'!**/*Dsl.kt',
|
|
197
|
-
'!**/*Driver.kt',
|
|
198
|
-
],
|
|
215
|
+
files: [...specGlobs, '**/acceptance/**', '!**/*Robot.kt', '!**/*Dsl.kt', '!**/*Driver.kt'],
|
|
199
216
|
// requireGlossaryEntry: true is the strict "glossary
|
|
200
217
|
// conversation happens first" mode — turn it on once the
|
|
201
218
|
// glossary has real coverage, not on day one. The fast-path
|
|
@@ -208,7 +225,7 @@ export function kmpRuleEntries(root, parity) {
|
|
|
208
225
|
},
|
|
209
226
|
// ── Ship gates ───────────────────────────────────────────────────
|
|
210
227
|
// Definition of done, made mechanical: every non-wip scenario in
|
|
211
|
-
//
|
|
228
|
+
// specsDir is claimed by an acceptance test (Covers: tag), and
|
|
212
229
|
// every tag resolves to a real scenario. Mark in-progress specs
|
|
213
230
|
// `## Scenario (wip):`. CI mirror for human commits:
|
|
214
231
|
// scripts/spec-parity.mjs.
|
|
@@ -227,27 +244,36 @@ export function kmpRuleEntries(root, parity) {
|
|
|
227
244
|
// path matches that scope. Tags are floors, not ceilings; with
|
|
228
245
|
// shared scenario bodies (*Scenarios.kt) the extra covering test
|
|
229
246
|
// is a thin spec class calling the existing body. CALIBRATE THE
|
|
230
|
-
// PATTERNS TO YOUR LAYOUT before
|
|
231
|
-
// zero files makes every tagged scenario fail,
|
|
247
|
+
// PATTERNS TO YOUR LAYOUT before setting `driverScopes` — a
|
|
248
|
+
// pattern matching zero files makes every tagged scenario fail,
|
|
249
|
+
// loudly. Example:
|
|
250
|
+
// driverScopes: [
|
|
251
|
+
// { name: 'view-model', filePattern: /[/\\]acceptance[/\\]viewmodel[/\\]/ },
|
|
252
|
+
// { name: 'system', filePattern: /[/\\]acceptance[/\\]ui[/\\]/ },
|
|
253
|
+
// ],
|
|
254
|
+
// defaultScopes: ['view-model'],
|
|
232
255
|
enforceSpecTestParity({
|
|
233
|
-
specsDir
|
|
234
|
-
testRoots
|
|
235
|
-
baselinePath
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
// ],
|
|
240
|
-
// defaultScopes: ['view-model'],
|
|
241
|
-
...parity,
|
|
256
|
+
specsDir,
|
|
257
|
+
testRoots,
|
|
258
|
+
baselinePath,
|
|
259
|
+
testFilePattern: options.testFilePattern,
|
|
260
|
+
driverScopes: options.driverScopes,
|
|
261
|
+
defaultScopes: options.defaultScopes,
|
|
242
262
|
}),
|
|
243
263
|
// The commit half of the mutation-probe round-trip: no commit
|
|
244
264
|
// while a `probity: mutation-probe` marker is still on disk —
|
|
245
265
|
// reverting the mutation removes the marker with it.
|
|
246
266
|
enforceProbeReversion({ roots: [root] }),
|
|
267
|
+
// The commit half of the characterization round-trip: no commit
|
|
268
|
+
// while a `probity: characterization` marker is still on disk —
|
|
269
|
+
// the marker only comes off once the transcript records the
|
|
270
|
+
// marked test failing under a mutation probe.
|
|
271
|
+
enforceCharacterizationResolution({ roots: [root] }),
|
|
247
272
|
// Accepts test/test...Test, :desktop:jvmTest, allTests,
|
|
248
273
|
// build, and check. The latest matching run must carry BUILD
|
|
249
274
|
// SUCCESSFUL or a trustworthy Kiro zero status.
|
|
250
275
|
requireGreenTestRun({ command: GRADLE_TEST_COMMAND }),
|
|
251
276
|
];
|
|
277
|
+
return withExcludeGlobs(entries, excludeGlobs);
|
|
252
278
|
}
|
|
253
279
|
//# sourceMappingURL=kmp.js.map
|
package/dist/presets/kmp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kmp.js","sourceRoot":"","sources":["../../presets/kmp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"kmp.js","sourceRoot":"","sources":["../../presets/kmp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAE/C,OAAO,EAAE,oBAAoB,EAAkB,MAAM,gBAAgB,CAAA;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAI5D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,2BAA2B,GAE5B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;AAC7E,OAAO,EACL,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,6BAA6B,EAC7B,0BAA0B,EAC1B,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,gCAAgC,CAAA;AA0CvC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,UAA4B,EAAE;IACzE,iEAAiE;IACjE,6DAA6D;IAC7D,wDAAwD;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAA;IACvE,6DAA6D;IAC7D,+CAA+C;IAC/C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAElE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAU,OAAO,CAAC,SAAS,IAAI,CAAC,4BAA4B,CAAC,CAAA;IAC5E,MAAM,mBAAmB,GAAU,OAAO,CAAC,mBAAmB,IAAI;QAChE,2BAA2B;QAC3B,2BAA2B;KAC5B,CAAA;IACD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAA;IACtF,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;IAEzE,gEAAgE;IAChE,kEAAkE;IAClE,2DAA2D;IAC3D,MAAM,SAAS,GAAU,OAAO,CAAC,SAAS,IAAI;QAC5C,gCAAgC;QAChC,8BAA8B;QAC9B,iCAAiC;QACjC,sCAAsC;KACvC,CAAA;IAED,oEAAoE;IACpE,+DAA+D;IAC/D,iEAAiE;IACjE,4DAA4D;IAC5D,kEAAkE;IAElE,MAAM,OAAO,GAAgB;QAC3B,oEAAoE;QAEpE,kEAAkE;QAClE,gEAAgE;QAChE;YACE,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE;gBACL,oBAAoB,CAAC;oBACnB,KAAK,EAAE,6BAA6B;oBACpC,MAAM,EACJ,2DAA2D;wBAC3D,uDAAuD;wBACvD,wDAAwD;wBACxD,2DAA2D;wBAC3D,6CAA6C;wBAC7C,4BAA4B;iBAC/B,CAAC;gBACF,uBAAuB,CAAC;oBACtB,QAAQ,EACN,uDAAuD;wBACvD,0DAA0D;wBAC1D,yCAAyC;iBAC5C,CAAC;aACH;SACF;QAED,6DAA6D;QAC7D,gEAAgE;QAChE;YACE,KAAK,EAAE,CAAC,wBAAwB,EAAE,uBAAuB,CAAC;YAC1D,KAAK,EAAE;gBACL,oBAAoB,CAAC;oBACnB,KAAK,EAAE,uBAAuB;oBAC9B,MAAM,EACJ,sDAAsD;wBACtD,qDAAqD;wBACrD,wDAAwD;wBACxD,yBAAyB;iBAC5B,CAAC;aACH;SACF;QAED,iEAAiE;QACjE,6DAA6D;QAC7D,iEAAiE;QACjE,iEAAiE;QACjE,sBAAsB;QACtB;YACE,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE;gBACL,2BAA2B,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;aACrF;SACF;QAED,+DAA+D;QAC/D,kEAAkE;QAClE,8DAA8D;QAC9D,0DAA0D;QAC1D,kEAAkE;QAClE;YACE,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE;gBACL,+BAA+B,CAAC;oBAC9B,QAAQ;oBACR,sBAAsB,EAAE,OAAO,CAAC,sBAAsB;iBACvD,CAAC;aACH;SACF;QAED,kEAAkE;QAClE,gEAAgE;QAChE,0BAA0B;QAC1B;YACE,KAAK,EAAE,CAAC,YAAY,CAAC;YACrB,KAAK,EAAE,CAAC,2BAA2B,CAAC,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC9D;QAED,oEAAoE;QAEpE,iEAAiE;QACjE,mEAAmE;QACnE,mEAAmE;QACnE,mEAAmE;QACnE,iEAAiE;QACjE,iEAAiE;QACjE,4DAA4D;QAC5D,+DAA+D;QAC/D,4DAA4D;QAC5D,+DAA+D;QAC/D,8DAA8D;QAC9D,oDAAoD;QACpD,mEAAmE;QACnE,kEAAkE;QAClE;YACE,KAAK,EAAE;gBACL,wBAAwB;gBACxB,wBAAwB;gBACxB,uBAAuB;gBACvB,uBAAuB;aACxB;YACD,+DAA+D;YAC/D,iEAAiE;YACjE,8DAA8D;YAC9D,4BAA4B;YAC5B,KAAK,EAAE;gBACL,wBAAwB,CACtB,iBAAiB,CACf,qBAAqB,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAC9D,EACD,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAC5C;aACF;SACF;QAED,gEAAgE;QAChE,gEAAgE;QAChE,+CAA+C;QAC/C;YACE,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE;gBACL,oBAAoB,CAAC;oBACnB,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,GAAG,wBAAwB;oBAC/D,YAAY,EAAE,QAAQ;iBACvB,CAAC;aACH;SACF;QAED,iEAAiE;QACjE,iEAAiE;QACjE,gEAAgE;QAChE,yBAAyB;QACzB;YACE,KAAK,EAAE,CAAC,mCAAmC,CAAC;YAC5C,KAAK,EAAE;gBACL,qBAAqB,CACnB,2BAA2B,CAAC;oBAC1B,cAAc,EACZ,yDAAyD;wBACzD,uDAAuD;wBACvD,2DAA2D;wBAC3D,qCAAqC;iBACxC,CAAC,CACH;aACF;SACF;QAED,gEAAgE;QAChE,gEAAgE;QAChE,kEAAkE;QAClE,4DAA4D;QAC5D,+DAA+D;QAC/D,6DAA6D;QAC7D,kEAAkE;QAClE,6DAA6D;QAC7D,YAAY;QACZ;YACE,KAAK,EAAE,CAAC,GAAG,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,gBAAgB,CAAC;YAC3F,qDAAqD;YACrD,yDAAyD;YACzD,4DAA4D;YAC5D,+DAA+D;YAC/D,+DAA+D;YAC/D,kBAAkB;YAClB,KAAK,EAAE;gBACL,8BAA8B,CAC5B,yBAAyB,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CACtD;aACF;SACF;QAED,oEAAoE;QACpE,iEAAiE;QACjE,+DAA+D;QAC/D,gEAAgE;QAChE,qDAAqD;QACrD,2BAA2B;QAC3B,EAAE;QACF,iEAAiE;QACjE,kEAAkE;QAClE,sDAAsD;QACtD,8DAA8D;QAC9D,iEAAiE;QACjE,kEAAkE;QAClE,0DAA0D;QAC1D,EAAE;QACF,+DAA+D;QAC/D,mEAAmE;QACnE,gEAAgE;QAChE,+DAA+D;QAC/D,iEAAiE;QACjE,gEAAgE;QAChE,4DAA4D;QAC5D,gEAAgE;QAChE,mBAAmB;QACnB,oBAAoB;QACpB,iFAAiF;QACjF,sEAAsE;QACtE,OAAO;QACP,mCAAmC;QACnC,qBAAqB,CAAC;YACpB,QAAQ;YACR,SAAS;YACT,YAAY;YACZ,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;QAEF,8DAA8D;QAC9D,8DAA8D;QAC9D,qDAAqD;QACrD,qBAAqB,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAExC,gEAAgE;QAChE,gEAAgE;QAChE,4DAA4D;QAC5D,8CAA8C;QAC9C,iCAAiC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAEpD,wDAAwD;QACxD,6DAA6D;QAC7D,gDAAgD;QAChD,mBAAmB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;KACtD,CAAA;IAED,OAAO,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;AAChD,CAAC"}
|
package/dist/presets/kotlin.d.ts
CHANGED
|
@@ -27,6 +27,9 @@ export type KotlinPresetOptions = {
|
|
|
27
27
|
adapterGlobs?: Globs;
|
|
28
28
|
/** The real Gradle test task your commit gate should look for. */
|
|
29
29
|
commitCommand?: RegExp;
|
|
30
|
+
/** Globs excluded (as `!`-negations) from every files-scoped block —
|
|
31
|
+
* spikes and build output by default. Pass `[]` to disable. */
|
|
32
|
+
excludeGlobs?: string[];
|
|
30
33
|
};
|
|
31
34
|
/**
|
|
32
35
|
* Rule entries for a Kotlin/JVM/Android project, as a factory over the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../presets/kotlin.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../presets/kotlin.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AA4BrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAIhD,MAAM,MAAM,mBAAmB,GAAG;IAChC;;iDAE6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;kEAE8D;IAC9D,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,uEAAuE;IACvE,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;oDACgD;IAChD,eAAe,CAAC,EAAE,KAAK,CAAA;IACvB,iEAAiE;IACjE,mBAAmB,CAAC,EAAE,KAAK,CAAA;IAC3B;sCACkC;IAClC,uBAAuB,CAAC,EAAE,KAAK,CAAA;IAC/B,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,oEAAoE;IACpE,YAAY,CAAC,EAAE,KAAK,CAAA;IACpB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB;oEACgE;IAChE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CACxB,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,SAAS,EAAE,CA+K9F"}
|
package/dist/presets/kotlin.js
CHANGED
|
@@ -17,9 +17,10 @@ import { join } from 'node:path';
|
|
|
17
17
|
import { forbidContentPattern } from '@nizos/probity';
|
|
18
18
|
import { enforceKotlinTdd } from '../internal/kotlin-tdd.js';
|
|
19
19
|
import { enforceAcceptanceLanguage, withAcceptanceLanguageFastPath, } from '../rules/acceptance-language.js';
|
|
20
|
-
import { enforceProbeReversion, forbidNewAmbientEffects, forbidStaticMocks, GRADLE_TEST_COMMAND, KOTLIN_BOUNDARY_ADDENDUM, KOTLIN_INFRASTRUCTURE_IMPORTS, requireGreenTestRun, withKotlinFastPath, withMutationProbe, withTelemetryFastPath, } from '../rules/kotlin.js';
|
|
20
|
+
import { enforceCharacterizationResolution, enforceProbeReversion, forbidNewAmbientEffects, forbidStaticMocks, GRADLE_TEST_COMMAND, KOTLIN_BOUNDARY_ADDENDUM, KOTLIN_INFRASTRUCTURE_IMPORTS, KOTLIN_TEST_SOURCE_PATTERN, requireGreenTestRun, withCharacterizationTest, withKotlinFastPath, withMutationProbe, withTelemetryFastPath, } from '../rules/kotlin.js';
|
|
21
21
|
import { enforceAdapterObservability, enforcePortsBoundary, } from '../rules/ports-and-adapters.js';
|
|
22
22
|
import { requireSpecBackedAcceptanceTest } from '../rules/spec-test-parity.js';
|
|
23
|
+
import { withExcludeGlobs } from '../rules/scoping.js';
|
|
23
24
|
import { surfaceGlossaryTermBreakage } from '../rules/ubiquitous-language.js';
|
|
24
25
|
/**
|
|
25
26
|
* Rule entries for a Kotlin/JVM/Android project, as a factory over the
|
|
@@ -60,7 +61,8 @@ export function kotlinRuleEntries(root, options = {}) {
|
|
|
60
61
|
'**/src/main/**/adapters/**',
|
|
61
62
|
'**/src/main/**/data/**',
|
|
62
63
|
];
|
|
63
|
-
|
|
64
|
+
const excludeGlobs = options.excludeGlobs ?? ['spikes/**', '**/build/**'];
|
|
65
|
+
const entries = [
|
|
64
66
|
// ── Deterministic wall ───────────────────────────────────────────
|
|
65
67
|
// Core import/effect screens.
|
|
66
68
|
{
|
|
@@ -118,12 +120,16 @@ export function kotlinRuleEntries(root, options = {}) {
|
|
|
118
120
|
// allowed) passes without an AI call. Its parser ships as optional
|
|
119
121
|
// dependencies; unavailable parser support delegates to
|
|
120
122
|
// enforceKotlinTdd with an explicit diagnostic and a bounded history.
|
|
123
|
+
// The characterization wrapper sanctions a test for behavior
|
|
124
|
+
// production already has (born green): a test-source write marked
|
|
125
|
+
// `// probity: characterization` passes, and the commit gate below
|
|
126
|
+
// holds the marker until a mutation probe shows that test failing.
|
|
121
127
|
{
|
|
122
128
|
files: tddGlobs,
|
|
123
129
|
// Telemetry-only additions pass deterministically — see the
|
|
124
130
|
// KMP preset's note on the TDD/observability tension.
|
|
125
131
|
rules: [
|
|
126
|
-
withMutationProbe(withTelemetryFastPath(withKotlinFastPath(enforceKotlinTdd()))),
|
|
132
|
+
withCharacterizationTest(withMutationProbe(withTelemetryFastPath(withKotlinFastPath(enforceKotlinTdd()))), { filePattern: KOTLIN_TEST_SOURCE_PATTERN }),
|
|
127
133
|
],
|
|
128
134
|
},
|
|
129
135
|
// Boundaries: ports-and-adapters. The Dependency Rule judgments
|
|
@@ -162,11 +168,17 @@ export function kotlinRuleEntries(root, options = {}) {
|
|
|
162
168
|
// while a `probity: mutation-probe` marker is still on disk —
|
|
163
169
|
// reverting the mutation removes the marker with it.
|
|
164
170
|
enforceProbeReversion({ roots: [root] }),
|
|
171
|
+
// The commit half of the characterization round-trip: no commit
|
|
172
|
+
// while a `probity: characterization` marker is still on disk —
|
|
173
|
+
// the marker only comes off once the transcript records the
|
|
174
|
+
// marked test failing under a mutation probe.
|
|
175
|
+
enforceCharacterizationResolution({ roots: [root] }),
|
|
165
176
|
// No commit on an unverified tree. The default accepts test/
|
|
166
177
|
// test...Test, allTests, jvmTest, build, and check; a custom
|
|
167
178
|
// commitCommand replaces that task policy. The latest matching run
|
|
168
179
|
// must carry BUILD SUCCESSFUL or a trustworthy Kiro zero status.
|
|
169
180
|
requireGreenTestRun({ command: options.commitCommand ?? GRADLE_TEST_COMMAND }),
|
|
170
181
|
];
|
|
182
|
+
return withExcludeGlobs(entries, excludeGlobs);
|
|
171
183
|
}
|
|
172
184
|
//# sourceMappingURL=kotlin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../presets/kotlin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,oBAAoB,EAAkB,MAAM,gBAAgB,CAAA;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAE5D,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,6BAA6B,EAC7B,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAA;AAE9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"kotlin.js","sourceRoot":"","sources":["../../presets/kotlin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../presets/swift.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"swift.d.ts","sourceRoot":"","sources":["../../presets/swift.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAoC,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAmDjF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAwR1D"}
|
package/dist/presets/swift.js
CHANGED
|
@@ -22,12 +22,16 @@ import { enforceAdapterObservability, enforcePortsBoundary, } from '../rules/por
|
|
|
22
22
|
import { enforceSpecTestParity, requireSpecBackedAcceptanceTest, surfaceScenarioLinkBreakage, } from '../rules/spec-test-parity.js';
|
|
23
23
|
import { SWIFT_FIXED_SLEEPS, SWIFT_PROBE_FILE_PATTERN, XCODEBUILD_TEST_COMMAND, XCODEBUILD_TEST_FAILED, XCODEBUILD_TEST_SUCCEEDED, XCUITEST_MECHANICS, } from '../rules/swift.js';
|
|
24
24
|
import { surfaceGlossaryTermBreakage } from '../rules/ubiquitous-language.js';
|
|
25
|
+
import { withJudgeFailureDiagnostics } from '../rules/gates.js';
|
|
25
26
|
// Acceptance test files live under AcceptanceTests/ (capital A) — the
|
|
26
27
|
// parity scanners' default pattern expects a lowercase `acceptance/`
|
|
27
28
|
// segment, so every spec-traceability rule below overrides it.
|
|
28
29
|
const ACCEPTANCE_TEST_FILES = /AcceptanceTests[/\\]/;
|
|
29
30
|
// Swift telemetry lines the fast-path recognizes as complete
|
|
30
31
|
// single-line instrumentation (SudoLogging-style logger calls).
|
|
32
|
+
const SWIFT_DETERMINISTIC_PATHS = 'Writes that never call the judge still go through: telemetry-only ' +
|
|
33
|
+
'lines, writes marked `// probity: mutation-probe`, and AcceptanceTests ' +
|
|
34
|
+
'writes marked `// probity: characterization`.';
|
|
31
35
|
const SWIFT_TELEMETRY_LINES = [
|
|
32
36
|
/^[\w.]*logger\.(?:event|info|debug|error|warning)\(.*\)$/i,
|
|
33
37
|
];
|
|
@@ -159,7 +163,9 @@ export function swiftRuleEntries(root) {
|
|
|
159
163
|
// where that test failed under a mutation probe). The
|
|
160
164
|
// resolution gate below blocks commits while a marker is on
|
|
161
165
|
// disk, so the bypass is a round-trip, not an exemption.
|
|
162
|
-
withInverseScenarioGuidance(withCharacterizationTest(withMutationProbe(withTelemetryFastPath(enforceTdd(), {
|
|
166
|
+
withInverseScenarioGuidance(withCharacterizationTest(withMutationProbe(withTelemetryFastPath(withJudgeFailureDiagnostics(enforceTdd(), {
|
|
167
|
+
deterministicPaths: SWIFT_DETERMINISTIC_PATHS,
|
|
168
|
+
}), {
|
|
163
169
|
patterns: SWIFT_TELEMETRY_LINES,
|
|
164
170
|
filePattern: /\.swift$/,
|
|
165
171
|
})), { filePattern: /AcceptanceTests[/\\]/ }), { filePattern: /App[/\\]Sources[/\\]Acceptance[/\\]/ }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swift.js","sourceRoot":"","sources":["../../presets/swift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAkB,MAAM,gBAAgB,CAAA;AAEjF,OAAO,EACL,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,iCAAiC,EACjC,qBAAqB,EACrB,mBAAmB,EACnB,wBAAwB,EACxB,2BAA2B,EAC3B,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,GACrB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,qBAAqB,EACrB,+BAA+B,EAC/B,2BAA2B,GAC5B,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"swift.js","sourceRoot":"","sources":["../../presets/swift.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/gates.d.ts
CHANGED
|
@@ -139,4 +139,34 @@ export declare function surfaceRemovedStringUsage(options: {
|
|
|
139
139
|
searchPattern?: RegExp;
|
|
140
140
|
minLength?: number;
|
|
141
141
|
}): Rule;
|
|
142
|
+
/**
|
|
143
|
+
* Wraps an AI-validated rule so that a judge that returned no verdict
|
|
144
|
+
* — a billing/spend-limit notice, an auth error, empty or non-JSON
|
|
145
|
+
* output — is reported as an infrastructure failure instead of reading
|
|
146
|
+
* as a policy verdict on the write.
|
|
147
|
+
*
|
|
148
|
+
* Why: Probity fails closed when it cannot parse the judge's output,
|
|
149
|
+
* which is correct, but the deny text ("could not parse verdict from
|
|
150
|
+
* validator output: You've hit your org's monthly spend limit…") looks
|
|
151
|
+
* like a rejection of the change. Agents respond by rewording or
|
|
152
|
+
* splitting the write and retrying, which cannot help. The rewritten
|
|
153
|
+
* reason names the judge, says the write itself was not judged, and
|
|
154
|
+
* points at the fix (restore the provider) and at the deterministic
|
|
155
|
+
* paths that never call the judge.
|
|
156
|
+
*
|
|
157
|
+
* The verdict is unchanged — the write is still blocked. Only the
|
|
158
|
+
* reason text of a judge-failure violation is rewritten; genuine
|
|
159
|
+
* verdicts and passes pass through untouched. The wrapper keeps the
|
|
160
|
+
* wrapped rule's name, so traces and block reports still identify the
|
|
161
|
+
* rule that failed.
|
|
162
|
+
*
|
|
163
|
+
* @param rule — the AI-validated rule to wrap.
|
|
164
|
+
* @param options.deterministicPaths — sentence listing the writes this
|
|
165
|
+
* rule stack passes without calling the judge (e.g. single-test
|
|
166
|
+
* fast paths), appended to the deny text so an agent can keep
|
|
167
|
+
* working while the provider is down.
|
|
168
|
+
*/
|
|
169
|
+
export declare function withJudgeFailureDiagnostics(rule: Rule, options?: {
|
|
170
|
+
deterministicPaths?: string;
|
|
171
|
+
}): Rule;
|
|
142
172
|
//# sourceMappingURL=gates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../rules/gates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,IAAI,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAA;AAE3E;;;;;;;;;;;;GAYG;AAEH,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAQ7D,iEAAiE;AACjE,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACzC,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,EAAE,YAAY,EAOpD,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAqBP;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAA;IAC/C,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;IACpE,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;IACpE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EAAE,CAAA;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,IAAI,CAgEP;AA0CD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IACjD,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,IAAI,CA+CP"}
|
|
1
|
+
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../rules/gates.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,IAAI,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAA;AAE3E;;;;;;;;;;;;GAYG;AAEH,uEAAuE;AACvE,MAAM,MAAM,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAQ7D,iEAAiE;AACjE,wBAAsB,kBAAkB,CACtC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EACzC,GAAG,EAAE,WAAW,GAAG,SAAS,EAC5B,QAAQ,EAAE,YAAY,EAAE,GACvB,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB;AAED;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,EAAE,YAAY,EAOpD,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE;IAC/C,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAqBP;AAuBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAA;IAC/C,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;IACpE,cAAc,EAAE,MAAM,CAAA;IACtB,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAA;IACpE,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EAAE,CAAA;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,IAAI,CAgEP;AA0CD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IACjD,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,GAAG,IAAI,CA+CP;AAgBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC5C,IAAI,CAkCN"}
|
package/dist/rules/gates.js
CHANGED
|
@@ -303,4 +303,74 @@ export function surfaceRemovedStringUsage(options) {
|
|
|
303
303
|
};
|
|
304
304
|
};
|
|
305
305
|
}
|
|
306
|
+
// Reasons Probity's verdict plumbing produces when the AI judge never
|
|
307
|
+
// returned a verdict at all — the validator's raw output was not JSON,
|
|
308
|
+
// had the wrong shape, or the SDK stream produced no result. None of
|
|
309
|
+
// these is a code-policy judgment of the pending write.
|
|
310
|
+
const JUDGE_FAILURE_REASON = /^(?:could not parse verdict from validator output|validator returned unexpected shape|expected string result from validator|no result message received|enforceTdd: no AI agent available)/;
|
|
311
|
+
// Provider messages that mean "no service" rather than "bad output":
|
|
312
|
+
// spend/credit limits, quota, rate limits, and auth failures.
|
|
313
|
+
const PROVIDER_UNAVAILABLE = /spend limit|usage[- ]credits|credit balance|out of credits|quota|rate[- ]limit|too many requests|overloaded|unauthori[sz]ed|authentication|invalid api key|\b(?:401|403|429|529)\b/i;
|
|
314
|
+
const JUDGE_OUTPUT_EXCERPT = 300;
|
|
315
|
+
/**
|
|
316
|
+
* Wraps an AI-validated rule so that a judge that returned no verdict
|
|
317
|
+
* — a billing/spend-limit notice, an auth error, empty or non-JSON
|
|
318
|
+
* output — is reported as an infrastructure failure instead of reading
|
|
319
|
+
* as a policy verdict on the write.
|
|
320
|
+
*
|
|
321
|
+
* Why: Probity fails closed when it cannot parse the judge's output,
|
|
322
|
+
* which is correct, but the deny text ("could not parse verdict from
|
|
323
|
+
* validator output: You've hit your org's monthly spend limit…") looks
|
|
324
|
+
* like a rejection of the change. Agents respond by rewording or
|
|
325
|
+
* splitting the write and retrying, which cannot help. The rewritten
|
|
326
|
+
* reason names the judge, says the write itself was not judged, and
|
|
327
|
+
* points at the fix (restore the provider) and at the deterministic
|
|
328
|
+
* paths that never call the judge.
|
|
329
|
+
*
|
|
330
|
+
* The verdict is unchanged — the write is still blocked. Only the
|
|
331
|
+
* reason text of a judge-failure violation is rewritten; genuine
|
|
332
|
+
* verdicts and passes pass through untouched. The wrapper keeps the
|
|
333
|
+
* wrapped rule's name, so traces and block reports still identify the
|
|
334
|
+
* rule that failed.
|
|
335
|
+
*
|
|
336
|
+
* @param rule — the AI-validated rule to wrap.
|
|
337
|
+
* @param options.deterministicPaths — sentence listing the writes this
|
|
338
|
+
* rule stack passes without calling the judge (e.g. single-test
|
|
339
|
+
* fast paths), appended to the deny text so an agent can keep
|
|
340
|
+
* working while the provider is down.
|
|
341
|
+
*/
|
|
342
|
+
export function withJudgeFailureDiagnostics(rule, options = {}) {
|
|
343
|
+
const wrapped = async function judgeFailureDiagnostics(action, ctx) {
|
|
344
|
+
const result = await rule(action, ctx);
|
|
345
|
+
if (result.kind !== 'violation')
|
|
346
|
+
return result;
|
|
347
|
+
const reason = result.reason ?? '';
|
|
348
|
+
if (!JUDGE_FAILURE_REASON.test(reason))
|
|
349
|
+
return result;
|
|
350
|
+
const output = reason.replace(JUDGE_FAILURE_REASON, '').replace(/^\s*:/, '').trim();
|
|
351
|
+
const excerpt = output.length > JUDGE_OUTPUT_EXCERPT
|
|
352
|
+
? `${output.slice(0, JUDGE_OUTPUT_EXCERPT)}…`
|
|
353
|
+
: output;
|
|
354
|
+
const lines = [
|
|
355
|
+
`Probity's AI judge (${rule.name || 'rule'}) returned no verdict, so ` +
|
|
356
|
+
'this write was NOT judged — this is an infrastructure failure, not ' +
|
|
357
|
+
'a policy decision about your change. The write stays blocked ' +
|
|
358
|
+
'(fail closed). Rewording, splitting, or retrying the same write ' +
|
|
359
|
+
'will not help until the judge is back.',
|
|
360
|
+
PROVIDER_UNAVAILABLE.test(output)
|
|
361
|
+
? 'The judge provider reports it is unavailable (spend limit, ' +
|
|
362
|
+
'quota, rate limit, or authentication). Restore service — e.g. ' +
|
|
363
|
+
'raise the limit (/usage-credits) or fix the credentials Probity ' +
|
|
364
|
+
'runs with — then retry.'
|
|
365
|
+
: 'Check the judge provider (auth, network, model availability), ' +
|
|
366
|
+
'then retry.',
|
|
367
|
+
];
|
|
368
|
+
if (options.deterministicPaths)
|
|
369
|
+
lines.push(options.deterministicPaths);
|
|
370
|
+
lines.push('Do not bypass the hook. Judge output: ' + (excerpt || '(empty)'));
|
|
371
|
+
return { ...result, reason: lines.join('\n\n') };
|
|
372
|
+
};
|
|
373
|
+
Object.defineProperty(wrapped, 'name', { value: rule.name || 'rule' });
|
|
374
|
+
return wrapped;
|
|
375
|
+
}
|
|
306
376
|
//# sourceMappingURL=gates.js.map
|
package/dist/rules/gates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gates.js","sourceRoot":"","sources":["../../rules/gates.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gates.js","sourceRoot":"","sources":["../../rules/gates.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/kotlin.d.ts
CHANGED
|
@@ -84,6 +84,13 @@ export declare function forbidNewAmbientEffects(options?: {
|
|
|
84
84
|
seamHint?: string;
|
|
85
85
|
patterns?: NamedPattern[];
|
|
86
86
|
}): Rule;
|
|
87
|
+
/**
|
|
88
|
+
* Any Kotlin/Android test source set — classic `src/test`, and every
|
|
89
|
+
* `src/<name>Test` set (androidTest, sharedTest, commonTest, jvmTest,
|
|
90
|
+
* androidUnitTest, …). The boundary the Kotlin presets give
|
|
91
|
+
* {@link withCharacterizationTest}: the marker only works in test code.
|
|
92
|
+
*/
|
|
93
|
+
export declare const KOTLIN_TEST_SOURCE_PATTERN: RegExp;
|
|
87
94
|
/**
|
|
88
95
|
* Kotlin equivalent of `enforceTdd({ fastPath: true })`, which Probity
|
|
89
96
|
* only implements for TS/JS/Python/C#/Ruby/PHP: wraps a rule so that a
|
|
@@ -295,6 +302,11 @@ export declare const CHARACTERIZATION_MARKER: RegExp;
|
|
|
295
302
|
* every transcript gate: reds observed in another terminal or CI are
|
|
296
303
|
* invisible — run the probe in-session.
|
|
297
304
|
*
|
|
305
|
+
* Discoverability: when the wrapped rule denies an unmarked test-layer
|
|
306
|
+
* write for lacking a red, the deny text gains a note naming the
|
|
307
|
+
* marker, so an agent pinning existing behavior learns the sanctioned
|
|
308
|
+
* route at the point it is blocked instead of breaking production.
|
|
309
|
+
*
|
|
298
310
|
* @param rule — the TDD rule to wrap (fast-paths/probe wrappers
|
|
299
311
|
* included as usual).
|
|
300
312
|
* @param options.filePattern — paths that hold test code (e.g.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../rules/kotlin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,IAAI,EAA2B,MAAM,gBAAgB,CAAA;AAE3E,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;GASG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,QACoV,CAAA;AAE9X;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QACoB,CAAA;AAExD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,QAC+D,CAAA;AAsB/F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAsBxC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;CAAO,GAC7D,IAAI,CAON;
|
|
1
|
+
{"version":3,"file":"kotlin.d.ts","sourceRoot":"","sources":["../../rules/kotlin.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,IAAI,EAA2B,MAAM,gBAAgB,CAAA;AAE3E,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,YAAY,CAAA;AAEnB;;;;;;;;;GASG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,QACoV,CAAA;AAE9X;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,QACoB,CAAA;AAExD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,QAC+D,CAAA;AAsB/F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAsBxC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAA;CAAO,GAC7D,IAAI,CAON;AAwCD;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QACc,CAAA;AAmWrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,IAAI,CAiGN;AAwMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,EAAE,CAAA;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,IAAI,CAqBP;AAUD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,IAAI,EACV,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,IAAI,CAmCN;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,QAA8B,CAAA;AA+BhE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAclD;AAmCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAC/B,IAAI,CAqCN;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,IAAI,CA6BP;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,QAAkC,CAAA;AAqDtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GAC/B,IAAI,CAsEN;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,iCAAiC,CAAC,OAAO,EAAE;IACzD,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB,GAAG,IAAI,CA+BP;AAED;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,0zDAkC4B,CAAA"}
|