This document defines the authoritative design entry points and the formal Question model. All implementation must comply with these definitions.
- docs/constitution/
- ADR-0000 (Human Sovereignty Principle)
A Question is not a raw string. It is a structured object governed by human sovereignty.
A Question MUST contain:
- id (UUID)
- timestamp (ISO 8601)
- origin ("human" only)
- intent (short semantic label)
- content (primary user text)
- privacy_level ("local" | "cloud" | "auto")
- constraints (optional structured hints)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "NoemaQuestion",
"type": "object",
"required": [
"id",
"timestamp",
"origin",
"intent",
"content",
"privacy_level"
],
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"timestamp": {
"type": "string",
"format": "date-time"
},
"origin": {
"type": "string",
"enum": ["human"]
},
"intent": {
"type": "string",
"minLength": 1
},
"content": {
"type": "string",
"minLength": 1
},
"privacy_level": {
"type": "string",
"enum": ["local", "cloud", "auto"]
},
"constraints": {
"type": "object",
"additionalProperties": true
}
},
"additionalProperties": false
}- Router decisions MUST operate on this structured object.
- Raw string prompts are forbidden at invocation boundary.
- origin MUST never be mutated by AI.
- privacy_level MUST be respected by routing layer.
Before implementing any feature:
- Read this file.
- Validate compliance with Question Schema.
- Do not introduce raw string prompt execution.
- Do not bypass privacy_level routing.
Violation requires ADR update.