58 lines
2.3 KiB
JSON
58 lines
2.3 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#", "type": "object",
|
|
"required": ["source-artifact-refs", "hypotheses", "experiments", "evidence", "option-evaluations", "kill-criteria", "recommendation"],
|
|
"properties": {
|
|
"source-artifact-refs": {
|
|
"type": "array", "minItems": 2,
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["artifact-id", "artifact-sha256"],
|
|
"properties": {
|
|
"artifact-id": {"type": "string", "minLength": 1},
|
|
"artifact-sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
|
|
}
|
|
}
|
|
},
|
|
"hypotheses": {"type": "array", "minItems": 1}, "experiments": {"type": "array", "minItems": 1},
|
|
"evidence": {"type": "array", "minItems": 1},
|
|
"option-evaluations": {
|
|
"type": "array", "minItems": 2,
|
|
"items": {
|
|
"type": "object",
|
|
"required": [
|
|
"id", "customer", "painful-job", "current-alternative", "wedge",
|
|
"monetization", "expected-price", "reachable-customers", "rough-revenue-ceiling",
|
|
"acquisition-channel", "build-cost", "operation-cost", "founder-fit", "defensibility",
|
|
"kill-criteria", "unresolved-assumptions", "validation-results"
|
|
],
|
|
"properties": {
|
|
"id": {"type": "string", "minLength": 1},
|
|
"kill-criteria": {"type": "array", "minItems": 1},
|
|
"unresolved-assumptions": {"type": "array"},
|
|
"validation-results": {
|
|
"type": "array", "minItems": 9,
|
|
"items": {
|
|
"type": "object",
|
|
"required": ["option-id", "gate", "verdict", "evidence", "dissent"],
|
|
"properties": {
|
|
"option-id": {"type": "string", "minLength": 1},
|
|
"gate": {
|
|
"enum": [
|
|
"problem-intensity", "competition-alternatives", "willingness-to-pay",
|
|
"revenue-unit-economics", "tech-feasibility-moat", "operability",
|
|
"distribution", "founder-fit", "kill-criteria"
|
|
]
|
|
},
|
|
"verdict": {"enum": ["pass", "fail", "unknown"]},
|
|
"evidence": {"type": "array"},
|
|
"dissent": {"type": "array"}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"kill-criteria": {"type": "array", "minItems": 1}, "recommendation": {"type": "string", "minLength": 1}
|
|
}
|
|
}
|