Learning Outcome v1¶
Source schema: doc/schemas/learning-outcome.v1.schema.json
Machine-readable schema for durable correction outcomes produced inside a question-bound answer-room flow.
Governing Basis¶
doc/project/30-stories/story-002.mddoc/project/50-requirements/requirements-002.mddoc/project/40-proposals/012-learning-outcomes-and-archival-contracts.md
Project Lineage¶
Requirements¶
doc/project/50-requirements/requirements-002.mddoc/project/50-requirements/requirements-003.mddoc/project/50-requirements/requirements-004.mddoc/project/50-requirements/requirements-005.md
Stories¶
doc/project/30-stories/story-001.mddoc/project/30-stories/story-002.mddoc/project/30-stories/story-003.mddoc/project/30-stories/story-004.md
Fields¶
| Field | Required | Shape | Description |
|---|---|---|---|
schema/v |
yes |
const: 1 |
Schema version. |
learning-outcome/id |
yes |
string | Stable identifier of the correction or confirmation outcome. |
question/id |
yes |
string | Question lifecycle identifier that roots the learning event. |
room/id |
yes |
string | Answer-room or tightly linked review path where the outcome emerged. |
subject/ref |
yes |
string | Reference to the disputed or reviewed answer artifact. |
outcome/status |
yes |
enum: confirmed, corrected, unresolved |
Epistemic result of the correction path. |
decided-at |
yes |
string | Timestamp at which the outcome was frozen. |
decider/ref |
yes |
string | Node, secretary, or policy actor that froze the outcome. |
supporting/refs |
yes |
array | Evidence, summary, transcript, or response references that support the outcome. |
provenance/refs |
yes |
array | Trace references sufficient to rebuild the causal chain of the outcome. |
summary/ref |
no |
string | Accepted room summary reference when the outcome is expressed through a summary artifact. |
response-envelope/ref |
no |
string | Corrected or accepted response-envelope reference when a final answer artifact exists. |
reason/codes |
no |
array | Short machine-readable reason tags used by local policy and later audit. |
human-linked/input |
yes |
boolean | Whether the accepted or unresolved outcome depended on human-originated input. |
policy/profile |
no |
string | Optional local or federation policy profile that governed the correction path. |
policy_annotations |
no |
object | Optional implementation-local annotations that do not change the core outcome semantics. |
Conditional Rules¶
Rule 1¶
When:
{
"properties": {
"outcome/status": {
"const": "corrected"
}
},
"required": [
"outcome/status"
]
}
Then:
{
"anyOf": [
{
"required": [
"summary/ref"
]
},
{
"required": [
"response-envelope/ref"
]
}
]
}
Field Semantics¶
schema/v¶
- Required:
yes - Shape: const:
1
Schema version.
learning-outcome/id¶
- Required:
yes - Shape: string
Stable identifier of the correction or confirmation outcome.
question/id¶
- Required:
yes - Shape: string
Question lifecycle identifier that roots the learning event.
room/id¶
- Required:
yes - Shape: string
Answer-room or tightly linked review path where the outcome emerged.
subject/ref¶
- Required:
yes - Shape: string
Reference to the disputed or reviewed answer artifact.
outcome/status¶
- Required:
yes - Shape: enum:
confirmed,corrected,unresolved
Epistemic result of the correction path.
decided-at¶
- Required:
yes - Shape: string
Timestamp at which the outcome was frozen.
decider/ref¶
- Required:
yes - Shape: string
Node, secretary, or policy actor that froze the outcome.
supporting/refs¶
- Required:
yes - Shape: array
Evidence, summary, transcript, or response references that support the outcome.
provenance/refs¶
- Required:
yes - Shape: array
Trace references sufficient to rebuild the causal chain of the outcome.
summary/ref¶
- Required:
no - Shape: string
Accepted room summary reference when the outcome is expressed through a summary artifact.
response-envelope/ref¶
- Required:
no - Shape: string
Corrected or accepted response-envelope reference when a final answer artifact exists.
reason/codes¶
- Required:
no - Shape: array
Short machine-readable reason tags used by local policy and later audit.
human-linked/input¶
- Required:
yes - Shape: boolean
Whether the accepted or unresolved outcome depended on human-originated input.
policy/profile¶
- Required:
no - Shape: string
Optional local or federation policy profile that governed the correction path.
policy_annotations¶
- Required:
no - Shape: object
Optional implementation-local annotations that do not change the core outcome semantics.