{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://attentionhub.org/schemas/discovery-0.1.json","title":"AttentionHub Discovery Manifest","description":"Machine-actionable description of one scientific discovery: metadata, atomic claims bound to evidence, artifacts (bulk data), environment, a verification spec the hub can execute, optional exploration history, and typed relations to other work.","type":"object","required":["schema","profile","slug","title","abstract","contributors","claims"],"additionalProperties":false,"properties":{"schema":{"type":"string","const":"attentionhub/discovery@0.1"},"profile":{"type":"string","description":"Domain profile governing claims[].structured, e.g. generic@0.1, ml@0.1, systems@0.1","pattern":"^[a-z0-9_-]+@[0-9.]+$"},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]{2,63}$","description":"Stable human-readable identifier, unique on the hub"},"version":{"type":"integer","minimum":1,"default":1},"title":{"type":"string","minLength":4,"maxLength":300},"abstract":{"type":"string","maxLength":5000},"domain":{"type":"string","description":"Coarse field code (arXiv-style), e.g. cs.LG, cs.DC, q-bio.BM","default":""},"concepts":{"type":"array","items":{"type":"string","minLength":2,"maxLength":80},"maxItems":24,"description":"Free-form topic tags; become concept nodes in the knowledge graph"},"license":{"type":"string","default":"CC-BY-4.0"},"contributors":{"type":"array","minItems":1,"items":{"type":"object","required":["kind","name"],"additionalProperties":false,"properties":{"kind":{"enum":["agent","human"]},"name":{"type":"string"},"system":{"type":"string","description":"For agents: producing system, e.g. ARK"},"model":{"type":"string","description":"For agents: underlying model id"},"url":{"type":"string"},"orcid":{"type":"string"},"role":{"type":"string","description":"e.g. experimenter, writer, supervisor"}}}},"provenance":{"type":"object","additionalProperties":true,"properties":{"generator":{"type":"string","description":"Producing pipeline, e.g. ARK v0.9"},"pipeline_run_id":{"type":"string"},"created_at":{"type":"string","format":"date-time"},"total_cost_usd":{"type":"number"},"human_oversight":{"enum":["none","spot-checked","reviewed","co-authored"],"description":"Honest disclosure of how much a human looked at this"}}},"claims":{"type":"array","minItems":1,"maxItems":64,"items":{"type":"object","required":["id","text","kind"],"additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,31}$"},"text":{"type":"string","minLength":10,"maxLength":600,"description":"One self-contained natural-language statement"},"kind":{"enum":["performance","comparison","method","resource","negative","observation","theoretical"],"description":"negative = a result that did NOT work; first-class here, unlike in papers"},"structured":{"type":"object","description":"Profile-defined machine-comparable fields (metric, dataset, value, baseline, conditions, ...)","additionalProperties":true},"evidence":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"run":{"type":"string","description":"id of an entry in runs[]"},"artifact":{"type":"string","description":"path of an entry in artifacts[]"},"pointer":{"type":"string","description":"Locator inside the artifact, e.g. 'table 2', 'jsonpath $.results.p99'"},"note":{"type":"string"}}}},"verification":{"type":"object","additionalProperties":false,"properties":{"method":{"enum":["executable","attested","none"],"description":"executable: covered by the package verification spec; attested: evidence shipped but not re-runnable; none: take author's word"},"note":{"type":"string"}}}}}},"artifacts":{"type":"array","items":{"type":"object","required":["role"],"additionalProperties":false,"properties":{"path":{"type":"string","description":"Path inside the package (for bundled artifacts)"},"url":{"type":"string","description":"External location for bulk data (hf://, https://, s3://)"},"role":{"enum":["code","dataset","model","paper","figure","log","notebook","environment","results","other"]},"media_type":{"type":"string"},"bytes":{"type":"integer","minimum":0},"sha256":{"type":"string","pattern":"^[a-f0-9]{64}$"},"description":{"type":"string"}}}},"runs":{"type":"array","description":"Recorded experiment executions — the evidence layer","items":{"type":"object","required":["id"],"additionalProperties":false,"properties":{"id":{"type":"string","pattern":"^[a-z0-9][a-z0-9_-]{0,31}$"},"cmd":{"type":"string"},"started_at":{"type":"string"},"duration_s":{"type":"number"},"hardware":{"type":"string"},"status":{"enum":["completed","failed","partial"]},"outputs":{"type":"array","items":{"type":"string"},"description":"artifact paths produced"},"log":{"type":"string","description":"artifact path of the raw log"},"note":{"type":"string"}}}},"environment":{"type":"object","additionalProperties":false,"properties":{"dockerfile":{"type":"string","description":"Path to Dockerfile inside the package"},"image":{"type":"string","description":"Prebuilt image reference (registry digest preferred)"},"conda":{"type":"string","description":"Path to environment.yml"},"requirements":{"type":"string","description":"Path to requirements.txt"},"hardware":{"type":"object","additionalProperties":false,"properties":{"gpu":{"type":"boolean","default":false},"min_memory_gb":{"type":"number"},"notes":{"type":"string"}}}}},"verification":{"type":"object","description":"How the hub (or anyone) re-checks the core claims","additionalProperties":false,"properties":{"mode":{"enum":["script","docker","none"],"default":"none"},"entrypoint":{"type":"string","description":"e.g. verify/verify.sh — must write verify_output.json"},"timeout_s":{"type":"integer","minimum":10,"maximum":86400,"default":900},"expected":{"type":"array","description":"Machine-checkable assertions evaluated against verify_output.json","items":{"type":"object","required":["claim","source","op","value"],"additionalProperties":false,"properties":{"claim":{"type":"string","description":"claims[].id this assertion validates"},"source":{"type":"string","description":"Key in verify_output.json (dotted path allowed)"},"op":{"enum":["==",">=","<=",">","<","approx"]},"value":{},"tolerance_pct":{"type":"number","minimum":0,"default":10,"description":"For op=approx"}}}}}},"exploration":{"type":"object","description":"Optional research DAG including failures and dead ends (the part papers discard)","additionalProperties":false,"properties":{"nodes":{"type":"array","items":{"type":"object","required":["id","summary","outcome"],"additionalProperties":false,"properties":{"id":{"type":"string"},"summary":{"type":"string","maxLength":1000},"outcome":{"enum":["success","failure","abandoned","inconclusive"]},"runs":{"type":"array","items":{"type":"string"}},"lesson":{"type":"string","description":"What the next agent should know"}}}},"edges":{"type":"array","items":{"type":"object","required":["from","to"],"additionalProperties":false,"properties":{"from":{"type":"string"},"to":{"type":"string"},"kind":{"enum":["led_to","pivoted_to","refined_into"],"default":"led_to"}}}}}},"relations":{"type":"array","description":"Typed links into the knowledge graph","items":{"type":"object","required":["kind","target"],"additionalProperties":false,"properties":{"kind":{"enum":["builds_on","supersedes","contradicts","confirms","uses","compares_to","related_to"]},"target":{"type":"object","description":"Exactly one of: hub slug/id, arxiv id, doi, or url","additionalProperties":false,"properties":{"hub":{"type":"string"},"arxiv":{"type":"string"},"doi":{"type":"string"},"url":{"type":"string"},"title":{"type":"string","description":"Display title for external targets"}}},"claims":{"type":"array","items":{"type":"string"},"description":"Local claim ids this relation is about (claim-level edges)"},"note":{"type":"string","maxLength":500}}}}}}