Every schema below is generated directly from @olobolo-com/contracts —
the same Zod contracts the server validates against and the CLI validates
before buffering. 57 schemas, one source of truth.
All evidence payloads are metadata only: hashes, references, counts and
timestamps. Source code, prompts, spec text, review comments and test
output have no fields to live in.
| Field |
Type |
Required |
actor_id |
string |
yes |
actor_type |
"human" | "agent" |
yes |
git_identity |
string |
yes |
agent_tool |
string |
no |
agent_model |
string |
no |
agent_version |
string |
no |
| Field |
Type |
Required |
actor_id |
string (^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}...) |
yes |
actor_type |
"human" | "agent" |
yes |
agent_tool |
string (^[\w.\/@+-]+$) |
no |
agent_model |
string (^[\w.\/@+-]+$) |
no |
agent_version |
string (^[\w.+-]+$) |
no |
| Field |
Type |
Required |
action |
"actor.deleted" | "plan.changed" | "badge.revoked" | "content.published" | "price.changed" |
yes |
subject_ref |
string (^[\w.\/:#?=&%+-]+$) |
yes |
actor |
object |
yes |
details_hash |
string (^[0-9a-f]{64}$) |
no |
actioned_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
yes |
| Field |
Type |
Required |
org_id |
string |
yes |
action |
string |
yes |
plan |
"record" | "team" | "compliance" |
yes |
tokens_revoked |
integer |
no |
chain_event_queued |
boolean |
yes |
chain_repo_id |
string |
no |
| Field |
Type |
Required |
available |
boolean |
yes |
file |
string |
no |
title |
string |
no |
markdown |
string |
no |
modified_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
no |
| Field |
Type |
Required |
available |
boolean |
yes |
reports |
array of object |
yes |
open_findings |
array of object |
yes |
| Field |
Type |
Required |
repo_id |
string |
no |
reason |
string |
no |
| Field |
Type |
Required |
org_id |
string |
yes |
repo_id |
string |
no |
action |
"badge.revoked" | "badge.restored" |
yes |
state |
"verified" | "neutral" | "revoked" |
yes |
chain_event_queued |
boolean |
yes |
chain_repo_id |
string |
no |
chain_note |
string |
no |
| Field |
Type |
Required |
repos |
array of object |
yes |
failing_repos |
integer |
yes |
unanchored_repos |
integer |
yes |
| Field |
Type |
Required |
customers |
array of object |
yes |
paying_orgs |
integer |
yes |
mrr_eur |
number |
yes |
conversion_pct |
integer |
yes |
| Field |
Type |
Required |
inquiries |
array of object |
yes |
open |
integer |
yes |
| Field |
Type |
Required |
available |
boolean |
yes |
markdown |
string |
no |
generated_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
no |
| Field |
Type |
Required |
followed_projects |
integer |
yes |
organizations |
integer |
yes |
paying_orgs |
integer |
yes |
mrr_eur |
number |
yes |
conversion_pct |
integer |
yes |
entries_total |
integer |
yes |
latest_entry_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
no |
badges |
object |
yes |
acquisition_note |
string |
yes |
| Field |
Type |
Required |
org_id |
string |
yes |
name |
string |
yes |
plan |
"record" | "team" | "compliance" |
yes |
plan_status |
string |
yes |
plan_interval |
"month" | "year" |
no |
stripe_customer_ref |
string |
no |
mrr_eur |
number |
yes |
active_tokens |
integer |
yes |
repos |
array of object |
yes |
| Field |
Type |
Required |
plan |
"record" | "team" | "compliance" |
yes |
reason |
string |
no |
| Field |
Type |
Required |
pricing |
object |
yes |
chain_event_queued |
boolean |
yes |
chain_repo_id |
string |
no |
stripe_note |
string |
yes |
| Field |
Type |
Required |
team_eur_month |
integer |
no |
compliance_eur_month |
integer |
no |
record_private_repo_cap |
integer |
no |
record_display_window_days |
integer |
no |
reason |
string |
no |
| Field |
Type |
Required |
pricing |
object |
yes |
| Field |
Type |
Required |
trustmarks |
array of object |
yes |
| Field |
Type |
Required |
token |
string |
yes |
| Field |
Type |
Required |
ok |
true |
yes |
email |
string (email) |
yes |
org_id |
string |
yes |
| Field |
Type |
Required |
ok |
true |
yes |
| Field |
Type |
Required |
email |
string (email) |
yes |
| Field |
Type |
Required |
sent |
true |
yes |
| Field |
Type |
Required |
authenticated |
boolean |
yes |
email |
string (email) |
no |
org_id |
string |
no |
org_name |
string |
no |
| Field |
Type |
Required |
tier |
"team" | "compliance" |
yes |
interval |
"month" | "year" |
yes |
| Field |
Type |
Required |
url |
string |
yes |
tier |
"team" | "compliance" |
yes |
interval |
"month" | "year" |
yes |
| Field |
Type |
Required |
url |
string |
yes |
| Field |
Type |
Required |
name |
string |
yes |
email |
string (email) |
yes |
org |
string |
no |
topic |
"support" | "sales" | "press" | "security" | "partnership" | "other" |
yes |
message |
string |
yes |
lang |
"en" | "da" |
no |
website |
string |
no |
| Field |
Type |
Required |
received |
true |
yes |
| Field |
Type |
Required |
org_id |
string |
yes |
repo_id |
string |
no |
anchors |
array of object |
yes |
stale |
boolean |
yes |
verify |
string |
yes |
| Field |
Type |
Required |
repo_id |
string |
no |
variant |
"full" | "pill" |
no |
theme |
"dark" | "light" |
no |
size |
"regular" | "small" | "mini" |
no |
| Field |
Type |
Required |
org_id |
string |
yes |
repo_id |
string |
no |
variant |
"full" | "pill" |
yes |
theme |
"dark" | "light" |
yes |
size |
"regular" | "small" | "mini" |
yes |
width |
integer |
yes |
height |
integer |
yes |
badge_url |
string |
yes |
verify_url |
string |
yes |
markdown |
string |
yes |
html |
string |
yes |
| Field |
Type |
Required |
org_id |
string |
yes |
repo_id |
string |
no |
total |
integer |
yes |
exceptions |
array of object |
yes |
| Field |
Type |
Required |
org_id |
string |
yes |
repo_id |
string |
no |
entries |
array of object |
yes |
next_cursor |
string |
no |
| Field |
Type |
Required |
org_id |
string |
yes |
repo_id |
string |
no |
period_days |
integer |
yes |
total_changes |
integer |
yes |
ai_changes |
integer |
yes |
ai_share_pct |
integer |
no |
review_coverage_pct |
integer |
no |
test_evidence_pct |
integer |
no |
unlinked_changes |
integer |
yes |
| Field |
Type |
Required |
org_id |
string |
yes |
repo_id |
string |
no |
releases |
array of object |
yes |
trend |
array of object |
yes |
| Field |
Type |
Required |
repo_id |
string |
yes |
version |
string |
yes |
| Field |
Type |
Required |
org_id |
string |
yes |
recorder_active |
boolean |
yes |
sources |
array of object |
yes |
repos |
array of object |
yes |
last_entry_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
no |
| Field |
Type |
Required |
org_id |
string |
yes |
repo_id |
string |
no |
status |
"passed" | "failed" | "never" |
yes |
entry_count |
integer |
no |
head |
string (^[0-9a-f]{64}$) |
no |
failure_count |
integer |
no |
verified_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
no |
| Field |
Type |
Required |
repo_id |
string |
yes |
| Field |
Type |
Required |
error |
string |
yes |
details |
array of object |
no |
| Field |
Type |
Required |
repo_id |
string |
yes |
event_type |
"change.authored" | "spec.linked" | "change.reviewed" | "test.evidenced" | "release.sealed" | "admin.actioned" |
yes |
schema_version |
"0" | "1" |
no |
occurred_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
yes |
payload |
unknown |
yes |
| Field |
Type |
Required |
queued |
true |
yes |
inbox_id |
integer |
yes |
| Field |
Type |
Required |
org_id |
string |
yes |
repo_id |
string |
no |
entry_count |
integer |
yes |
head |
string (^[0-9a-f]{64}$) |
no |
counts_by_type |
record<string, integer> |
yes |
last_entry_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
no |
anchor |
object |
no |
anchor_pending |
boolean |
no |
| Field |
Type |
Required |
entry_hash |
string (^[0-9a-f]{64}$) |
yes |
envelope |
object |
yes |
payload |
unknown |
yes |
| Field |
Type |
Required |
commit_sha |
string |
yes |
diff_fingerprint |
string (^[0-9a-f]{64}$) |
yes |
file_paths |
array of string |
yes |
actor |
object |
yes |
session_ref |
string |
no |
session_hash |
string (^[0-9a-f]{64}$) |
no |
loc_added |
integer |
yes |
loc_removed |
integer |
yes |
| Field |
Type |
Required |
commit_sha |
string (^[0-9a-f]{7,40}$) |
yes |
diff_fingerprint |
string (^[0-9a-f]{64}$) |
yes |
file_paths |
array of string (^[^<>\x00-\x1f]+$) |
yes |
actor |
object |
yes |
session_ref |
string (^[\w.\/:#?=&%+-]+$) |
no |
session_hash |
string (^[0-9a-f]{64}$) |
no |
loc_added |
integer |
yes |
loc_removed |
integer |
yes |
| Field |
Type |
Required |
change_ref |
string |
yes |
reviewer |
object |
yes |
decision |
"approved" | "rejected" | "changes" |
yes |
thread_ref |
string |
no |
decided_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
yes |
| Field |
Type |
Required |
change_ref |
string (^[\w.\/:#?=&%+-]+$) |
yes |
reviewer |
object |
yes |
decision |
"approved" | "rejected" | "changes" |
yes |
thread_ref |
string (^[\w.\/:#?=&%+-]+$) |
no |
decided_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
yes |
| Field |
Type |
Required |
algo |
"sha256" |
yes |
schema_version |
"0" | "1" |
yes |
event_type |
"change.authored" | "spec.linked" | "change.reviewed" | "test.evidenced" | "release.sealed" | "admin.actioned" |
yes |
payload_hash |
string (^[0-9a-f]{64}$) |
yes |
prev_entry_hash |
string (^[0-9a-f]{64}$) |
yes |
occurred_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
yes |
org_id |
string |
yes |
repo_id |
string |
yes |
| Field |
Type |
Required |
version |
string |
yes |
first_entry_hash |
string (^[0-9a-f]{64}$) |
yes |
last_entry_hash |
string (^[0-9a-f]{64}$) |
yes |
chain_hash |
string (^[0-9a-f]{64}$) |
yes |
sealed_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
yes |
| Field |
Type |
Required |
version |
string (^[\w.+-]+$) |
yes |
first_entry_hash |
string (^[0-9a-f]{64}$) |
yes |
last_entry_hash |
string (^[0-9a-f]{64}$) |
yes |
chain_hash |
string (^[0-9a-f]{64}$) |
yes |
sealed_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
yes |
| Field |
Type |
Required |
change_ref |
string |
yes |
spec_ref |
string |
yes |
spec_version |
string |
no |
spec_hash |
string (^[0-9a-f]{64}$) |
yes |
linked_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
yes |
| Field |
Type |
Required |
change_ref |
string (^[\w.\/:#?=&%+-]+$) |
yes |
spec_ref |
string (^[\w.\/:#?=&%+-]+$) |
yes |
spec_version |
string (^[^<>\u0000-\u001F]+$) |
no |
spec_hash |
string (^[0-9a-f]{64}$) |
yes |
linked_at |
string (^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\...) |
yes |
| Field |
Type |
Required |
change_ref |
string |
yes |
result |
"passed" | "failed" |
yes |
tests_passed |
integer |
yes |
tests_failed |
integer |
yes |
coverage_pct |
string (^\d+(\.\d+)?$) |
no |
ci_run_ref |
string |
no |
artifact_hashes |
array of string (^[0-9a-f]{64}$) |
yes |
| Field |
Type |
Required |
change_ref |
string (^[\w.\/:#?=&%+-]+$) |
yes |
result |
"passed" | "failed" |
yes |
tests_passed |
integer |
yes |
tests_failed |
integer |
yes |
coverage_pct |
string (^\d+(\.\d+)?$) |
no |
ci_run_ref |
string (^[\w.\/:#?=&%+-]+$) |
no |
artifact_hashes |
array of string (^[0-9a-f]{64}$) |
yes |