Add provenance schema contract for v0.3.0
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"backup_manifest": {
|
||||
"schema_version": "1.0",
|
||||
"application_version": "0.3.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"created_at": "2026-07-17T18:42:10.123Z",
|
||||
"source_chain_head": "sha256:51935af27a4c989a014d975eab929f41fccafadedfbf1baafa15e3ce2a27a66d",
|
||||
"sqlite_snapshot": {
|
||||
"path": "database-snapshot/state.sqlite",
|
||||
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
||||
"size": 4096,
|
||||
"sqlite_version": "3.46.0",
|
||||
"database_schema_version": 1,
|
||||
"completed_at": "2026-07-17T18:42:10.123Z"
|
||||
},
|
||||
"files": [
|
||||
{
|
||||
"path": "project.json",
|
||||
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
|
||||
"size": 256
|
||||
}
|
||||
],
|
||||
"protected": false,
|
||||
"recovery_key_envelope_path": null
|
||||
},
|
||||
"release_manifest": {
|
||||
"schema_version": "1.0",
|
||||
"application_version": "0.3.0",
|
||||
"release_id": "release_01J0000000000000000000000E",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"version": "1.0.0",
|
||||
"created_at": "2026-07-17T18:43:11.456Z",
|
||||
"source_commit": "0123456789abcdef0123456789abcdef01234567",
|
||||
"source_chain_head": "sha256:51935af27a4c989a014d975eab929f41fccafadedfbf1baafa15e3ce2a27a66d",
|
||||
"source_manuscript": {
|
||||
"path": "manuscript/final-manuscript.md",
|
||||
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
|
||||
},
|
||||
"sanitized": false,
|
||||
"files": [
|
||||
{
|
||||
"path": "manuscript/final-manuscript.md",
|
||||
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"size": 1024
|
||||
},
|
||||
{
|
||||
"path": "evidence/creative-process-report.md",
|
||||
"sha256": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
|
||||
"size": 512
|
||||
}
|
||||
],
|
||||
"release_files_merkle_root": "sha256:b773ac929d720839a617ec0f9d6e39ad5401fa7795e21f799302658de8db9cda",
|
||||
"merkle_algorithm": "thinkloom-release-merkle-v1"
|
||||
},
|
||||
"binding_rule": "Backup and release inventories bind the same frozen authoritative chain head while remaining distinct artifact classes."
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"algorithm": "Unicode NFC followed by RFC 8785 JSON Canonicalization Scheme and SHA-256 over UTF-8 bytes",
|
||||
"cases": [
|
||||
{
|
||||
"id": "rfc8785-key-order",
|
||||
"input": {
|
||||
"z": 1,
|
||||
"a": 2,
|
||||
"nested": {
|
||||
"beta": true,
|
||||
"alpha": false
|
||||
}
|
||||
},
|
||||
"canonical_json": "{\"a\":2,\"nested\":{\"alpha\":false,\"beta\":true},\"z\":1}",
|
||||
"utf8_sha256": "sha256:f0d2d7ce87541c9b5d9c16a557f162a766ce865ae322a1ce512f89835e344479"
|
||||
},
|
||||
{
|
||||
"id": "thinkloom-nfc",
|
||||
"input": {
|
||||
"text": "Café",
|
||||
"é": "normalize keys and values"
|
||||
},
|
||||
"canonical_json": "{\"text\":\"Café\",\"é\":\"normalize keys and values\"}",
|
||||
"utf8_sha256": "sha256:7c5f79c29886fc66ff5a0529755d07fe905f178131f264a95b4ff44d91214e4c"
|
||||
},
|
||||
{
|
||||
"id": "rfc8785-numbers",
|
||||
"input": {
|
||||
"numbers": [
|
||||
333333333.3333333,
|
||||
1e+30,
|
||||
4.5,
|
||||
0.002,
|
||||
1e-27
|
||||
]
|
||||
},
|
||||
"canonical_json": "{\"numbers\":[333333333.3333333,1e+30,4.5,0.002,1e-27]}",
|
||||
"utf8_sha256": "sha256:7c892d3452ad85ad65857a43e8dcac93b79475d2334fc3e85bac5c599142c158"
|
||||
},
|
||||
{
|
||||
"id": "thinkloom-timestamp-and-path",
|
||||
"input": {
|
||||
"timestamp": "2026-07-17T18:42:10.123Z",
|
||||
"path": "records/invocations/request.json"
|
||||
},
|
||||
"canonical_json": "{\"path\":\"records/invocations/request.json\",\"timestamp\":\"2026-07-17T18:42:10.123Z\"}",
|
||||
"utf8_sha256": "sha256:97f1f02f62ecbbe8b80ede4e48655f5d8774fd6022bba1f6d2c421eca9975068"
|
||||
}
|
||||
],
|
||||
"rejected_inputs": [
|
||||
{
|
||||
"id": "non-finite-number",
|
||||
"description": "NaN and infinity are not JSON and MUST be rejected before canonicalization."
|
||||
},
|
||||
{
|
||||
"id": "undefined-value",
|
||||
"description": "Undefined values MUST be rejected rather than silently omitted."
|
||||
},
|
||||
{
|
||||
"id": "nfc-key-collision",
|
||||
"description": "Distinct source keys that normalize to the same NFC key MUST be rejected."
|
||||
},
|
||||
{
|
||||
"id": "unpaired-surrogate",
|
||||
"description": "I-JSON prohibits unpaired Unicode surrogate code units."
|
||||
},
|
||||
{
|
||||
"id": "non-json-runtime-types",
|
||||
"description": "BigInt, symbols, functions, sparse arrays, and non-plain objects MUST be rejected."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"segments": [
|
||||
{
|
||||
"jsonl": "{\"actor\":{\"actor_id\":null,\"type\":\"user\"},\"client_action_id\":\"client-action-0001\",\"event_hash\":\"sha256:3a087877f4878483805f517ef0ebd108476e31ed68162504da4fad12d6d9eff4\",\"event_id\":\"event_01J00000000000000000000003\",\"event_sequence\":1,\"event_type\":\"PROJECT_CREATED\",\"inputs\":[],\"metadata\":{\"summary\":\"Created project\"},\"outputs\":[{\"path\":\"manuscript/revisions/revision.json\",\"range\":{\"coordinate_system\":\"utf8_byte\",\"document_revision_id\":\"revision_01J0000000000000000000000A\",\"end\":12,\"preimage_sha256\":\"sha256:1111111111111111111111111111111111111111111111111111111111111111\",\"schema_version\":\"1.0\",\"start\":0,\"text_fragment_id\":\"fragment_01J0000000000000000000000C\"},\"record_id\":\"record_01J00000000000000000000005\",\"record_type\":\"manuscript_revision\",\"revision_id\":\"revision_01J0000000000000000000000A\",\"schema_version\":\"1.0\",\"sha256\":\"sha256:2222222222222222222222222222222222222222222222222222222222222222\"}],\"previous_event_hash\":null,\"project_id\":\"project_01J00000000000000000000001\",\"provider\":null,\"relationships\":{\"invocation_id\":null,\"parent_event_ids\":[]},\"schema_version\":\"1.0\",\"timestamp\":\"2026-07-17T18:42:10.123Z\"}\n{\"actor\":{\"actor_id\":null,\"type\":\"user\"},\"client_action_id\":\"client-action-0001\",\"event_hash\":\"sha256:eb03e514fa6fcfcd291357668559b24387a84256fc39d6fb0621529003d0988e\",\"event_id\":\"event_01J00000000000000000000004\",\"event_sequence\":2,\"event_type\":\"IDEA_ACCEPTED\",\"inputs\":[],\"metadata\":{\"summary\":\"Created project\"},\"outputs\":[{\"path\":\"manuscript/revisions/revision.json\",\"range\":{\"coordinate_system\":\"utf8_byte\",\"document_revision_id\":\"revision_01J0000000000000000000000A\",\"end\":12,\"preimage_sha256\":\"sha256:1111111111111111111111111111111111111111111111111111111111111111\",\"schema_version\":\"1.0\",\"start\":0,\"text_fragment_id\":\"fragment_01J0000000000000000000000C\"},\"record_id\":\"record_01J00000000000000000000005\",\"record_type\":\"manuscript_revision\",\"revision_id\":\"revision_01J0000000000000000000000A\",\"schema_version\":\"1.0\",\"sha256\":\"sha256:2222222222222222222222222222222222222222222222222222222222222222\"}],\"previous_event_hash\":\"sha256:3a087877f4878483805f517ef0ebd108476e31ed68162504da4fad12d6d9eff4\",\"project_id\":\"project_01J00000000000000000000001\",\"provider\":null,\"relationships\":{\"invocation_id\":null,\"parent_event_ids\":[]},\"schema_version\":\"1.0\",\"timestamp\":\"2026-07-17T18:43:11.456Z\"}\n",
|
||||
"manifest": {
|
||||
"schema_version": "1.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"segment_number": 1,
|
||||
"previous_segment_file_hash": null,
|
||||
"first_event_hash": "sha256:3a087877f4878483805f517ef0ebd108476e31ed68162504da4fad12d6d9eff4",
|
||||
"final_event_hash": "sha256:eb03e514fa6fcfcd291357668559b24387a84256fc39d6fb0621529003d0988e",
|
||||
"first_event_sequence": 1,
|
||||
"final_event_sequence": 2,
|
||||
"event_count": 2,
|
||||
"byte_length": 2323,
|
||||
"segment_file_hash": "sha256:b37546669da485b3f5c8dad3c26b36ee8992ac8127e8f99d6a5ee8cdb1fa2d81",
|
||||
"sealed_at": "2026-07-17T18:42:10.123Z"
|
||||
}
|
||||
},
|
||||
{
|
||||
"jsonl": "{\"actor\":{\"actor_id\":null,\"type\":\"user\"},\"client_action_id\":\"client-action-0001\",\"event_hash\":\"sha256:51935af27a4c989a014d975eab929f41fccafadedfbf1baafa15e3ce2a27a66d\",\"event_id\":\"event_01J0000000000000000000000T\",\"event_sequence\":3,\"event_type\":\"MANUSCRIPT_EDITED\",\"inputs\":[],\"metadata\":{\"summary\":\"Created project\"},\"outputs\":[{\"path\":\"manuscript/revisions/revision.json\",\"range\":{\"coordinate_system\":\"utf8_byte\",\"document_revision_id\":\"revision_01J0000000000000000000000A\",\"end\":12,\"preimage_sha256\":\"sha256:1111111111111111111111111111111111111111111111111111111111111111\",\"schema_version\":\"1.0\",\"start\":0,\"text_fragment_id\":\"fragment_01J0000000000000000000000C\"},\"record_id\":\"record_01J00000000000000000000005\",\"record_type\":\"manuscript_revision\",\"revision_id\":\"revision_01J0000000000000000000000A\",\"schema_version\":\"1.0\",\"sha256\":\"sha256:2222222222222222222222222222222222222222222222222222222222222222\"}],\"previous_event_hash\":\"sha256:eb03e514fa6fcfcd291357668559b24387a84256fc39d6fb0621529003d0988e\",\"project_id\":\"project_01J00000000000000000000001\",\"provider\":null,\"relationships\":{\"invocation_id\":null,\"parent_event_ids\":[]},\"schema_version\":\"1.0\",\"timestamp\":\"2026-07-17T18:44:12.789Z\"}\n",
|
||||
"manifest": {
|
||||
"schema_version": "1.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"segment_number": 2,
|
||||
"previous_segment_file_hash": "sha256:b37546669da485b3f5c8dad3c26b36ee8992ac8127e8f99d6a5ee8cdb1fa2d81",
|
||||
"first_event_hash": "sha256:51935af27a4c989a014d975eab929f41fccafadedfbf1baafa15e3ce2a27a66d",
|
||||
"final_event_hash": "sha256:51935af27a4c989a014d975eab929f41fccafadedfbf1baafa15e3ce2a27a66d",
|
||||
"first_event_sequence": 3,
|
||||
"final_event_sequence": 3,
|
||||
"event_count": 1,
|
||||
"byte_length": 1199,
|
||||
"segment_file_hash": "sha256:194195fb37a089af86334695f45de5efce45eccc651c6257d63a9f3cc6a81b51",
|
||||
"sealed_at": "2026-07-17T18:45:13.012Z"
|
||||
}
|
||||
}
|
||||
],
|
||||
"chain_head": {
|
||||
"schema_version": "1.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"active_segment_number": 2,
|
||||
"event_id": "event_01J0000000000000000000000T",
|
||||
"event_sequence": 3,
|
||||
"event_hash": "sha256:51935af27a4c989a014d975eab929f41fccafadedfbf1baafa15e3ce2a27a66d",
|
||||
"updated_at": "2026-07-17T18:45:13.012Z"
|
||||
},
|
||||
"cross_segment_rule": "A sealed segment names the prior segment file digest, and event hash linkage remains contiguous across the boundary."
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"input_orders": [
|
||||
[
|
||||
{
|
||||
"from": "idea_01J00000000000000000000009",
|
||||
"to": "revision_01J0000000000000000000000B",
|
||||
"relation": "influenced"
|
||||
},
|
||||
{
|
||||
"from": "turn_01J00000000000000000000007",
|
||||
"to": "idea_01J00000000000000000000009",
|
||||
"relation": "suggested"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"from": "turn_01J00000000000000000000007",
|
||||
"to": "idea_01J00000000000000000000009",
|
||||
"relation": "suggested"
|
||||
},
|
||||
{
|
||||
"from": "idea_01J00000000000000000000009",
|
||||
"to": "revision_01J0000000000000000000000B",
|
||||
"relation": "influenced"
|
||||
}
|
||||
]
|
||||
],
|
||||
"deterministic_content": [
|
||||
{
|
||||
"from": "idea_01J00000000000000000000009",
|
||||
"to": "revision_01J0000000000000000000000B",
|
||||
"relation": "influenced"
|
||||
},
|
||||
{
|
||||
"from": "turn_01J00000000000000000000007",
|
||||
"to": "idea_01J00000000000000000000009",
|
||||
"relation": "suggested"
|
||||
}
|
||||
],
|
||||
"configuration": {
|
||||
"sort": "canonical-json-code-unit",
|
||||
"graph_version": 1
|
||||
},
|
||||
"manifest": {
|
||||
"schema_version": "1.0",
|
||||
"index_type": "contribution_graph",
|
||||
"source_chain_head": "sha256:51935af27a4c989a014d975eab929f41fccafadedfbf1baafa15e3ce2a27a66d",
|
||||
"source_event_count": 3,
|
||||
"generator": {
|
||||
"name": "thinkloom-indexer",
|
||||
"version": "1.0.0",
|
||||
"configuration_sha256": "sha256:730664bcc17657f08ea3a55a96513b183fe957d598f8b00cea3ff981a099890d"
|
||||
},
|
||||
"content_sha256": "sha256:70ce92437e823653cb88cdc3ed8adaeb7bc48172ad526758720238149d6dcb79",
|
||||
"generated_at": "2026-07-17T18:42:10.123Z"
|
||||
},
|
||||
"determinism_rule": "Input order does not affect canonical derived content; volatile generation metadata is outside content_sha256."
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"event_hash_identity": "Canonical event object excluding only event_hash; previous_event_hash remains included.",
|
||||
"sequence_rule": "Committed event_sequence values begin at 1 and are contiguous with no reuse.",
|
||||
"jsonl_rule": "Each canonical event is UTF-8 without BOM followed by exactly one LF byte (0x0A).",
|
||||
"events": [
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"event_id": "event_01J00000000000000000000003",
|
||||
"event_sequence": 1,
|
||||
"client_action_id": "client-action-0001",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"timestamp": "2026-07-17T18:42:10.123Z",
|
||||
"event_type": "PROJECT_CREATED",
|
||||
"actor": {
|
||||
"type": "user",
|
||||
"actor_id": null
|
||||
},
|
||||
"provider": null,
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "manuscript_revision",
|
||||
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
||||
"path": "manuscript/revisions/revision.json",
|
||||
"revision_id": "revision_01J0000000000000000000000A",
|
||||
"range": {
|
||||
"schema_version": "1.0",
|
||||
"document_revision_id": "revision_01J0000000000000000000000A",
|
||||
"coordinate_system": "utf8_byte",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"text_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
}
|
||||
],
|
||||
"relationships": {
|
||||
"parent_event_ids": [],
|
||||
"invocation_id": null
|
||||
},
|
||||
"metadata": {
|
||||
"summary": "Created project"
|
||||
},
|
||||
"previous_event_hash": null,
|
||||
"event_hash": "sha256:3a087877f4878483805f517ef0ebd108476e31ed68162504da4fad12d6d9eff4"
|
||||
},
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"event_id": "event_01J00000000000000000000004",
|
||||
"event_sequence": 2,
|
||||
"client_action_id": "client-action-0001",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"timestamp": "2026-07-17T18:43:11.456Z",
|
||||
"event_type": "IDEA_ACCEPTED",
|
||||
"actor": {
|
||||
"type": "user",
|
||||
"actor_id": null
|
||||
},
|
||||
"provider": null,
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "manuscript_revision",
|
||||
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
||||
"path": "manuscript/revisions/revision.json",
|
||||
"revision_id": "revision_01J0000000000000000000000A",
|
||||
"range": {
|
||||
"schema_version": "1.0",
|
||||
"document_revision_id": "revision_01J0000000000000000000000A",
|
||||
"coordinate_system": "utf8_byte",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"text_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
}
|
||||
],
|
||||
"relationships": {
|
||||
"parent_event_ids": [],
|
||||
"invocation_id": null
|
||||
},
|
||||
"metadata": {
|
||||
"summary": "Created project"
|
||||
},
|
||||
"previous_event_hash": "sha256:3a087877f4878483805f517ef0ebd108476e31ed68162504da4fad12d6d9eff4",
|
||||
"event_hash": "sha256:eb03e514fa6fcfcd291357668559b24387a84256fc39d6fb0621529003d0988e"
|
||||
},
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"event_id": "event_01J0000000000000000000000T",
|
||||
"event_sequence": 3,
|
||||
"client_action_id": "client-action-0001",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"timestamp": "2026-07-17T18:44:12.789Z",
|
||||
"event_type": "MANUSCRIPT_EDITED",
|
||||
"actor": {
|
||||
"type": "user",
|
||||
"actor_id": null
|
||||
},
|
||||
"provider": null,
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "manuscript_revision",
|
||||
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
||||
"path": "manuscript/revisions/revision.json",
|
||||
"revision_id": "revision_01J0000000000000000000000A",
|
||||
"range": {
|
||||
"schema_version": "1.0",
|
||||
"document_revision_id": "revision_01J0000000000000000000000A",
|
||||
"coordinate_system": "utf8_byte",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"text_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
}
|
||||
],
|
||||
"relationships": {
|
||||
"parent_event_ids": [],
|
||||
"invocation_id": null
|
||||
},
|
||||
"metadata": {
|
||||
"summary": "Created project"
|
||||
},
|
||||
"previous_event_hash": "sha256:eb03e514fa6fcfcd291357668559b24387a84256fc39d6fb0621529003d0988e",
|
||||
"event_hash": "sha256:51935af27a4c989a014d975eab929f41fccafadedfbf1baafa15e3ce2a27a66d"
|
||||
}
|
||||
],
|
||||
"canonical_jsonl": "{\"actor\":{\"actor_id\":null,\"type\":\"user\"},\"client_action_id\":\"client-action-0001\",\"event_hash\":\"sha256:3a087877f4878483805f517ef0ebd108476e31ed68162504da4fad12d6d9eff4\",\"event_id\":\"event_01J00000000000000000000003\",\"event_sequence\":1,\"event_type\":\"PROJECT_CREATED\",\"inputs\":[],\"metadata\":{\"summary\":\"Created project\"},\"outputs\":[{\"path\":\"manuscript/revisions/revision.json\",\"range\":{\"coordinate_system\":\"utf8_byte\",\"document_revision_id\":\"revision_01J0000000000000000000000A\",\"end\":12,\"preimage_sha256\":\"sha256:1111111111111111111111111111111111111111111111111111111111111111\",\"schema_version\":\"1.0\",\"start\":0,\"text_fragment_id\":\"fragment_01J0000000000000000000000C\"},\"record_id\":\"record_01J00000000000000000000005\",\"record_type\":\"manuscript_revision\",\"revision_id\":\"revision_01J0000000000000000000000A\",\"schema_version\":\"1.0\",\"sha256\":\"sha256:2222222222222222222222222222222222222222222222222222222222222222\"}],\"previous_event_hash\":null,\"project_id\":\"project_01J00000000000000000000001\",\"provider\":null,\"relationships\":{\"invocation_id\":null,\"parent_event_ids\":[]},\"schema_version\":\"1.0\",\"timestamp\":\"2026-07-17T18:42:10.123Z\"}\n{\"actor\":{\"actor_id\":null,\"type\":\"user\"},\"client_action_id\":\"client-action-0001\",\"event_hash\":\"sha256:eb03e514fa6fcfcd291357668559b24387a84256fc39d6fb0621529003d0988e\",\"event_id\":\"event_01J00000000000000000000004\",\"event_sequence\":2,\"event_type\":\"IDEA_ACCEPTED\",\"inputs\":[],\"metadata\":{\"summary\":\"Created project\"},\"outputs\":[{\"path\":\"manuscript/revisions/revision.json\",\"range\":{\"coordinate_system\":\"utf8_byte\",\"document_revision_id\":\"revision_01J0000000000000000000000A\",\"end\":12,\"preimage_sha256\":\"sha256:1111111111111111111111111111111111111111111111111111111111111111\",\"schema_version\":\"1.0\",\"start\":0,\"text_fragment_id\":\"fragment_01J0000000000000000000000C\"},\"record_id\":\"record_01J00000000000000000000005\",\"record_type\":\"manuscript_revision\",\"revision_id\":\"revision_01J0000000000000000000000A\",\"schema_version\":\"1.0\",\"sha256\":\"sha256:2222222222222222222222222222222222222222222222222222222222222222\"}],\"previous_event_hash\":\"sha256:3a087877f4878483805f517ef0ebd108476e31ed68162504da4fad12d6d9eff4\",\"project_id\":\"project_01J00000000000000000000001\",\"provider\":null,\"relationships\":{\"invocation_id\":null,\"parent_event_ids\":[]},\"schema_version\":\"1.0\",\"timestamp\":\"2026-07-17T18:43:11.456Z\"}\n{\"actor\":{\"actor_id\":null,\"type\":\"user\"},\"client_action_id\":\"client-action-0001\",\"event_hash\":\"sha256:51935af27a4c989a014d975eab929f41fccafadedfbf1baafa15e3ce2a27a66d\",\"event_id\":\"event_01J0000000000000000000000T\",\"event_sequence\":3,\"event_type\":\"MANUSCRIPT_EDITED\",\"inputs\":[],\"metadata\":{\"summary\":\"Created project\"},\"outputs\":[{\"path\":\"manuscript/revisions/revision.json\",\"range\":{\"coordinate_system\":\"utf8_byte\",\"document_revision_id\":\"revision_01J0000000000000000000000A\",\"end\":12,\"preimage_sha256\":\"sha256:1111111111111111111111111111111111111111111111111111111111111111\",\"schema_version\":\"1.0\",\"start\":0,\"text_fragment_id\":\"fragment_01J0000000000000000000000C\"},\"record_id\":\"record_01J00000000000000000000005\",\"record_type\":\"manuscript_revision\",\"revision_id\":\"revision_01J0000000000000000000000A\",\"schema_version\":\"1.0\",\"sha256\":\"sha256:2222222222222222222222222222222222222222222222222222222222222222\"}],\"previous_event_hash\":\"sha256:eb03e514fa6fcfcd291357668559b24387a84256fc39d6fb0621529003d0988e\",\"project_id\":\"project_01J00000000000000000000001\",\"provider\":null,\"relationships\":{\"invocation_id\":null,\"parent_event_ids\":[]},\"schema_version\":\"1.0\",\"timestamp\":\"2026-07-17T18:44:12.789Z\"}\n",
|
||||
"canonical_jsonl_sha256": "sha256:1ac3e55684b2a501777c01d9338bf8de10853d320ddfa0c0a030b846317888a2",
|
||||
"rejected_boundary_variants": [
|
||||
"CRLF line endings",
|
||||
"missing final LF",
|
||||
"blank records",
|
||||
"UTF-8 BOM"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"plaintext_identity_fields": [
|
||||
"schema_version",
|
||||
"record_id",
|
||||
"record_type",
|
||||
"payload"
|
||||
],
|
||||
"plaintext_identity": {
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "invocation_request",
|
||||
"payload": {
|
||||
"purpose": "draft_from_selected_ideas"
|
||||
}
|
||||
},
|
||||
"canonical_plaintext_identity": "{\"payload\":{\"purpose\":\"draft_from_selected_ideas\"},\"record_id\":\"record_01J00000000000000000000005\",\"record_type\":\"invocation_request\",\"schema_version\":\"1.0\"}",
|
||||
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
|
||||
"device_key_envelope": {
|
||||
"schema_version": "1.0",
|
||||
"envelope_id": "record_01J00000000000000000000005",
|
||||
"key_id": "key_01J0000000000000000000000G",
|
||||
"envelope_type": "device",
|
||||
"algorithm": "xchacha20-poly1305",
|
||||
"key_derivation": null,
|
||||
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
|
||||
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"created_at": "2026-07-17T18:42:10.123Z"
|
||||
},
|
||||
"recovery_key_envelope": {
|
||||
"schema_version": "1.0",
|
||||
"envelope_id": "record_01J0000000000000000000000S",
|
||||
"key_id": "key_01J0000000000000000000000G",
|
||||
"envelope_type": "recovery",
|
||||
"algorithm": "xchacha20-poly1305",
|
||||
"key_derivation": {
|
||||
"algorithm": "argon2id",
|
||||
"memory_kib": 65536,
|
||||
"iterations": 3,
|
||||
"parallelism": 1,
|
||||
"salt": "c2FsdC1mb3ItdGhpbmtsb29t"
|
||||
},
|
||||
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
|
||||
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"created_at": "2026-07-17T18:42:10.123Z"
|
||||
},
|
||||
"project_key_manifest": {
|
||||
"schema_version": "1.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"key_id": "key_01J0000000000000000000000G",
|
||||
"algorithm": "xchacha20-poly1305",
|
||||
"device_envelope_path": "provenance/keys/device-envelope.json",
|
||||
"recovery_envelope_path": "provenance/keys/recovery-envelope.json",
|
||||
"recovery_verified_at": "2026-07-17T18:42:10.123Z",
|
||||
"created_at": "2026-07-17T18:42:10.123Z"
|
||||
},
|
||||
"initial_envelope": {
|
||||
"schema_version": "1.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "invocation_request",
|
||||
"protection": "protected",
|
||||
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
|
||||
"payload": null,
|
||||
"encryption": {
|
||||
"algorithm": "xchacha20-poly1305",
|
||||
"key_id": "key_01J0000000000000000000000G",
|
||||
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
|
||||
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
|
||||
}
|
||||
},
|
||||
"rotated_envelope": {
|
||||
"schema_version": "1.0",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "invocation_request",
|
||||
"protection": "protected",
|
||||
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
|
||||
"payload": null,
|
||||
"encryption": {
|
||||
"algorithm": "xchacha20-poly1305",
|
||||
"key_id": "key_01J0000000000000000000000V",
|
||||
"nonce": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
|
||||
"ciphertext": "cm90YXRlZC1jaXBoZXJ0ZXh0",
|
||||
"ciphertext_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
|
||||
}
|
||||
},
|
||||
"invariant": "Key rotation changes encryption metadata and ciphertext but preserves record_id and plaintext_sha256.",
|
||||
"excluded_from_plaintext_identity": [
|
||||
"project_id",
|
||||
"protection",
|
||||
"plaintext_sha256",
|
||||
"encryption",
|
||||
"path",
|
||||
"nonce",
|
||||
"ciphertext"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"algorithm_id": "thinkloom-release-merkle-v1",
|
||||
"ordering": "Sort entries by raw UTF-8 path bytes in ascending order.",
|
||||
"leaf": "SHA-256(UTF8('thinkloom-release-leaf-v1\\0') || UTF8(path) || 0x00 || UTF8(decimal size) || 0x00 || raw 32-byte file SHA-256 digest)",
|
||||
"node": "SHA-256(UTF8('thinkloom-release-node-v1\\0') || raw left digest || raw right digest); duplicate the final node when a level has odd cardinality.",
|
||||
"empty": "SHA-256(UTF8('thinkloom-release-empty-v1\\0'))",
|
||||
"entries": [
|
||||
{
|
||||
"path": "manuscript/final-manuscript.md",
|
||||
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"size": 1024
|
||||
},
|
||||
{
|
||||
"path": "evidence/creative-process-report.md",
|
||||
"sha256": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
|
||||
"size": 512
|
||||
}
|
||||
],
|
||||
"root": "sha256:b773ac929d720839a617ec0f9d6e39ad5401fa7795e21f799302658de8db9cda",
|
||||
"excluded_paths": [
|
||||
"release-manifest.json",
|
||||
"release-files.sha256"
|
||||
],
|
||||
"self_reference_rule": "The manifest and any flat digest file that contains the root MUST NOT be Merkle leaves."
|
||||
}
|
||||
@@ -0,0 +1,188 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"default_mode": "minimal",
|
||||
"minimal": {
|
||||
"policy": {
|
||||
"schema_version": "1.0",
|
||||
"policy_id": "policy_01J0000000000000000000000H",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"retention_mode": "minimal",
|
||||
"encryption_mode": "none",
|
||||
"default_export_profile": "sanitized",
|
||||
"effective_at": "2026-07-17T18:42:10.123Z"
|
||||
},
|
||||
"invocation_request": {
|
||||
"schema_version": "1.0",
|
||||
"invocation_id": "invocation_01J00000000000000000000008",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"purpose": "draft_from_selected_ideas",
|
||||
"initiated_by_event_id": "event_01J00000000000000000000003",
|
||||
"retention_mode": "minimal",
|
||||
"provider": {
|
||||
"provider_id": "ollama",
|
||||
"model_id": "llama3.2",
|
||||
"processing_mode": "local"
|
||||
},
|
||||
"model_configuration_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
|
||||
"prompt_template": {
|
||||
"schema_version": "1.0",
|
||||
"template_id": "template_01J0000000000000000000000F",
|
||||
"version": 1,
|
||||
"path": "records/prompt-templates/drafting/template.json",
|
||||
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
|
||||
},
|
||||
"messages": [],
|
||||
"context_references": [
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "manuscript_revision",
|
||||
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
||||
"path": "manuscript/revisions/revision.json",
|
||||
"revision_id": "revision_01J0000000000000000000000A",
|
||||
"range": {
|
||||
"schema_version": "1.0",
|
||||
"document_revision_id": "revision_01J0000000000000000000000A",
|
||||
"coordinate_system": "utf8_byte",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"text_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
}
|
||||
],
|
||||
"manuscript_revision_id": "revision_01J0000000000000000000000A",
|
||||
"idea_revision_ids": [
|
||||
"revision_01J0000000000000000000000B"
|
||||
],
|
||||
"conversation_head": "turn_01J00000000000000000000007",
|
||||
"submitted_at": "2026-07-17T18:42:10.123Z",
|
||||
"redactions": []
|
||||
},
|
||||
"invocation_response": {
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"invocation_id": "invocation_01J00000000000000000000008",
|
||||
"retention_mode": "minimal",
|
||||
"content_type": "draft_preview",
|
||||
"retained_text": null,
|
||||
"finish_reason": "stop",
|
||||
"usage": {
|
||||
"input_tokens": 120,
|
||||
"output_tokens": 14
|
||||
},
|
||||
"provider_metadata": null,
|
||||
"validation": {
|
||||
"schema_valid": true,
|
||||
"repair_attempted": false
|
||||
},
|
||||
"content_sha256": "sha256:9999999999999999999999999999999999999999999999999999999999999999",
|
||||
"created_at": "2026-07-17T18:43:11.456Z"
|
||||
},
|
||||
"prohibited_durable_fields": [
|
||||
"complete provider-facing prompt",
|
||||
"complete supplied context",
|
||||
"unaccepted raw response",
|
||||
"provider transport metadata",
|
||||
"audio bytes or references"
|
||||
]
|
||||
},
|
||||
"full_private": {
|
||||
"policy": {
|
||||
"schema_version": "1.0",
|
||||
"policy_id": "policy_01J0000000000000000000000H",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"retention_mode": "full_private",
|
||||
"encryption_mode": "protected",
|
||||
"default_export_profile": "sanitized",
|
||||
"effective_at": "2026-07-17T18:42:10.123Z"
|
||||
},
|
||||
"invocation_request": {
|
||||
"schema_version": "1.0",
|
||||
"invocation_id": "invocation_01J00000000000000000000008",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"purpose": "draft_from_selected_ideas",
|
||||
"initiated_by_event_id": "event_01J00000000000000000000003",
|
||||
"retention_mode": "full_private",
|
||||
"provider": {
|
||||
"provider_id": "ollama",
|
||||
"model_id": "llama3.2",
|
||||
"processing_mode": "local"
|
||||
},
|
||||
"model_configuration_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
|
||||
"prompt_template": {
|
||||
"schema_version": "1.0",
|
||||
"template_id": "template_01J0000000000000000000000F",
|
||||
"version": 1,
|
||||
"path": "records/prompt-templates/drafting/template.json",
|
||||
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
|
||||
},
|
||||
"messages": [
|
||||
{
|
||||
"role": "user",
|
||||
"content": "Use the selected ideas to draft a passage."
|
||||
}
|
||||
],
|
||||
"context_references": [
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "manuscript_revision",
|
||||
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
||||
"path": "manuscript/revisions/revision.json",
|
||||
"revision_id": "revision_01J0000000000000000000000A",
|
||||
"range": {
|
||||
"schema_version": "1.0",
|
||||
"document_revision_id": "revision_01J0000000000000000000000A",
|
||||
"coordinate_system": "utf8_byte",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"text_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
}
|
||||
],
|
||||
"manuscript_revision_id": "revision_01J0000000000000000000000A",
|
||||
"idea_revision_ids": [
|
||||
"revision_01J0000000000000000000000B"
|
||||
],
|
||||
"conversation_head": "turn_01J00000000000000000000007",
|
||||
"submitted_at": "2026-07-17T18:42:10.123Z",
|
||||
"redactions": [
|
||||
{
|
||||
"category": "personal_identifier",
|
||||
"replacement": "[redacted]"
|
||||
}
|
||||
]
|
||||
},
|
||||
"invocation_response": {
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"invocation_id": "invocation_01J00000000000000000000008",
|
||||
"retention_mode": "full_private",
|
||||
"content_type": "draft_preview",
|
||||
"retained_text": "Attention is personal in experience and public in consequence.",
|
||||
"finish_reason": "stop",
|
||||
"usage": {
|
||||
"input_tokens": 120,
|
||||
"output_tokens": 14
|
||||
},
|
||||
"provider_metadata": {
|
||||
"request_id": "local-0001",
|
||||
"load_duration_milliseconds": 120
|
||||
},
|
||||
"validation": {
|
||||
"schema_valid": true,
|
||||
"repair_attempted": false
|
||||
},
|
||||
"content_sha256": "sha256:9999999999999999999999999999999999999999999999999999999999999999",
|
||||
"created_at": "2026-07-17T18:43:11.456Z"
|
||||
},
|
||||
"requirements": [
|
||||
"protected records",
|
||||
"verified recovery envelope",
|
||||
"authorized verification for plaintext evidence"
|
||||
]
|
||||
},
|
||||
"policy_change_rule": "Changes are prospective. Reducing retention does not delete prior records; deletion requires emergency purge."
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"source_chain_head_before": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"source_chain_head_after": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"source_record_count": 7,
|
||||
"exported_record_count": 3,
|
||||
"manifest": {
|
||||
"schema_version": "1.0",
|
||||
"export_id": "record_01J00000000000000000000005",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"profile": "sanitized",
|
||||
"omission_rules": [
|
||||
{
|
||||
"category": "private_conversation",
|
||||
"action": "exclude",
|
||||
"count": 2
|
||||
},
|
||||
{
|
||||
"category": "personal_identifier",
|
||||
"action": "redact",
|
||||
"count": 1
|
||||
},
|
||||
{
|
||||
"category": "provider_detail",
|
||||
"action": "summarize",
|
||||
"count": 1
|
||||
}
|
||||
],
|
||||
"rules_sha256": "sha256:352ccc3dde25000a1d6dd006a4c0376f73b7805736232b09458696928d3036f6",
|
||||
"files": [
|
||||
{
|
||||
"path": "final-manuscript.md",
|
||||
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"size": 1024
|
||||
}
|
||||
],
|
||||
"created_at": "2026-07-17T18:43:11.456Z"
|
||||
},
|
||||
"non_mutation_rule": "Sanitization creates a disclosure-bearing export and never rewrites the project or source chain."
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"prompt_template": {
|
||||
"identity": {
|
||||
"schema_version": "1.0",
|
||||
"template_id": "template_01J0000000000000000000000F",
|
||||
"version": 1,
|
||||
"purpose": "draft_from_selected_ideas",
|
||||
"canonical_template_body": "Use {{context}} to draft a passage.",
|
||||
"variables": {
|
||||
"context": {
|
||||
"description": "Selected idea context",
|
||||
"required": true
|
||||
}
|
||||
},
|
||||
"creation_application_version": "0.3.0",
|
||||
"retention_classification": "project_record",
|
||||
"created_at": "2026-07-17T18:42:10.123Z"
|
||||
},
|
||||
"digest": "sha256:73055322741f5a248ae79ca2c38f699e40da7b5b5576f83a615a9816ddab8ba3",
|
||||
"complete_record": {
|
||||
"schema_version": "1.0",
|
||||
"template_id": "template_01J0000000000000000000000F",
|
||||
"version": 1,
|
||||
"purpose": "draft_from_selected_ideas",
|
||||
"canonical_template_body": "Use {{context}} to draft a passage.",
|
||||
"variables": {
|
||||
"context": {
|
||||
"description": "Selected idea context",
|
||||
"required": true
|
||||
}
|
||||
},
|
||||
"creation_application_version": "0.3.0",
|
||||
"retention_classification": "project_record",
|
||||
"created_at": "2026-07-17T18:42:10.123Z",
|
||||
"template_sha256": "sha256:73055322741f5a248ae79ca2c38f699e40da7b5b5576f83a615a9816ddab8ba3"
|
||||
},
|
||||
"excluded_fields": [
|
||||
"template_sha256"
|
||||
]
|
||||
},
|
||||
"provenance_event": {
|
||||
"identity": {
|
||||
"schema_version": "1.0",
|
||||
"event_id": "event_01J00000000000000000000003",
|
||||
"event_sequence": 1,
|
||||
"client_action_id": "client-action-0001",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"timestamp": "2026-07-17T18:42:10.123Z",
|
||||
"event_type": "PROJECT_CREATED",
|
||||
"actor": {
|
||||
"type": "user",
|
||||
"actor_id": null
|
||||
},
|
||||
"provider": null,
|
||||
"inputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "manuscript_revision",
|
||||
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
|
||||
"path": "manuscript/revisions/revision.json",
|
||||
"revision_id": "revision_01J0000000000000000000000A",
|
||||
"range": {
|
||||
"schema_version": "1.0",
|
||||
"document_revision_id": "revision_01J0000000000000000000000A",
|
||||
"coordinate_system": "utf8_byte",
|
||||
"start": 0,
|
||||
"end": 12,
|
||||
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
|
||||
"text_fragment_id": "fragment_01J0000000000000000000000C"
|
||||
}
|
||||
}
|
||||
],
|
||||
"relationships": {
|
||||
"parent_event_ids": [],
|
||||
"invocation_id": null
|
||||
},
|
||||
"metadata": {
|
||||
"summary": "Created project"
|
||||
},
|
||||
"previous_event_hash": null
|
||||
},
|
||||
"digest": "sha256:3a087877f4878483805f517ef0ebd108476e31ed68162504da4fad12d6d9eff4",
|
||||
"excluded_fields": [
|
||||
"event_hash"
|
||||
]
|
||||
},
|
||||
"protected_record": {
|
||||
"identity": {
|
||||
"schema_version": "1.0",
|
||||
"record_id": "record_01J00000000000000000000005",
|
||||
"record_type": "invocation_request",
|
||||
"payload": {
|
||||
"purpose": "draft_from_selected_ideas"
|
||||
}
|
||||
},
|
||||
"digest": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
|
||||
"excluded_fields": [
|
||||
"project_id",
|
||||
"protection",
|
||||
"plaintext_sha256",
|
||||
"encryption",
|
||||
"path",
|
||||
"nonce",
|
||||
"ciphertext"
|
||||
]
|
||||
},
|
||||
"release_manifest": {
|
||||
"merkle_identity": [
|
||||
{
|
||||
"path": "manuscript/final-manuscript.md",
|
||||
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"size": 1024
|
||||
},
|
||||
{
|
||||
"path": "evidence/creative-process-report.md",
|
||||
"sha256": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
|
||||
"size": 512
|
||||
}
|
||||
],
|
||||
"digest": "sha256:b773ac929d720839a617ec0f9d6e39ad5401fa7795e21f799302658de8db9cda",
|
||||
"excluded_paths": [
|
||||
"release-manifest.json",
|
||||
"release-files.sha256"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"timestamps": {
|
||||
"accepted": [
|
||||
"2026-07-17T18:42:10.123Z",
|
||||
"2026-07-17T18:43:11.456Z",
|
||||
"2000-01-01T00:00:00.000Z"
|
||||
],
|
||||
"rejected": [
|
||||
"2026-07-17T18:42:10Z",
|
||||
"2026-07-17T18:42:10.12Z",
|
||||
"2026-07-17T18:42:10.1234Z",
|
||||
"2026-07-17T11:42:10.123-07:00",
|
||||
"not-a-timestamp"
|
||||
]
|
||||
},
|
||||
"repository_paths": {
|
||||
"accepted": [
|
||||
"project.json",
|
||||
"records/invocations/request.json",
|
||||
"manuscript/Café.md"
|
||||
],
|
||||
"rejected": [
|
||||
"",
|
||||
"/absolute/path",
|
||||
"C:/absolute/path",
|
||||
"records\\request.json",
|
||||
".",
|
||||
"..",
|
||||
"records/../outside.json",
|
||||
"records/./alias.json"
|
||||
]
|
||||
},
|
||||
"normalization_rule": "Paths use NFC, forward slashes, repository-relative spelling, and no dot segments."
|
||||
}
|
||||
@@ -0,0 +1,124 @@
|
||||
{
|
||||
"vector_version": "1.0",
|
||||
"reports": [
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"verification_id": "record_01J0000000000000000000000W",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"status": "VERIFIED",
|
||||
"verified_through_event_id": "event_01J00000000000000000000003",
|
||||
"verified_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"checked_segments": 1,
|
||||
"checked_events": 1,
|
||||
"checked_records": 4,
|
||||
"findings": [],
|
||||
"verifier_version": "1.0.0",
|
||||
"completed_at": "2026-07-17T18:43:11.456Z"
|
||||
},
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"verification_id": "record_01J0000000000000000000000X",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"status": "VERIFIED_WITH_WARNINGS",
|
||||
"verified_through_event_id": "event_01J00000000000000000000003",
|
||||
"verified_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"checked_segments": 1,
|
||||
"checked_events": 1,
|
||||
"checked_records": 4,
|
||||
"findings": [
|
||||
{
|
||||
"severity": "WARNING",
|
||||
"code": "INDEX_STALE",
|
||||
"message": "Contribution index is stale.",
|
||||
"authoritative_evidence_affected": false,
|
||||
"path": "provenance/indexes/contribution-graph.json",
|
||||
"event_id": null
|
||||
}
|
||||
],
|
||||
"verifier_version": "1.0.0",
|
||||
"completed_at": "2026-07-17T18:43:11.456Z"
|
||||
},
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"verification_id": "record_01J0000000000000000000000Y",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"status": "INCOMPLETE",
|
||||
"verified_through_event_id": "event_01J00000000000000000000003",
|
||||
"verified_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"checked_segments": 1,
|
||||
"checked_events": 1,
|
||||
"checked_records": 4,
|
||||
"findings": [
|
||||
{
|
||||
"severity": "INFO",
|
||||
"code": "OPTIONAL_BINARY_MISSING",
|
||||
"message": "An optional release binary is unavailable.",
|
||||
"authoritative_evidence_affected": false,
|
||||
"path": "provenance/indexes/contribution-graph.json",
|
||||
"event_id": null
|
||||
}
|
||||
],
|
||||
"verifier_version": "1.0.0",
|
||||
"completed_at": "2026-07-17T18:43:11.456Z"
|
||||
},
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"verification_id": "record_01J0000000000000000000000Z",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"status": "FAILED",
|
||||
"verified_through_event_id": "event_01J00000000000000000000003",
|
||||
"verified_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"checked_segments": 1,
|
||||
"checked_events": 1,
|
||||
"checked_records": 4,
|
||||
"findings": [
|
||||
{
|
||||
"severity": "ERROR",
|
||||
"code": "EVENT_HASH_MISMATCH",
|
||||
"message": "An event digest does not match canonical content.",
|
||||
"authoritative_evidence_affected": true,
|
||||
"path": "provenance/indexes/contribution-graph.json",
|
||||
"event_id": null
|
||||
}
|
||||
],
|
||||
"verifier_version": "1.0.0",
|
||||
"completed_at": "2026-07-17T18:43:11.456Z"
|
||||
},
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"verification_id": "record_01J00000000000000000000000",
|
||||
"project_id": "project_01J00000000000000000000001",
|
||||
"status": "UNSAFE",
|
||||
"verified_through_event_id": "event_01J00000000000000000000003",
|
||||
"verified_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
|
||||
"checked_segments": 1,
|
||||
"checked_events": 1,
|
||||
"checked_records": 4,
|
||||
"findings": [
|
||||
{
|
||||
"severity": "CRITICAL",
|
||||
"code": "CHAIN_RECONSTITUTED",
|
||||
"message": "The chain cannot establish ordinary continuity.",
|
||||
"authoritative_evidence_affected": true,
|
||||
"path": "provenance/indexes/contribution-graph.json",
|
||||
"event_id": null
|
||||
}
|
||||
],
|
||||
"verifier_version": "1.0.0",
|
||||
"completed_at": "2026-07-17T18:43:11.456Z"
|
||||
}
|
||||
],
|
||||
"required_statuses": [
|
||||
"VERIFIED",
|
||||
"VERIFIED_WITH_WARNINGS",
|
||||
"INCOMPLETE",
|
||||
"FAILED",
|
||||
"UNSAFE"
|
||||
],
|
||||
"required_severities": [
|
||||
"INFO",
|
||||
"WARNING",
|
||||
"ERROR",
|
||||
"CRITICAL"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user