Files
govoplan/tools/devkit/project.schema.json
zemion 2ffdb23f69
Dependency Audit / dependency-audit (push) Successful in 1m45s
Deployment Installer / deployment-installer (push) Successful in 6s
Security Audit / security-audit (push) Successful in 11m30s
feat(devkit): add resumable workspace automation and UI review tooling
Verified with the coordinated workspace changes by devkit full run
2026-09-08T225814-186389-0000-3e3ed7cd (all seven phases passed).
This shared UI pass does not mark the individual module reviews complete.
2026-09-09 02:03:17 +02:00

68 lines
3.6 KiB
JSON
Executable File

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Devkit portable project configuration",
"description": "The runtime additionally checks reference existence, cycles, resolved path confinement and cross-repository alias/path uniqueness. cwd defaults to the workspace when omitted.",
"type": "object",
"additionalProperties": false,
"required": ["schema_version", "repositories"],
"properties": {
"schema_version": {"type": "integer", "const": 1},
"name": {"type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[^\\u0000\\r\\n]+$"},
"repositories": {
"type": "array", "minItems": 1, "maxItems": 256,
"items": {
"type": "object", "additionalProperties": false, "required": ["name", "path"],
"properties": {
"name": {"$ref": "#/$defs/identifier"},
"path": {"$ref": "#/$defs/relativePath"},
"aliases": {"type": "array", "maxItems": 128, "uniqueItems": true, "items": {"$ref": "#/$defs/identifier"}}
}
}
},
"tools": {
"type": "object", "additionalProperties": false,
"properties": {"python": {"$ref": "#/$defs/executable"}, "node": {"$ref": "#/$defs/executable"}, "npm": {"$ref": "#/$defs/executable"}}
},
"review": {
"type": "object", "additionalProperties": false,
"properties": {
"issue_inventory": {"$ref": "#/$defs/relativePath"},
"principles": {"$ref": "#/$defs/relativePath"}
}
},
"checks": {
"type": "array", "maxItems": 512,
"items": {
"type": "object", "additionalProperties": false, "required": ["id", "argv"],
"properties": {
"id": {"$ref": "#/$defs/identifier"},
"title": {"type": "string", "maxLength": 1024, "pattern": "^[^\\u0000]*$"},
"argv": {"type": "array", "minItems": 1, "maxItems": 256, "prefixItems": [{"type": "string", "minLength": 1, "maxLength": 8192, "pattern": "^[^\\u0000]+$"}], "items": {"type": "string", "maxLength": 8192, "pattern": "^[^\\u0000]*$"}},
"cwd": {"$ref": "#/$defs/relativePath"},
"deps": {"$ref": "#/$defs/profile"},
"after": {"$ref": "#/$defs/profile"},
"reuse": {"type": "string", "enum": ["verified", "never"]},
"inputs": {"$ref": "#/$defs/inputs"},
"resources": {"type": "array", "maxItems": 256, "uniqueItems": true, "items": {"type": "string", "minLength": 1, "maxLength": 256, "pattern": "^[^\\u0000\\r\\n]+$"}},
"repos": {"type": "array", "maxItems": 256, "uniqueItems": true, "items": {"$ref": "#/$defs/identifier"}},
"timeout_seconds": {"type": "number", "exclusiveMinimum": 0, "maximum": 43200}
}
}
},
"profiles": {
"type": "object", "additionalProperties": false,
"properties": {
"quick": {"$ref": "#/$defs/profile"}, "ui": {"$ref": "#/$defs/profile"},
"backend": {"$ref": "#/$defs/profile"}, "full": {"$ref": "#/$defs/profile"}
}
}
},
"$defs": {
"inputs": {"type": "object", "additionalProperties": false, "required": ["repos"], "properties": {"repos": {"type": "array", "minItems": 1, "maxItems": 256, "uniqueItems": true, "items": {"$ref": "#/$defs/identifier"}}}},
"identifier": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$(?![\\s\\S])"},
"executable": {"type": "string", "minLength": 1, "maxLength": 4096, "pattern": "^[^\\u0000\\r\\n]+$"},
"relativePath": {"type": "string", "minLength": 1, "maxLength": 4096, "pattern": "^(?!/)(?!\\.\\.(?:/|$))(?!.*?/\\.\\.(?:/|$))[^\\u0000\\r\\n]+$"},
"profile": {"type": "array", "maxItems": 512, "uniqueItems": true, "items": {"$ref": "#/$defs/identifier"}}
}
}