← Files MightShapeARCHIVED FILE
skills/mightshape/schemas/project-state.schema.json
11.3 KB · Oct 3, 2026 · 06:31 UTC
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://design-council.local/schemas/project-state.schema.json",
"title": "MightShape project state",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"revision",
"project",
"challenge",
"classification",
"journey",
"stakeholders",
"evidence",
"assumptions",
"unknowns",
"observations",
"needs",
"insights",
"povs",
"hmw_questions",
"ideas",
"concept_clusters",
"outliers",
"selected_concepts",
"prototypes",
"experiments",
"inquiry_studies",
"reality_packets",
"synthetic_personas",
"participants",
"reality_checks",
"decisions",
"minority_reports",
"design_debt",
"evidence_debt",
"build_gate",
"council_memory",
"history"
],
"$defs": {
"record": {"type": "object"},
"recordArray": {"type": "array", "items": {"$ref": "#/$defs/record"}},
"stringArray": {"type": "array", "items": {"type": "string"}},
"councilMemory": {
"type": "object",
"additionalProperties": false,
"required": ["positions", "changes_of_mind", "ideas_supported", "ideas_opposed", "unresolved_questions", "surprises", "important_evidence"],
"properties": {
"positions": {"$ref": "#/$defs/recordArray"},
"changes_of_mind": {"$ref": "#/$defs/recordArray"},
"ideas_supported": {"$ref": "#/$defs/recordArray"},
"ideas_opposed": {"$ref": "#/$defs/recordArray"},
"unresolved_questions": {"$ref": "#/$defs/recordArray"},
"surprises": {"$ref": "#/$defs/recordArray"},
"important_evidence": {"$ref": "#/$defs/recordArray"}
}
},
"debt": {
"type": "object",
"additionalProperties": false,
"required": ["id", "decision", "unresolved_claim", "consequence", "mitigation", "status", "created_at"],
"properties": {
"id": {"type": "string"},
"decision": {"type": "string"},
"unresolved_claim": {"type": "string"},
"consequence": {"type": "string"},
"mitigation": {"type": "string"},
"review_trigger": {"type": ["string", "null"]},
"status": {"enum": ["open", "mitigated", "resolved", "accepted"]},
"created_at": {"type": "string", "format": "date-time"}
}
},
"visualArtifactRecord": {
"type": "object",
"additionalProperties": false,
"required": [
"artifact_id",
"artifact_type",
"input_sha256",
"record_count",
"provenance_counts",
"source_ids",
"manifest_path",
"files",
"file_sha256",
"recorded_at"
],
"properties": {
"artifact_id": {"type": "string", "pattern": "^VA-[A-Z0-9][A-Z0-9-]*$"},
"artifact_type": {"enum": ["AFFINITY_MAP", "PROCESS_MAP"]},
"input_sha256": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
"record_count": {"type": "integer", "minimum": 0},
"provenance_counts": {
"type": "object",
"additionalProperties": {"type": "integer", "minimum": 0}
},
"source_ids": {"type": "array", "items": {"type": "string", "minLength": 1}, "uniqueItems": true},
"manifest_path": {"type": "string", "pattern": "^\\.design-council/artifacts/VA-[A-Z0-9][A-Z0-9-]*/manifest\\.json$"},
"files": {
"type": "object",
"additionalProperties": false,
"required": ["source", "html", "svg", "markdown"],
"properties": {
"source": {"type": "string", "pattern": "^[^/\\\\]+$"},
"html": {"type": "string", "pattern": "^[^/\\\\]+\\.html$"},
"svg": {"type": "string", "pattern": "^[^/\\\\]+\\.svg$"},
"markdown": {"type": "string", "pattern": "^[^/\\\\]+\\.md$"}
}
},
"file_sha256": {
"type": "object",
"additionalProperties": false,
"required": ["source", "html", "svg", "markdown"],
"properties": {
"source": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
"html": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
"svg": {"type": "string", "pattern": "^[a-f0-9]{64}$"},
"markdown": {"type": "string", "pattern": "^[a-f0-9]{64}$"}
}
},
"recorded_at": {"type": "string", "format": "date-time"}
}
}
},
"properties": {
"schema_version": {"const": "1.0.0"},
"revision": {"type": "integer", "minimum": 1},
"project": {
"type": "object",
"additionalProperties": false,
"required": ["id", "name", "created", "updated"],
"properties": {
"id": {"type": "string", "pattern": "^DC-[A-Z0-9-]+$"},
"name": {"type": "string", "minLength": 1},
"created": {"type": "string", "format": "date-time"},
"updated": {"type": "string", "format": "date-time"}
}
},
"challenge": {
"type": "object",
"additionalProperties": false,
"required": ["original_prompt", "proposed_solution", "current_problem_frame", "desired_outcome"],
"properties": {
"original_prompt": {"type": "string", "minLength": 1},
"proposed_solution": {"type": ["string", "null"]},
"current_problem_frame": {"type": ["string", "null"]},
"desired_outcome": {"type": ["string", "null"]}
}
},
"classification": {
"type": "object",
"additionalProperties": false,
"required": ["archetypes", "complexity", "reversibility", "consequence_of_error", "solution_lock_in_risk", "operating_depth"],
"properties": {
"archetypes": {"type": "array", "items": {"enum": ["DIGITAL_PRODUCT", "AI_PRODUCT", "PHYSICAL_PRODUCT", "SERVICE", "EXPERIENCE", "BUSINESS_MODEL", "WORKFLOW", "ORGANIZATIONAL", "POLICY", "SOCIAL_SYSTEM", "HYBRID"]}, "uniqueItems": true},
"complexity": {"enum": ["LOW", "MEDIUM", "HIGH", "UNKNOWN"]},
"reversibility": {"enum": ["EASY", "MODERATE", "DIFFICULT", "UNKNOWN"]},
"consequence_of_error": {"enum": ["LOW", "MEDIUM", "HIGH", "UNKNOWN"]},
"solution_lock_in_risk": {"enum": ["LOW", "MEDIUM", "HIGH", "UNKNOWN"]},
"operating_depth": {"enum": ["QUICK_LOOK", "SPRINT", "STANDARD", "DEEP_DESIGN"]},
"process_view": {"enum": ["COMPACT", "VISIBLE", "WORKSHOP"]}
}
},
"journey": {
"type": "object",
"additionalProperties": false,
"required": ["current_mode", "cycle", "completed_modes", "transitions"],
"dependentRequired": {
"starting_point": ["starting_point_basis"],
"starting_point_basis": ["starting_point"]
},
"properties": {
"starting_point": {"enum": ["EARLY_HUNCH", "GROUNDED_EXPLORATION", "FRAMED_CHALLENGE", "CONCEPT", "PROTOTYPE", "LIVE", "UNSURE"]},
"starting_point_basis": {"enum": ["USER_DECLARED", "INFERRED"]},
"current_decision": {"type": ["string", "null"], "minLength": 1, "maxLength": 1000},
"current_mode": {"enum": ["INTAKE", "EMPATHIZE", "DEFINE", "IDEATE", "PROTOTYPE", "TEST", "BUILD"]},
"cycle": {"type": "integer", "minimum": 1},
"completed_modes": {"type": "array", "items": {"enum": ["INTAKE", "EMPATHIZE", "DEFINE", "IDEATE", "PROTOTYPE", "TEST", "BUILD"]}},
"transitions": {"$ref": "#/$defs/recordArray"}
}
},
"stakeholders": {"$ref": "#/$defs/recordArray"},
"evidence": {"type": "array", "items": {"$ref": "evidence.schema.json"}},
"assumptions": {"type": "array", "items": {"$ref": "assumption.schema.json"}},
"unknowns": {"$ref": "#/$defs/recordArray"},
"observations": {"$ref": "#/$defs/recordArray"},
"needs": {"$ref": "#/$defs/recordArray"},
"insights": {"type": "array", "items": {"$ref": "insight.schema.json"}},
"povs": {"type": "array", "items": {"$ref": "pov.schema.json"}},
"hmw_questions": {"$ref": "#/$defs/recordArray"},
"ideas": {"type": "array", "items": {"$ref": "idea.schema.json"}},
"concept_clusters": {"$ref": "#/$defs/recordArray"},
"outliers": {"$ref": "#/$defs/stringArray"},
"selected_concepts": {"$ref": "#/$defs/recordArray"},
"prototypes": {"type": "array", "items": {"$ref": "prototype.schema.json"}},
"experiments": {"type": "array", "items": {"$ref": "experiment.schema.json"}},
"inquiry_studies": {"type": "array", "items": {"$ref": "inquiry-study.schema.json"}},
"reality_packets": {"type": "array", "items": {"$ref": "reality-packet.schema.json"}},
"synthetic_personas": {"type": "array", "items": {"$ref": "synthetic-persona.schema.json"}},
"participants": {"type": "array", "items": {"$ref": "participant.schema.json"}},
"reality_checks": {"type": "array", "items": {"$ref": "reality-check.schema.json"}},
"decisions": {"$ref": "#/$defs/recordArray"},
"minority_reports": {"$ref": "#/$defs/recordArray"},
"visual_artifacts": {"type": "array", "items": {"$ref": "#/$defs/visualArtifactRecord"}},
"participation_sessions": {"type": "array", "items": {"$ref": "participation-session.schema.json"}},
"design_debt": {"type": "array", "items": {"$ref": "#/$defs/debt"}},
"evidence_debt": {"type": "array", "items": {"$ref": "#/$defs/debt"}},
"build_gate": {
"type": "object",
"additionalProperties": false,
"required": ["status", "assessed_at", "heuristics", "reasons", "unresolved_assumptions", "override"],
"properties": {
"status": {"enum": ["NOT_ASSESSED", "READY", "READY_WITH_KNOWN_RISK", "TEST_FIRST", "REFRAME_FIRST"]},
"assessed_at": {"type": ["string", "null"], "format": "date-time"},
"heuristics": {"type": "object"},
"reasons": {"type": "array", "items": {"type": "string"}},
"unresolved_assumptions": {"type": "array", "items": {"type": "string"}},
"override": {
"type": "object",
"additionalProperties": false,
"required": ["active", "recorded_at", "note"],
"properties": {
"active": {"type": "boolean"},
"recorded_at": {"type": ["string", "null"], "format": "date-time"},
"note": {"type": ["string", "null"]}
}
}
}
},
"council_memory": {
"type": "object",
"additionalProperties": false,
"required": ["maya-chen", "leo-martinez", "priya-rao", "marcus-brooks", "elena-rossi", "theo-bennett", "samira-okafor", "jack-sullivan", "mei-tanaka", "rafael-alvarez"],
"properties": {
"maya-chen": {"$ref": "#/$defs/councilMemory"},
"leo-martinez": {"$ref": "#/$defs/councilMemory"},
"priya-rao": {"$ref": "#/$defs/councilMemory"},
"marcus-brooks": {"$ref": "#/$defs/councilMemory"},
"elena-rossi": {"$ref": "#/$defs/councilMemory"},
"theo-bennett": {"$ref": "#/$defs/councilMemory"},
"samira-okafor": {"$ref": "#/$defs/councilMemory"},
"jack-sullivan": {"$ref": "#/$defs/councilMemory"},
"mei-tanaka": {"$ref": "#/$defs/councilMemory"},
"rafael-alvarez": {"$ref": "#/$defs/councilMemory"}
}
},
"history": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": ["revision", "at", "action", "details"],
"properties": {
"revision": {"type": "integer", "minimum": 1},
"at": {"type": "string", "format": "date-time"},
"action": {"type": "string"},
"details": {"type": "object"}
}
}
}
}
}
SHA-256: 73f1a640bdabe58d1d6699c1e3eca3fea19767355d234426434d2268c182a5c9