File size: 6,262 Bytes
8abad49
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "planId": {
      "description": "Opaque plan id. In this example it is obviously synthetic.",
      "type": "string"
    },
    "capabilityProfile": {
      "description": "The governed capability profile contracted to emit this plan.",
      "type": "string",
      "const": "SZL-Khipu-1.5B-BrainNavigator"
    },
    "provenance": {
      "description": "Honest origin: SYNTHETIC = an illustrative example not produced by any model; MODEL_PROPOSED = a real plan proposed by the Khipu model. A plan can never claim any other origin.",
      "type": "string",
      "enum": [
        "SYNTHETIC",
        "MODEL_PROPOSED"
      ]
    },
    "query": {
      "description": "The retrieval question the plan routes for.",
      "type": "string"
    },
    "contentAccess": {
      "description": "The model sees ONLY node handles + synthetic metadata, never node text β€” so it cannot answer from baked-in content.",
      "type": "string",
      "const": "HANDLES_ONLY"
    },
    "candidates": {
      "description": "The handle set offered to the model to route over.",
      "minItems": 1,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "nodeId": {
            "description": "Opaque Brain node HANDLE (a pointer, not content). In curriculum + this example it is a self-evidently synthetic node://khipu-synthetic/<hash>.",
            "type": "string",
            "minLength": 1
          },
          "nodeKind": {
            "description": "Metadata shape of the referenced node β€” never its contents.",
            "type": "string",
            "enum": [
              "ARTIFACT",
              "CLAIM",
              "EDGE",
              "INDEX",
              "SUMMARY"
            ]
          },
          "label": {
            "description": "The handle's OWN honesty tier β€” what kind of reference it is, not a measurement captured in this synthetic example.",
            "type": "string",
            "enum": [
              "MEASURED",
              "REPORTED",
              "DECLARED",
              "SIMULATED",
              "UNKNOWN",
              "UNAVAILABLE"
            ]
          },
          "note": {
            "description": "Synthetic metadata (e.g. a topic tag) the model routes on β€” deliberately NOT node content; real content is resolved by the controller.",
            "type": "string"
          }
        },
        "required": [
          "nodeId",
          "nodeKind",
          "label",
          "note"
        ],
        "additionalProperties": false
      }
    },
    "decision": {
      "description": "NAVIGATE = at least one offered handle supports the query, so the plan routes + cites it; ABSTAIN = no offered handle supports it, so the plan refuses rather than fabricate grounding.",
      "type": "string",
      "enum": [
        "NAVIGATE",
        "ABSTAIN"
      ]
    },
    "steps": {
      "description": "Ordered traversal plan over the candidates. Empty when abstaining.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "action": {
            "description": "The proposed traversal action over a candidate handle β€” the controller actually executes it OUTSIDE the weights.",
            "type": "string",
            "enum": [
              "RETRIEVE",
              "EXPAND",
              "CITE"
            ]
          },
          "nodeId": {
            "description": "The candidate handle this step acts on β€” must be one offered above.",
            "type": "string",
            "minLength": 1
          },
          "rationale": {
            "description": "Why this handle is on the retrieval path β€” routing rationale, not content.",
            "type": "string"
          }
        },
        "required": [
          "action",
          "nodeId",
          "rationale"
        ],
        "additionalProperties": false
      }
    },
    "citedNodeIds": {
      "description": "The handles the plan grounds its routing on β€” always a subset of the offered candidates (a cited-but-not-offered handle is a hallucinated citation and is unrepresentable).",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "groundedOnly": {
      "description": "The plan cites ONLY offered handles; it never invents a node id.",
      "type": "boolean",
      "const": true
    },
    "brainBinding": {
      "description": "How the plan relates to real Brain content β€” NOT_RESOLVED until the controller resolves handles outside the weights.",
      "type": "object",
      "properties": {
        "protocol": {
          "description": "The retrieval protocol the controller would run this plan through.",
          "type": "string",
          "const": "khipu-retrieval"
        },
        "status": {
          "description": "A proposed plan has NOT resolved any node content; the controller resolves handles OUTSIDE the weights. The plan never claims to hold node text.",
          "type": "string",
          "const": "NOT_RESOLVED"
        },
        "note": {
          "description": "Why the plan holds no resolved content.",
          "type": "string"
        }
      },
      "required": [
        "protocol",
        "status",
        "note"
      ],
      "additionalProperties": false
    },
    "controllerBoundary": {
      "description": "States the A11oy runtime boundary β€” the controller validates the plan, resolves handles, and returns content OUTSIDE the weights; the model only proposes the route.",
      "type": "string"
    },
    "abstainReason": {
      "description": "Non-null iff decision=ABSTAIN β€” the honest reason no offered handle supports the query. Null for a NAVIGATE plan.",
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "planId",
    "capabilityProfile",
    "provenance",
    "query",
    "contentAccess",
    "candidates",
    "decision",
    "steps",
    "citedNodeIds",
    "groundedOnly",
    "brainBinding",
    "controllerBoundary",
    "abstainReason"
  ],
  "additionalProperties": false
}