@getbourdon/conformance 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fixtures/hydration_vectors.json +314 -0
- package/fixtures/l1_seed/.bourdon-l1-index.json +17 -0
- package/fixtures/l1_seed/Bourdon.md +6 -0
- package/fixtures/l1_seed/Roadmap.md +4 -0
- package/fixtures/manifest.json +31 -6
- package/fixtures/mcp_snapshots/get_deeper_context.res.json +14 -3
- package/fixtures/mcp_snapshots/prepare_recognition_context.res.json +2 -0
- package/fixtures/mcp_snapshots/prepare_recognition_context_drifting.res.json +2 -0
- package/fixtures/merge_vectors.json +325 -0
- package/fixtures/native_stores/claude_code/expected_l5.json +2 -1
- package/fixtures.pin.json +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_doc": "Local-hydration parity vectors over _SEED_MANIFESTS + the l1_seed fixture dir: entity_index.search rankings (names only, best first), hydration_local.assemble/build_payload outputs (team access), and load_l1_synopsis reads incl. the visibility-denial null cases, plus filename_cases: the direct-filename validator's human-decided security verdicts (reserved device stems, 8.3 tildes, control chars). The mirror must reproduce all of it from the same bytes.",
|
|
3
|
+
"search_cases": [
|
|
4
|
+
{
|
|
5
|
+
"query": "bourdon",
|
|
6
|
+
"expected": [
|
|
7
|
+
"Bourdon"
|
|
8
|
+
]
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "cross-agent memory federation",
|
|
12
|
+
"expected": [
|
|
13
|
+
"Bourdon",
|
|
14
|
+
"Roadmap"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"query": "federation roadmap",
|
|
19
|
+
"expected": [
|
|
20
|
+
"Roadmap",
|
|
21
|
+
"Bourdon"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"query": "quarterly numbers",
|
|
26
|
+
"expected": []
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"query": "what box holds the release plans",
|
|
30
|
+
"expected": []
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"assemble_cases": [
|
|
34
|
+
{
|
|
35
|
+
"prompt": "what about Bourdon",
|
|
36
|
+
"expected": {
|
|
37
|
+
"text": "## Bourdon (project)\nknown by: claude-code, codex\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.",
|
|
38
|
+
"entities": [
|
|
39
|
+
"Bourdon"
|
|
40
|
+
],
|
|
41
|
+
"doors": [
|
|
42
|
+
"recognition"
|
|
43
|
+
],
|
|
44
|
+
"l1_documents": 1,
|
|
45
|
+
"truncated": false,
|
|
46
|
+
"reason": ""
|
|
47
|
+
},
|
|
48
|
+
"payload": {
|
|
49
|
+
"prompt": "what about Bourdon",
|
|
50
|
+
"access_level": "team",
|
|
51
|
+
"include_private": false,
|
|
52
|
+
"context": "## Bourdon (project)\nknown by: claude-code, codex\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.",
|
|
53
|
+
"context_chars": 349,
|
|
54
|
+
"source": "local-store",
|
|
55
|
+
"entities": [
|
|
56
|
+
"Bourdon"
|
|
57
|
+
],
|
|
58
|
+
"doors": [
|
|
59
|
+
"recognition"
|
|
60
|
+
],
|
|
61
|
+
"l1_documents": 1,
|
|
62
|
+
"truncated": false,
|
|
63
|
+
"reason": "",
|
|
64
|
+
"hydration_hint": "Local retrieval only -- these are stored bytes, not generated prose. Synthesize with your own model if you want a narrative answer; Bourdon does not call one."
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"prompt": "cross-agent memory federation",
|
|
69
|
+
"expected": {
|
|
70
|
+
"text": "## Bourdon (project)\nknown by: claude-code, codex\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.\n\n## Roadmap (concept)\nknown by: claude-code\nTeam-only fixture synopsis. Exists so the L1 visibility gate has a pinned\ndeny case: public access must not read this document.",
|
|
71
|
+
"entities": [
|
|
72
|
+
"Bourdon",
|
|
73
|
+
"Roadmap"
|
|
74
|
+
],
|
|
75
|
+
"doors": [
|
|
76
|
+
"lexical"
|
|
77
|
+
],
|
|
78
|
+
"l1_documents": 2,
|
|
79
|
+
"truncated": false,
|
|
80
|
+
"reason": ""
|
|
81
|
+
},
|
|
82
|
+
"payload": {
|
|
83
|
+
"prompt": "cross-agent memory federation",
|
|
84
|
+
"access_level": "team",
|
|
85
|
+
"include_private": false,
|
|
86
|
+
"context": "## Bourdon (project)\nknown by: claude-code, codex\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.\n\n## Roadmap (concept)\nknown by: claude-code\nTeam-only fixture synopsis. Exists so the L1 visibility gate has a pinned\ndeny case: public access must not read this document.",
|
|
87
|
+
"context_chars": 521,
|
|
88
|
+
"source": "local-store",
|
|
89
|
+
"entities": [
|
|
90
|
+
"Bourdon",
|
|
91
|
+
"Roadmap"
|
|
92
|
+
],
|
|
93
|
+
"doors": [
|
|
94
|
+
"lexical"
|
|
95
|
+
],
|
|
96
|
+
"l1_documents": 2,
|
|
97
|
+
"truncated": false,
|
|
98
|
+
"reason": "",
|
|
99
|
+
"hydration_hint": "Local retrieval only -- these are stored bytes, not generated prose. Synthesize with your own model if you want a narrative answer; Bourdon does not call one."
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"prompt": "phase federation roadmap planning",
|
|
104
|
+
"expected": {
|
|
105
|
+
"text": "## Roadmap (concept)\nknown by: claude-code\nTeam-only fixture synopsis. Exists so the L1 visibility gate has a pinned\ndeny case: public access must not read this document.\n\n## Bourdon (project)\nknown by: claude-code, codex\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.",
|
|
106
|
+
"entities": [
|
|
107
|
+
"Roadmap",
|
|
108
|
+
"Bourdon"
|
|
109
|
+
],
|
|
110
|
+
"doors": [
|
|
111
|
+
"recognition",
|
|
112
|
+
"lexical"
|
|
113
|
+
],
|
|
114
|
+
"l1_documents": 2,
|
|
115
|
+
"truncated": false,
|
|
116
|
+
"reason": ""
|
|
117
|
+
},
|
|
118
|
+
"payload": {
|
|
119
|
+
"prompt": "phase federation roadmap planning",
|
|
120
|
+
"access_level": "team",
|
|
121
|
+
"include_private": false,
|
|
122
|
+
"context": "## Roadmap (concept)\nknown by: claude-code\nTeam-only fixture synopsis. Exists so the L1 visibility gate has a pinned\ndeny case: public access must not read this document.\n\n## Bourdon (project)\nknown by: claude-code, codex\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.",
|
|
123
|
+
"context_chars": 521,
|
|
124
|
+
"source": "local-store",
|
|
125
|
+
"entities": [
|
|
126
|
+
"Roadmap",
|
|
127
|
+
"Bourdon"
|
|
128
|
+
],
|
|
129
|
+
"doors": [
|
|
130
|
+
"recognition",
|
|
131
|
+
"lexical"
|
|
132
|
+
],
|
|
133
|
+
"l1_documents": 2,
|
|
134
|
+
"truncated": false,
|
|
135
|
+
"reason": "",
|
|
136
|
+
"hydration_hint": "Local retrieval only -- these are stored bytes, not generated prose. Synthesize with your own model if you want a narrative answer; Bourdon does not call one."
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"prompt": "zzz nothing matches this",
|
|
141
|
+
"expected": {
|
|
142
|
+
"text": "",
|
|
143
|
+
"entities": [],
|
|
144
|
+
"doors": [],
|
|
145
|
+
"l1_documents": 0,
|
|
146
|
+
"truncated": false,
|
|
147
|
+
"reason": "no entity in the local store matched this prompt"
|
|
148
|
+
},
|
|
149
|
+
"payload": {
|
|
150
|
+
"prompt": "zzz nothing matches this",
|
|
151
|
+
"access_level": "team",
|
|
152
|
+
"include_private": false,
|
|
153
|
+
"context": "",
|
|
154
|
+
"context_chars": 0,
|
|
155
|
+
"source": "local-store",
|
|
156
|
+
"entities": [],
|
|
157
|
+
"doors": [],
|
|
158
|
+
"l1_documents": 0,
|
|
159
|
+
"truncated": false,
|
|
160
|
+
"reason": "no entity in the local store matched this prompt",
|
|
161
|
+
"hydration_hint": "Local retrieval only -- these are stored bytes, not generated prose. Synthesize with your own model if you want a narrative answer; Bourdon does not call one."
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"synopsis_cases": [
|
|
166
|
+
{
|
|
167
|
+
"entity": "Bourdon",
|
|
168
|
+
"access_level": "team",
|
|
169
|
+
"expected": "# Bourdon\n\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.\n"
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"entity": "Bourdon",
|
|
173
|
+
"access_level": "public",
|
|
174
|
+
"expected": "# Bourdon\n\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.\n"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"entity": "Roadmap",
|
|
178
|
+
"access_level": "team",
|
|
179
|
+
"expected": "# Roadmap\n\nTeam-only fixture synopsis. Exists so the L1 visibility gate has a pinned\ndeny case: public access must not read this document.\n"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"entity": "Roadmap",
|
|
183
|
+
"access_level": "public",
|
|
184
|
+
"expected": null
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"entity": "Missing Entity",
|
|
188
|
+
"access_level": "team",
|
|
189
|
+
"expected": null
|
|
190
|
+
}
|
|
191
|
+
],
|
|
192
|
+
"filename_cases": [
|
|
193
|
+
{
|
|
194
|
+
"filename": "good.md",
|
|
195
|
+
"expected": "good.md"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"filename": "Bourdon.md",
|
|
199
|
+
"expected": "Bourdon.md"
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
"filename": "CON.md",
|
|
203
|
+
"expected": null
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
"filename": "con.md",
|
|
207
|
+
"expected": null
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"filename": "CON.notes.md",
|
|
211
|
+
"expected": null
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
"filename": "CONX.md",
|
|
215
|
+
"expected": "CONX.md"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"filename": "NUL.md",
|
|
219
|
+
"expected": null
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"filename": "PRN.md",
|
|
223
|
+
"expected": null
|
|
224
|
+
},
|
|
225
|
+
{
|
|
226
|
+
"filename": "AUX.md",
|
|
227
|
+
"expected": null
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"filename": "COM1.md",
|
|
231
|
+
"expected": null
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"filename": "com9.md",
|
|
235
|
+
"expected": null
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"filename": "COM0.md",
|
|
239
|
+
"expected": "COM0.md"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"filename": "LPT1.md",
|
|
243
|
+
"expected": null
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"filename": "lpt9.md",
|
|
247
|
+
"expected": null
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"filename": "CON .md",
|
|
251
|
+
"expected": null
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"filename": "CON..md",
|
|
255
|
+
"expected": null
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"filename": "COM¹.md",
|
|
259
|
+
"expected": null
|
|
260
|
+
},
|
|
261
|
+
{
|
|
262
|
+
"filename": "LPT³.md",
|
|
263
|
+
"expected": null
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"filename": "DOCUME~1.MD",
|
|
267
|
+
"expected": null
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
"filename": "doc~1.md",
|
|
271
|
+
"expected": null
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
"filename": "doc.md.",
|
|
275
|
+
"expected": null
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"filename": "doc.md ",
|
|
279
|
+
"expected": null
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"filename": "doc.txt",
|
|
283
|
+
"expected": null
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
"filename": "a/b.md",
|
|
287
|
+
"expected": null
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"filename": "a\b.md",
|
|
291
|
+
"expected": null
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"filename": "a\bb.md",
|
|
295
|
+
"expected": null
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
"filename": "a:b.md",
|
|
299
|
+
"expected": null
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"filename": "doc.md::$DATA",
|
|
303
|
+
"expected": null
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"filename": ".md",
|
|
307
|
+
"expected": null
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"filename": "",
|
|
311
|
+
"expected": null
|
|
312
|
+
}
|
|
313
|
+
]
|
|
314
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 1,
|
|
3
|
+
"documents": [
|
|
4
|
+
{
|
|
5
|
+
"entity": "Bourdon",
|
|
6
|
+
"filename": "Bourdon.md",
|
|
7
|
+
"visibility": "public",
|
|
8
|
+
"sha256": "ad24bb442ba01dc579a3c66aa8f8d8659e46242620e1f02afd683b1b723a348b"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"entity": "Roadmap",
|
|
12
|
+
"filename": "Roadmap.md",
|
|
13
|
+
"visibility": "team",
|
|
14
|
+
"sha256": "717d0ea3cf6c768fc51a02856214352b3c74720af1beaab9ea5950ce957ef780"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Bourdon
|
|
2
|
+
|
|
3
|
+
Conformance fixture synopsis. L1 hydration is byte-checkable, so this text is
|
|
4
|
+
pinned verbatim into the interop vectors -- which is exactly why it must be
|
|
5
|
+
fixture-owned rather than real documentation. A second implementation has to
|
|
6
|
+
reproduce THIS, not whatever the project's docs happen to say today.
|
package/fixtures/manifest.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_doc": "Index of cross-impl parity fixtures. conformance_version bumps on any fixture change (patch=added cases, minor=new family, major=changed expected-output = a reviewed behavior change). Python is the oracle; this file is generated by tools/gen_conformance.py.",
|
|
3
|
-
"conformance_version": "2.
|
|
3
|
+
"conformance_version": "2.5.0",
|
|
4
4
|
"produced_against": {
|
|
5
|
-
"bourdon_version": "0.
|
|
5
|
+
"bourdon_version": "0.17.0"
|
|
6
6
|
},
|
|
7
7
|
"fixtures": [
|
|
8
8
|
{
|
|
@@ -100,6 +100,11 @@
|
|
|
100
100
|
"sha256": "963f9eb6c68cd8897650f098c241ebbff34ab23603bf9fee92e5431ae2db78af",
|
|
101
101
|
"producer": "tools/gen_conformance.py::l5_schema_and_manifests"
|
|
102
102
|
},
|
|
103
|
+
{
|
|
104
|
+
"path": "merge_vectors.json",
|
|
105
|
+
"sha256": "9a1d105d6c2b0bc00e419b318ae4d802457241cca0cbbe87f1a87c529a11e923",
|
|
106
|
+
"producer": "tools/gen_conformance.py::merge_vectors"
|
|
107
|
+
},
|
|
103
108
|
{
|
|
104
109
|
"path": "fed_seed_library/agents/claude-code.l5.yaml",
|
|
105
110
|
"sha256": "efe5467ee41bfe807098f2339dda7295f236c1ae7f575016b2402f9ba1988f7c",
|
|
@@ -110,6 +115,26 @@
|
|
|
110
115
|
"sha256": "9190f55662b66941cac8a3d869579024ef2a83de1912bda8c60c3c75c4b585d0",
|
|
111
116
|
"producer": "tools/gen_conformance.py::fed_seed_library"
|
|
112
117
|
},
|
|
118
|
+
{
|
|
119
|
+
"path": "l1_seed/Bourdon.md",
|
|
120
|
+
"sha256": "ad24bb442ba01dc579a3c66aa8f8d8659e46242620e1f02afd683b1b723a348b",
|
|
121
|
+
"producer": "tools/gen_conformance.py::l1_seed"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"path": "l1_seed/Roadmap.md",
|
|
125
|
+
"sha256": "717d0ea3cf6c768fc51a02856214352b3c74720af1beaab9ea5950ce957ef780",
|
|
126
|
+
"producer": "tools/gen_conformance.py::l1_seed"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"path": "l1_seed/.bourdon-l1-index.json",
|
|
130
|
+
"sha256": "8045f999517ca175d6a1dca10637740b11a9d2eb5e1a6fe7e9f43b3182aceb94",
|
|
131
|
+
"producer": "tools/gen_conformance.py::l1_seed"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"path": "hydration_vectors.json",
|
|
135
|
+
"sha256": "0016cdedfa3665ade7d08fde21e51ad31024ad37ab93c1886b44e746de267a3d",
|
|
136
|
+
"producer": "tools/gen_conformance.py::hydration_vectors"
|
|
137
|
+
},
|
|
113
138
|
{
|
|
114
139
|
"path": "tier_matrix.json",
|
|
115
140
|
"sha256": "9753ad1fd4a092bdf4110b3b24576f2bfe7001d6d6758ef55047ee5da851e25c",
|
|
@@ -172,7 +197,7 @@
|
|
|
172
197
|
},
|
|
173
198
|
{
|
|
174
199
|
"path": "mcp_snapshots/prepare_recognition_context_drifting.res.json",
|
|
175
|
-
"sha256": "
|
|
200
|
+
"sha256": "2d217ba56593bf6593216546c223adf0b972470632adb326bb82eb5d5996acc8",
|
|
176
201
|
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
177
202
|
},
|
|
178
203
|
{
|
|
@@ -272,7 +297,7 @@
|
|
|
272
297
|
},
|
|
273
298
|
{
|
|
274
299
|
"path": "mcp_snapshots/prepare_recognition_context.res.json",
|
|
275
|
-
"sha256": "
|
|
300
|
+
"sha256": "dfb2d73ddb812d41dfe8e0b17dddeb1399373904972c09cf80e0bf9daa65941f",
|
|
276
301
|
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
277
302
|
},
|
|
278
303
|
{
|
|
@@ -292,7 +317,7 @@
|
|
|
292
317
|
},
|
|
293
318
|
{
|
|
294
319
|
"path": "mcp_snapshots/get_deeper_context.res.json",
|
|
295
|
-
"sha256": "
|
|
320
|
+
"sha256": "c92ec338c23f2cdc3f1215751812c7f5c2c08aa86fb3ff097288e4c831313053",
|
|
296
321
|
"producer": "tools/gen_conformance.py::mcp_snapshots"
|
|
297
322
|
},
|
|
298
323
|
{
|
|
@@ -392,7 +417,7 @@
|
|
|
392
417
|
},
|
|
393
418
|
{
|
|
394
419
|
"path": "native_stores/claude_code/expected_l5.json",
|
|
395
|
-
"sha256": "
|
|
420
|
+
"sha256": "a352c29e299c50322f28e9250df1642ab7f1ae285cdfc3b794f13c1335e19899",
|
|
396
421
|
"producer": "tools/gen_conformance.py::native_stores"
|
|
397
422
|
},
|
|
398
423
|
{
|
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"access_level": "team",
|
|
3
|
-
"context": "",
|
|
4
|
-
"context_chars":
|
|
3
|
+
"context": "## Bourdon (project)\nknown by: claude-code, codex\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.",
|
|
4
|
+
"context_chars": 349,
|
|
5
|
+
"doors": [
|
|
6
|
+
"recognition"
|
|
7
|
+
],
|
|
8
|
+
"entities": [
|
|
9
|
+
"Bourdon"
|
|
10
|
+
],
|
|
11
|
+
"hydration_hint": "Local retrieval only -- these are stored bytes, not generated prose. Synthesize with your own model if you want a narrative answer; Bourdon does not call one.",
|
|
5
12
|
"include_private": false,
|
|
6
|
-
"
|
|
13
|
+
"l1_documents": 1,
|
|
14
|
+
"prompt": "what about Bourdon",
|
|
15
|
+
"reason": "",
|
|
16
|
+
"source": "local-store",
|
|
17
|
+
"truncated": false
|
|
7
18
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"access_level": "team",
|
|
3
3
|
"confidence": "medium",
|
|
4
|
+
"hydration": "# Bourdon\n\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.",
|
|
5
|
+
"hydration_chars": 310,
|
|
4
6
|
"hydration_scheduled": true,
|
|
5
7
|
"include_private": false,
|
|
6
8
|
"matched_entities": [
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
"reason": "yielded nothing this run - last yielded 400 record(s) at 2026-06-29T09:00:00Z"
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
|
+
"hydration": "# Bourdon\n\nConformance fixture synopsis. L1 hydration is byte-checkable, so this text is\npinned verbatim into the interop vectors -- which is exactly why it must be\nfixture-owned rather than real documentation. A second implementation has to\nreproduce THIS, not whatever the project's docs happen to say today.",
|
|
12
|
+
"hydration_chars": 310,
|
|
11
13
|
"hydration_scheduled": true,
|
|
12
14
|
"include_private": false,
|
|
13
15
|
"matched_entities": [
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_doc": "merge_family parity vectors: run each (family, existing, incoming) through the mirror's merge and compare to expected.merged/added/updated/clamped. Caps are schema-derived, restated here for assertion only.",
|
|
3
|
+
"caps_from_schema": {
|
|
4
|
+
"recent_sessions": {
|
|
5
|
+
"key_actions": 10,
|
|
6
|
+
"files_touched": 50
|
|
7
|
+
},
|
|
8
|
+
"known_entities": {
|
|
9
|
+
"aliases": 16
|
|
10
|
+
},
|
|
11
|
+
"known_workstreams": {
|
|
12
|
+
"related_entities": 32
|
|
13
|
+
},
|
|
14
|
+
"notes": {
|
|
15
|
+
"related_entities": 16
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"cases": [
|
|
19
|
+
{
|
|
20
|
+
"id": "session-union-under-cap-preserves-order",
|
|
21
|
+
"family": "recent_sessions",
|
|
22
|
+
"existing": [
|
|
23
|
+
{
|
|
24
|
+
"date": "2026-08-01",
|
|
25
|
+
"cwd": "/w",
|
|
26
|
+
"key_actions": [
|
|
27
|
+
"a",
|
|
28
|
+
"b"
|
|
29
|
+
]
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"incoming": [
|
|
33
|
+
{
|
|
34
|
+
"date": "2026-08-01",
|
|
35
|
+
"cwd": "/w",
|
|
36
|
+
"key_actions": [
|
|
37
|
+
"b",
|
|
38
|
+
"c"
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"expected": {
|
|
43
|
+
"merged": [
|
|
44
|
+
{
|
|
45
|
+
"date": "2026-08-01",
|
|
46
|
+
"cwd": "/w",
|
|
47
|
+
"key_actions": [
|
|
48
|
+
"a",
|
|
49
|
+
"b",
|
|
50
|
+
"c"
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"added": 0,
|
|
55
|
+
"updated": 1,
|
|
56
|
+
"clamped": 0
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"id": "session-union-clamps-to-cap-keeping-newest",
|
|
61
|
+
"family": "recent_sessions",
|
|
62
|
+
"existing": [
|
|
63
|
+
{
|
|
64
|
+
"date": "2026-08-01",
|
|
65
|
+
"cwd": "/w",
|
|
66
|
+
"key_actions": [
|
|
67
|
+
"first-0",
|
|
68
|
+
"first-1",
|
|
69
|
+
"first-2",
|
|
70
|
+
"first-3",
|
|
71
|
+
"first-4",
|
|
72
|
+
"first-5",
|
|
73
|
+
"first-6",
|
|
74
|
+
"first-7",
|
|
75
|
+
"first-8",
|
|
76
|
+
"first-9"
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"incoming": [
|
|
81
|
+
{
|
|
82
|
+
"date": "2026-08-01",
|
|
83
|
+
"cwd": "/w",
|
|
84
|
+
"key_actions": [
|
|
85
|
+
"second-0",
|
|
86
|
+
"second-1",
|
|
87
|
+
"second-2",
|
|
88
|
+
"second-3",
|
|
89
|
+
"second-4",
|
|
90
|
+
"second-5",
|
|
91
|
+
"second-6",
|
|
92
|
+
"second-7",
|
|
93
|
+
"second-8",
|
|
94
|
+
"second-9"
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"expected": {
|
|
99
|
+
"merged": [
|
|
100
|
+
{
|
|
101
|
+
"date": "2026-08-01",
|
|
102
|
+
"cwd": "/w",
|
|
103
|
+
"key_actions": [
|
|
104
|
+
"second-0",
|
|
105
|
+
"second-1",
|
|
106
|
+
"second-2",
|
|
107
|
+
"second-3",
|
|
108
|
+
"second-4",
|
|
109
|
+
"second-5",
|
|
110
|
+
"second-6",
|
|
111
|
+
"second-7",
|
|
112
|
+
"second-8",
|
|
113
|
+
"second-9"
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"added": 0,
|
|
118
|
+
"updated": 1,
|
|
119
|
+
"clamped": 10
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"id": "session-dupe-non-none-scalar-wins-none-ignored",
|
|
124
|
+
"family": "recent_sessions",
|
|
125
|
+
"existing": [
|
|
126
|
+
{
|
|
127
|
+
"date": "2026-08-01",
|
|
128
|
+
"cwd": "/w",
|
|
129
|
+
"visibility": "team"
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"incoming": [
|
|
133
|
+
{
|
|
134
|
+
"date": "2026-08-01",
|
|
135
|
+
"cwd": "/w",
|
|
136
|
+
"visibility": null
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"expected": {
|
|
140
|
+
"merged": [
|
|
141
|
+
{
|
|
142
|
+
"date": "2026-08-01",
|
|
143
|
+
"cwd": "/w",
|
|
144
|
+
"visibility": "team"
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"added": 0,
|
|
148
|
+
"updated": 1,
|
|
149
|
+
"clamped": 0
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": "session-incoming-scalar-list-coerces-not-chars",
|
|
154
|
+
"family": "recent_sessions",
|
|
155
|
+
"existing": [
|
|
156
|
+
{
|
|
157
|
+
"date": "2026-08-01",
|
|
158
|
+
"cwd": "/w",
|
|
159
|
+
"project_focus": [
|
|
160
|
+
"Bourdon"
|
|
161
|
+
]
|
|
162
|
+
}
|
|
163
|
+
],
|
|
164
|
+
"incoming": [
|
|
165
|
+
{
|
|
166
|
+
"date": "2026-08-01",
|
|
167
|
+
"cwd": "/w",
|
|
168
|
+
"project_focus": "OXbeat"
|
|
169
|
+
}
|
|
170
|
+
],
|
|
171
|
+
"expected": {
|
|
172
|
+
"merged": [
|
|
173
|
+
{
|
|
174
|
+
"date": "2026-08-01",
|
|
175
|
+
"cwd": "/w",
|
|
176
|
+
"project_focus": [
|
|
177
|
+
"Bourdon",
|
|
178
|
+
"OXbeat"
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
],
|
|
182
|
+
"added": 0,
|
|
183
|
+
"updated": 1,
|
|
184
|
+
"clamped": 0
|
|
185
|
+
}
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"id": "entity-alias-union-clamps-case-insensitive-name-key",
|
|
189
|
+
"family": "known_entities",
|
|
190
|
+
"existing": [
|
|
191
|
+
{
|
|
192
|
+
"name": "Bourdon",
|
|
193
|
+
"aliases": [
|
|
194
|
+
"alias-0",
|
|
195
|
+
"alias-1",
|
|
196
|
+
"alias-2",
|
|
197
|
+
"alias-3",
|
|
198
|
+
"alias-4",
|
|
199
|
+
"alias-5",
|
|
200
|
+
"alias-6",
|
|
201
|
+
"alias-7",
|
|
202
|
+
"alias-8",
|
|
203
|
+
"alias-9",
|
|
204
|
+
"alias-10",
|
|
205
|
+
"alias-11",
|
|
206
|
+
"alias-12",
|
|
207
|
+
"alias-13",
|
|
208
|
+
"alias-14",
|
|
209
|
+
"alias-15"
|
|
210
|
+
]
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
"incoming": [
|
|
214
|
+
{
|
|
215
|
+
"name": "bourdon",
|
|
216
|
+
"aliases": [
|
|
217
|
+
"fresh-alias"
|
|
218
|
+
]
|
|
219
|
+
}
|
|
220
|
+
],
|
|
221
|
+
"expected": {
|
|
222
|
+
"merged": [
|
|
223
|
+
{
|
|
224
|
+
"name": "bourdon",
|
|
225
|
+
"aliases": [
|
|
226
|
+
"alias-1",
|
|
227
|
+
"alias-2",
|
|
228
|
+
"alias-3",
|
|
229
|
+
"alias-4",
|
|
230
|
+
"alias-5",
|
|
231
|
+
"alias-6",
|
|
232
|
+
"alias-7",
|
|
233
|
+
"alias-8",
|
|
234
|
+
"alias-9",
|
|
235
|
+
"alias-10",
|
|
236
|
+
"alias-11",
|
|
237
|
+
"alias-12",
|
|
238
|
+
"alias-13",
|
|
239
|
+
"alias-14",
|
|
240
|
+
"alias-15",
|
|
241
|
+
"fresh-alias"
|
|
242
|
+
]
|
|
243
|
+
}
|
|
244
|
+
],
|
|
245
|
+
"added": 0,
|
|
246
|
+
"updated": 1,
|
|
247
|
+
"clamped": 1
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"id": "fresh-row-scalar-list-normalized-on-add",
|
|
252
|
+
"family": "recent_sessions",
|
|
253
|
+
"existing": [],
|
|
254
|
+
"incoming": [
|
|
255
|
+
{
|
|
256
|
+
"date": "2026-08-02",
|
|
257
|
+
"cwd": "/n",
|
|
258
|
+
"project_focus": "solo"
|
|
259
|
+
}
|
|
260
|
+
],
|
|
261
|
+
"expected": {
|
|
262
|
+
"merged": [
|
|
263
|
+
{
|
|
264
|
+
"date": "2026-08-02",
|
|
265
|
+
"cwd": "/n",
|
|
266
|
+
"project_focus": [
|
|
267
|
+
"solo"
|
|
268
|
+
]
|
|
269
|
+
}
|
|
270
|
+
],
|
|
271
|
+
"added": 1,
|
|
272
|
+
"updated": 0,
|
|
273
|
+
"clamped": 0
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
{
|
|
277
|
+
"id": "fresh-row-over-cap-passes-through-unclamped",
|
|
278
|
+
"family": "recent_sessions",
|
|
279
|
+
"existing": [],
|
|
280
|
+
"incoming": [
|
|
281
|
+
{
|
|
282
|
+
"date": "2026-08-03",
|
|
283
|
+
"cwd": "/o",
|
|
284
|
+
"key_actions": [
|
|
285
|
+
"x-0",
|
|
286
|
+
"x-1",
|
|
287
|
+
"x-2",
|
|
288
|
+
"x-3",
|
|
289
|
+
"x-4",
|
|
290
|
+
"x-5",
|
|
291
|
+
"x-6",
|
|
292
|
+
"x-7",
|
|
293
|
+
"x-8",
|
|
294
|
+
"x-9",
|
|
295
|
+
"x-10"
|
|
296
|
+
]
|
|
297
|
+
}
|
|
298
|
+
],
|
|
299
|
+
"expected": {
|
|
300
|
+
"merged": [
|
|
301
|
+
{
|
|
302
|
+
"date": "2026-08-03",
|
|
303
|
+
"cwd": "/o",
|
|
304
|
+
"key_actions": [
|
|
305
|
+
"x-0",
|
|
306
|
+
"x-1",
|
|
307
|
+
"x-2",
|
|
308
|
+
"x-3",
|
|
309
|
+
"x-4",
|
|
310
|
+
"x-5",
|
|
311
|
+
"x-6",
|
|
312
|
+
"x-7",
|
|
313
|
+
"x-8",
|
|
314
|
+
"x-9",
|
|
315
|
+
"x-10"
|
|
316
|
+
]
|
|
317
|
+
}
|
|
318
|
+
],
|
|
319
|
+
"added": 1,
|
|
320
|
+
"updated": 0,
|
|
321
|
+
"clamped": 0
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
]
|
|
325
|
+
}
|
package/fixtures.pin.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_doc": "The recorded fixture pin. CI and the package tests assert the vendored fixtures/manifest.json hashes to exactly this value, so the fixture set in any build is provably the reviewed one. Refresh via the re-pin ritual in README.md.",
|
|
3
|
-
"conformance_version": "2.
|
|
4
|
-
"manifest_sha256": "
|
|
3
|
+
"conformance_version": "2.5.0",
|
|
4
|
+
"manifest_sha256": "3e592307ebb44d694ed726d6fd3b78e8f5ebab0bc346166fa04b0d4ae07bbef2"
|
|
5
5
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getbourdon/conformance",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"description": "Language-neutral cross-implementation parity fixtures for Bourdon. Python (pip install bourdon) is the oracle; the @getbourdon/* TypeScript mirror asserts against these exact bytes.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|