@captain_z/zsk 1.8.4 → 1.8.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.
- package/dist/bin.js +13 -0
- package/dist/bin.js.map +1 -1
- package/dist/commands/check.js +14 -575
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/config.js +1 -1
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/demo.d.ts +5 -0
- package/dist/commands/demo.js +70 -297
- package/dist/commands/demo.js.map +1 -1
- package/dist/commands/doctor.js +9 -4
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/gate.d.ts +1 -0
- package/dist/commands/gate.js +8 -2
- package/dist/commands/gate.js.map +1 -1
- package/dist/commands/prepare.js +7 -1
- package/dist/commands/prepare.js.map +1 -1
- package/dist/commands/project-init.js +30 -8
- package/dist/commands/project-init.js.map +1 -1
- package/dist/core/config.d.ts +68 -0
- package/dist/core/config.js +198 -15
- package/dist/core/config.js.map +1 -1
- package/dist/core/demo-auth.d.ts +30 -0
- package/dist/core/demo-auth.js +213 -0
- package/dist/core/demo-auth.js.map +1 -0
- package/dist/core/demo-scenarios.d.ts +62 -0
- package/dist/core/demo-scenarios.js +276 -0
- package/dist/core/demo-scenarios.js.map +1 -0
- package/dist/core/demo-sources.d.ts +37 -0
- package/dist/core/demo-sources.js +198 -0
- package/dist/core/demo-sources.js.map +1 -0
- package/dist/core/mcp-registry-discovery.d.ts +16 -0
- package/dist/core/mcp-registry-discovery.js +187 -0
- package/dist/core/mcp-registry-discovery.js.map +1 -0
- package/dist/core/origin-detection.js +1 -1
- package/dist/core/origin-detection.js.map +1 -1
- package/dist/core/prepare-artifacts.d.ts +16 -0
- package/dist/core/prepare-artifacts.js +25 -0
- package/dist/core/prepare-artifacts.js.map +1 -0
- package/dist/core/prepare-auth-helper.d.ts +8 -0
- package/dist/core/prepare-auth-helper.js +32 -0
- package/dist/core/prepare-auth-helper.js.map +1 -0
- package/dist/core/prepare-materialization.d.ts +8 -0
- package/dist/core/prepare-materialization.js +26 -0
- package/dist/core/prepare-materialization.js.map +1 -0
- package/dist/core/prepare-migration.d.ts +6 -0
- package/dist/core/prepare-migration.js +57 -0
- package/dist/core/prepare-migration.js.map +1 -0
- package/dist/core/prepare-reporting.d.ts +5 -0
- package/dist/core/prepare-reporting.js +106 -0
- package/dist/core/prepare-reporting.js.map +1 -0
- package/dist/core/prepare-routing.d.ts +12 -0
- package/dist/core/prepare-routing.js +182 -0
- package/dist/core/prepare-routing.js.map +1 -0
- package/dist/core/prepare-sync.d.ts +11 -22
- package/dist/core/prepare-sync.js +811 -260
- package/dist/core/prepare-sync.js.map +1 -1
- package/dist/core/prepare-utils.d.ts +6 -0
- package/dist/core/prepare-utils.js +35 -0
- package/dist/core/prepare-utils.js.map +1 -0
- package/dist/core/provider-policy.d.ts +26 -0
- package/dist/core/provider-policy.js +180 -0
- package/dist/core/provider-policy.js.map +1 -0
- package/dist/core/provider-readiness.d.ts +39 -0
- package/dist/core/provider-readiness.js +78 -0
- package/dist/core/provider-readiness.js.map +1 -0
- package/dist/core/source-adapter-normalization.d.ts +31 -0
- package/dist/core/source-adapter-normalization.js +235 -0
- package/dist/core/source-adapter-normalization.js.map +1 -0
- package/dist/core/source-snapshot-adapters.d.ts +3 -3
- package/dist/core/source-snapshot-adapters.js +2 -24
- package/dist/core/source-snapshot-adapters.js.map +1 -1
- package/dist/core/staffing-plan.d.ts +1 -0
- package/dist/core/staffing-plan.js +61 -3
- package/dist/core/staffing-plan.js.map +1 -1
- package/dist/core/stage-clarity-verification.js +21 -18
- package/dist/core/stage-clarity-verification.js.map +1 -1
- package/dist/core/stage-output-quality.d.ts +3 -0
- package/dist/core/stage-output-quality.js +122 -0
- package/dist/core/stage-output-quality.js.map +1 -0
- package/dist/core/stage-quality-contracts.d.ts +19 -0
- package/dist/core/stage-quality-contracts.js.map +1 -1
- package/dist/core/stage-quality-criteria.js +0 -37
- package/dist/core/stage-quality-criteria.js.map +1 -1
- package/dist/core/stage-quality-rendering.d.ts +4 -2
- package/dist/core/stage-quality-rendering.js +130 -12
- package/dist/core/stage-quality-rendering.js.map +1 -1
- package/dist/core/stage-quality.js +17 -6
- package/dist/core/stage-quality.js.map +1 -1
- package/dist/core/template-registry.js +12 -15
- package/dist/core/template-registry.js.map +1 -1
- package/dist/core/workspace-conformance.d.ts +39 -0
- package/dist/core/workspace-conformance.js +603 -0
- package/dist/core/workspace-conformance.js.map +1 -0
- package/package.json +2 -2
- package/schemas/providers.schema.json +74 -0
- package/schemas/zsk-config.schema.json +417 -1
- package/templates/project-init/.zsk/README.md +48 -0
- package/templates/project-init/.zsk/config.yaml +37 -33
- package/templates/project-init/.zsk/docs/CONFIG-SCHEMA.md +127 -0
- package/templates/project-init/.zsk/docs/PROJECT-CONFIG.md +26 -21
- package/templates/project-init/.zsk/docs/README.md +10 -0
- package/templates/project-init/.zsk/docs/SECURITY.md +34 -0
- package/templates/project-init/.zsk/docs/SYSTEM-SPEC.md +20 -8
- package/templates/project-init/.zsk/evidence/README.md +15 -0
- package/templates/project-init/.zsk/issues/README.md +10 -0
- package/templates/project-init/.zsk/modules/README.md +19 -0
- package/templates/project-init/.zsk/modules/index.md +9 -5
- package/templates/project-init/.zsk/raws/README.md +34 -0
- package/templates/project-init/.zsk/roles.yaml +36 -105
- package/templates/project-init/.zsk/templates/config.examples.yaml +83 -0
- package/templates/project-init/.zsk/templates/issue-card.md +23 -0
- package/templates/project-init/.zsk/templates/module/README.md +13 -0
- package/templates/project-init/.zsk/templates/module/design.md +22 -0
- package/templates/project-init/.zsk/templates/module/module.yaml +15 -0
- package/templates/project-init/.zsk/templates/module/proposal.md +20 -0
- package/templates/project-init/.zsk/templates/module/spec.md +22 -0
- package/templates/project-init/.zsk/templates/module/tasks.md +16 -0
- package/templates/project-init/.zsk/raws/index.md +0 -34
- package/templates/project-init/.zsk/raws/manifest.json +0 -4
- package/templates/project-init/.zsk/raws/prepare/backend/index.md +0 -4
- package/templates/project-init/.zsk/raws/prepare/design/index.md +0 -21
- package/templates/project-init/.zsk/raws/prepare/index.md +0 -37
- package/templates/project-init/.zsk/raws/prepare/product/index.md +0 -4
- package/templates/project-init/.zsk/raws/prepare/qa/index.md +0 -4
- package/templates/project-init/.zsk/raws/prepare/ux/index.md +0 -22
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://unpkg.com/@captain_z/zsk/schemas/providers.schema.json",
|
|
4
|
+
"title": "ZSK Provider Policy",
|
|
5
|
+
"description": "Project provider capability mappings. Credentials and host startup details belong in host MCP config, not this file.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"additionalProperties": false,
|
|
8
|
+
"required": ["version", "providers"],
|
|
9
|
+
"properties": {
|
|
10
|
+
"version": {
|
|
11
|
+
"type": "integer",
|
|
12
|
+
"enum": [1]
|
|
13
|
+
},
|
|
14
|
+
"providers": {
|
|
15
|
+
"type": "object",
|
|
16
|
+
"additionalProperties": {
|
|
17
|
+
"$ref": "#/$defs/providerMapping"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"adapters": {
|
|
21
|
+
"description": "Reserved for future project adapter contract overrides. First implementation rejects non-empty adapter overrides.",
|
|
22
|
+
"type": "object",
|
|
23
|
+
"additionalProperties": true
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"$defs": {
|
|
27
|
+
"providerMapping": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"additionalProperties": false,
|
|
30
|
+
"properties": {
|
|
31
|
+
"adapter": {
|
|
32
|
+
"type": "string",
|
|
33
|
+
"enum": ["figma", "jira", "confluence", "gitlab"]
|
|
34
|
+
},
|
|
35
|
+
"extends": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"minLength": 1
|
|
38
|
+
},
|
|
39
|
+
"tools": {
|
|
40
|
+
"type": "object",
|
|
41
|
+
"additionalProperties": false,
|
|
42
|
+
"properties": {
|
|
43
|
+
"metadata-read": {
|
|
44
|
+
"$ref": "#/$defs/stringList"
|
|
45
|
+
},
|
|
46
|
+
"metadataRead": {
|
|
47
|
+
"$ref": "#/$defs/stringList"
|
|
48
|
+
},
|
|
49
|
+
"node-read": {
|
|
50
|
+
"$ref": "#/$defs/stringList"
|
|
51
|
+
},
|
|
52
|
+
"nodeRead": {
|
|
53
|
+
"$ref": "#/$defs/stringList"
|
|
54
|
+
},
|
|
55
|
+
"asset-export": {
|
|
56
|
+
"$ref": "#/$defs/stringList"
|
|
57
|
+
},
|
|
58
|
+
"assetExport": {
|
|
59
|
+
"$ref": "#/$defs/stringList"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"stringList": {
|
|
66
|
+
"type": "array",
|
|
67
|
+
"items": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"minLength": 1
|
|
70
|
+
},
|
|
71
|
+
"uniqueItems": true
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -122,7 +122,7 @@
|
|
|
122
122
|
"$ref": "#/$defs/pathRef"
|
|
123
123
|
},
|
|
124
124
|
"resources": {
|
|
125
|
-
"description": "
|
|
125
|
+
"description": "Compatibility alias for paths.raws.",
|
|
126
126
|
"$ref": "#/$defs/pathRef"
|
|
127
127
|
},
|
|
128
128
|
"raws": {
|
|
@@ -158,6 +158,27 @@
|
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
160
|
},
|
|
161
|
+
"providers": {
|
|
162
|
+
"description": "Project-level provider connection profiles. Credentials should reference env vars or profiles, not inline secrets.",
|
|
163
|
+
"type": "object",
|
|
164
|
+
"additionalProperties": {
|
|
165
|
+
"$ref": "#/$defs/providerConfig"
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
"resources": {
|
|
169
|
+
"description": "Resource intents to prepare. Sync materializes only configured resources that produce snapshots.",
|
|
170
|
+
"type": "array",
|
|
171
|
+
"items": {
|
|
172
|
+
"$ref": "#/$defs/resourceConfig"
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"routes": {
|
|
176
|
+
"description": "Rules that route prepared resources into controlled module or shared consumption artifacts.",
|
|
177
|
+
"type": "array",
|
|
178
|
+
"items": {
|
|
179
|
+
"$ref": "#/$defs/routeConfig"
|
|
180
|
+
}
|
|
181
|
+
},
|
|
161
182
|
"tools": {
|
|
162
183
|
"description": "Preferred AI/tool capabilities for project-level workflows.",
|
|
163
184
|
"type": "object",
|
|
@@ -195,6 +216,13 @@
|
|
|
195
216
|
"root": {
|
|
196
217
|
"$ref": "#/$defs/pathRef"
|
|
197
218
|
},
|
|
219
|
+
"registry": {
|
|
220
|
+
"description": "Optional module registry used by resource routes and reports.",
|
|
221
|
+
"type": "array",
|
|
222
|
+
"items": {
|
|
223
|
+
"$ref": "#/$defs/moduleRegistryEntry"
|
|
224
|
+
}
|
|
225
|
+
},
|
|
198
226
|
"metadata": {
|
|
199
227
|
"$ref": "#/$defs/metadata"
|
|
200
228
|
}
|
|
@@ -233,6 +261,64 @@
|
|
|
233
261
|
"scenarioDir": {
|
|
234
262
|
"$ref": "#/$defs/pathRef"
|
|
235
263
|
},
|
|
264
|
+
"auth": {
|
|
265
|
+
"description": "Demo login bootstrap. Store only local env-file references and env key names here, never credential values.",
|
|
266
|
+
"type": "object",
|
|
267
|
+
"additionalProperties": false,
|
|
268
|
+
"properties": {
|
|
269
|
+
"required": {
|
|
270
|
+
"type": "boolean"
|
|
271
|
+
},
|
|
272
|
+
"loginUrl": {
|
|
273
|
+
"type": "string",
|
|
274
|
+
"minLength": 1
|
|
275
|
+
},
|
|
276
|
+
"storageState": {
|
|
277
|
+
"$ref": "#/$defs/pathRef"
|
|
278
|
+
},
|
|
279
|
+
"envFiles": {
|
|
280
|
+
"description": "Local files that may define exported env vars, for example ~/.zshrc. Values are read at runtime and are not copied into ZSK artifacts.",
|
|
281
|
+
"$ref": "#/$defs/stringList"
|
|
282
|
+
},
|
|
283
|
+
"env": {
|
|
284
|
+
"description": "Purpose-to-env-key map, for example username: DEMO_USER and password: DEMO_PASSWORD.",
|
|
285
|
+
"type": "object",
|
|
286
|
+
"additionalProperties": {
|
|
287
|
+
"type": "string",
|
|
288
|
+
"minLength": 1
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
"selectors": {
|
|
292
|
+
"description": "Optional Playwright locators used by the first-login helper to fill configured env values.",
|
|
293
|
+
"type": "object",
|
|
294
|
+
"additionalProperties": {
|
|
295
|
+
"type": "string",
|
|
296
|
+
"minLength": 1
|
|
297
|
+
},
|
|
298
|
+
"properties": {
|
|
299
|
+
"username": {
|
|
300
|
+
"type": "string",
|
|
301
|
+
"minLength": 1
|
|
302
|
+
},
|
|
303
|
+
"password": {
|
|
304
|
+
"type": "string",
|
|
305
|
+
"minLength": 1
|
|
306
|
+
},
|
|
307
|
+
"otp": {
|
|
308
|
+
"type": "string",
|
|
309
|
+
"minLength": 1
|
|
310
|
+
},
|
|
311
|
+
"submit": {
|
|
312
|
+
"type": "string",
|
|
313
|
+
"minLength": 1
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
},
|
|
317
|
+
"metadata": {
|
|
318
|
+
"$ref": "#/$defs/metadata"
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
},
|
|
236
322
|
"playwright": {
|
|
237
323
|
"type": "object",
|
|
238
324
|
"additionalProperties": false,
|
|
@@ -346,6 +432,213 @@
|
|
|
346
432
|
}
|
|
347
433
|
}
|
|
348
434
|
},
|
|
435
|
+
"providerConfig": {
|
|
436
|
+
"description": "Provider connection profile. This is intentionally generic so projects can bind Jira, GitHub, GitLab, Confluence, Figma, MCP, command, or future providers without schema churn.",
|
|
437
|
+
"type": "object",
|
|
438
|
+
"additionalProperties": true,
|
|
439
|
+
"properties": {
|
|
440
|
+
"type": {
|
|
441
|
+
"type": "string",
|
|
442
|
+
"minLength": 1
|
|
443
|
+
},
|
|
444
|
+
"adapter": {
|
|
445
|
+
"type": "string",
|
|
446
|
+
"minLength": 1
|
|
447
|
+
},
|
|
448
|
+
"baseUrl": {
|
|
449
|
+
"type": "string",
|
|
450
|
+
"minLength": 1
|
|
451
|
+
},
|
|
452
|
+
"auth": {
|
|
453
|
+
"$ref": "#/$defs/authRef"
|
|
454
|
+
},
|
|
455
|
+
"defaults": {
|
|
456
|
+
"$ref": "#/$defs/metadata"
|
|
457
|
+
},
|
|
458
|
+
"metadata": {
|
|
459
|
+
"$ref": "#/$defs/metadata"
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
"resourceConfig": {
|
|
464
|
+
"description": "Resource intent. `type + id` determines the default raw snapshot path unless output.rawPath overrides it.",
|
|
465
|
+
"type": "object",
|
|
466
|
+
"additionalProperties": true,
|
|
467
|
+
"required": ["id", "type"],
|
|
468
|
+
"properties": {
|
|
469
|
+
"id": {
|
|
470
|
+
"type": "string",
|
|
471
|
+
"minLength": 1
|
|
472
|
+
},
|
|
473
|
+
"type": {
|
|
474
|
+
"type": "string",
|
|
475
|
+
"minLength": 1
|
|
476
|
+
},
|
|
477
|
+
"area": {
|
|
478
|
+
"type": "string",
|
|
479
|
+
"minLength": 1
|
|
480
|
+
},
|
|
481
|
+
"provider": {
|
|
482
|
+
"oneOf": [
|
|
483
|
+
{
|
|
484
|
+
"type": "string",
|
|
485
|
+
"minLength": 1
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
"type": "object",
|
|
489
|
+
"additionalProperties": true
|
|
490
|
+
}
|
|
491
|
+
]
|
|
492
|
+
},
|
|
493
|
+
"source": {
|
|
494
|
+
"type": "object",
|
|
495
|
+
"additionalProperties": true
|
|
496
|
+
},
|
|
497
|
+
"query": {
|
|
498
|
+
"oneOf": [
|
|
499
|
+
{
|
|
500
|
+
"type": "string",
|
|
501
|
+
"minLength": 1
|
|
502
|
+
},
|
|
503
|
+
{
|
|
504
|
+
"type": "object",
|
|
505
|
+
"additionalProperties": true
|
|
506
|
+
}
|
|
507
|
+
]
|
|
508
|
+
},
|
|
509
|
+
"params": {
|
|
510
|
+
"type": "object",
|
|
511
|
+
"additionalProperties": true
|
|
512
|
+
},
|
|
513
|
+
"classify": {
|
|
514
|
+
"type": "object",
|
|
515
|
+
"additionalProperties": true
|
|
516
|
+
},
|
|
517
|
+
"output": {
|
|
518
|
+
"type": "object",
|
|
519
|
+
"additionalProperties": true,
|
|
520
|
+
"properties": {
|
|
521
|
+
"rawPath": {
|
|
522
|
+
"$ref": "#/$defs/pathRef"
|
|
523
|
+
},
|
|
524
|
+
"commitRaw": {
|
|
525
|
+
"type": "boolean"
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
},
|
|
529
|
+
"metadata": {
|
|
530
|
+
"$ref": "#/$defs/metadata"
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
},
|
|
534
|
+
"routeConfig": {
|
|
535
|
+
"description": "Route from a prepared resource to a controlled artifact target.",
|
|
536
|
+
"type": "object",
|
|
537
|
+
"additionalProperties": true,
|
|
538
|
+
"required": ["from", "to"],
|
|
539
|
+
"properties": {
|
|
540
|
+
"from": {
|
|
541
|
+
"type": "string",
|
|
542
|
+
"minLength": 1
|
|
543
|
+
},
|
|
544
|
+
"to": {
|
|
545
|
+
"type": "object",
|
|
546
|
+
"additionalProperties": true,
|
|
547
|
+
"properties": {
|
|
548
|
+
"module": {
|
|
549
|
+
"type": "string",
|
|
550
|
+
"minLength": 1
|
|
551
|
+
},
|
|
552
|
+
"artifact": {
|
|
553
|
+
"type": "string",
|
|
554
|
+
"minLength": 1
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
},
|
|
558
|
+
"metadata": {
|
|
559
|
+
"$ref": "#/$defs/metadata"
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
},
|
|
563
|
+
"moduleRegistryEntry": {
|
|
564
|
+
"type": "object",
|
|
565
|
+
"additionalProperties": true,
|
|
566
|
+
"required": ["id"],
|
|
567
|
+
"properties": {
|
|
568
|
+
"id": {
|
|
569
|
+
"type": "string",
|
|
570
|
+
"minLength": 1
|
|
571
|
+
},
|
|
572
|
+
"title": {
|
|
573
|
+
"type": "string",
|
|
574
|
+
"minLength": 1
|
|
575
|
+
},
|
|
576
|
+
"metadata": {
|
|
577
|
+
"$ref": "#/$defs/metadata"
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
},
|
|
581
|
+
"authRef": {
|
|
582
|
+
"type": "object",
|
|
583
|
+
"additionalProperties": true,
|
|
584
|
+
"properties": {
|
|
585
|
+
"env": {
|
|
586
|
+
"description": "Primary token env var name, or fallback token env var names in priority order.",
|
|
587
|
+
"$ref": "#/$defs/stringOrStringList"
|
|
588
|
+
},
|
|
589
|
+
"tokenEnv": {
|
|
590
|
+
"description": "Bearer or provider-token env var name.",
|
|
591
|
+
"$ref": "#/$defs/stringOrStringList"
|
|
592
|
+
},
|
|
593
|
+
"accessTokenEnv": {
|
|
594
|
+
"description": "Access-token env var name.",
|
|
595
|
+
"$ref": "#/$defs/stringOrStringList"
|
|
596
|
+
},
|
|
597
|
+
"apiTokenEnv": {
|
|
598
|
+
"description": "API-token env var name.",
|
|
599
|
+
"$ref": "#/$defs/stringOrStringList"
|
|
600
|
+
},
|
|
601
|
+
"usernameEnv": {
|
|
602
|
+
"description": "Basic-auth username env var name.",
|
|
603
|
+
"$ref": "#/$defs/stringOrStringList"
|
|
604
|
+
},
|
|
605
|
+
"passwordEnv": {
|
|
606
|
+
"description": "Basic-auth password env var name.",
|
|
607
|
+
"$ref": "#/$defs/stringOrStringList"
|
|
608
|
+
},
|
|
609
|
+
"cookieEnv": {
|
|
610
|
+
"description": "Raw Cookie header env var name.",
|
|
611
|
+
"$ref": "#/$defs/stringOrStringList"
|
|
612
|
+
},
|
|
613
|
+
"sessionCookieEnv": {
|
|
614
|
+
"description": "Session-cookie env var name.",
|
|
615
|
+
"$ref": "#/$defs/stringOrStringList"
|
|
616
|
+
},
|
|
617
|
+
"cookies": {
|
|
618
|
+
"description": "Cookie-name to env-var-name map.",
|
|
619
|
+
"type": "object",
|
|
620
|
+
"additionalProperties": {
|
|
621
|
+
"type": "string",
|
|
622
|
+
"minLength": 1
|
|
623
|
+
}
|
|
624
|
+
},
|
|
625
|
+
"tokenHeader": {
|
|
626
|
+
"type": "string",
|
|
627
|
+
"minLength": 1
|
|
628
|
+
},
|
|
629
|
+
"tokenScheme": {
|
|
630
|
+
"type": "string",
|
|
631
|
+
"minLength": 1
|
|
632
|
+
},
|
|
633
|
+
"profile": {
|
|
634
|
+
"type": "string",
|
|
635
|
+
"minLength": 1
|
|
636
|
+
},
|
|
637
|
+
"metadata": {
|
|
638
|
+
"$ref": "#/$defs/metadata"
|
|
639
|
+
}
|
|
640
|
+
}
|
|
641
|
+
},
|
|
349
642
|
"sourceType": {
|
|
350
643
|
"description": "Raw source role. Common examples include srs, prd, design, api_contract, backend_repo, test_case, design_asset, vendor_doc, and manual, but projects may define their own roles.",
|
|
351
644
|
"type": "string",
|
|
@@ -360,6 +653,34 @@
|
|
|
360
653
|
"type": {
|
|
361
654
|
"$ref": "#/$defs/sourceType"
|
|
362
655
|
},
|
|
656
|
+
"adapter": {
|
|
657
|
+
"description": "Concrete built-in source adapter id. Runtime tools such as playwright_cli or computer_use are accepted only as compatibility fallback aliases; prefer fallback for those.",
|
|
658
|
+
"type": "string",
|
|
659
|
+
"enum": ["figma", "jira", "confluence", "gitlab", "playwright-cli", "playwright_cli", "playwright", "playwright-mcp", "playwright_mcp", "computer-use", "computer_use", "browser-use", "browser_use", "manual", "export"]
|
|
660
|
+
},
|
|
661
|
+
"fallback": {
|
|
662
|
+
"description": "Optional runtime fallback tools used after built-in source adapters and generic fetches. Playwright fallbacks may enable browser-backed capture; computer_use is observation-only and is not invoked by prepare sync.",
|
|
663
|
+
"$ref": "#/$defs/sourceFallbackRef"
|
|
664
|
+
},
|
|
665
|
+
"fallbackTools": {
|
|
666
|
+
"description": "Compatibility alias for fallback.",
|
|
667
|
+
"$ref": "#/$defs/sourceFallbackToolList"
|
|
668
|
+
},
|
|
669
|
+
"provider": {
|
|
670
|
+
"description": "Deprecated compatibility field. Prefer adapter for built-in source adapters or mcpProvider for MCP provider bindings.",
|
|
671
|
+
"type": "string",
|
|
672
|
+
"minLength": 1
|
|
673
|
+
},
|
|
674
|
+
"mcpProvider": {
|
|
675
|
+
"description": "Explicit MCP provider binding name. The provider must be mapped by built-in provider registry or .zsk/providers.yaml.",
|
|
676
|
+
"type": "string",
|
|
677
|
+
"minLength": 1
|
|
678
|
+
},
|
|
679
|
+
"mcpServer": {
|
|
680
|
+
"description": "Deprecated compatibility alias for mcpProvider.",
|
|
681
|
+
"type": "string",
|
|
682
|
+
"minLength": 1
|
|
683
|
+
},
|
|
363
684
|
"origin": {
|
|
364
685
|
"$ref": "#/$defs/originRef"
|
|
365
686
|
},
|
|
@@ -367,11 +688,60 @@
|
|
|
367
688
|
"description": "Optional explicit materialized snapshot path. Omit this for entry-point sources such as a Figma file, Confluence space, repository, or issue query.",
|
|
368
689
|
"$ref": "#/$defs/pathRef"
|
|
369
690
|
},
|
|
691
|
+
"snapshotRequirements": {
|
|
692
|
+
"type": "object",
|
|
693
|
+
"additionalProperties": false,
|
|
694
|
+
"properties": {
|
|
695
|
+
"assets": {
|
|
696
|
+
"type": "string",
|
|
697
|
+
"enum": ["required", "recommended", "optional"]
|
|
698
|
+
},
|
|
699
|
+
"metadata": {
|
|
700
|
+
"$ref": "#/$defs/metadata"
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
},
|
|
370
704
|
"metadata": {
|
|
371
705
|
"$ref": "#/$defs/metadata"
|
|
372
706
|
}
|
|
373
707
|
}
|
|
374
708
|
},
|
|
709
|
+
"sourceFallbackRef": {
|
|
710
|
+
"oneOf": [
|
|
711
|
+
{
|
|
712
|
+
"$ref": "#/$defs/sourceFallbackToolList"
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"type": "object",
|
|
716
|
+
"additionalProperties": false,
|
|
717
|
+
"properties": {
|
|
718
|
+
"acquisition": {
|
|
719
|
+
"$ref": "#/$defs/sourceFallbackToolList"
|
|
720
|
+
},
|
|
721
|
+
"observation": {
|
|
722
|
+
"$ref": "#/$defs/sourceFallbackToolList"
|
|
723
|
+
},
|
|
724
|
+
"tools": {
|
|
725
|
+
"$ref": "#/$defs/sourceFallbackToolList"
|
|
726
|
+
},
|
|
727
|
+
"metadata": {
|
|
728
|
+
"$ref": "#/$defs/metadata"
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
]
|
|
733
|
+
},
|
|
734
|
+
"sourceFallbackToolList": {
|
|
735
|
+
"type": "array",
|
|
736
|
+
"items": {
|
|
737
|
+
"$ref": "#/$defs/sourceFallbackTool"
|
|
738
|
+
},
|
|
739
|
+
"uniqueItems": true
|
|
740
|
+
},
|
|
741
|
+
"sourceFallbackTool": {
|
|
742
|
+
"type": "string",
|
|
743
|
+
"enum": ["playwright-cli", "playwright_cli", "playwright", "playwright-mcp", "playwright_mcp", "computer-use", "computer_use", "browser-use", "browser_use", "manual", "export"]
|
|
744
|
+
},
|
|
375
745
|
"sourceTree": {
|
|
376
746
|
"description": "A raw source reference or a grouping object whose keys mirror .zsk/raws/prepare responsibility lanes.",
|
|
377
747
|
"oneOf": [
|
|
@@ -409,6 +779,18 @@
|
|
|
409
779
|
"type": "string",
|
|
410
780
|
"minLength": 1
|
|
411
781
|
},
|
|
782
|
+
"adapter": {
|
|
783
|
+
"type": "string",
|
|
784
|
+
"minLength": 1
|
|
785
|
+
},
|
|
786
|
+
"mcpProvider": {
|
|
787
|
+
"type": "string",
|
|
788
|
+
"minLength": 1
|
|
789
|
+
},
|
|
790
|
+
"mcpServer": {
|
|
791
|
+
"type": "string",
|
|
792
|
+
"minLength": 1
|
|
793
|
+
},
|
|
412
794
|
"path": {
|
|
413
795
|
"$ref": "#/$defs/pathRef"
|
|
414
796
|
},
|
|
@@ -539,6 +921,10 @@
|
|
|
539
921
|
"type": "string",
|
|
540
922
|
"minLength": 1
|
|
541
923
|
},
|
|
924
|
+
"extends": {
|
|
925
|
+
"type": "string",
|
|
926
|
+
"minLength": 1
|
|
927
|
+
},
|
|
542
928
|
"stages": {
|
|
543
929
|
"type": "array",
|
|
544
930
|
"items": {
|
|
@@ -563,6 +949,12 @@
|
|
|
563
949
|
},
|
|
564
950
|
"uniqueItems": true
|
|
565
951
|
},
|
|
952
|
+
"resources": {
|
|
953
|
+
"$ref": "#/$defs/stringList"
|
|
954
|
+
},
|
|
955
|
+
"artifacts": {
|
|
956
|
+
"$ref": "#/$defs/stringList"
|
|
957
|
+
},
|
|
566
958
|
"required": {
|
|
567
959
|
"type": "boolean"
|
|
568
960
|
},
|
|
@@ -589,6 +981,19 @@
|
|
|
589
981
|
"writeScope": {
|
|
590
982
|
"$ref": "#/$defs/stringList"
|
|
591
983
|
},
|
|
984
|
+
"writeScopes": {
|
|
985
|
+
"$ref": "#/$defs/stringList"
|
|
986
|
+
},
|
|
987
|
+
"staffing": {
|
|
988
|
+
"type": "object",
|
|
989
|
+
"additionalProperties": true,
|
|
990
|
+
"properties": {
|
|
991
|
+
"maxParallel": {
|
|
992
|
+
"type": "integer",
|
|
993
|
+
"minimum": 1
|
|
994
|
+
}
|
|
995
|
+
}
|
|
996
|
+
},
|
|
592
997
|
"outputs": {
|
|
593
998
|
"$ref": "#/$defs/stringList"
|
|
594
999
|
},
|
|
@@ -615,6 +1020,17 @@
|
|
|
615
1020
|
},
|
|
616
1021
|
"uniqueItems": true
|
|
617
1022
|
},
|
|
1023
|
+
"stringOrStringList": {
|
|
1024
|
+
"oneOf": [
|
|
1025
|
+
{
|
|
1026
|
+
"type": "string",
|
|
1027
|
+
"minLength": 1
|
|
1028
|
+
},
|
|
1029
|
+
{
|
|
1030
|
+
"$ref": "#/$defs/stringList"
|
|
1031
|
+
}
|
|
1032
|
+
]
|
|
1033
|
+
},
|
|
618
1034
|
"scriptSync": {
|
|
619
1035
|
"description": "Resource produced by a deterministic script command.",
|
|
620
1036
|
"type": "object",
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# ZSK Workspace
|
|
2
|
+
|
|
3
|
+
This workspace is config-driven.
|
|
4
|
+
|
|
5
|
+
Do not create empty resource directories. `zsk init` creates the governance
|
|
6
|
+
entrypoints only. Resource snapshot directories under `.zsk/raws/**` are created
|
|
7
|
+
by `zsk prepare sync` only after `.zsk/config.yaml` declares a resource and the
|
|
8
|
+
sync run produces a snapshot.
|
|
9
|
+
|
|
10
|
+
## Working Model
|
|
11
|
+
|
|
12
|
+
| Path | Kind | Created By | Commit Policy |
|
|
13
|
+
| --- | --- | --- | --- |
|
|
14
|
+
| `.zsk/config.yaml` | config | init/user | commit |
|
|
15
|
+
| `.zsk/roles.yaml` | staffing policy | init/user | commit |
|
|
16
|
+
| `.zsk/docs/**` | governance docs | init/user | commit |
|
|
17
|
+
| `.zsk/templates/**` | reusable templates | init | commit |
|
|
18
|
+
| `.zsk/raws/README.md` | resource snapshot contract | init | commit |
|
|
19
|
+
| `.zsk/raws/**/snapshot.md` | generated summary | prepare sync | commit |
|
|
20
|
+
| `.zsk/raws/**/metadata.yaml` | generated provenance | prepare sync | commit |
|
|
21
|
+
| `.zsk/raws/**/source.json` | raw provider payload | prepare sync | ignore by default |
|
|
22
|
+
| `.zsk/raws/**/assets/**` | raw provider assets | prepare sync | ignore by default |
|
|
23
|
+
| `.zsk/modules/index.md` | module registry view | init/module add | commit |
|
|
24
|
+
| `.zsk/modules/<module>/**` | module work surface | module add/user | commit |
|
|
25
|
+
| `.zsk/modules/<module>/_issues/**` | module task cards | prepare sync/user | commit |
|
|
26
|
+
| `.zsk/issues/**` | global/cross-module issues | init/prepare/user | commit |
|
|
27
|
+
| `.zsk/evidence/prepare/sync-report.md` | prepare report | prepare sync | commit |
|
|
28
|
+
| `.zsk/runs/**` | runtime state | commands | ignore |
|
|
29
|
+
| `.zsk/state/**` | runtime state | commands | ignore |
|
|
30
|
+
| `.zsk/tmp/**` | temporary files | commands | ignore |
|
|
31
|
+
|
|
32
|
+
## Rules
|
|
33
|
+
|
|
34
|
+
- Raw snapshots live under `.zsk/raws/**`.
|
|
35
|
+
- Module work lives under `.zsk/modules/**`.
|
|
36
|
+
- Module-local issues live under `.zsk/modules/<module>/_issues/**`.
|
|
37
|
+
- Global or cross-module blockers live under `.zsk/issues/**`.
|
|
38
|
+
- Provider connections, resource intents, and routes are declared in
|
|
39
|
+
`.zsk/config.yaml`.
|
|
40
|
+
- Staffing policy lives in `.zsk/roles.yaml`; a specific run's chosen agents
|
|
41
|
+
belong in evidence, not in the template.
|
|
42
|
+
|
|
43
|
+
## Next Steps
|
|
44
|
+
|
|
45
|
+
1. Edit `.zsk/config.yaml`.
|
|
46
|
+
2. Add modules with `zsk module init -m <module-id> --name "<Module Name>"`.
|
|
47
|
+
3. Run `zsk config check`.
|
|
48
|
+
4. Run `zsk prepare sync` when resource acquisition is intentionally allowed.
|