@stsepelin/checktrail 0.1.0-alpha.3 → 0.1.0-alpha.5

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 (49) hide show
  1. package/README.md +13 -7
  2. package/dist/src/adapters.js +5 -1
  3. package/dist/src/architecture.d.ts +1 -1
  4. package/dist/src/contract-schema.d.ts +1 -1
  5. package/dist/src/contracts.d.ts +1 -1
  6. package/dist/src/evidence.js +3 -1
  7. package/dist/src/finding-policy-schema.d.ts +1 -1
  8. package/dist/src/go-build.d.ts +27 -0
  9. package/dist/src/go-build.js +113 -0
  10. package/dist/src/go-scope-policy.d.ts +11 -0
  11. package/dist/src/go-scope-policy.js +50 -0
  12. package/dist/src/go-scope.d.ts +1 -1
  13. package/dist/src/go-scope.js +42 -5
  14. package/dist/src/golangci-runner.js +5 -2
  15. package/dist/src/golangci.js +1 -0
  16. package/dist/src/output.js +8 -0
  17. package/dist/src/report-validation.d.ts +11 -0
  18. package/dist/src/runtime-inventory.d.ts +2 -2
  19. package/dist/src/schemas.d.ts +28 -0
  20. package/dist/src/schemas.js +22 -2
  21. package/dist/src/types.d.ts +7 -1
  22. package/dist/src/types.js +1 -1
  23. package/docs/ACCEPTANCE.md +11 -8
  24. package/docs/CLIENTS.md +6 -4
  25. package/docs/EXECUTION.md +7 -0
  26. package/docs/GO-BUILD.md +106 -0
  27. package/docs/GO-RACE.md +6 -2
  28. package/docs/GO-SCOPE.md +79 -5
  29. package/docs/GOLANGCI-LINT.md +5 -2
  30. package/docs/INSTALLATION.md +5 -4
  31. package/docs/LANGUAGES.md +11 -2
  32. package/docs/MCP-COMPATIBILITY.md +6 -0
  33. package/docs/ONBOARDING.md +3 -2
  34. package/docs/PUBLIC-ADOPTION.md +9 -5
  35. package/docs/RELEASE.md +107 -40
  36. package/docs/SETUP-SCOPES.md +107 -0
  37. package/docs/STATUS.md +48 -20
  38. package/docs/TYPESCRIPT.md +2 -2
  39. package/docs/measurements/go-scope-policy-replay.json +91 -0
  40. package/docs/measurements/release-alpha3.json +362 -0
  41. package/docs/measurements/release-alpha4.json +421 -0
  42. package/package.json +1 -1
  43. package/schemas/go-build-policy.schema.json +72 -0
  44. package/schemas/go-scope-policy.schema.json +31 -0
  45. package/schemas/plan-summary.schema.json +11 -1
  46. package/schemas/plan.schema.json +51 -0
  47. package/schemas/report-summary.schema.json +10 -0
  48. package/schemas/report.schema.json +51 -0
  49. package/server.json +2 -2
@@ -0,0 +1,421 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "version": "0.1.0-alpha.4",
4
+ "sourceCommit": "ebe7f5c114428aebc5084a2a33d38113cad13583",
5
+ "artifactSha256": "4cc6dca5877b29cb452595c1c50233b0d377248f6f6e84e18ffe1b74b2031f8c",
6
+ "hostedCi": {
7
+ "url": "https://github.com/stsepelin/checktrail/actions/runs/35603451711",
8
+ "conclusion": "success",
9
+ "jobs": [
10
+ {
11
+ "name": "dotnet",
12
+ "conclusion": "success"
13
+ },
14
+ {
15
+ "name": "nuxt",
16
+ "conclusion": "success"
17
+ },
18
+ {
19
+ "name": "ruby",
20
+ "conclusion": "success"
21
+ },
22
+ {
23
+ "name": "java",
24
+ "conclusion": "success"
25
+ },
26
+ {
27
+ "name": "external-adapters",
28
+ "conclusion": "success"
29
+ },
30
+ {
31
+ "name": "clang",
32
+ "conclusion": "success"
33
+ },
34
+ {
35
+ "name": "checks (ubuntu-latest, 26)",
36
+ "conclusion": "success"
37
+ },
38
+ {
39
+ "name": "checks (ubuntu-latest, 24)",
40
+ "conclusion": "success"
41
+ },
42
+ {
43
+ "name": "checks (macos-latest, 24)",
44
+ "conclusion": "success"
45
+ },
46
+ {
47
+ "name": "swift",
48
+ "conclusion": "success"
49
+ },
50
+ {
51
+ "name": "checks (ubuntu-latest, 22)",
52
+ "conclusion": "success"
53
+ },
54
+ {
55
+ "name": "actionlint",
56
+ "conclusion": "success"
57
+ },
58
+ {
59
+ "name": "vue-router",
60
+ "conclusion": "success"
61
+ }
62
+ ]
63
+ },
64
+ "publication": {
65
+ "package": "@stsepelin/checktrail",
66
+ "version": "0.1.0-alpha.4",
67
+ "tag": "next",
68
+ "distTags": {
69
+ "latest": "0.1.0-alpha.1",
70
+ "next": "0.1.0-alpha.4"
71
+ },
72
+ "publicMetadata": true,
73
+ "tarballSha256": "4cc6dca5877b29cb452595c1c50233b0d377248f6f6e84e18ffe1b74b2031f8c",
74
+ "integrity": "sha512-6DaG6WAO0OFcoyiqZ7lAjkj4ts5hwUXneeQmgIq/c1rWTvxmgE2oi98pJJVOH9QHg7Z+H++Toaw7lbVaAUnJLQ==",
75
+ "registryTarballMatchesApproved": true,
76
+ "installation": "fresh-consumer-and-cache-from-npm-registry",
77
+ "observations": [
78
+ "installed-library-passed",
79
+ "installed-cli-passed-summary-private",
80
+ "generated-npx-fresh-cache-plan-and-trust-denial",
81
+ "generated-npx-warm-cache-plan-and-trust-denial",
82
+ "installed-init-doctor-and-mcp-config",
83
+ "installed-mcp-plan-and-trust-denial",
84
+ "installed-mcp-passed-and-retained-report",
85
+ "installed-mcp-failed-and-retained-report",
86
+ "installed-mcp-incomplete-and-retained-report"
87
+ ],
88
+ "node": "v26.8.1",
89
+ "platform": "darwin",
90
+ "arch": "arm64",
91
+ "recordedAt": "2026-09-21T13:37:05.478Z"
92
+ },
93
+ "registry": {
94
+ "url": "https://registry.modelcontextprotocol.io/v0.1/servers/io.github.stsepelin%2Fchecktrail/versions/0.1.0-alpha.4",
95
+ "version": "0.1.0-alpha.4",
96
+ "status": "active",
97
+ "metadataMatches": true,
98
+ "executionDisabled": true,
99
+ "recordedAt": "2026-09-21T13:37:26.409Z"
100
+ },
101
+ "githubRelease": "https://github.com/stsepelin/checktrail/releases/tag/v0.1.0-alpha.4",
102
+ "githubAssetsMatchApproved": true,
103
+ "committedRebuild": {
104
+ "commit": "ebe7f5c114428aebc5084a2a33d38113cad13583",
105
+ "candidateSha256": "4cc6dca5877b29cb452595c1c50233b0d377248f6f6e84e18ffe1b74b2031f8c",
106
+ "rebuiltSha256": "4cc6dca5877b29cb452595c1c50233b0d377248f6f6e84e18ffe1b74b2031f8c",
107
+ "matches": true,
108
+ "scope": "Clean git archive rebuilt using the same installed compiler and dependencies on this host; not a cross-platform reproducibility claim"
109
+ },
110
+ "clients": [
111
+ {
112
+ "recordedAt": "2026-09-21T13:01:24.198Z",
113
+ "profile": "claude-code-health-discovery",
114
+ "clientVersion": "2.1.263 (Claude Code)",
115
+ "runtime": {
116
+ "node": "26.8.1",
117
+ "platform": "darwin",
118
+ "arch": "arm64"
119
+ },
120
+ "package": {
121
+ "name": "@stsepelin/checktrail",
122
+ "version": "0.1.0-alpha.4",
123
+ "tarballSha256": "4cc6dca5877b29cb452595c1c50233b0d377248f6f6e84e18ffe1b74b2031f8c",
124
+ "runtimeArtifactsSha256": "f16e9d541b4b25424662526b0044177c871ae37faea5362448714e1f851a0925"
125
+ },
126
+ "harnessSha256": "254e469de77d6e906e323822cf9898f53f6818ca9aab511c3b3e70dbe63a4cb5",
127
+ "observations": [
128
+ {
129
+ "check": "health-and-discovery",
130
+ "outcome": "passed",
131
+ "warnings": []
132
+ }
133
+ ]
134
+ },
135
+ {
136
+ "recordedAt": "2026-09-21T13:01:24.193Z",
137
+ "profile": "codex-app-server-direct-tools",
138
+ "clientVersion": "codex-cli 0.154.0",
139
+ "runtime": {
140
+ "node": "26.8.1",
141
+ "platform": "darwin",
142
+ "arch": "arm64"
143
+ },
144
+ "package": {
145
+ "name": "@stsepelin/checktrail",
146
+ "version": "0.1.0-alpha.4",
147
+ "tarballSha256": "4cc6dca5877b29cb452595c1c50233b0d377248f6f6e84e18ffe1b74b2031f8c",
148
+ "runtimeArtifactsSha256": "f16e9d541b4b25424662526b0044177c871ae37faea5362448714e1f851a0925"
149
+ },
150
+ "harnessSha256": "254e469de77d6e906e323822cf9898f53f6818ca9aab511c3b3e70dbe63a4cb5",
151
+ "observations": [
152
+ {
153
+ "check": "project_context",
154
+ "outcome": "passed",
155
+ "checks": [
156
+ {
157
+ "id": "javascript.node-test",
158
+ "kind": "test",
159
+ "ready": true
160
+ }
161
+ ]
162
+ },
163
+ {
164
+ "check": "validation_plan",
165
+ "outcome": "passed",
166
+ "checks": [
167
+ {
168
+ "id": "javascript.node-test",
169
+ "kind": "test",
170
+ "ready": true
171
+ }
172
+ ]
173
+ },
174
+ {
175
+ "check": "guidance-https-result",
176
+ "outcome": "passed",
177
+ "references": ["https://nodejs.org/api/test.html"]
178
+ },
179
+ {
180
+ "check": "default-execution-denied",
181
+ "outcome": "passed"
182
+ },
183
+ {
184
+ "check": "tool-cannot-grant-trust",
185
+ "outcome": "passed"
186
+ },
187
+ {
188
+ "check": "native-passed-and-report",
189
+ "outcome": "passed",
190
+ "validationOutcome": "passed",
191
+ "sourceChanged": false,
192
+ "checks": [
193
+ {
194
+ "id": "javascript.node-test",
195
+ "status": "passed",
196
+ "tests": {
197
+ "total": 1,
198
+ "passed": 1,
199
+ "failed": 0,
200
+ "skipped": 0
201
+ }
202
+ }
203
+ ],
204
+ "retainedReportEqual": true
205
+ },
206
+ {
207
+ "check": "native-failed-and-report",
208
+ "outcome": "passed",
209
+ "validationOutcome": "failed",
210
+ "sourceChanged": false,
211
+ "checks": [
212
+ {
213
+ "id": "javascript.node-test",
214
+ "status": "failed",
215
+ "tests": {
216
+ "total": 1,
217
+ "passed": 0,
218
+ "failed": 1,
219
+ "skipped": 0
220
+ }
221
+ }
222
+ ],
223
+ "retainedReportEqual": true
224
+ },
225
+ {
226
+ "check": "all-skipped-is-incomplete",
227
+ "outcome": "passed",
228
+ "validationOutcome": "incomplete",
229
+ "checks": [
230
+ {
231
+ "id": "javascript.node-test",
232
+ "status": "inconclusive",
233
+ "tests": {
234
+ "total": 1,
235
+ "passed": 0,
236
+ "failed": 0,
237
+ "skipped": 1
238
+ }
239
+ }
240
+ ]
241
+ }
242
+ ]
243
+ }
244
+ ],
245
+ "upgrade": {
246
+ "hashes": {
247
+ "baseline": "261d10acbac14dcd5d74f4b248a390e5790f22461fecd597e29b8044aef2daeb",
248
+ "candidate": "4cc6dca5877b29cb452595c1c50233b0d377248f6f6e84e18ffe1b74b2031f8c"
249
+ },
250
+ "stages": [
251
+ {
252
+ "phase": "baseline",
253
+ "version": "0.1.0-alpha.3",
254
+ "cli": "passed",
255
+ "mcp": "passed",
256
+ "configuration": "unchanged"
257
+ },
258
+ {
259
+ "phase": "upgrade",
260
+ "version": "0.1.0-alpha.4",
261
+ "cli": "passed",
262
+ "mcp": "passed",
263
+ "configuration": "unchanged"
264
+ },
265
+ {
266
+ "phase": "rollback",
267
+ "version": "0.1.0-alpha.3",
268
+ "cli": "passed",
269
+ "mcp": "passed",
270
+ "configuration": "unchanged"
271
+ }
272
+ ],
273
+ "installation": "offline",
274
+ "priorReportImport": "passed"
275
+ },
276
+ "goScopeUpgrade": {
277
+ "baselineSha256": "261d10acbac14dcd5d74f4b248a390e5790f22461fecd597e29b8044aef2daeb",
278
+ "candidateSha256": "4cc6dca5877b29cb452595c1c50233b0d377248f6f6e84e18ffe1b74b2031f8c",
279
+ "platform": "darwin",
280
+ "arch": "arm64",
281
+ "node": "v26.8.1",
282
+ "results": [
283
+ {
284
+ "phase": "baseline",
285
+ "version": "0.1.0-alpha.3",
286
+ "outcome": "incomplete",
287
+ "checks": [
288
+ {
289
+ "id": "go.vet",
290
+ "status": "inconclusive"
291
+ },
292
+ {
293
+ "id": "go.test",
294
+ "status": "inconclusive"
295
+ }
296
+ ],
297
+ "sourcePreserved": true,
298
+ "cliLibraryMcpAgree": true
299
+ },
300
+ {
301
+ "phase": "upgrade",
302
+ "version": "0.1.0-alpha.4",
303
+ "outcome": "passed",
304
+ "checks": [
305
+ {
306
+ "id": "go.vet",
307
+ "status": "passed"
308
+ },
309
+ {
310
+ "id": "go.test",
311
+ "status": "passed"
312
+ }
313
+ ],
314
+ "sourcePreserved": true,
315
+ "cliLibraryMcpAgree": true
316
+ },
317
+ {
318
+ "phase": "rollback",
319
+ "version": "0.1.0-alpha.3",
320
+ "outcome": "incomplete",
321
+ "checks": [
322
+ {
323
+ "id": "go.vet",
324
+ "status": "inconclusive"
325
+ },
326
+ {
327
+ "id": "go.test",
328
+ "status": "inconclusive"
329
+ }
330
+ ],
331
+ "sourcePreserved": true,
332
+ "cliLibraryMcpAgree": true
333
+ }
334
+ ]
335
+ },
336
+ "goScopeReplay": {
337
+ "scope": "Known-case replay measured on the approved release candidate before publication; excludes the JavaScript target without validating it; not an independent holdout.",
338
+ "upstreamCommit": "2d3c2a9cc518326daf99a383f07c4d3c44317e4d",
339
+ "tarballSha256": "4cc6dca5877b29cb452595c1c50233b0d377248f6f6e84e18ffe1b74b2031f8c",
340
+ "platform": "darwin",
341
+ "arch": "arm64",
342
+ "node": "v26.8.1",
343
+ "observations": [
344
+ {
345
+ "phase": "strict",
346
+ "outcome": "failed",
347
+ "checks": [
348
+ {
349
+ "id": "go.format",
350
+ "status": "failed"
351
+ },
352
+ {
353
+ "id": "go.vet",
354
+ "status": "inconclusive"
355
+ },
356
+ {
357
+ "id": "go.test",
358
+ "status": "inconclusive"
359
+ }
360
+ ],
361
+ "mcpCounts": [0, 0, 0]
362
+ },
363
+ {
364
+ "phase": "declared",
365
+ "outcome": "failed",
366
+ "checks": [
367
+ {
368
+ "id": "go.format",
369
+ "status": "failed"
370
+ },
371
+ {
372
+ "id": "go.vet",
373
+ "status": "passed"
374
+ },
375
+ {
376
+ "id": "go.test",
377
+ "status": "passed",
378
+ "tests": {
379
+ "total": 213,
380
+ "passed": 212,
381
+ "failed": 0,
382
+ "skipped": 1
383
+ }
384
+ }
385
+ ],
386
+ "mcpCounts": [0, 1, 1]
387
+ },
388
+ {
389
+ "phase": "failing-test",
390
+ "outcome": "failed",
391
+ "checks": [
392
+ {
393
+ "id": "go.format",
394
+ "status": "failed"
395
+ },
396
+ {
397
+ "id": "go.vet",
398
+ "status": "passed"
399
+ },
400
+ {
401
+ "id": "go.test",
402
+ "status": "failed",
403
+ "tests": {
404
+ "total": 214,
405
+ "passed": 212,
406
+ "failed": 1,
407
+ "skipped": 1
408
+ }
409
+ }
410
+ ],
411
+ "mcpCounts": [0, 1, 1]
412
+ }
413
+ ]
414
+ },
415
+ "limits": [
416
+ "Named client profiles and pinned known-case replay only; no general effectiveness or broader compatibility claim.",
417
+ "Excluded Go source is unverified; no custom build-tag or cross-target execution is added.",
418
+ "The clean source rebuild used the same installed compiler and dependencies on the same host.",
419
+ "Recorded tags describe publication-time state."
420
+ ]
421
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stsepelin/checktrail",
3
- "version": "0.1.0-alpha.3",
3
+ "version": "0.1.0-alpha.5",
4
4
  "mcpName": "io.github.stsepelin/checktrail",
5
5
  "description": "Local code validation with execution evidence, a CLI, and MCP tools.",
6
6
  "type": "module",
@@ -0,0 +1,72 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "schemaVersion": { "type": "number", "const": 1 },
6
+ "profiles": {
7
+ "minItems": 1,
8
+ "maxItems": 5,
9
+ "type": "array",
10
+ "items": {
11
+ "type": "object",
12
+ "properties": {
13
+ "name": {
14
+ "type": "string",
15
+ "maxLength": 64,
16
+ "pattern": "^[A-Za-z][A-Za-z0-9_-]*$"
17
+ },
18
+ "tags": {
19
+ "maxItems": 32,
20
+ "type": "array",
21
+ "items": {
22
+ "type": "string",
23
+ "maxLength": 64,
24
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
25
+ }
26
+ },
27
+ "checks": {
28
+ "minItems": 1,
29
+ "maxItems": 5,
30
+ "type": "array",
31
+ "items": {
32
+ "type": "string",
33
+ "enum": [
34
+ "go.vet",
35
+ "go.test",
36
+ "go.test-race",
37
+ "go.staticcheck",
38
+ "go.golangci-lint"
39
+ ]
40
+ }
41
+ },
42
+ "excludedFiles": {
43
+ "maxItems": 1000,
44
+ "type": "array",
45
+ "items": {
46
+ "type": "object",
47
+ "properties": {
48
+ "path": {
49
+ "type": "string",
50
+ "maxLength": 4096,
51
+ "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*\\/\\/)(?!.*[\\\\*?[\\]{}])[\\u0020-\\u007e\\u0080-\\uffff]+\\.go$"
52
+ },
53
+ "reason": {
54
+ "type": "string",
55
+ "minLength": 1,
56
+ "maxLength": 1000,
57
+ "pattern": "\\S"
58
+ }
59
+ },
60
+ "required": ["path", "reason"],
61
+ "additionalProperties": false
62
+ }
63
+ }
64
+ },
65
+ "required": ["name", "tags", "checks", "excludedFiles"],
66
+ "additionalProperties": false
67
+ }
68
+ }
69
+ },
70
+ "required": ["schemaVersion", "profiles"],
71
+ "additionalProperties": false
72
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "schemaVersion": { "type": "number", "const": 1 },
6
+ "excludedFiles": {
7
+ "maxItems": 1000,
8
+ "type": "array",
9
+ "items": {
10
+ "type": "object",
11
+ "properties": {
12
+ "path": {
13
+ "type": "string",
14
+ "maxLength": 4096,
15
+ "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*\\/\\/)(?!.*[\\\\*?[\\]{}])[\\u0020-\\u007e\\u0080-\\uffff]+\\.go$"
16
+ },
17
+ "reason": {
18
+ "type": "string",
19
+ "minLength": 1,
20
+ "maxLength": 1000,
21
+ "pattern": "\\S"
22
+ }
23
+ },
24
+ "required": ["path", "reason"],
25
+ "additionalProperties": false
26
+ }
27
+ }
28
+ },
29
+ "required": ["schemaVersion", "excludedFiles"],
30
+ "additionalProperties": false
31
+ }
@@ -44,7 +44,17 @@
44
44
  "type": "string",
45
45
  "enum": ["format", "analysis", "test", "syntax", "unsupported"]
46
46
  },
47
- "ready": { "type": "boolean" }
47
+ "ready": { "type": "boolean" },
48
+ "goExcludedFileCount": {
49
+ "type": "integer",
50
+ "minimum": 0,
51
+ "maximum": 9007199254740991
52
+ },
53
+ "goBuildTagCount": {
54
+ "type": "integer",
55
+ "minimum": 0,
56
+ "maximum": 9007199254740991
57
+ }
48
58
  },
49
59
  "required": ["id", "kind", "ready"],
50
60
  "additionalProperties": false
@@ -97,6 +97,57 @@
97
97
  "adapter": { "type": "string" },
98
98
  "project": { "type": "string" },
99
99
  "scope": { "type": "array", "items": { "type": "string" } },
100
+ "goScope": {
101
+ "type": "object",
102
+ "properties": {
103
+ "schemaVersion": { "type": "number", "const": 1 },
104
+ "excludedFiles": {
105
+ "maxItems": 1000,
106
+ "type": "array",
107
+ "items": {
108
+ "type": "object",
109
+ "properties": {
110
+ "path": {
111
+ "type": "string",
112
+ "maxLength": 4096,
113
+ "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*\\/\\/)(?!.*[\\\\*?[\\]{}])[\\u0020-\\u007e\\u0080-\\uffff]+\\.go$"
114
+ },
115
+ "reason": {
116
+ "type": "string",
117
+ "minLength": 1,
118
+ "maxLength": 1000,
119
+ "pattern": "\\S"
120
+ }
121
+ },
122
+ "required": ["path", "reason"],
123
+ "additionalProperties": false
124
+ }
125
+ }
126
+ },
127
+ "required": ["schemaVersion", "excludedFiles"],
128
+ "additionalProperties": false
129
+ },
130
+ "goBuild": {
131
+ "type": "object",
132
+ "properties": {
133
+ "profile": {
134
+ "type": "string",
135
+ "maxLength": 64,
136
+ "pattern": "^[A-Za-z][A-Za-z0-9_-]*$"
137
+ },
138
+ "tags": {
139
+ "maxItems": 32,
140
+ "type": "array",
141
+ "items": {
142
+ "type": "string",
143
+ "maxLength": 64,
144
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
145
+ }
146
+ }
147
+ },
148
+ "required": ["profile", "tags"],
149
+ "additionalProperties": false
150
+ },
100
151
  "kind": {
101
152
  "type": "string",
102
153
  "enum": ["format", "analysis", "test", "syntax", "unsupported"]
@@ -79,6 +79,16 @@
79
79
  },
80
80
  "required": ["total", "passed", "failed", "skipped"],
81
81
  "additionalProperties": false
82
+ },
83
+ "goExcludedFileCount": {
84
+ "type": "integer",
85
+ "minimum": 0,
86
+ "maximum": 9007199254740991
87
+ },
88
+ "goBuildTagCount": {
89
+ "type": "integer",
90
+ "minimum": 0,
91
+ "maximum": 9007199254740991
82
92
  }
83
93
  },
84
94
  "required": ["id", "status"],
@@ -94,6 +94,57 @@
94
94
  "adapter": { "type": "string" },
95
95
  "project": { "type": "string" },
96
96
  "scope": { "type": "array", "items": { "type": "string" } },
97
+ "goScope": {
98
+ "type": "object",
99
+ "properties": {
100
+ "schemaVersion": { "type": "number", "const": 1 },
101
+ "excludedFiles": {
102
+ "maxItems": 1000,
103
+ "type": "array",
104
+ "items": {
105
+ "type": "object",
106
+ "properties": {
107
+ "path": {
108
+ "type": "string",
109
+ "maxLength": 4096,
110
+ "pattern": "^(?!\\/)(?!.*(?:^|\\/)\\.{1,2}(?:\\/|$))(?!.*\\/\\/)(?!.*[\\\\*?[\\]{}])[\\u0020-\\u007e\\u0080-\\uffff]+\\.go$"
111
+ },
112
+ "reason": {
113
+ "type": "string",
114
+ "minLength": 1,
115
+ "maxLength": 1000,
116
+ "pattern": "\\S"
117
+ }
118
+ },
119
+ "required": ["path", "reason"],
120
+ "additionalProperties": false
121
+ }
122
+ }
123
+ },
124
+ "required": ["schemaVersion", "excludedFiles"],
125
+ "additionalProperties": false
126
+ },
127
+ "goBuild": {
128
+ "type": "object",
129
+ "properties": {
130
+ "profile": {
131
+ "type": "string",
132
+ "maxLength": 64,
133
+ "pattern": "^[A-Za-z][A-Za-z0-9_-]*$"
134
+ },
135
+ "tags": {
136
+ "maxItems": 32,
137
+ "type": "array",
138
+ "items": {
139
+ "type": "string",
140
+ "maxLength": 64,
141
+ "pattern": "^[A-Za-z_][A-Za-z0-9_]*$"
142
+ }
143
+ }
144
+ },
145
+ "required": ["profile", "tags"],
146
+ "additionalProperties": false
147
+ },
97
148
  "status": {
98
149
  "type": "string",
99
150
  "enum": [