Add provenance schema contract for v0.3.0

This commit is contained in:
2026-07-17 18:14:17 -07:00
parent 41ee044899
commit 9087ad4789
145 changed files with 31699 additions and 30 deletions
+2 -1
View File
@@ -11,6 +11,7 @@ Status date: 2026-07-17
- M4 drafting workspace: TipTap structured editor, dominant three-panel layout, selective context, staged generation, all acceptance destinations, partial acceptance, manual editing, undo/redo, and autosave.
- M5 finalization/style/history: editorial action previews, editable style traits and disallowed habits, saved versions, comparison summary, restore, release checkpoints, provenance timeline, and contribution relationships.
- M7 export/backup/evidence: Markdown, HTML, PDF, text, backup ZIP, evidence ZIP, sanitization disclosure, hashes, manifest, atomic finalization, and strict ZIP import validation.
- Provenance Stage 2 contract (v0.3.0): 38 JSON Schema Draft 2020-12 schemas, valid/invalid fixture suites, canonical JSON and JSONL vectors, event-chain vectors, protected-record/key-rotation vectors, retention-policy vectors, and a formal release-files Merkle construction.
- Product surface: Sites, Next, Vinext, Cloudflare, and browser-companion code and configuration have been removed. Tauri is the sole application target.
## External release gates
@@ -26,7 +27,7 @@ These items cannot be honestly certified from this workspace alone and need proj
## Remaining hardening
- Replace the current MVP provenance persistence path with the approved [Thinkloom 1.0 Stage 1 normative provenance subsystem](docs/provenance/README.md). The specification is complete; formal schemas, fixtures, native implementation, and fault-injection conformance remain future stages.
- Replace the current MVP provenance persistence path with the approved [Thinkloom 1.0 Stage 1 normative provenance subsystem](docs/provenance/README.md). The specification and formal schemas/fixtures are complete; native implementation and fault-injection conformance remain future stages.
- Run microphone/VAD/transcription integration tests once the approved model assets are supplied.
- Run signed clean-install, upgrade, downgrade-warning, and uninstall tests on each release platform.
+1 -1
View File
@@ -1,6 +1,6 @@
# Thinkloom prompt configuration
Thinkloom 0.2.0 exposes every instruction sent to a language model as editable JSON. The desktop app creates a prompts folder in its operating-system configuration directory and shows its exact path under Settings → Prompt configuration. Use Open prompt folder to open it.
Thinkloom 0.3.0 exposes every instruction sent to a language model as editable JSON. The desktop app creates a prompts folder in its operating-system configuration directory and shows its exact path under Settings → Prompt configuration. Use Open prompt folder to open it.
Prompt files are loaded immediately before every model request. Save a valid edit, then make the next request; no restart or rebuild is required. Thinkloom never overwrites existing user prompt files during startup or an update.
+1 -1
View File
@@ -88,7 +88,7 @@ See [PROMPTS.md](PROMPTS.md) for each file's effect, variables, editing workflow
The approved Thinkloom 1.0 provenance architecture is documented in the [Stage 1 normative provenance specification](docs/provenance/README.md). It defines the future single-writer subsystem, canonical records, segmented ledger, recovery protocol, retention policy, native verification, and release bindings.
This specification is a forward implementation contract. The current 0.2.0 provenance implementation must not be represented as already conforming to it.
Thinkloom 0.3.0 includes the formal Stage 2 schema package and deterministic verification vectors. The current native provenance writer must not be represented as conforming until the later implementation and fault-injection stages are complete.
## Provider setup
+4 -2
View File
@@ -1,9 +1,11 @@
# Thinkloom provenance specification
This directory contains the approved Stage 1 normative specification for the Thinkloom 1.0 provenance subsystem.
This directory contains the approved normative specification and formal Stage 2 contract for the Thinkloom 1.0 provenance subsystem.
- [Stage 1 Normative Specification](STAGE-1-NORMATIVE-SPECIFICATION.md)
- [State Machines and Recovery Protocols](STATE-MACHINES.md)
- [Stage 1 Completion Checklist](COMPLETION-CHECKLIST.md)
- [Stage 2 Completion and Verification](STAGE-2-SCHEMA-PACKAGE.md)
- [Stage 2 JSON Schema package](../../schemas/provenance/v1/README.md)
These documents govern future schema and implementation work. They do not describe the current 0.2.0 implementation as already compliant.
Thinkloom 0.3.0 includes the 38-schema Draft 2020-12 package, valid and invalid fixtures, and deterministic conformance vectors. The native writer does not yet implement this contract and must not be represented as conforming until the later implementation and fault-injection stages are complete.
@@ -11,7 +11,7 @@ This specification defines the authority, persistence, integrity, privacy, recov
It supersedes the provenance-specific transaction order, single-ledger layout, mutable-record assumptions, live-database snapshot method, and release-binding sequence in the earlier MVP architecture and implementation plans. It does not supersede their product requirements, native Tauri boundary, preview-first generation model, user-control requirements, accessibility requirements, or prohibition on retained audio.
The current Thinkloom 0.2.0 implementation is not represented as conforming to this specification. Conformance begins only after the Stage 2 schemas, fixtures, native implementation, and required fault-injection tests are complete.
Thinkloom 0.3.0 includes the formal Stage 2 schemas and verification vectors, but its native writer is not represented as conforming to this specification. Full conformance begins only after the native implementation and required fault-injection tests are complete.
## 2. Normative language
+57
View File
@@ -0,0 +1,57 @@
# Thinkloom Stage 2 Provenance Schema Package
Status: **Complete for Thinkloom 0.3.0**
Schema family: **1.0**
Dialect: **JSON Schema Draft 2020-12**
Runtime conformance: **Not yet implemented**
## Scope
Stage 2 formalizes the approved provenance architecture without changing native application behavior. It provides deterministic contracts and verification evidence for the later native-writer implementation. Migration support remains deferred until after Thinkloom 1.0.0.
## Package
The machine-readable package is in [`schemas/provenance/v1`](../../schemas/provenance/v1/README.md). `catalog.json` identifies all 38 schemas, the schema and application versions, compatibility, fixture locations, and the generator.
Each schema has:
- one valid canonical fixture;
- invalid cases for every top-level required field and the closed-object policy;
- populated nested cases for enum, const, pattern, numeric, string, and array bounds; and
- explicit conditional failures for protected records and recovery envelopes where ordinary keyword mutation is insufficient.
## Deterministic vectors
The vector suite covers:
- RFC 8785-compatible serialization after Thinkloom Unicode NFC preprocessing;
- prohibited non-finite, undefined, and NFC-colliding values;
- exact millisecond UTC timestamps and repository-relative path restrictions;
- LF-only canonical JSONL, contiguous events, event self-digests, and cross-segment seals;
- prompt-template, protected-record, event, and release self-digest identities;
- minimal and full-private retention behavior;
- device and recovery key envelopes plus key rotation;
- non-mutating sanitized exports and omission-rule disclosure;
- deterministic derived indexes;
- backup and release manifests plus the release-files Merkle root; and
- all verification statuses and finding severities.
## Verification
Regenerate deterministically:
```powershell
npm run provenance:schema:generate
```
Validate schemas, fixtures, and vectors:
```powershell
npm run provenance:schema:test
```
The schema tests are also part of `npm test`. Generated output must be committed with its generator and tests. A clean regeneration is required before changing any formal schema or vector.
## Next boundary
Thinkloom 0.3.0 must not claim native provenance conformance. The next implementation stage replaces the MVP persistence path with the approved single-writer protocol and then executes the durable-boundary fault-injection matrix.
+1 -1
View File
@@ -16,7 +16,7 @@ export default tseslint.config(
rules: { ...reactHooks.configs.recommended.rules },
},
{
files: ["tests/**/*.mjs"],
files: ["tests/**/*.mjs", "scripts/**/*.mjs"],
languageOptions: { globals: globals.node },
},
);
+107 -12
View File
@@ -1,12 +1,12 @@
{
"name": "thinkloom",
"version": "0.2.0",
"version": "0.3.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "thinkloom",
"version": "0.2.0",
"version": "0.3.0",
"license": "AGPL-3.0-only",
"dependencies": {
"@tiptap/markdown": "^3.28.0",
@@ -23,6 +23,8 @@
"@types/react": "19.2.14",
"@types/react-dom": "19.2.3",
"@vitejs/plugin-react": "6.0.2",
"ajv": "^8.17.1",
"ajv-formats": "^3.0.1",
"eslint": "9.39.4",
"eslint-plugin-react-hooks": "7.1.1",
"globals": "14.0.0",
@@ -415,6 +417,30 @@
"url": "https://opencollective.com/eslint"
}
},
"node_modules/@eslint/eslintrc/node_modules/ajv": {
"version": "6.15.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz",
"integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==",
"dev": true,
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"license": "MIT"
},
"node_modules/@eslint/js": {
"version": "9.39.4",
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.4.tgz",
@@ -1990,22 +2016,40 @@
}
},
"node_modules/ajv": {
"version": "6.15.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz",
"integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==",
"version": "8.17.1",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"dev": true,
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
"json-schema-traverse": "^1.0.0",
"require-from-string": "^2.0.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/ajv-formats": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
"integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"ajv": "^8.0.0"
},
"peerDependencies": {
"ajv": "^8.0.0"
},
"peerDependenciesMeta": {
"ajv": {
"optional": true
}
}
},
"node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -2372,6 +2416,30 @@
"url": "https://opencollective.com/eslint"
}
},
"node_modules/eslint/node_modules/ajv": {
"version": "6.15.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz",
"integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==",
"dev": true,
"license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/eslint/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true,
"license": "MIT"
},
"node_modules/espree": {
"version": "10.4.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
@@ -2466,6 +2534,23 @@
"dev": true,
"license": "MIT"
},
"node_modules/fast-uri": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.3.tgz",
"integrity": "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/fastify"
},
{
"type": "opencollective",
"url": "https://opencollective.com/fastify"
}
],
"license": "BSD-3-Clause"
},
"node_modules/file-entry-cache": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
@@ -2703,9 +2788,9 @@
"license": "MIT"
},
"node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
"dev": true,
"license": "MIT"
},
@@ -3162,6 +3247,16 @@
"react": "^19.2.6"
}
},
"node_modules/require-from-string": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+11 -5
View File
@@ -1,21 +1,25 @@
{
"name": "thinkloom",
"version": "0.2.0",
"version": "0.3.0",
"author": "Christopher Chambers",
"license": "AGPL-3.0-only",
"repository": "https://github.com/Labyricorn/thinkloom-openai-hackathon.git",
"homepage": "https://github.com/Labyricorn/thinkloom-openai-hackathon",
"private": true,
"type": "module",
"engines": { "node": ">=22.13.0" },
"engines": {
"node": ">=22.13.0"
},
"scripts": {
"dev": "vite --port 1420 --strictPort",
"build": "npm run typecheck && vite build",
"preview": "vite preview",
"typecheck": "tsc --noEmit",
"lint": "eslint src tests vite.config.ts",
"test": "npm run typecheck && node tests/native-app.test.mjs",
"tauri": "tauri"
"lint": "eslint src tests scripts vite.config.ts",
"test": "npm run typecheck && node tests/native-app.test.mjs && npm run provenance:schema:test",
"tauri": "tauri",
"provenance:schema:generate": "node scripts/generate-provenance-stage2.mjs",
"provenance:schema:test": "node tests/provenance-schema.test.mjs"
},
"dependencies": {
"@tiptap/markdown": "^3.28.0",
@@ -32,6 +36,8 @@
"@types/react": "19.2.14",
"@types/react-dom": "19.2.3",
"@vitejs/plugin-react": "6.0.2",
"ajv": "^8.17.1",
"ajv-formats": "^3.0.1",
"eslint": "9.39.4",
"eslint-plugin-react-hooks": "7.1.1",
"globals": "14.0.0",
+11
View File
@@ -0,0 +1,11 @@
# Thinkloom provenance schemas 1.0
This generated package is the formal Stage 2 contract for the approved provenance architecture. It targets JSON Schema Draft 2020-12 and ships with 38 schemas, valid fixtures, invalid fixture suites, and deterministic verification vectors.
- `catalog.json` is the machine-readable inventory.
- `*.schema.json` are the formal contracts.
- `fixtures/valid` contains one canonical valid instance per schema.
- `fixtures/invalid` covers required fields, closed-object policy, and populated enum, pattern, and numeric/string/array bounds.
- `vectors` fixes canonicalization, timestamps, paths, JSONL, event and segment chains, self-digests, protected records, key rotation and recovery, retention policy, sanitized export, deterministic indexes, verification reports, backups, and release-Merkle behavior.
Regenerate with `npm run provenance:schema:generate`. Verify with `npm run provenance:schema:test`. Generated files must be committed together with generator and vector changes. Runtime adoption is a later implementation stage; presence of this package does not imply the current native writer already conforms.
@@ -0,0 +1,150 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/backup-manifest.schema.json",
"title": "Project backup manifest",
"description": "Complete staged-backup inventory including a verified online SQLite snapshot.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"application_version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"project_id": {
"type": "string",
"pattern": "^project_[0-9A-HJKMNP-TV-Z]{26}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
},
"source_chain_head": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"sqlite_snapshot": {
"type": "object",
"properties": {
"path": {
"type": "string",
"minLength": 1,
"pattern": "^(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.\\.?(?:/|$))[^\\u0000-\\u001f]+$"
},
"sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"size": {
"type": "integer",
"minimum": 1
},
"sqlite_version": {
"type": "string",
"minLength": 1
},
"database_schema_version": {
"type": "integer",
"minimum": 1
},
"completed_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
}
},
"required": [
"path",
"sha256",
"size",
"sqlite_version",
"database_schema_version",
"completed_at"
],
"additionalProperties": false
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string",
"minLength": 1,
"pattern": "^(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.\\.?(?:/|$))[^\\u0000-\\u001f]+$"
},
"sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"size": {
"type": "integer",
"minimum": 0
}
},
"required": [
"path",
"sha256",
"size"
],
"additionalProperties": false
},
"minItems": 1
},
"protected": {
"type": "boolean"
},
"recovery_key_envelope_path": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"pattern": "^(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.\\.?(?:/|$))[^\\u0000-\\u001f]+$"
},
{
"type": "null"
}
]
}
},
"required": [
"schema_version",
"application_version",
"project_id",
"created_at",
"source_chain_head",
"sqlite_snapshot",
"files",
"protected",
"recovery_key_envelope_path"
],
"additionalProperties": false,
"examples": [
{
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
]
}
+280
View File
@@ -0,0 +1,280 @@
{
"catalog_version": "1.0",
"dialect": "https://json-schema.org/draft/2020-12/schema",
"provenance_schema_version": "1.0",
"application_version": "0.3.0",
"compatible_application_versions": [
"0.3.0"
],
"native_writer_conformance": false,
"normative_specification": "../../../docs/provenance/STAGE-1-NORMATIVE-SPECIFICATION.md",
"generated_by": "scripts/generate-provenance-stage2.mjs",
"schemas": [
{
"name": "backup-manifest",
"id": "https://thinkloom.app/schemas/provenance/1.0/backup-manifest.schema.json",
"file": "backup-manifest.schema.json",
"valid_fixture": "fixtures/valid/backup-manifest.valid.json",
"invalid_fixture": "fixtures/invalid/backup-manifest.invalid.json"
},
{
"name": "chain-head",
"id": "https://thinkloom.app/schemas/provenance/1.0/chain-head.schema.json",
"file": "chain-head.schema.json",
"valid_fixture": "fixtures/valid/chain-head.valid.json",
"invalid_fixture": "fixtures/invalid/chain-head.invalid.json"
},
{
"name": "content-reference",
"id": "https://thinkloom.app/schemas/provenance/1.0/content-reference.schema.json",
"file": "content-reference.schema.json",
"valid_fixture": "fixtures/valid/content-reference.valid.json",
"invalid_fixture": "fixtures/invalid/content-reference.invalid.json"
},
{
"name": "conversation-session",
"id": "https://thinkloom.app/schemas/provenance/1.0/conversation-session.schema.json",
"file": "conversation-session.schema.json",
"valid_fixture": "fixtures/valid/conversation-session.valid.json",
"invalid_fixture": "fixtures/invalid/conversation-session.invalid.json"
},
{
"name": "derived-index-manifest",
"id": "https://thinkloom.app/schemas/provenance/1.0/derived-index-manifest.schema.json",
"file": "derived-index-manifest.schema.json",
"valid_fixture": "fixtures/valid/derived-index-manifest.valid.json",
"invalid_fixture": "fixtures/invalid/derived-index-manifest.invalid.json"
},
{
"name": "disposition-revision",
"id": "https://thinkloom.app/schemas/provenance/1.0/disposition-revision.schema.json",
"file": "disposition-revision.schema.json",
"valid_fixture": "fixtures/valid/disposition-revision.valid.json",
"invalid_fixture": "fixtures/invalid/disposition-revision.invalid.json"
},
{
"name": "edit-transaction",
"id": "https://thinkloom.app/schemas/provenance/1.0/edit-transaction.schema.json",
"file": "edit-transaction.schema.json",
"valid_fixture": "fixtures/valid/edit-transaction.valid.json",
"invalid_fixture": "fixtures/invalid/edit-transaction.invalid.json"
},
{
"name": "encrypted-key-envelope",
"id": "https://thinkloom.app/schemas/provenance/1.0/encrypted-key-envelope.schema.json",
"file": "encrypted-key-envelope.schema.json",
"valid_fixture": "fixtures/valid/encrypted-key-envelope.valid.json",
"invalid_fixture": "fixtures/invalid/encrypted-key-envelope.invalid.json"
},
{
"name": "idea",
"id": "https://thinkloom.app/schemas/provenance/1.0/idea.schema.json",
"file": "idea.schema.json",
"valid_fixture": "fixtures/valid/idea.valid.json",
"invalid_fixture": "fixtures/invalid/idea.invalid.json"
},
{
"name": "idea-revision",
"id": "https://thinkloom.app/schemas/provenance/1.0/idea-revision.schema.json",
"file": "idea-revision.schema.json",
"valid_fixture": "fixtures/valid/idea-revision.valid.json",
"invalid_fixture": "fixtures/invalid/idea-revision.invalid.json"
},
{
"name": "invocation-failure",
"id": "https://thinkloom.app/schemas/provenance/1.0/invocation-failure.schema.json",
"file": "invocation-failure.schema.json",
"valid_fixture": "fixtures/valid/invocation-failure.valid.json",
"invalid_fixture": "fixtures/invalid/invocation-failure.invalid.json"
},
{
"name": "invocation-request",
"id": "https://thinkloom.app/schemas/provenance/1.0/invocation-request.schema.json",
"file": "invocation-request.schema.json",
"valid_fixture": "fixtures/valid/invocation-request.valid.json",
"invalid_fixture": "fixtures/invalid/invocation-request.invalid.json"
},
{
"name": "invocation-response",
"id": "https://thinkloom.app/schemas/provenance/1.0/invocation-response.schema.json",
"file": "invocation-response.schema.json",
"valid_fixture": "fixtures/valid/invocation-response.valid.json",
"invalid_fixture": "fixtures/invalid/invocation-response.invalid.json"
},
{
"name": "invocation-state",
"id": "https://thinkloom.app/schemas/provenance/1.0/invocation-state.schema.json",
"file": "invocation-state.schema.json",
"valid_fixture": "fixtures/valid/invocation-state.valid.json",
"invalid_fixture": "fixtures/invalid/invocation-state.invalid.json"
},
{
"name": "invocation-stream-state",
"id": "https://thinkloom.app/schemas/provenance/1.0/invocation-stream-state.schema.json",
"file": "invocation-stream-state.schema.json",
"valid_fixture": "fixtures/valid/invocation-stream-state.valid.json",
"invalid_fixture": "fixtures/invalid/invocation-stream-state.invalid.json"
},
{
"name": "invocation-stream-summary",
"id": "https://thinkloom.app/schemas/provenance/1.0/invocation-stream-summary.schema.json",
"file": "invocation-stream-summary.schema.json",
"valid_fixture": "fixtures/valid/invocation-stream-summary.valid.json",
"invalid_fixture": "fixtures/invalid/invocation-stream-summary.invalid.json"
},
{
"name": "ledger-segment-manifest",
"id": "https://thinkloom.app/schemas/provenance/1.0/ledger-segment-manifest.schema.json",
"file": "ledger-segment-manifest.schema.json",
"valid_fixture": "fixtures/valid/ledger-segment-manifest.valid.json",
"invalid_fixture": "fixtures/invalid/ledger-segment-manifest.invalid.json"
},
{
"name": "manuscript-revision",
"id": "https://thinkloom.app/schemas/provenance/1.0/manuscript-revision.schema.json",
"file": "manuscript-revision.schema.json",
"valid_fixture": "fixtures/valid/manuscript-revision.valid.json",
"invalid_fixture": "fixtures/invalid/manuscript-revision.invalid.json"
},
{
"name": "model-capability-snapshot",
"id": "https://thinkloom.app/schemas/provenance/1.0/model-capability-snapshot.schema.json",
"file": "model-capability-snapshot.schema.json",
"valid_fixture": "fixtures/valid/model-capability-snapshot.valid.json",
"invalid_fixture": "fixtures/invalid/model-capability-snapshot.invalid.json"
},
{
"name": "model-configuration-snapshot",
"id": "https://thinkloom.app/schemas/provenance/1.0/model-configuration-snapshot.schema.json",
"file": "model-configuration-snapshot.schema.json",
"valid_fixture": "fixtures/valid/model-configuration-snapshot.valid.json",
"invalid_fixture": "fixtures/invalid/model-configuration-snapshot.invalid.json"
},
{
"name": "project-key-manifest",
"id": "https://thinkloom.app/schemas/provenance/1.0/project-key-manifest.schema.json",
"file": "project-key-manifest.schema.json",
"valid_fixture": "fixtures/valid/project-key-manifest.valid.json",
"invalid_fixture": "fixtures/invalid/project-key-manifest.invalid.json"
},
{
"name": "project-manifest",
"id": "https://thinkloom.app/schemas/provenance/1.0/project-manifest.schema.json",
"file": "project-manifest.schema.json",
"valid_fixture": "fixtures/valid/project-manifest.valid.json",
"invalid_fixture": "fixtures/invalid/project-manifest.invalid.json"
},
{
"name": "prompt-template",
"id": "https://thinkloom.app/schemas/provenance/1.0/prompt-template.schema.json",
"file": "prompt-template.schema.json",
"valid_fixture": "fixtures/valid/prompt-template.valid.json",
"invalid_fixture": "fixtures/invalid/prompt-template.invalid.json"
},
{
"name": "prompt-template-reference",
"id": "https://thinkloom.app/schemas/provenance/1.0/prompt-template-reference.schema.json",
"file": "prompt-template-reference.schema.json",
"valid_fixture": "fixtures/valid/prompt-template-reference.valid.json",
"invalid_fixture": "fixtures/invalid/prompt-template-reference.invalid.json"
},
{
"name": "provenance-event",
"id": "https://thinkloom.app/schemas/provenance/1.0/provenance-event.schema.json",
"file": "provenance-event.schema.json",
"valid_fixture": "fixtures/valid/provenance-event.valid.json",
"invalid_fixture": "fixtures/invalid/provenance-event.invalid.json"
},
{
"name": "provenance-policy",
"id": "https://thinkloom.app/schemas/provenance/1.0/provenance-policy.schema.json",
"file": "provenance-policy.schema.json",
"valid_fixture": "fixtures/valid/provenance-policy.valid.json",
"invalid_fixture": "fixtures/invalid/provenance-policy.invalid.json"
},
{
"name": "purge-manifest",
"id": "https://thinkloom.app/schemas/provenance/1.0/purge-manifest.schema.json",
"file": "purge-manifest.schema.json",
"valid_fixture": "fixtures/valid/purge-manifest.valid.json",
"invalid_fixture": "fixtures/invalid/purge-manifest.invalid.json"
},
{
"name": "record-envelope",
"id": "https://thinkloom.app/schemas/provenance/1.0/record-envelope.schema.json",
"file": "record-envelope.schema.json",
"valid_fixture": "fixtures/valid/record-envelope.valid.json",
"invalid_fixture": "fixtures/invalid/record-envelope.invalid.json"
},
{
"name": "recovery-key-envelope",
"id": "https://thinkloom.app/schemas/provenance/1.0/recovery-key-envelope.schema.json",
"file": "recovery-key-envelope.schema.json",
"valid_fixture": "fixtures/valid/recovery-key-envelope.valid.json",
"invalid_fixture": "fixtures/invalid/recovery-key-envelope.invalid.json"
},
{
"name": "release-manifest",
"id": "https://thinkloom.app/schemas/provenance/1.0/release-manifest.schema.json",
"file": "release-manifest.schema.json",
"valid_fixture": "fixtures/valid/release-manifest.valid.json",
"invalid_fixture": "fixtures/invalid/release-manifest.invalid.json"
},
{
"name": "release-state",
"id": "https://thinkloom.app/schemas/provenance/1.0/release-state.schema.json",
"file": "release-state.schema.json",
"valid_fixture": "fixtures/valid/release-state.valid.json",
"invalid_fixture": "fixtures/invalid/release-state.invalid.json"
},
{
"name": "sanitized-export-manifest",
"id": "https://thinkloom.app/schemas/provenance/1.0/sanitized-export-manifest.schema.json",
"file": "sanitized-export-manifest.schema.json",
"valid_fixture": "fixtures/valid/sanitized-export-manifest.valid.json",
"invalid_fixture": "fixtures/invalid/sanitized-export-manifest.invalid.json"
},
{
"name": "text-fragment-reference",
"id": "https://thinkloom.app/schemas/provenance/1.0/text-fragment-reference.schema.json",
"file": "text-fragment-reference.schema.json",
"valid_fixture": "fixtures/valid/text-fragment-reference.valid.json",
"invalid_fixture": "fixtures/invalid/text-fragment-reference.invalid.json"
},
{
"name": "transcript-correction",
"id": "https://thinkloom.app/schemas/provenance/1.0/transcript-correction.schema.json",
"file": "transcript-correction.schema.json",
"valid_fixture": "fixtures/valid/transcript-correction.valid.json",
"invalid_fixture": "fixtures/invalid/transcript-correction.invalid.json"
},
{
"name": "transcript-normalization",
"id": "https://thinkloom.app/schemas/provenance/1.0/transcript-normalization.schema.json",
"file": "transcript-normalization.schema.json",
"valid_fixture": "fixtures/valid/transcript-normalization.valid.json",
"invalid_fixture": "fixtures/invalid/transcript-normalization.invalid.json"
},
{
"name": "transcript-turn",
"id": "https://thinkloom.app/schemas/provenance/1.0/transcript-turn.schema.json",
"file": "transcript-turn.schema.json",
"valid_fixture": "fixtures/valid/transcript-turn.valid.json",
"invalid_fixture": "fixtures/invalid/transcript-turn.invalid.json"
},
{
"name": "verification-report",
"id": "https://thinkloom.app/schemas/provenance/1.0/verification-report.schema.json",
"file": "verification-report.schema.json",
"valid_fixture": "fixtures/valid/verification-report.valid.json",
"invalid_fixture": "fixtures/invalid/verification-report.invalid.json"
},
{
"name": "write-intent",
"id": "https://thinkloom.app/schemas/provenance/1.0/write-intent.schema.json",
"file": "write-intent.schema.json",
"valid_fixture": "fixtures/valid/write-intent.valid.json",
"invalid_fixture": "fixtures/invalid/write-intent.invalid.json"
}
]
}
@@ -0,0 +1,58 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/chain-head.schema.json",
"title": "Chain head",
"description": "Durable pointer to the last committed provenance event.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"project_id": {
"type": "string",
"pattern": "^project_[0-9A-HJKMNP-TV-Z]{26}$"
},
"active_segment_number": {
"type": "integer",
"minimum": 1
},
"event_id": {
"type": "string",
"pattern": "^event_[0-9A-HJKMNP-TV-Z]{26}$"
},
"event_sequence": {
"type": "integer",
"minimum": 1
},
"event_hash": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
}
},
"required": [
"schema_version",
"project_id",
"active_segment_number",
"event_id",
"event_sequence",
"event_hash",
"updated_at"
],
"additionalProperties": false,
"examples": [
{
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
]
}
@@ -0,0 +1,98 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/content-reference.schema.json",
"title": "Content reference",
"description": "Content-addressed link to an authoritative record or revision.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"record_id": {
"type": "string",
"pattern": "^record_[0-9A-HJKMNP-TV-Z]{26}$"
},
"record_type": {
"enum": [
"conversation_turn",
"invocation_request",
"invocation_response",
"invocation_failure",
"idea_revision",
"manuscript_revision",
"edit_transaction",
"prompt_template",
"model_configuration",
"release_file",
"source",
"other"
]
},
"sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"path": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"pattern": "^(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.\\.?(?:/|$))[^\\u0000-\\u001f]+$"
},
{
"type": "null"
}
]
},
"revision_id": {
"anyOf": [
{
"type": "string",
"pattern": "^revision_[0-9A-HJKMNP-TV-Z]{26}$"
},
{
"type": "null"
}
]
},
"range": {
"anyOf": [
{
"$ref": "https://thinkloom.app/schemas/provenance/1.0/text-fragment-reference.schema.json"
},
{
"type": "null"
}
]
}
},
"required": [
"schema_version",
"record_id",
"record_type",
"sha256",
"path",
"revision_id",
"range"
],
"additionalProperties": false,
"examples": [
{
"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"
}
}
]
}
@@ -0,0 +1,87 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/conversation-session.schema.json",
"title": "Conversation session",
"description": "Canonical conversation-session metadata without audio retention.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"session_id": {
"type": "string",
"pattern": "^session_[0-9A-HJKMNP-TV-Z]{26}$"
},
"project_id": {
"type": "string",
"pattern": "^project_[0-9A-HJKMNP-TV-Z]{26}$"
},
"title": {
"type": "string"
},
"mode": {
"enum": [
"typed",
"voice",
"mixed"
]
},
"started_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
},
"ended_at": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
},
{
"type": "null"
}
]
},
"turn_count": {
"type": "integer",
"minimum": 0
},
"audio_retained": {
"const": false
},
"retention_mode": {
"enum": [
"minimal",
"full_private"
]
}
},
"required": [
"schema_version",
"session_id",
"project_id",
"title",
"mode",
"started_at",
"ended_at",
"turn_count",
"audio_retained",
"retention_mode"
],
"additionalProperties": false,
"examples": [
{
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
]
}
@@ -0,0 +1,85 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/derived-index-manifest.schema.json",
"title": "Derived index manifest",
"description": "Non-authoritative reproducibility metadata for a derived index.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"index_type": {
"enum": [
"content_index",
"contribution_graph",
"manuscript_lineage",
"checkpoint_index"
]
},
"source_chain_head": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"source_event_count": {
"type": "integer",
"minimum": 0
},
"generator": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"version": {
"type": "string",
"pattern": "^\\d+\\.\\d+\\.\\d+$"
},
"configuration_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
}
},
"required": [
"name",
"version",
"configuration_sha256"
],
"additionalProperties": false
},
"content_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"generated_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
}
},
"required": [
"schema_version",
"index_type",
"source_chain_head",
"source_event_count",
"generator",
"content_sha256",
"generated_at"
],
"additionalProperties": false,
"examples": [
{
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
]
}
@@ -0,0 +1,154 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/disposition-revision.schema.json",
"title": "Invocation disposition revision",
"description": "Immutable ordered record of user action on one model result.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"disposition_id": {
"type": "string",
"pattern": "^disposition_[0-9A-HJKMNP-TV-Z]{26}$"
},
"invocation_id": {
"type": "string",
"pattern": "^invocation_[0-9A-HJKMNP-TV-Z]{26}$"
},
"revision_number": {
"type": "integer",
"minimum": 1
},
"status": {
"enum": [
"staged",
"accepted",
"partially_accepted",
"rejected",
"discarded"
]
},
"accepted_ranges": {
"type": "array",
"items": {
"$ref": "https://thinkloom.app/schemas/provenance/1.0/text-fragment-reference.schema.json"
}
},
"rejected_ranges": {
"type": "array",
"items": {
"$ref": "https://thinkloom.app/schemas/provenance/1.0/text-fragment-reference.schema.json"
}
},
"destination": {
"anyOf": [
{
"type": "object",
"properties": {
"revision_id": {
"type": "string",
"pattern": "^revision_[0-9A-HJKMNP-TV-Z]{26}$"
},
"path": {
"type": "string",
"minLength": 1,
"pattern": "^(?!/)(?![A-Za-z]:)(?!.*\\\\)(?!.*(?:^|/)\\.\\.?(?:/|$))[^\\u0000-\\u001f]+$"
},
"operation": {
"enum": [
"insert",
"replace",
"append",
"new_section"
]
},
"position": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
]
}
},
"required": [
"revision_id",
"path",
"operation",
"position"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"stale_context_resolution": {
"enum": [
"not_stale",
"revalidated",
"rebased",
"explicitly_confirmed",
"rejected"
]
},
"decided_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
},
"event_id": {
"type": "string",
"pattern": "^event_[0-9A-HJKMNP-TV-Z]{26}$"
}
},
"required": [
"schema_version",
"disposition_id",
"invocation_id",
"revision_number",
"status",
"accepted_ranges",
"rejected_ranges",
"destination",
"stale_context_resolution",
"decided_at",
"event_id"
],
"additionalProperties": false,
"examples": [
{
"schema_version": "1.0",
"disposition_id": "disposition_01J0000000000000000000000M",
"invocation_id": "invocation_01J00000000000000000000008",
"revision_number": 1,
"status": "partially_accepted",
"accepted_ranges": [
{
"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"
}
],
"rejected_ranges": [],
"destination": {
"revision_id": "revision_01J0000000000000000000000B",
"path": "manuscript/revisions/revision.md",
"operation": "insert",
"position": 0
},
"stale_context_resolution": "revalidated",
"decided_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
]
}
@@ -0,0 +1,150 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/edit-transaction.schema.json",
"title": "Manuscript edit transaction",
"description": "Meaningful coalesced manual or acceptance-driven edit transaction.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"transaction_id": {
"type": "string",
"pattern": "^transaction_[0-9A-HJKMNP-TV-Z]{26}$"
},
"project_id": {
"type": "string",
"pattern": "^project_[0-9A-HJKMNP-TV-Z]{26}$"
},
"base_revision_id": {
"type": "string",
"pattern": "^revision_[0-9A-HJKMNP-TV-Z]{26}$"
},
"result_revision_id": {
"type": "string",
"pattern": "^revision_[0-9A-HJKMNP-TV-Z]{26}$"
},
"started_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
},
"ended_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
},
"operations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"operation_type": {
"enum": [
"insert",
"delete",
"replace",
"move",
"format"
]
},
"source_range": {
"anyOf": [
{
"$ref": "https://thinkloom.app/schemas/provenance/1.0/text-fragment-reference.schema.json"
},
{
"type": "null"
}
]
},
"destination_position": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
]
},
"inserted_text_sha256": {
"anyOf": [
{
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
{
"type": "null"
}
]
},
"result_fragment_id": {
"anyOf": [
{
"type": "string",
"pattern": "^fragment_[0-9A-HJKMNP-TV-Z]{26}$"
},
{
"type": "null"
}
]
}
},
"required": [
"operation_type",
"source_range",
"destination_position",
"inserted_text_sha256",
"result_fragment_id"
],
"additionalProperties": false
},
"minItems": 1
},
"preimage_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"result_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
}
},
"required": [
"schema_version",
"transaction_id",
"project_id",
"base_revision_id",
"result_revision_id",
"started_at",
"ended_at",
"operations",
"preimage_sha256",
"result_sha256"
],
"additionalProperties": false,
"examples": [
{
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
]
}
@@ -0,0 +1,114 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/encrypted-key-envelope.schema.json",
"title": "Encrypted key envelope",
"description": "Authenticated envelope wrapping a project data-encryption key.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"envelope_id": {
"type": "string",
"pattern": "^record_[0-9A-HJKMNP-TV-Z]{26}$"
},
"key_id": {
"type": "string",
"pattern": "^key_[0-9A-HJKMNP-TV-Z]{26}$"
},
"envelope_type": {
"enum": [
"device",
"recovery"
]
},
"algorithm": {
"enum": [
"xchacha20-poly1305"
]
},
"key_derivation": {
"anyOf": [
{
"type": "object",
"properties": {
"algorithm": {
"const": "argon2id"
},
"memory_kib": {
"type": "integer",
"minimum": 65536
},
"iterations": {
"type": "integer",
"minimum": 1
},
"parallelism": {
"type": "integer",
"minimum": 1
},
"salt": {
"type": "string",
"minLength": 16
}
},
"required": [
"algorithm",
"memory_kib",
"iterations",
"parallelism",
"salt"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"nonce": {
"type": "string",
"minLength": 32
},
"wrapped_key": {
"type": "string",
"minLength": 16
},
"ciphertext_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
}
},
"required": [
"schema_version",
"envelope_id",
"key_id",
"envelope_type",
"algorithm",
"key_derivation",
"nonce",
"wrapped_key",
"ciphertext_sha256",
"created_at"
],
"additionalProperties": false,
"examples": [
{
"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"
}
]
}
@@ -0,0 +1,997 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/backup-manifest.schema.json",
"cases": [
{
"description": "backup-manifest.schema_version: reject missing required property",
"instance": {
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"created_at": "2026-07-17T18:42:10.123Z",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
},
{
"description": "backup-manifest.application_version: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"created_at": "2026-07-17T18:42:10.123Z",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
},
{
"description": "backup-manifest.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"created_at": "2026-07-17T18:42:10.123Z",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
},
{
"description": "backup-manifest.created_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
},
{
"description": "backup-manifest.source_chain_head: reject missing required property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"created_at": "2026-07-17T18:42:10.123Z",
"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
}
},
{
"description": "backup-manifest.sqlite_snapshot: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"files": [
{
"path": "project.json",
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"size": 256
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.files: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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"
},
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.protected: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
],
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.recovery_key_envelope_path: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
},
{
"description": "backup-manifest: reject unexpected property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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,
"__unexpected": true
}
},
{
"description": "backup-manifest.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"created_at": "2026-07-17T18:42:10.123Z",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
},
{
"description": "backup-manifest.application_version: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"application_version": " invalid!",
"project_id": "project_01J00000000000000000000001",
"created_at": "2026-07-17T18:42:10.123Z",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
},
{
"description": "backup-manifest.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "invalid-id",
"created_at": "2026-07-17T18:42:10.123Z",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
},
{
"description": "backup-manifest.created_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"created_at": "not-a-timestamp",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
},
{
"description": "backup-manifest.source_chain_head: reject pattern mismatch",
"instance": {
"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:INVALID",
"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
}
},
{
"description": "backup-manifest.sqlite_snapshot.path: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"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
}
},
{
"description": "backup-manifest.sqlite_snapshot.sha256: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "database-snapshot/state.sqlite",
"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
}
},
{
"description": "backup-manifest.sqlite_snapshot.size: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "database-snapshot/state.sqlite",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"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
}
},
{
"description": "backup-manifest.sqlite_snapshot.sqlite_version: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "database-snapshot/state.sqlite",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"size": 4096,
"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
}
},
{
"description": "backup-manifest.sqlite_snapshot.database_schema_version: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "database-snapshot/state.sqlite",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"size": 4096,
"sqlite_version": "3.46.0",
"completed_at": "2026-07-17T18:42:10.123Z"
},
"files": [
{
"path": "project.json",
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"size": 256
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.sqlite_snapshot.completed_at: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "database-snapshot/state.sqlite",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"size": 4096,
"sqlite_version": "3.46.0",
"database_schema_version": 1
},
"files": [
{
"path": "project.json",
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"size": 256
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.sqlite_snapshot: reject unexpected property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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",
"__unexpected": true
},
"files": [
{
"path": "project.json",
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"size": 256
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.sqlite_snapshot.path: reject pattern mismatch",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "../outside-project",
"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
}
},
{
"description": "backup-manifest.sqlite_snapshot.path: reject string below minLength",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "",
"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
}
},
{
"description": "backup-manifest.sqlite_snapshot.sha256: reject pattern mismatch",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "database-snapshot/state.sqlite",
"sha256": "sha256:INVALID",
"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
}
},
{
"description": "backup-manifest.sqlite_snapshot.size: reject value below minimum",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "database-snapshot/state.sqlite",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"size": 0,
"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
}
},
{
"description": "backup-manifest.sqlite_snapshot.sqlite_version: reject string below minLength",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "database-snapshot/state.sqlite",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"size": 4096,
"sqlite_version": "",
"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
}
},
{
"description": "backup-manifest.sqlite_snapshot.database_schema_version: reject value below minimum",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "database-snapshot/state.sqlite",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"size": 4096,
"sqlite_version": "3.46.0",
"database_schema_version": 0,
"completed_at": "2026-07-17T18:42:10.123Z"
},
"files": [
{
"path": "project.json",
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"size": 256
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.sqlite_snapshot.completed_at: reject pattern mismatch",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"sqlite_snapshot": {
"path": "database-snapshot/state.sqlite",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"size": 4096,
"sqlite_version": "3.46.0",
"database_schema_version": 1,
"completed_at": "not-a-timestamp"
},
"files": [
{
"path": "project.json",
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"size": 256
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.files: reject array below minItems",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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": [],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.files[0].path: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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": [
{
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"size": 256
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.files[0].sha256: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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",
"size": 256
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.files[0].size: reject missing required property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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"
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.files[0]: reject unexpected property",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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,
"__unexpected": true
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.files[0].path: reject pattern mismatch",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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": "../outside-project",
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"size": 256
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.files[0].path: reject string below minLength",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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": "",
"sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"size": 256
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.files[0].sha256: reject pattern mismatch",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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:INVALID",
"size": 256
}
],
"protected": false,
"recovery_key_envelope_path": null
}
},
{
"description": "backup-manifest.files[0].size: reject value below minimum",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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": -1
}
],
"protected": false,
"recovery_key_envelope_path": null
}
}
]
}
@@ -0,0 +1,179 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/chain-head.schema.json",
"cases": [
{
"description": "chain-head.schema_version: reject missing required property",
"instance": {
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.active_segment_number: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.event_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.event_sequence: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.event_hash: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.updated_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
}
},
{
"description": "chain-head: reject unexpected property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z",
"__unexpected": true
}
},
{
"description": "chain-head.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "invalid-id",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.active_segment_number: reject value below minimum",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 0,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.event_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "invalid-id",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.event_sequence: reject value below minimum",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 0,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.event_hash: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:INVALID",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "chain-head.updated_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,585 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/content-reference.schema.json",
"cases": [
{
"description": "content-reference.schema_version: reject missing required property",
"instance": {
"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"
}
}
},
{
"description": "content-reference.record_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"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"
}
}
},
{
"description": "content-reference.record_type: reject missing required property",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"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"
}
}
},
{
"description": "content-reference.sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"record_type": "manuscript_revision",
"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"
}
}
},
{
"description": "content-reference.path: reject missing required property",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"record_type": "manuscript_revision",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"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"
}
}
},
{
"description": "content-reference.revision_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"record_type": "manuscript_revision",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"path": "manuscript/revisions/revision.json",
"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"
}
}
},
{
"description": "content-reference.range: reject missing required property",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"record_type": "manuscript_revision",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"path": "manuscript/revisions/revision.json",
"revision_id": "revision_01J0000000000000000000000A"
}
},
{
"description": "content-reference: reject unexpected property",
"instance": {
"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"
},
"__unexpected": true
}
},
{
"description": "content-reference.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"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"
}
}
},
{
"description": "content-reference.record_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"record_id": "invalid-id",
"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"
}
}
},
{
"description": "content-reference.record_type: reject value outside enum",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"record_type": "__INVALID_ENUM__",
"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"
}
}
},
{
"description": "content-reference.sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"record_type": "manuscript_revision",
"sha256": "sha256:INVALID",
"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"
}
}
},
{
"description": "content-reference.path: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"record_type": "manuscript_revision",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"path": "../outside-project",
"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"
}
}
},
{
"description": "content-reference.path: reject string below minLength",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"record_type": "manuscript_revision",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"path": "",
"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"
}
}
},
{
"description": "content-reference.revision_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"record_type": "manuscript_revision",
"sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"path": "manuscript/revisions/revision.json",
"revision_id": "invalid-id",
"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"
}
}
},
{
"description": "content-reference.range.schema_version: reject missing required property",
"instance": {
"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": {
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.document_revision_id: reject missing required property",
"instance": {
"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",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.coordinate_system: reject missing required property",
"instance": {
"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",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.start: reject missing required property",
"instance": {
"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",
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.end: reject missing required property",
"instance": {
"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,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.preimage_sha256: reject missing required property",
"instance": {
"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,
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.text_fragment_id: reject missing required property",
"instance": {
"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"
}
}
},
{
"description": "content-reference.range: reject unexpected property",
"instance": {
"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",
"__unexpected": true
}
}
},
{
"description": "content-reference.range.schema_version: reject value different from const",
"instance": {
"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": "__INVALID_CONST__",
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.document_revision_id: reject pattern mismatch",
"instance": {
"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": "invalid-id",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.coordinate_system: reject value outside enum",
"instance": {
"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": "__INVALID_ENUM__",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.start: reject value below minimum",
"instance": {
"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": -1,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.end: reject value below minimum",
"instance": {
"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": -1,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.preimage_sha256: reject pattern mismatch",
"instance": {
"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:INVALID",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
}
},
{
"description": "content-reference.range.text_fragment_id: reject pattern mismatch",
"instance": {
"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": "invalid-id"
}
}
}
]
}
@@ -0,0 +1,296 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/conversation-session.schema.json",
"cases": [
{
"description": "conversation-session.schema_version: reject missing required property",
"instance": {
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.session_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.title: reject missing required property",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.mode: reject missing required property",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.started_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.ended_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.turn_count: reject missing required property",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.audio_retained: reject missing required property",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.retention_mode: reject missing required property",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false
}
},
{
"description": "conversation-session: reject unexpected property",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal",
"__unexpected": true
}
},
{
"description": "conversation-session.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.session_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"session_id": "invalid-id",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "invalid-id",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.mode: reject value outside enum",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "__INVALID_ENUM__",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.started_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "not-a-timestamp",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.ended_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "not-a-timestamp",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.turn_count: reject value below minimum",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": -1,
"audio_retained": false,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.audio_retained: reject value different from const",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": true,
"retention_mode": "minimal"
}
},
{
"description": "conversation-session.retention_mode: reject value outside enum",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "__INVALID_ENUM__"
}
}
]
}
@@ -0,0 +1,329 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/derived-index-manifest.schema.json",
"cases": [
{
"description": "derived-index-manifest.schema_version: reject missing required property",
"instance": {
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.index_type: reject missing required property",
"instance": {
"schema_version": "1.0",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.source_chain_head: reject missing required property",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.source_event_count: reject missing required property",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.generator: reject missing required property",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.content_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.generated_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
}
},
{
"description": "derived-index-manifest: reject unexpected property",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z",
"__unexpected": true
}
},
{
"description": "derived-index-manifest.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.index_type: reject value outside enum",
"instance": {
"schema_version": "1.0",
"index_type": "__INVALID_ENUM__",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.source_chain_head: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:INVALID",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.source_event_count: reject value below minimum",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": -1,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.generator.name: reject missing required property",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.generator.version: reject missing required property",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.generator.configuration_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.generator: reject unexpected property",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
"__unexpected": true
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.generator.name: reject string below minLength",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.generator.version: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": " invalid!",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.generator.configuration_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:INVALID"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.content_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:INVALID",
"generated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "derived-index-manifest.generated_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "not-a-timestamp"
}
}
]
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,689 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/edit-transaction.schema.json",
"cases": [
{
"description": "edit-transaction.schema_version: reject missing required property",
"instance": {
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.transaction_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.base_revision_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.result_revision_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.started_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.ended_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.preimage_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.result_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
}
},
{
"description": "edit-transaction: reject unexpected property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"__unexpected": true
}
},
{
"description": "edit-transaction.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.transaction_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"transaction_id": "invalid-id",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "invalid-id",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.base_revision_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "invalid-id",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.result_revision_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "invalid-id",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.started_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "not-a-timestamp",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.ended_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "not-a-timestamp",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations: reject array below minItems",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations[0].operation_type: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations[0].source_range: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations[0].destination_position: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations[0].inserted_text_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations[0].result_fragment_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations[0]: reject unexpected property",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C",
"__unexpected": true
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations[0].operation_type: reject value outside enum",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "__INVALID_ENUM__",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations[0].destination_position: reject value below minimum",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": -1,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations[0].inserted_text_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:INVALID",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.operations[0].result_fragment_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "invalid-id"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.preimage_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:INVALID",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
},
{
"description": "edit-transaction.result_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:INVALID"
}
}
]
}
@@ -0,0 +1,296 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/encrypted-key-envelope.schema.json",
"cases": [
{
"description": "encrypted-key-envelope.schema_version: reject missing required property",
"instance": {
"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"
}
},
{
"description": "encrypted-key-envelope.envelope_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"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"
}
},
{
"description": "encrypted-key-envelope.key_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J00000000000000000000005",
"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"
}
},
{
"description": "encrypted-key-envelope.envelope_type: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J00000000000000000000005",
"key_id": "key_01J0000000000000000000000G",
"algorithm": "xchacha20-poly1305",
"key_derivation": null,
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "encrypted-key-envelope.algorithm: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J00000000000000000000005",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "device",
"key_derivation": null,
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "encrypted-key-envelope.key_derivation: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J00000000000000000000005",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "device",
"algorithm": "xchacha20-poly1305",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "encrypted-key-envelope.nonce: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J00000000000000000000005",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "device",
"algorithm": "xchacha20-poly1305",
"key_derivation": null,
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "encrypted-key-envelope.wrapped_key: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J00000000000000000000005",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "device",
"algorithm": "xchacha20-poly1305",
"key_derivation": null,
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "encrypted-key-envelope.ciphertext_sha256: reject missing required property",
"instance": {
"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==",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "encrypted-key-envelope.created_at: reject missing required property",
"instance": {
"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"
}
},
{
"description": "encrypted-key-envelope: reject unexpected property",
"instance": {
"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",
"__unexpected": true
}
},
{
"description": "encrypted-key-envelope.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"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"
}
},
{
"description": "encrypted-key-envelope.envelope_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"envelope_id": "invalid-id",
"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"
}
},
{
"description": "encrypted-key-envelope.key_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J00000000000000000000005",
"key_id": "invalid-id",
"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"
}
},
{
"description": "encrypted-key-envelope.envelope_type: reject value outside enum",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J00000000000000000000005",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "__INVALID_ENUM__",
"algorithm": "xchacha20-poly1305",
"key_derivation": null,
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "encrypted-key-envelope.algorithm: reject value outside enum",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J00000000000000000000005",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "device",
"algorithm": "__INVALID_ENUM__",
"key_derivation": null,
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "encrypted-key-envelope.nonce: reject string below minLength",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J00000000000000000000005",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "device",
"algorithm": "xchacha20-poly1305",
"key_derivation": null,
"nonce": "",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "encrypted-key-envelope.wrapped_key: reject string below minLength",
"instance": {
"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": "",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "encrypted-key-envelope.ciphertext_sha256: reject pattern mismatch",
"instance": {
"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:INVALID",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "encrypted-key-envelope.created_at: reject pattern mismatch",
"instance": {
"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": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,539 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/idea-revision.schema.json",
"cases": [
{
"description": "idea-revision.schema_version: reject missing required property",
"instance": {
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.revision_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.idea_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.revision_number: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.title: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.summary: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.detail: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.tags: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.source_turn_ids: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.parent_idea_ids: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.created_by: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.created_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.content_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "idea-revision: reject unexpected property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
"__unexpected": true
}
},
{
"description": "idea-revision.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.revision_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"revision_id": "invalid-id",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.idea_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "invalid-id",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.revision_number: reject value below minimum",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 0,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.title: reject string below minLength",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.summary: reject string below minLength",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.tags[0]: reject string below minLength",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
""
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.source_turn_ids[0]: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"invalid-id"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.created_by: reject value outside enum",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "__INVALID_ENUM__",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.created_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "not-a-timestamp",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
},
{
"description": "idea-revision.content_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:INVALID"
}
}
]
}
@@ -0,0 +1,179 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/idea.schema.json",
"cases": [
{
"description": "idea.schema_version: reject missing required property",
"instance": {
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.idea_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.current_revision_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.status: reject missing required property",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.created_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.updated_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "idea: reject unexpected property",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"__unexpected": true
}
},
{
"description": "idea.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.idea_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"idea_id": "invalid-id",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "invalid-id",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.current_revision_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "invalid-id",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.status: reject value outside enum",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "__INVALID_ENUM__",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.created_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "not-a-timestamp",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "idea.updated_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,249 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-failure.schema.json",
"cases": [
{
"description": "invocation-failure.schema_version: reject missing required property",
"instance": {
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.failure_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.invocation_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.code: reject missing required property",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.category: reject missing required property",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.recoverable: reject missing required property",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.bounded_summary: reject missing required property",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.partial_output_preserved: reject missing required property",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.occurred_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false
}
},
{
"description": "invocation-failure: reject unexpected property",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z",
"__unexpected": true
}
},
{
"description": "invocation-failure.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.failure_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"failure_id": "invalid-id",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.invocation_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invalid-id",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.code: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": " invalid!",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.category: reject value outside enum",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "__INVALID_ENUM__",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.bounded_summary: reject string below minLength",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.bounded_summary: reject string above maxLength",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-failure.occurred_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "not-a-timestamp"
}
}
]
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,737 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-response.schema.json",
"cases": [
{
"description": "invocation-response.schema_version: reject missing required property",
"instance": {
"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"
}
},
{
"description": "invocation-response.record_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"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"
}
},
{
"description": "invocation-response.invocation_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"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"
}
},
{
"description": "invocation-response.retention_mode: reject missing required property",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"invocation_id": "invocation_01J00000000000000000000008",
"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"
}
},
{
"description": "invocation-response.content_type: reject missing required property",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"invocation_id": "invocation_01J00000000000000000000008",
"retention_mode": "full_private",
"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"
}
},
{
"description": "invocation-response.retained_text: reject missing required property",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"invocation_id": "invocation_01J00000000000000000000008",
"retention_mode": "full_private",
"content_type": "draft_preview",
"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"
}
},
{
"description": "invocation-response.finish_reason: reject missing required property",
"instance": {
"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.",
"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"
}
},
{
"description": "invocation-response.usage: reject missing required property",
"instance": {
"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",
"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"
}
},
{
"description": "invocation-response.provider_metadata: reject missing required property",
"instance": {
"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
},
"validation": {
"schema_valid": true,
"repair_attempted": false
},
"content_sha256": "sha256:9999999999999999999999999999999999999999999999999999999999999999",
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-response.validation: reject missing required property",
"instance": {
"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
},
"content_sha256": "sha256:9999999999999999999999999999999999999999999999999999999999999999",
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-response.content_sha256: reject missing required property",
"instance": {
"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
},
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-response.created_at: reject missing required property",
"instance": {
"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"
}
},
{
"description": "invocation-response: reject unexpected property",
"instance": {
"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",
"__unexpected": true
}
},
{
"description": "invocation-response.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"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"
}
},
{
"description": "invocation-response.record_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"record_id": "invalid-id",
"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"
}
},
{
"description": "invocation-response.invocation_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"invocation_id": "invalid-id",
"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"
}
},
{
"description": "invocation-response.retention_mode: reject value outside enum",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"invocation_id": "invocation_01J00000000000000000000008",
"retention_mode": "__INVALID_ENUM__",
"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"
}
},
{
"description": "invocation-response.content_type: reject value outside enum",
"instance": {
"schema_version": "1.0",
"record_id": "record_01J00000000000000000000005",
"invocation_id": "invocation_01J00000000000000000000008",
"retention_mode": "full_private",
"content_type": "__INVALID_ENUM__",
"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"
}
},
{
"description": "invocation-response.finish_reason: reject string below minLength",
"instance": {
"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": "",
"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"
}
},
{
"description": "invocation-response.usage.input_tokens: reject missing required property",
"instance": {
"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": {
"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"
}
},
{
"description": "invocation-response.usage.output_tokens: reject missing required property",
"instance": {
"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
},
"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"
}
},
{
"description": "invocation-response.usage: reject unexpected property",
"instance": {
"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,
"__unexpected": true
},
"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"
}
},
{
"description": "invocation-response.usage.input_tokens: reject value below minimum",
"instance": {
"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": -1,
"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"
}
},
{
"description": "invocation-response.usage.output_tokens: reject value below minimum",
"instance": {
"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": -1
},
"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"
}
},
{
"description": "invocation-response.validation.schema_valid: reject missing required property",
"instance": {
"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": {
"repair_attempted": false
},
"content_sha256": "sha256:9999999999999999999999999999999999999999999999999999999999999999",
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-response.validation.repair_attempted: reject missing required property",
"instance": {
"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
},
"content_sha256": "sha256:9999999999999999999999999999999999999999999999999999999999999999",
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-response.validation: reject unexpected property",
"instance": {
"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,
"__unexpected": true
},
"content_sha256": "sha256:9999999999999999999999999999999999999999999999999999999999999999",
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-response.content_sha256: reject pattern mismatch",
"instance": {
"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:INVALID",
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-response.created_at: reject pattern mismatch",
"instance": {
"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": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,132 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-state.schema.json",
"cases": [
{
"description": "invocation-state.schema_version: reject missing required property",
"instance": {
"invocation_id": "invocation_01J00000000000000000000008",
"state": "REQUEST_RECORDED",
"state_sequence": 2,
"updated_at": "2026-07-17T18:42:10.123Z",
"failure_id": null
}
},
{
"description": "invocation-state.invocation_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"state": "REQUEST_RECORDED",
"state_sequence": 2,
"updated_at": "2026-07-17T18:42:10.123Z",
"failure_id": null
}
},
{
"description": "invocation-state.state: reject missing required property",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"state_sequence": 2,
"updated_at": "2026-07-17T18:42:10.123Z",
"failure_id": null
}
},
{
"description": "invocation-state.state_sequence: reject missing required property",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "REQUEST_RECORDED",
"updated_at": "2026-07-17T18:42:10.123Z",
"failure_id": null
}
},
{
"description": "invocation-state.updated_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "REQUEST_RECORDED",
"state_sequence": 2,
"failure_id": null
}
},
{
"description": "invocation-state.failure_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "REQUEST_RECORDED",
"state_sequence": 2,
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "invocation-state: reject unexpected property",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "REQUEST_RECORDED",
"state_sequence": 2,
"updated_at": "2026-07-17T18:42:10.123Z",
"failure_id": null,
"__unexpected": true
}
},
{
"description": "invocation-state.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "REQUEST_RECORDED",
"state_sequence": 2,
"updated_at": "2026-07-17T18:42:10.123Z",
"failure_id": null
}
},
{
"description": "invocation-state.invocation_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"invocation_id": "invalid-id",
"state": "REQUEST_RECORDED",
"state_sequence": 2,
"updated_at": "2026-07-17T18:42:10.123Z",
"failure_id": null
}
},
{
"description": "invocation-state.state: reject value outside enum",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "__INVALID_ENUM__",
"state_sequence": 2,
"updated_at": "2026-07-17T18:42:10.123Z",
"failure_id": null
}
},
{
"description": "invocation-state.state_sequence: reject value below minimum",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "REQUEST_RECORDED",
"state_sequence": 0,
"updated_at": "2026-07-17T18:42:10.123Z",
"failure_id": null
}
},
{
"description": "invocation-state.updated_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "REQUEST_RECORDED",
"state_sequence": 2,
"updated_at": "not-a-timestamp",
"failure_id": null
}
}
]
}
@@ -0,0 +1,191 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-stream-state.schema.json",
"cases": [
{
"description": "invocation-stream-state.schema_version: reject missing required property",
"instance": {
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.stream_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.invocation_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"state": "STREAMING",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.state: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.bytes_received: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.started_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": 512,
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.updated_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "invocation-stream-state: reject unexpected property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"__unexpected": true
}
},
{
"description": "invocation-stream-state.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.stream_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"stream_id": "invalid-id",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.invocation_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invalid-id",
"state": "STREAMING",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.state: reject value outside enum",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "__INVALID_ENUM__",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.bytes_received: reject value below minimum",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": -1,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.bytes_received: reject value above maximum",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": 67108865,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.started_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": 512,
"started_at": "not-a-timestamp",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-state.updated_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,277 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-stream-summary.schema.json",
"cases": [
{
"description": "invocation-stream-summary.schema_version: reject missing required property",
"instance": {
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.stream_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.invocation_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.terminal_state: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.bytes_received: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.chunks_received: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.duration_milliseconds: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.partial_output_preserved: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.completed_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false
}
},
{
"description": "invocation-stream-summary: reject unexpected property",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z",
"__unexpected": true
}
},
{
"description": "invocation-stream-summary.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.stream_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"stream_id": "invalid-id",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.invocation_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invalid-id",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.terminal_state: reject value outside enum",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "__INVALID_ENUM__",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.bytes_received: reject value below minimum",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": -1,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.bytes_received: reject value above maximum",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 67108865,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.chunks_received: reject value below minimum",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": -1,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.duration_milliseconds: reject value below minimum",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": -1,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.duration_milliseconds: reject value above maximum",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 1800001,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "invocation-stream-summary.completed_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,402 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/ledger-segment-manifest.schema.json",
"cases": [
{
"description": "ledger-segment-manifest.schema_version: reject missing required property",
"instance": {
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.segment_number: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.previous_segment_file_hash: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.first_event_hash: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.final_event_hash: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.first_event_sequence: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.final_event_sequence: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.event_count: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.byte_length: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.segment_file_hash: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.sealed_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "ledger-segment-manifest: reject unexpected property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z",
"__unexpected": true
}
},
{
"description": "ledger-segment-manifest.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "invalid-id",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.segment_number: reject value below minimum",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 0,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.first_event_hash: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:INVALID",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.final_event_hash: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:INVALID",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.first_event_sequence: reject value below minimum",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 0,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.final_event_sequence: reject value below minimum",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 0,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.event_count: reject value below minimum",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 0,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.byte_length: reject value below minimum",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 0,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.segment_file_hash: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:INVALID",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "ledger-segment-manifest.sealed_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,263 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/manuscript-revision.schema.json",
"cases": [
{
"description": "manuscript-revision.schema_version: reject missing required property",
"instance": {
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.revision_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.parent_revision_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.canonical_markdown_path: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.canonical_markdown_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.word_count: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.created_by: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.created_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user"
}
},
{
"description": "manuscript-revision: reject unexpected property",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z",
"__unexpected": true
}
},
{
"description": "manuscript-revision.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.revision_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"revision_id": "invalid-id",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "invalid-id",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.canonical_markdown_path: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "../outside-project",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.canonical_markdown_path: reject string below minLength",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.canonical_markdown_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:INVALID",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.word_count: reject value below minimum",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": -1,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.created_by: reject value outside enum",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "__INVALID_ENUM__",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "manuscript-revision.created_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,264 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/model-capability-snapshot.schema.json",
"cases": [
{
"description": "model-capability-snapshot.schema_version: reject missing required property",
"instance": {
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.snapshot_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.provider_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.model_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.capabilities: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.observed_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
}
}
},
{
"description": "model-capability-snapshot: reject unexpected property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z",
"__unexpected": true
}
},
{
"description": "model-capability-snapshot.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.snapshot_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"snapshot_id": "invalid-id",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.provider_id: reject string below minLength",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.model_id: reject string below minLength",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.capabilities.streaming: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.capabilities.structured_output: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.capabilities.tools: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.capabilities.vision: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.capabilities: reject unexpected property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false,
"__unexpected": true
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-capability-snapshot.observed_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,479 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/model-configuration-snapshot.schema.json",
"cases": [
{
"description": "model-configuration-snapshot.schema_version: reject missing required property",
"instance": {
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.snapshot_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.provider_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.model_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.processing_mode: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.endpoint_classification: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.temperature_milli: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.context_limit: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.maximum_output: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.structured_output_mode: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.tool_configuration: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.capability_snapshot_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.created_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888"
}
},
{
"description": "model-configuration-snapshot: reject unexpected property",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z",
"__unexpected": true
}
},
{
"description": "model-configuration-snapshot.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.snapshot_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"snapshot_id": "invalid-id",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.provider_id: reject string below minLength",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.model_id: reject string below minLength",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.processing_mode: reject value outside enum",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "__INVALID_ENUM__",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.endpoint_classification: reject value outside enum",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "__INVALID_ENUM__",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.temperature_milli: reject value below minimum",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": -1,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.temperature_milli: reject value above maximum",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 2001,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.context_limit: reject value below minimum",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 0,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.maximum_output: reject value below minimum",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 0,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.structured_output_mode: reject value outside enum",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "__INVALID_ENUM__",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.capability_snapshot_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:INVALID",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "model-configuration-snapshot.created_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,245 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/project-key-manifest.schema.json",
"cases": [
{
"description": "project-key-manifest.schema_version: reject missing required property",
"instance": {
"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"
}
},
{
"description": "project-key-manifest.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"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"
}
},
{
"description": "project-key-manifest.key_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"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"
}
},
{
"description": "project-key-manifest.algorithm: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"key_id": "key_01J0000000000000000000000G",
"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"
}
},
{
"description": "project-key-manifest.device_envelope_path: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"key_id": "key_01J0000000000000000000000G",
"algorithm": "xchacha20-poly1305",
"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"
}
},
{
"description": "project-key-manifest.recovery_envelope_path: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"key_id": "key_01J0000000000000000000000G",
"algorithm": "xchacha20-poly1305",
"device_envelope_path": "provenance/keys/device-envelope.json",
"recovery_verified_at": "2026-07-17T18:42:10.123Z",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "project-key-manifest.recovery_verified_at: reject missing required property",
"instance": {
"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",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "project-key-manifest.created_at: reject missing required property",
"instance": {
"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"
}
},
{
"description": "project-key-manifest: reject unexpected property",
"instance": {
"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",
"__unexpected": true
}
},
{
"description": "project-key-manifest.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"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"
}
},
{
"description": "project-key-manifest.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "invalid-id",
"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"
}
},
{
"description": "project-key-manifest.key_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"key_id": "invalid-id",
"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"
}
},
{
"description": "project-key-manifest.algorithm: reject value different from const",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"key_id": "key_01J0000000000000000000000G",
"algorithm": "__INVALID_CONST__",
"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"
}
},
{
"description": "project-key-manifest.device_envelope_path: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"key_id": "key_01J0000000000000000000000G",
"algorithm": "xchacha20-poly1305",
"device_envelope_path": "../outside-project",
"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"
}
},
{
"description": "project-key-manifest.device_envelope_path: reject string below minLength",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"key_id": "key_01J0000000000000000000000G",
"algorithm": "xchacha20-poly1305",
"device_envelope_path": "",
"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"
}
},
{
"description": "project-key-manifest.recovery_envelope_path: reject pattern mismatch",
"instance": {
"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": "../outside-project",
"recovery_verified_at": "2026-07-17T18:42:10.123Z",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "project-key-manifest.recovery_envelope_path: reject string below minLength",
"instance": {
"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": "",
"recovery_verified_at": "2026-07-17T18:42:10.123Z",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "project-key-manifest.recovery_verified_at: reject pattern mismatch",
"instance": {
"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": "not-a-timestamp",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "project-key-manifest.created_at: reject pattern mismatch",
"instance": {
"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": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,311 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/project-manifest.schema.json",
"cases": [
{
"description": "project-manifest.schema_version: reject missing required property",
"instance": {
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.application_version: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.title: reject missing required property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.created_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.updated_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.current_phase: reject missing required property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.publication_status: reject missing required property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.provenance_policy_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"audio_retained": false
}
},
{
"description": "project-manifest.audio_retained: reject missing required property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H"
}
},
{
"description": "project-manifest: reject unexpected property",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false,
"__unexpected": true
}
},
{
"description": "project-manifest.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.application_version: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"application_version": " invalid!",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "invalid-id",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.title: reject string below minLength",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.created_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "not-a-timestamp",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.updated_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "not-a-timestamp",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.current_phase: reject value outside enum",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "__INVALID_ENUM__",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.publication_status: reject value outside enum",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "__INVALID_ENUM__",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
},
{
"description": "project-manifest.provenance_policy_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "invalid-id",
"audio_retained": false
}
},
{
"description": "project-manifest.audio_retained: reject value different from const",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": true
}
}
]
}
@@ -0,0 +1,121 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/prompt-template-reference.schema.json",
"cases": [
{
"description": "prompt-template-reference.schema_version: reject missing required property",
"instance": {
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"path": "records/prompt-templates/drafting/template.json",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
}
},
{
"description": "prompt-template-reference.template_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"version": 1,
"path": "records/prompt-templates/drafting/template.json",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
}
},
{
"description": "prompt-template-reference.version: reject missing required property",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"path": "records/prompt-templates/drafting/template.json",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
}
},
{
"description": "prompt-template-reference.path: reject missing required property",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
}
},
{
"description": "prompt-template-reference.template_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"path": "records/prompt-templates/drafting/template.json"
}
},
{
"description": "prompt-template-reference: reject unexpected property",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"path": "records/prompt-templates/drafting/template.json",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"__unexpected": true
}
},
{
"description": "prompt-template-reference.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"path": "records/prompt-templates/drafting/template.json",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
}
},
{
"description": "prompt-template-reference.template_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"template_id": "invalid-id",
"version": 1,
"path": "records/prompt-templates/drafting/template.json",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
}
},
{
"description": "prompt-template-reference.version: reject value below minimum",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 0,
"path": "records/prompt-templates/drafting/template.json",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
}
},
{
"description": "prompt-template-reference.path: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"path": "../outside-project",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
}
},
{
"description": "prompt-template-reference.path: reject string below minLength",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"path": "",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
}
},
{
"description": "prompt-template-reference.template_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"path": "records/prompt-templates/drafting/template.json",
"template_sha256": "sha256:INVALID"
}
}
]
}
@@ -0,0 +1,391 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/prompt-template.schema.json",
"cases": [
{
"description": "prompt-template.schema_version: reject missing required property",
"instance": {
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.template_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.version: reject missing required property",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.purpose: reject missing required property",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.canonical_template_body: reject missing required property",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"purpose": "draft_from_selected_ideas",
"variables": {
"context": {
"description": "Selected idea context",
"required": true
}
},
"creation_application_version": "0.3.0",
"retention_classification": "project_record",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.variables: reject missing required property",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"purpose": "draft_from_selected_ideas",
"canonical_template_body": "Use {{context}} to draft a passage.",
"creation_application_version": "0.3.0",
"retention_classification": "project_record",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.creation_application_version: reject missing required property",
"instance": {
"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
}
},
"retention_classification": "project_record",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.retention_classification: reject missing required property",
"instance": {
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.template_sha256: reject missing required property",
"instance": {
"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"
}
},
{
"description": "prompt-template.created_at: reject missing required property",
"instance": {
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
}
},
{
"description": "prompt-template: reject unexpected property",
"instance": {
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z",
"__unexpected": true
}
},
{
"description": "prompt-template.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.template_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"template_id": "invalid-id",
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.version: reject value below minimum",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 0,
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.purpose: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"purpose": " invalid!",
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.canonical_template_body: reject string below minLength",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"purpose": "draft_from_selected_ideas",
"canonical_template_body": "",
"variables": {
"context": {
"description": "Selected idea context",
"required": true
}
},
"creation_application_version": "0.3.0",
"retention_classification": "project_record",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.creation_application_version: reject pattern mismatch",
"instance": {
"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": " invalid!",
"retention_classification": "project_record",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.retention_classification: reject value outside enum",
"instance": {
"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": "__INVALID_ENUM__",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.template_sha256: reject pattern mismatch",
"instance": {
"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",
"template_sha256": "sha256:INVALID",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "prompt-template.created_at: reject pattern mismatch",
"instance": {
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "not-a-timestamp"
}
}
]
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,179 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/provenance-policy.schema.json",
"cases": [
{
"description": "provenance-policy.schema_version: reject missing required property",
"instance": {
"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"
}
},
{
"description": "provenance-policy.policy_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"retention_mode": "minimal",
"encryption_mode": "none",
"default_export_profile": "sanitized",
"effective_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "provenance-policy.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"policy_id": "policy_01J0000000000000000000000H",
"retention_mode": "minimal",
"encryption_mode": "none",
"default_export_profile": "sanitized",
"effective_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "provenance-policy.retention_mode: reject missing required property",
"instance": {
"schema_version": "1.0",
"policy_id": "policy_01J0000000000000000000000H",
"project_id": "project_01J00000000000000000000001",
"encryption_mode": "none",
"default_export_profile": "sanitized",
"effective_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "provenance-policy.encryption_mode: reject missing required property",
"instance": {
"schema_version": "1.0",
"policy_id": "policy_01J0000000000000000000000H",
"project_id": "project_01J00000000000000000000001",
"retention_mode": "minimal",
"default_export_profile": "sanitized",
"effective_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "provenance-policy.default_export_profile: reject missing required property",
"instance": {
"schema_version": "1.0",
"policy_id": "policy_01J0000000000000000000000H",
"project_id": "project_01J00000000000000000000001",
"retention_mode": "minimal",
"encryption_mode": "none",
"effective_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "provenance-policy.effective_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"policy_id": "policy_01J0000000000000000000000H",
"project_id": "project_01J00000000000000000000001",
"retention_mode": "minimal",
"encryption_mode": "none",
"default_export_profile": "sanitized"
}
},
{
"description": "provenance-policy: reject unexpected property",
"instance": {
"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",
"__unexpected": true
}
},
{
"description": "provenance-policy.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"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"
}
},
{
"description": "provenance-policy.policy_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"policy_id": "invalid-id",
"project_id": "project_01J00000000000000000000001",
"retention_mode": "minimal",
"encryption_mode": "none",
"default_export_profile": "sanitized",
"effective_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "provenance-policy.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"policy_id": "policy_01J0000000000000000000000H",
"project_id": "invalid-id",
"retention_mode": "minimal",
"encryption_mode": "none",
"default_export_profile": "sanitized",
"effective_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "provenance-policy.retention_mode: reject value outside enum",
"instance": {
"schema_version": "1.0",
"policy_id": "policy_01J0000000000000000000000H",
"project_id": "project_01J00000000000000000000001",
"retention_mode": "__INVALID_ENUM__",
"encryption_mode": "none",
"default_export_profile": "sanitized",
"effective_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "provenance-policy.encryption_mode: reject value outside enum",
"instance": {
"schema_version": "1.0",
"policy_id": "policy_01J0000000000000000000000H",
"project_id": "project_01J00000000000000000000001",
"retention_mode": "minimal",
"encryption_mode": "__INVALID_ENUM__",
"default_export_profile": "sanitized",
"effective_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "provenance-policy.default_export_profile: reject value outside enum",
"instance": {
"schema_version": "1.0",
"policy_id": "policy_01J0000000000000000000000H",
"project_id": "project_01J00000000000000000000001",
"retention_mode": "minimal",
"encryption_mode": "none",
"default_export_profile": "__INVALID_ENUM__",
"effective_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "provenance-policy.effective_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"policy_id": "policy_01J0000000000000000000000H",
"project_id": "project_01J00000000000000000000001",
"retention_mode": "minimal",
"encryption_mode": "none",
"default_export_profile": "sanitized",
"effective_at": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,625 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/purge-manifest.schema.json",
"cases": [
{
"description": "purge-manifest.schema_version: reject missing required property",
"instance": {
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.purge_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.requested_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.completed_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.reason: reject missing required property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.superseded_chain_head: reject missing required property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.new_chain_root: reject missing required property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.affected_record_ids: reject missing required property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.affected_paths: reject missing required property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.git_history_rewritten: reject missing required property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.prior_copies_revocable: reject missing required property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.confirmation_phrase_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false
}
},
{
"description": "purge-manifest: reject unexpected property",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"__unexpected": true
}
},
{
"description": "purge-manifest.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.purge_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"purge_id": "invalid-id",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "invalid-id",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.requested_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "not-a-timestamp",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.completed_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "not-a-timestamp",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.reason: reject string below minLength",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.superseded_chain_head: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:INVALID",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.new_chain_root: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:INVALID",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.affected_record_ids: reject array below minItems",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.affected_record_ids[0]: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"invalid-id"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.affected_paths[0]: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"../outside-project"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.affected_paths[0]: reject string below minLength",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
""
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.git_history_rewritten: reject value different from const",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": false,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.prior_copies_revocable: reject value different from const",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": true,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
},
{
"description": "purge-manifest.confirmation_phrase_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:INVALID"
}
}
]
}
@@ -0,0 +1,524 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/record-envelope.schema.json",
"cases": [
{
"description": "record-envelope.schema_version: reject missing required property",
"instance": {
"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"
}
}
},
{
"description": "record-envelope.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"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"
}
}
},
{
"description": "record-envelope.record_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"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"
}
}
},
{
"description": "record-envelope.record_type: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"record_id": "record_01J00000000000000000000005",
"protection": "protected",
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
"payload": null,
"encryption": {
"algorithm": "xchacha20-poly1305",
"key_id": "key_01J0000000000000000000000G",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.protection: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"record_id": "record_01J00000000000000000000005",
"record_type": "invocation_request",
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
"payload": null,
"encryption": {
"algorithm": "xchacha20-poly1305",
"key_id": "key_01J0000000000000000000000G",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.plaintext_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"record_id": "record_01J00000000000000000000005",
"record_type": "invocation_request",
"protection": "protected",
"payload": null,
"encryption": {
"algorithm": "xchacha20-poly1305",
"key_id": "key_01J0000000000000000000000G",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.payload: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"record_id": "record_01J00000000000000000000005",
"record_type": "invocation_request",
"protection": "protected",
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
"encryption": {
"algorithm": "xchacha20-poly1305",
"key_id": "key_01J0000000000000000000000G",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.encryption: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"record_id": "record_01J00000000000000000000005",
"record_type": "invocation_request",
"protection": "protected",
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
"payload": null
}
},
{
"description": "record-envelope: reject unexpected property",
"instance": {
"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"
},
"__unexpected": true
}
},
{
"description": "record-envelope.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"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"
}
}
},
{
"description": "record-envelope.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "invalid-id",
"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"
}
}
},
{
"description": "record-envelope.record_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"record_id": "invalid-id",
"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"
}
}
},
{
"description": "record-envelope.record_type: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"record_id": "record_01J00000000000000000000005",
"record_type": " invalid!",
"protection": "protected",
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
"payload": null,
"encryption": {
"algorithm": "xchacha20-poly1305",
"key_id": "key_01J0000000000000000000000G",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.protection: reject value outside enum",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"record_id": "record_01J00000000000000000000005",
"record_type": "invocation_request",
"protection": "__INVALID_ENUM__",
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
"payload": null,
"encryption": {
"algorithm": "xchacha20-poly1305",
"key_id": "key_01J0000000000000000000000G",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.plaintext_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"record_id": "record_01J00000000000000000000005",
"record_type": "invocation_request",
"protection": "protected",
"plaintext_sha256": "sha256:INVALID",
"payload": null,
"encryption": {
"algorithm": "xchacha20-poly1305",
"key_id": "key_01J0000000000000000000000G",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.encryption.algorithm: reject missing required property",
"instance": {
"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": {
"key_id": "key_01J0000000000000000000000G",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.encryption.key_id: reject missing required property",
"instance": {
"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",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.encryption.nonce: reject missing required property",
"instance": {
"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",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.encryption.ciphertext: reject missing required property",
"instance": {
"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_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.encryption.ciphertext_sha256: reject missing required property",
"instance": {
"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=="
}
}
},
{
"description": "record-envelope.encryption: reject unexpected property",
"instance": {
"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",
"__unexpected": true
}
}
},
{
"description": "record-envelope.encryption.algorithm: reject value different from const",
"instance": {
"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": "__INVALID_CONST__",
"key_id": "key_01J0000000000000000000000G",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.encryption.key_id: reject pattern mismatch",
"instance": {
"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": "invalid-id",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.encryption.nonce: reject string below minLength",
"instance": {
"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": "",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.encryption.ciphertext: reject string below minLength",
"instance": {
"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": "",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope.encryption.ciphertext_sha256: reject pattern mismatch",
"instance": {
"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:INVALID"
}
}
},
{
"description": "record-envelope: protected payload must not remain plaintext",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"record_id": "record_01J00000000000000000000005",
"record_type": "invocation_request",
"protection": "protected",
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
"payload": {
"leaked": true
},
"encryption": {
"algorithm": "xchacha20-poly1305",
"key_id": "key_01J0000000000000000000000G",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
},
{
"description": "record-envelope: unprotected payload requires null encryption",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"record_id": "record_01J00000000000000000000005",
"record_type": "invocation_request",
"protection": "none",
"plaintext_sha256": "sha256:97154eddff15ab6607181e55945547fdbbc5bde02b1e5123eade7a69509f00c5",
"payload": {
"retained": true
},
"encryption": {
"algorithm": "xchacha20-poly1305",
"key_id": "key_01J0000000000000000000000G",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"ciphertext": "ZW5jcnlwdGVkLXJlY29yZA==",
"ciphertext_sha256": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
}
}
}
]
}
@@ -0,0 +1,652 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/recovery-key-envelope.schema.json",
"cases": [
{
"description": "recovery-key-envelope.schema_version: reject missing required property",
"instance": {
"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"
}
},
{
"description": "recovery-key-envelope.envelope_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"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"
}
},
{
"description": "recovery-key-envelope.key_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"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"
}
},
{
"description": "recovery-key-envelope.envelope_type: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"key_id": "key_01J0000000000000000000000G",
"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"
}
},
{
"description": "recovery-key-envelope.algorithm: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "recovery",
"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"
}
},
{
"description": "recovery-key-envelope.key_derivation: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "recovery",
"algorithm": "xchacha20-poly1305",
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.nonce: reject missing required property",
"instance": {
"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"
},
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.wrapped_key: reject missing required property",
"instance": {
"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",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.ciphertext_sha256: reject missing required property",
"instance": {
"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==",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.created_at: reject missing required property",
"instance": {
"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"
}
},
{
"description": "recovery-key-envelope: reject unexpected property",
"instance": {
"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",
"__unexpected": true
}
},
{
"description": "recovery-key-envelope.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"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"
}
},
{
"description": "recovery-key-envelope.envelope_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"envelope_id": "invalid-id",
"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"
}
},
{
"description": "recovery-key-envelope.key_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"key_id": "invalid-id",
"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"
}
},
{
"description": "recovery-key-envelope.envelope_type: reject value different from const",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "__INVALID_CONST__",
"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"
}
},
{
"description": "recovery-key-envelope.algorithm: reject value outside enum",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "recovery",
"algorithm": "__INVALID_ENUM__",
"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"
}
},
{
"description": "recovery-key-envelope.key_derivation.algorithm: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "recovery",
"algorithm": "xchacha20-poly1305",
"key_derivation": {
"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"
}
},
{
"description": "recovery-key-envelope.key_derivation.memory_kib: reject missing required property",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "recovery",
"algorithm": "xchacha20-poly1305",
"key_derivation": {
"algorithm": "argon2id",
"iterations": 3,
"parallelism": 1,
"salt": "c2FsdC1mb3ItdGhpbmtsb29t"
},
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.key_derivation.iterations: reject missing required property",
"instance": {
"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,
"parallelism": 1,
"salt": "c2FsdC1mb3ItdGhpbmtsb29t"
},
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.key_derivation.parallelism: reject missing required property",
"instance": {
"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,
"salt": "c2FsdC1mb3ItdGhpbmtsb29t"
},
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.key_derivation.salt: reject missing required property",
"instance": {
"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
},
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.key_derivation: reject unexpected property",
"instance": {
"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",
"__unexpected": true
},
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.key_derivation.algorithm: reject value different from const",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "recovery",
"algorithm": "xchacha20-poly1305",
"key_derivation": {
"algorithm": "__INVALID_CONST__",
"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"
}
},
{
"description": "recovery-key-envelope.key_derivation.memory_kib: reject value below minimum",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "recovery",
"algorithm": "xchacha20-poly1305",
"key_derivation": {
"algorithm": "argon2id",
"memory_kib": 65535,
"iterations": 3,
"parallelism": 1,
"salt": "c2FsdC1mb3ItdGhpbmtsb29t"
},
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.key_derivation.iterations: reject value below minimum",
"instance": {
"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": 0,
"parallelism": 1,
"salt": "c2FsdC1mb3ItdGhpbmtsb29t"
},
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.key_derivation.parallelism: reject value below minimum",
"instance": {
"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": 0,
"salt": "c2FsdC1mb3ItdGhpbmtsb29t"
},
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.key_derivation.salt: reject string below minLength",
"instance": {
"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": ""
},
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.nonce: reject string below minLength",
"instance": {
"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": "",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.wrapped_key: reject string below minLength",
"instance": {
"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": "",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.ciphertext_sha256: reject pattern mismatch",
"instance": {
"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:INVALID",
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "recovery-key-envelope.created_at: reject pattern mismatch",
"instance": {
"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": "not-a-timestamp"
}
},
{
"description": "recovery-key-envelope: recovery derivation is mandatory",
"instance": {
"schema_version": "1.0",
"envelope_id": "record_01J0000000000000000000000S",
"key_id": "key_01J0000000000000000000000G",
"envelope_type": "recovery",
"algorithm": "xchacha20-poly1305",
"key_derivation": null,
"nonce": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"wrapped_key": "d3JhcHBlZC1wcm9qZWN0LWtleQ==",
"ciphertext_sha256": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"created_at": "2026-07-17T18:42:10.123Z"
}
}
]
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,249 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/release-state.schema.json",
"cases": [
{
"description": "release-state.schema_version: reject missing required property",
"instance": {
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.release_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.state: reject missing required property",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.state_sequence: reject missing required property",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.source_commit: reject missing required property",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.source_chain_head: reject missing required property",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.updated_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"failure": null
}
},
{
"description": "release-state.failure: reject missing required property",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "release-state: reject unexpected property",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null,
"__unexpected": true
}
},
{
"description": "release-state.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.release_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"release_id": "invalid-id",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "invalid-id",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.state: reject value outside enum",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "__INVALID_ENUM__",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.state_sequence: reject value below minimum",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 0,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.source_commit: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": " invalid!",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.source_chain_head: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:INVALID",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
},
{
"description": "release-state.updated_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "not-a-timestamp",
"failure": null
}
}
]
}
@@ -0,0 +1,833 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/sanitized-export-manifest.schema.json",
"cases": [
{
"description": "sanitized-export-manifest.schema_version: reject missing required property",
"instance": {
"export_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"profile": "sanitized",
"omission_rules": [
{
"category": "private_conversation",
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.export_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"profile": "sanitized",
"omission_rules": [
{
"category": "private_conversation",
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"export_id": "record_01J00000000000000000000005",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"profile": "sanitized",
"omission_rules": [
{
"category": "private_conversation",
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.source_chain_head: reject missing required property",
"instance": {
"schema_version": "1.0",
"export_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"profile": "sanitized",
"omission_rules": [
{
"category": "private_conversation",
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.profile: reject missing required property",
"instance": {
"schema_version": "1.0",
"export_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"omission_rules": [
{
"category": "private_conversation",
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.omission_rules: reject missing required property",
"instance": {
"schema_version": "1.0",
"export_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"profile": "sanitized",
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.rules_sha256: reject missing required property",
"instance": {
"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
}
],
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.files: reject missing required property",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.created_at: reject missing required property",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
]
}
},
{
"description": "sanitized-export-manifest: reject unexpected property",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z",
"__unexpected": true
}
},
{
"description": "sanitized-export-manifest.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"export_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"profile": "sanitized",
"omission_rules": [
{
"category": "private_conversation",
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.export_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"export_id": "invalid-id",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"profile": "sanitized",
"omission_rules": [
{
"category": "private_conversation",
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"export_id": "record_01J00000000000000000000005",
"project_id": "invalid-id",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"profile": "sanitized",
"omission_rules": [
{
"category": "private_conversation",
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.source_chain_head: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"export_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:INVALID",
"profile": "sanitized",
"omission_rules": [
{
"category": "private_conversation",
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.profile: reject value different from const",
"instance": {
"schema_version": "1.0",
"export_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"profile": "__INVALID_CONST__",
"omission_rules": [
{
"category": "private_conversation",
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.omission_rules[0].category: reject missing required property",
"instance": {
"schema_version": "1.0",
"export_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"profile": "sanitized",
"omission_rules": [
{
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.omission_rules[0].action: reject missing required property",
"instance": {
"schema_version": "1.0",
"export_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"profile": "sanitized",
"omission_rules": [
{
"category": "private_conversation",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.omission_rules[0].count: reject missing required property",
"instance": {
"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"
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.omission_rules[0]: reject unexpected property",
"instance": {
"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,
"__unexpected": true
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.omission_rules[0].category: reject value outside enum",
"instance": {
"schema_version": "1.0",
"export_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"profile": "sanitized",
"omission_rules": [
{
"category": "__INVALID_ENUM__",
"action": "exclude",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.omission_rules[0].action: reject value outside enum",
"instance": {
"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": "__INVALID_ENUM__",
"count": 2
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.omission_rules[0].count: reject value below minimum",
"instance": {
"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": -1
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.rules_sha256: reject pattern mismatch",
"instance": {
"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
}
],
"rules_sha256": "sha256:INVALID",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.files: reject array below minItems",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.files[0].path: reject missing required property",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.files[0].sha256: reject missing required property",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.files[0].size: reject missing required property",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444"
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.files[0]: reject unexpected property",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024,
"__unexpected": true
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.files[0].path: reject pattern mismatch",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "../outside-project",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.files[0].path: reject string below minLength",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.files[0].sha256: reject pattern mismatch",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:INVALID",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.files[0].size: reject value below minimum",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": -1
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "sanitized-export-manifest.created_at: reject pattern mismatch",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,179 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/text-fragment-reference.schema.json",
"cases": [
{
"description": "text-fragment-reference.schema_version: reject missing required property",
"instance": {
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.document_revision_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.coordinate_system: reject missing required property",
"instance": {
"schema_version": "1.0",
"document_revision_id": "revision_01J0000000000000000000000A",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.start: reject missing required property",
"instance": {
"schema_version": "1.0",
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.end: reject missing required property",
"instance": {
"schema_version": "1.0",
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"start": 0,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.preimage_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.text_fragment_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
}
},
{
"description": "text-fragment-reference: reject unexpected property",
"instance": {
"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",
"__unexpected": true
}
},
{
"description": "text-fragment-reference.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.document_revision_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"document_revision_id": "invalid-id",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.coordinate_system: reject value outside enum",
"instance": {
"schema_version": "1.0",
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "__INVALID_ENUM__",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.start: reject value below minimum",
"instance": {
"schema_version": "1.0",
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"start": -1,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.end: reject value below minimum",
"instance": {
"schema_version": "1.0",
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"start": 0,
"end": -1,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.preimage_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:INVALID",
"text_fragment_id": "fragment_01J0000000000000000000000C"
}
},
{
"description": "text-fragment-reference.text_fragment_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"document_revision_id": "revision_01J0000000000000000000000A",
"coordinate_system": "utf8_byte",
"start": 0,
"end": 12,
"preimage_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"text_fragment_id": "invalid-id"
}
}
]
}
@@ -0,0 +1,219 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/transcript-correction.schema.json",
"cases": [
{
"description": "transcript-correction.schema_version: reject missing required property",
"instance": {
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.correction_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.turn_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.revision_number: reject missing required property",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.corrected_text: reject missing required property",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.reason: reject missing required property",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.created_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.event_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "transcript-correction: reject unexpected property",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004",
"__unexpected": true
}
},
{
"description": "transcript-correction.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.correction_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"correction_id": "invalid-id",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.turn_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "invalid-id",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.revision_number: reject value below minimum",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 0,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.corrected_text: reject string below minLength",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.reason: reject value outside enum",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "__INVALID_ENUM__",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.created_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "not-a-timestamp",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-correction.event_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "invalid-id"
}
}
]
}
@@ -0,0 +1,263 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/transcript-normalization.schema.json",
"cases": [
{
"description": "transcript-normalization.schema_version: reject missing required property",
"instance": {
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.normalization_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.turn_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.revision_number: reject missing required property",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.normalized_text: reject missing required property",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.method: reject missing required property",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.source_correction_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.created_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.event_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "transcript-normalization: reject unexpected property",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004",
"__unexpected": true
}
},
{
"description": "transcript-normalization.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.normalization_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"normalization_id": "invalid-id",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.turn_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "invalid-id",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.revision_number: reject value below minimum",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 0,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.normalized_text: reject string below minLength",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.method: reject value outside enum",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "__INVALID_ENUM__",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.source_correction_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "invalid-id",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.created_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "not-a-timestamp",
"event_id": "event_01J00000000000000000000004"
}
},
{
"description": "transcript-normalization.event_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "invalid-id"
}
}
]
}
@@ -0,0 +1,385 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/transcript-turn.schema.json",
"cases": [
{
"description": "transcript-turn.schema_version: reject missing required property",
"instance": {
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.turn_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.session_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.speaker: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.input_mode: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.retained_text: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.raw_transcript: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.started_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.ended_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.audio_retained: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.invocation_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.event_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null
}
},
{
"description": "transcript-turn: reject unexpected property",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003",
"__unexpected": true
}
},
{
"description": "transcript-turn.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.turn_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"turn_id": "invalid-id",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.session_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "invalid-id",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.speaker: reject value outside enum",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "__INVALID_ENUM__",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.input_mode: reject value outside enum",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "__INVALID_ENUM__",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.retained_text: reject string below minLength",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.started_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "not-a-timestamp",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.ended_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "not-a-timestamp",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.audio_retained: reject value different from const",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": true,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
},
{
"description": "transcript-turn.event_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "invalid-id"
}
}
]
}
@@ -0,0 +1,916 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/verification-report.schema.json",
"cases": [
{
"description": "verification-report.schema_version: reject missing required property",
"instance": {
"verification_id": "record_01J00000000000000000000005",
"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"
}
},
{
"description": "verification-report.verification_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"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"
}
},
{
"description": "verification-report.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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"
}
},
{
"description": "verification-report.status: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"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"
}
},
{
"description": "verification-report.verified_through_event_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"status": "VERIFIED_WITH_WARNINGS",
"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"
}
},
{
"description": "verification-report.verified_chain_head: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"status": "VERIFIED_WITH_WARNINGS",
"verified_through_event_id": "event_01J00000000000000000000003",
"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"
}
},
{
"description": "verification-report.checked_segments: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"status": "VERIFIED_WITH_WARNINGS",
"verified_through_event_id": "event_01J00000000000000000000003",
"verified_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"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"
}
},
{
"description": "verification-report.checked_events: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"status": "VERIFIED_WITH_WARNINGS",
"verified_through_event_id": "event_01J00000000000000000000003",
"verified_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"checked_segments": 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"
}
},
{
"description": "verification-report.checked_records: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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,
"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"
}
},
{
"description": "verification-report.findings: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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,
"verifier_version": "1.0.0",
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "verification-report.verifier_version: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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
}
],
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "verification-report.completed_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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"
}
},
{
"description": "verification-report: reject unexpected property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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",
"__unexpected": true
}
},
{
"description": "verification-report.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"verification_id": "record_01J00000000000000000000005",
"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"
}
},
{
"description": "verification-report.verification_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"verification_id": "invalid-id",
"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"
}
},
{
"description": "verification-report.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"project_id": "invalid-id",
"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"
}
},
{
"description": "verification-report.status: reject value outside enum",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"status": "__INVALID_ENUM__",
"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"
}
},
{
"description": "verification-report.verified_through_event_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"status": "VERIFIED_WITH_WARNINGS",
"verified_through_event_id": "invalid-id",
"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"
}
},
{
"description": "verification-report.verified_chain_head: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"project_id": "project_01J00000000000000000000001",
"status": "VERIFIED_WITH_WARNINGS",
"verified_through_event_id": "event_01J00000000000000000000003",
"verified_chain_head": "sha256:INVALID",
"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"
}
},
{
"description": "verification-report.checked_segments: reject value below minimum",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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"
}
},
{
"description": "verification-report.checked_events: reject value below minimum",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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"
}
},
{
"description": "verification-report.checked_records: reject value below minimum",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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": -1,
"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"
}
},
{
"description": "verification-report.findings[0].severity: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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": [
{
"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"
}
},
{
"description": "verification-report.findings[0].code: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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",
"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"
}
},
{
"description": "verification-report.findings[0].message: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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",
"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"
}
},
{
"description": "verification-report.findings[0].authoritative_evidence_affected: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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.",
"path": "provenance/indexes/contribution-graph.json",
"event_id": null
}
],
"verifier_version": "1.0.0",
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "verification-report.findings[0].path: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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,
"event_id": null
}
],
"verifier_version": "1.0.0",
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "verification-report.findings[0].event_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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"
}
],
"verifier_version": "1.0.0",
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "verification-report.findings[0]: reject unexpected property",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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,
"__unexpected": true
}
],
"verifier_version": "1.0.0",
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "verification-report.findings[0].severity: reject value outside enum",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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": "__INVALID_ENUM__",
"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"
}
},
{
"description": "verification-report.findings[0].code: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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": " invalid!",
"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"
}
},
{
"description": "verification-report.findings[0].message: reject string below minLength",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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": "",
"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"
}
},
{
"description": "verification-report.findings[0].path: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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": "../outside-project",
"event_id": null
}
],
"verifier_version": "1.0.0",
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "verification-report.findings[0].path: reject string below minLength",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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": "",
"event_id": null
}
],
"verifier_version": "1.0.0",
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "verification-report.verifier_version: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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": " invalid!",
"completed_at": "2026-07-17T18:43:11.456Z"
}
},
{
"description": "verification-report.completed_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,461 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/write-intent.schema.json",
"cases": [
{
"description": "write-intent.schema_version: reject missing required property",
"instance": {
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.intent_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.client_action_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.project_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.operation_type: reject missing required property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.phase: reject missing required property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.event_id: reject missing required property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.event_sequence: reject missing required property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.staged_path: reject missing required property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.command_sha256: reject missing required property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.result: reject missing required property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.created_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.updated_at: reject missing required property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent: reject unexpected property",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z",
"__unexpected": true
}
},
{
"description": "write-intent.schema_version: reject value different from const",
"instance": {
"schema_version": "__INVALID_CONST__",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.intent_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"intent_id": "invalid-id",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.client_action_id: reject string below minLength",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.client_action_id: reject string above maxLength",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.project_id: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "invalid-id",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.operation_type: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": " invalid!",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.phase: reject value outside enum",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "__INVALID_ENUM__",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.staged_path: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": "../outside-project",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.staged_path: reject string below minLength",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": "",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.command_sha256: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:INVALID",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.created_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "not-a-timestamp",
"updated_at": "2026-07-17T18:42:10.123Z"
}
},
{
"description": "write-intent.updated_at: reject pattern mismatch",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "not-a-timestamp"
}
}
]
}
@@ -0,0 +1,28 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/backup-manifest.schema.json",
"description": "Valid Project backup manifest example.",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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
}
}
@@ -0,0 +1,13 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/chain-head.schema.json",
"description": "Valid Chain head example.",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"active_segment_number": 1,
"event_id": "event_01J00000000000000000000003",
"event_sequence": 1,
"event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:42:10.123Z"
}
}
@@ -0,0 +1,21 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/content-reference.schema.json",
"description": "Valid Content reference example.",
"instance": {
"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"
}
}
}
@@ -0,0 +1,16 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/conversation-session.schema.json",
"description": "Valid Conversation session example.",
"instance": {
"schema_version": "1.0",
"session_id": "session_01J00000000000000000000006",
"project_id": "project_01J00000000000000000000001",
"title": "Opening discussion",
"mode": "typed",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"turn_count": 2,
"audio_retained": false,
"retention_mode": "minimal"
}
}
@@ -0,0 +1,17 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/derived-index-manifest.schema.json",
"description": "Valid Derived index manifest example.",
"instance": {
"schema_version": "1.0",
"index_type": "contribution_graph",
"source_chain_head": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
"source_event_count": 42,
"generator": {
"name": "thinkloom-indexer",
"version": "1.0.0",
"configuration_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000"
},
"content_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"generated_at": "2026-07-17T18:42:10.123Z"
}
}
@@ -0,0 +1,32 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/disposition-revision.schema.json",
"description": "Valid Invocation disposition revision example.",
"instance": {
"schema_version": "1.0",
"disposition_id": "disposition_01J0000000000000000000000M",
"invocation_id": "invocation_01J00000000000000000000008",
"revision_number": 1,
"status": "partially_accepted",
"accepted_ranges": [
{
"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"
}
],
"rejected_ranges": [],
"destination": {
"revision_id": "revision_01J0000000000000000000000B",
"path": "manuscript/revisions/revision.md",
"operation": "insert",
"position": 0
},
"stale_context_resolution": "revalidated",
"decided_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
}
@@ -0,0 +1,24 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/edit-transaction.schema.json",
"description": "Valid Manuscript edit transaction example.",
"instance": {
"schema_version": "1.0",
"transaction_id": "transaction_01J0000000000000000000000N",
"project_id": "project_01J00000000000000000000001",
"base_revision_id": "revision_01J0000000000000000000000A",
"result_revision_id": "revision_01J0000000000000000000000B",
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"operations": [
{
"operation_type": "insert",
"source_range": null,
"destination_position": 0,
"inserted_text_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
"result_fragment_id": "fragment_01J0000000000000000000000C"
}
],
"preimage_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"result_sha256": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
}
}
@@ -0,0 +1,16 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/encrypted-key-envelope.schema.json",
"description": "Valid Encrypted key envelope example.",
"instance": {
"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"
}
}
@@ -0,0 +1,23 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/idea-revision.schema.json",
"description": "Valid Idea revision example.",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
}
@@ -0,0 +1,13 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/idea.schema.json",
"description": "Valid Idea identity example.",
"instance": {
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
}
@@ -0,0 +1,15 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-failure.schema.json",
"description": "Valid Invocation failure example.",
"instance": {
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
}
@@ -0,0 +1,62 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-request.schema.json",
"description": "Valid Invocation request example.",
"instance": {
"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]"
}
]
}
}
@@ -0,0 +1,27 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-response.schema.json",
"description": "Valid Invocation response example.",
"instance": {
"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"
}
}
@@ -0,0 +1,12 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-state.schema.json",
"description": "Valid Invocation state example.",
"instance": {
"schema_version": "1.0",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "REQUEST_RECORDED",
"state_sequence": 2,
"updated_at": "2026-07-17T18:42:10.123Z",
"failure_id": null
}
}
@@ -0,0 +1,13 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-stream-state.schema.json",
"description": "Valid Invocation stream state example.",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"state": "STREAMING",
"bytes_received": 512,
"started_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
}
@@ -0,0 +1,15 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/invocation-stream-summary.schema.json",
"description": "Valid Invocation stream summary example.",
"instance": {
"schema_version": "1.0",
"stream_id": "stream_01J0000000000000000000000Q",
"invocation_id": "invocation_01J00000000000000000000008",
"terminal_state": "COMPLETED",
"bytes_received": 512,
"chunks_received": 4,
"duration_milliseconds": 2400,
"partial_output_preserved": false,
"completed_at": "2026-07-17T18:43:11.456Z"
}
}
@@ -0,0 +1,18 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/ledger-segment-manifest.schema.json",
"description": "Valid Ledger segment manifest example.",
"instance": {
"schema_version": "1.0",
"project_id": "project_01J00000000000000000000001",
"segment_number": 1,
"previous_segment_file_hash": null,
"first_event_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"final_event_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"first_event_sequence": 1,
"final_event_sequence": 2,
"event_count": 2,
"byte_length": 1024,
"segment_file_hash": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"sealed_at": "2026-07-17T18:42:10.123Z"
}
}
@@ -0,0 +1,15 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/manuscript-revision.schema.json",
"description": "Valid Manuscript revision example.",
"instance": {
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"project_id": "project_01J00000000000000000000001",
"parent_revision_id": null,
"canonical_markdown_path": "manuscript/revisions/revision.md",
"canonical_markdown_sha256": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
"word_count": 42,
"created_by": "user",
"created_at": "2026-07-17T18:42:10.123Z"
}
}
@@ -0,0 +1,17 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/model-capability-snapshot.schema.json",
"description": "Valid Model capability snapshot example.",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"capabilities": {
"streaming": true,
"structured_output": false,
"tools": false,
"vision": false
},
"observed_at": "2026-07-17T18:42:10.123Z"
}
}
@@ -0,0 +1,19 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/model-configuration-snapshot.schema.json",
"description": "Valid Model configuration snapshot example.",
"instance": {
"schema_version": "1.0",
"snapshot_id": "record_01J00000000000000000000005",
"provider_id": "ollama",
"model_id": "llama3.2",
"processing_mode": "local",
"endpoint_classification": "loopback",
"temperature_milli": 700,
"context_limit": 8192,
"maximum_output": 800,
"structured_output_mode": "none",
"tool_configuration": [],
"capability_snapshot_sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"created_at": "2026-07-17T18:42:10.123Z"
}
}
@@ -0,0 +1,14 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/project-key-manifest.schema.json",
"description": "Valid Project key manifest example.",
"instance": {
"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"
}
}
@@ -0,0 +1,16 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/project-manifest.schema.json",
"description": "Valid Project manifest example.",
"instance": {
"schema_version": "1.0",
"application_version": "0.3.0",
"project_id": "project_01J00000000000000000000001",
"title": "The Attention Commons",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z",
"current_phase": "ideation",
"publication_status": "working",
"provenance_policy_id": "policy_01J0000000000000000000000H",
"audio_retained": false
}
}
@@ -0,0 +1,11 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/prompt-template-reference.schema.json",
"description": "Valid Prompt template reference example.",
"instance": {
"schema_version": "1.0",
"template_id": "template_01J0000000000000000000000F",
"version": 1,
"path": "records/prompt-templates/drafting/template.json",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777"
}
}
@@ -0,0 +1,21 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/prompt-template.schema.json",
"description": "Valid Prompt template example.",
"instance": {
"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",
"template_sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"created_at": "2026-07-17T18:42:10.123Z"
}
}
@@ -0,0 +1,47 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/provenance-event.schema.json",
"description": "Valid Provenance event example.",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444"
}
}
@@ -0,0 +1,13 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/provenance-policy.schema.json",
"description": "Valid Provenance policy example.",
"instance": {
"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"
}
}
@@ -0,0 +1,23 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/purge-manifest.schema.json",
"description": "Valid Emergency purge manifest example.",
"instance": {
"schema_version": "1.0",
"purge_id": "purge_01J0000000000000000000000R",
"project_id": "project_01J00000000000000000000001",
"requested_at": "2026-07-17T18:42:10.123Z",
"completed_at": "2026-07-17T18:43:11.456Z",
"reason": "Remove accidentally retained credential",
"superseded_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"new_chain_root": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"affected_record_ids": [
"record_01J00000000000000000000005"
],
"affected_paths": [
"records/invocations/request.json"
],
"git_history_rewritten": true,
"prior_copies_revocable": false,
"confirmation_phrase_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666"
}
}
@@ -0,0 +1,20 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/record-envelope.schema.json",
"description": "Valid Authoritative record envelope example.",
"instance": {
"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"
}
}
}
@@ -0,0 +1,22 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/recovery-key-envelope.schema.json",
"description": "Valid Recovery key envelope example.",
"instance": {
"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"
}
}
@@ -0,0 +1,33 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/release-manifest.schema.json",
"description": "Valid Release manifest example.",
"instance": {
"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:4444444444444444444444444444444444444444444444444444444444444444",
"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"
}
}
@@ -0,0 +1,15 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/release-state.schema.json",
"description": "Valid Release state example.",
"instance": {
"schema_version": "1.0",
"release_id": "release_01J0000000000000000000000E",
"project_id": "project_01J00000000000000000000001",
"state": "RELEASE_STAGED",
"state_sequence": 5,
"source_commit": "0123456789abcdef0123456789abcdef01234567",
"source_chain_head": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"updated_at": "2026-07-17T18:43:11.456Z",
"failure": null
}
}
@@ -0,0 +1,27 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/sanitized-export-manifest.schema.json",
"description": "Valid Sanitized export manifest example.",
"instance": {
"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
}
],
"rules_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"files": [
{
"path": "final-manuscript.md",
"sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"size": 1024
}
],
"created_at": "2026-07-17T18:43:11.456Z"
}
}
@@ -0,0 +1,13 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/text-fragment-reference.schema.json",
"description": "Valid Text fragment reference example.",
"instance": {
"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"
}
}
@@ -0,0 +1,14 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/transcript-correction.schema.json",
"description": "Valid Transcript correction example.",
"instance": {
"schema_version": "1.0",
"correction_id": "correction_01J0000000000000000000000J",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"corrected_text": "Attention shapes our public life.",
"reason": "user_correction",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
}
@@ -0,0 +1,15 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/transcript-normalization.schema.json",
"description": "Valid Transcript normalization example.",
"instance": {
"schema_version": "1.0",
"normalization_id": "normalization_01J0000000000000000000000K",
"turn_id": "turn_01J00000000000000000000007",
"revision_number": 1,
"normalized_text": "Attention shapes public life.",
"method": "application",
"source_correction_id": "correction_01J0000000000000000000000J",
"created_at": "2026-07-17T18:43:11.456Z",
"event_id": "event_01J00000000000000000000004"
}
}
@@ -0,0 +1,18 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/transcript-turn.schema.json",
"description": "Valid Transcript turn example.",
"instance": {
"schema_version": "1.0",
"turn_id": "turn_01J00000000000000000000007",
"session_id": "session_01J00000000000000000000006",
"speaker": "user",
"input_mode": "typed",
"retained_text": "Attention shapes public life.",
"raw_transcript": null,
"started_at": "2026-07-17T18:42:10.123Z",
"ended_at": "2026-07-17T18:43:11.456Z",
"audio_retained": false,
"invocation_id": null,
"event_id": "event_01J00000000000000000000003"
}
}
@@ -0,0 +1,27 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/verification-report.schema.json",
"description": "Valid Verification report example.",
"instance": {
"schema_version": "1.0",
"verification_id": "record_01J00000000000000000000005",
"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"
}
}
@@ -0,0 +1,19 @@
{
"schema": "https://thinkloom.app/schemas/provenance/1.0/write-intent.schema.json",
"description": "Valid Cross-store write intent example.",
"instance": {
"schema_version": "1.0",
"intent_id": "intent_01J00000000000000000000002",
"client_action_id": "client-action-0001",
"project_id": "project_01J00000000000000000000001",
"operation_type": "IDEA_ACCEPTED",
"phase": "PREPARED",
"event_id": null,
"event_sequence": null,
"staged_path": ".app/temp/intents/intent.json",
"command_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"result": null,
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:42:10.123Z"
}
}
@@ -0,0 +1,112 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/idea-revision.schema.json",
"title": "Idea revision",
"description": "Immutable content revision for one idea.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"revision_id": {
"type": "string",
"pattern": "^revision_[0-9A-HJKMNP-TV-Z]{26}$"
},
"idea_id": {
"type": "string",
"pattern": "^idea_[0-9A-HJKMNP-TV-Z]{26}$"
},
"revision_number": {
"type": "integer",
"minimum": 1
},
"title": {
"type": "string",
"minLength": 1
},
"summary": {
"type": "string",
"minLength": 1
},
"detail": {
"type": "string"
},
"tags": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true
},
"source_turn_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^turn_[0-9A-HJKMNP-TV-Z]{26}$"
},
"uniqueItems": true
},
"parent_idea_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^idea_[0-9A-HJKMNP-TV-Z]{26}$"
},
"uniqueItems": true
},
"created_by": {
"enum": [
"user",
"assistant",
"mixed"
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
},
"content_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
}
},
"required": [
"schema_version",
"revision_id",
"idea_id",
"revision_number",
"title",
"summary",
"detail",
"tags",
"source_turn_ids",
"parent_idea_ids",
"created_by",
"created_at",
"content_sha256"
],
"additionalProperties": false,
"examples": [
{
"schema_version": "1.0",
"revision_id": "revision_01J0000000000000000000000A",
"idea_id": "idea_01J00000000000000000000009",
"revision_number": 1,
"title": "Attention as civic infrastructure",
"summary": "Institutions influence shared attention.",
"detail": "Treat attention as a public condition.",
"tags": [
"thesis"
],
"source_turn_ids": [
"turn_01J00000000000000000000007"
],
"parent_idea_ids": [],
"created_by": "mixed",
"created_at": "2026-07-17T18:42:10.123Z",
"content_sha256": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
}
]
}
+63
View File
@@ -0,0 +1,63 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/idea.schema.json",
"title": "Idea identity",
"description": "Stable idea identity and current derived status.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"idea_id": {
"type": "string",
"pattern": "^idea_[0-9A-HJKMNP-TV-Z]{26}$"
},
"project_id": {
"type": "string",
"pattern": "^project_[0-9A-HJKMNP-TV-Z]{26}$"
},
"current_revision_id": {
"type": "string",
"pattern": "^revision_[0-9A-HJKMNP-TV-Z]{26}$"
},
"status": {
"enum": [
"suggested",
"accepted",
"rejected",
"archived"
]
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
},
"updated_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
}
},
"required": [
"schema_version",
"idea_id",
"project_id",
"current_revision_id",
"status",
"created_at",
"updated_at"
],
"additionalProperties": false,
"examples": [
{
"schema_version": "1.0",
"idea_id": "idea_01J00000000000000000000009",
"project_id": "project_01J00000000000000000000001",
"current_revision_id": "revision_01J0000000000000000000000A",
"status": "accepted",
"created_at": "2026-07-17T18:42:10.123Z",
"updated_at": "2026-07-17T18:43:11.456Z"
}
]
}
@@ -0,0 +1,75 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/invocation-failure.schema.json",
"title": "Invocation failure",
"description": "Immutable bounded record of an invocation failure.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"failure_id": {
"type": "string",
"pattern": "^failure_[0-9A-HJKMNP-TV-Z]{26}$"
},
"invocation_id": {
"type": "string",
"pattern": "^invocation_[0-9A-HJKMNP-TV-Z]{26}$"
},
"code": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9_]+$"
},
"category": {
"enum": [
"provider",
"validation",
"cancellation",
"output_limit",
"application",
"privacy"
]
},
"recoverable": {
"type": "boolean"
},
"bounded_summary": {
"type": "string",
"minLength": 1,
"maxLength": 2000
},
"partial_output_preserved": {
"type": "boolean"
},
"occurred_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
}
},
"required": [
"schema_version",
"failure_id",
"invocation_id",
"code",
"category",
"recoverable",
"bounded_summary",
"partial_output_preserved",
"occurred_at"
],
"additionalProperties": false,
"examples": [
{
"schema_version": "1.0",
"failure_id": "failure_01J0000000000000000000000P",
"invocation_id": "invocation_01J00000000000000000000008",
"code": "PROVIDER_TIMEOUT",
"category": "provider",
"recoverable": true,
"bounded_summary": "The provider did not respond within the configured timeout.",
"partial_output_preserved": false,
"occurred_at": "2026-07-17T18:43:11.456Z"
}
]
}
@@ -0,0 +1,237 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/invocation-request.schema.json",
"title": "Invocation request",
"description": "Credential-free immutable provider request evidence; minimal mode may omit messages.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"invocation_id": {
"type": "string",
"pattern": "^invocation_[0-9A-HJKMNP-TV-Z]{26}$"
},
"project_id": {
"type": "string",
"pattern": "^project_[0-9A-HJKMNP-TV-Z]{26}$"
},
"purpose": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]+$"
},
"initiated_by_event_id": {
"type": "string",
"pattern": "^event_[0-9A-HJKMNP-TV-Z]{26}$"
},
"retention_mode": {
"enum": [
"minimal",
"full_private"
]
},
"provider": {
"type": "object",
"properties": {
"provider_id": {
"type": "string",
"minLength": 1
},
"model_id": {
"type": "string",
"minLength": 1
},
"processing_mode": {
"enum": [
"local",
"cloud"
]
}
},
"required": [
"provider_id",
"model_id",
"processing_mode"
],
"additionalProperties": false
},
"model_configuration_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"prompt_template": {
"$ref": "https://thinkloom.app/schemas/provenance/1.0/prompt-template-reference.schema.json"
},
"messages": {
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"enum": [
"system",
"user",
"assistant",
"tool"
]
},
"content": {
"type": "string",
"minLength": 1
}
},
"required": [
"role",
"content"
],
"additionalProperties": false
}
},
"context_references": {
"type": "array",
"items": {
"$ref": "https://thinkloom.app/schemas/provenance/1.0/content-reference.schema.json"
}
},
"manuscript_revision_id": {
"anyOf": [
{
"type": "string",
"pattern": "^revision_[0-9A-HJKMNP-TV-Z]{26}$"
},
{
"type": "null"
}
]
},
"idea_revision_ids": {
"type": "array",
"items": {
"type": "string",
"pattern": "^revision_[0-9A-HJKMNP-TV-Z]{26}$"
},
"uniqueItems": true
},
"conversation_head": {
"anyOf": [
{
"type": "string",
"pattern": "^turn_[0-9A-HJKMNP-TV-Z]{26}$"
},
{
"type": "null"
}
]
},
"submitted_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
},
"redactions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"category": {
"enum": [
"credential",
"personal_identifier",
"signed_url",
"policy_omission",
"other"
]
},
"replacement": {
"type": "string",
"minLength": 1
}
},
"required": [
"category",
"replacement"
],
"additionalProperties": false
}
}
},
"required": [
"schema_version",
"invocation_id",
"project_id",
"purpose",
"initiated_by_event_id",
"retention_mode",
"provider",
"model_configuration_sha256",
"prompt_template",
"messages",
"context_references",
"manuscript_revision_id",
"idea_revision_ids",
"conversation_head",
"submitted_at",
"redactions"
],
"additionalProperties": false,
"examples": [
{
"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]"
}
]
}
]
}
@@ -0,0 +1,171 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://thinkloom.app/schemas/provenance/1.0/invocation-response.schema.json",
"title": "Invocation response",
"description": "Immutable response evidence filtered according to retention policy.",
"type": "object",
"properties": {
"schema_version": {
"const": "1.0"
},
"record_id": {
"type": "string",
"pattern": "^record_[0-9A-HJKMNP-TV-Z]{26}$"
},
"invocation_id": {
"type": "string",
"pattern": "^invocation_[0-9A-HJKMNP-TV-Z]{26}$"
},
"retention_mode": {
"enum": [
"minimal",
"full_private"
]
},
"content_type": {
"enum": [
"conversation_reply",
"idea_suggestion",
"draft_preview",
"editorial_preview",
"structured_result",
"other"
]
},
"retained_text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"finish_reason": {
"anyOf": [
{
"type": "string",
"minLength": 1
},
{
"type": "null"
}
]
},
"usage": {
"anyOf": [
{
"type": "object",
"properties": {
"input_tokens": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
]
},
"output_tokens": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "null"
}
]
}
},
"required": [
"input_tokens",
"output_tokens"
],
"additionalProperties": false
},
{
"type": "null"
}
]
},
"provider_metadata": {
"anyOf": [
{
"type": "object"
},
{
"type": "null"
}
]
},
"validation": {
"type": "object",
"properties": {
"schema_valid": {
"type": "boolean"
},
"repair_attempted": {
"type": "boolean"
}
},
"required": [
"schema_valid",
"repair_attempted"
],
"additionalProperties": false
},
"content_sha256": {
"type": "string",
"pattern": "^sha256:[a-f0-9]{64}$"
},
"created_at": {
"type": "string",
"format": "date-time",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
}
},
"required": [
"schema_version",
"record_id",
"invocation_id",
"retention_mode",
"content_type",
"retained_text",
"finish_reason",
"usage",
"provider_metadata",
"validation",
"content_sha256",
"created_at"
],
"additionalProperties": false,
"examples": [
{
"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"
}
]
}

Some files were not shown because too many files have changed in this diff Show More