SpecDocDetail
A spec document, its outline and its findings. Its text is fetched separately.
Shape
blocksarray of SpecBlock
- The SpecBlock schema
- anchorstring
- end_lineinteger · int32
- headingstring
- kindstring
- levelinteger · int32
- namestring
- ordinalinteger · int32
- start_lineinteger · int32
- heading_numberstring or nulloptional
- markerstring or nulloptional
- parent_ordinalinteger · int32 or nulloptionalThe enclosing block's
ordinal, not its id — the tree is addressed the way it is read. - summarystring or nulloptional
docSpecDocSummary
- The SpecDocSummary schema
- block_countinteger · int32
- byte_leninteger · int32
- corpus_idCorpusId (string · uuid)
- doc_idstring
- finding_countinteger · int32
- last_seen_shastring
- pathstring
- postureSpecPosturedeclareduntypedWhether a document claims to follow the spec format. A
declareddocument carriesgsf: 1in its frontmatter and is checked in full; anuntypedone made no claim and is never reported for not following it. - profilestring
- record_countinteger · int32
- staleboolean
- stemstring
- synced_atstring
- titlestring
- createdstring or nulloptional
- depends_onarray of stringoptional
- gsf_versioninteger · int32 or nulloptional
- kindstring or nulloptional
- last_reviewedstring or nulloptionalISO
YYYY-MM-DD, verbatim from the frontmatter. - orphaned_atstring or nulloptionalWhen the file stopped being present in the repository. The record is kept rather than deleted, so an existing link still resolves and tells you it moved.
- owner_group_idGroupId (string · uuid) or nulloptional
- owner_principal_idPrincipalId (string · uuid) or nulloptional
- parent_doc_idstring or nulloptional
- part_of_doc_idstring or nulloptional
- statusSpecStatusdraftreviewapprovedimplementedpartialsupersededlivingnoneor nulloptionalA document's declared lifecycle state.
noneis a real value rather than an absence: a document that declaresstatus: nonehas said the question does not apply to it, which is a different fact from one that declared nothing. - status_notestring or nulloptional
- summarystring or nulloptional
- superseded_bystring or nulloptional
- tagsarray of stringoptional
findingsarray of SpecFinding
- The SpecFinding schema
- codestring
- doc_idstring
- messagestring
- severitySpecSeverityerrorwarninginfoHow serious a finding is.
- lineinteger · int32 or nulloptional
Example
Synthesized example{
"blocks": [
{
"anchor": "anchor-d2c1",
"end_line": 57,
"heading": "heading-43ed",
"kind": "kind-7513",
"level": 33,
"name": "payments-api",
"ordinal": 29,
"start_line": 30
},
{
"anchor": "anchor-7443",
"end_line": 41,
"heading": "heading-99ce",
"kind": "kind-3cf4",
"level": 18,
"name": "payments-api",
"ordinal": 53,
"start_line": 67
}
],
"doc": {
"block_count": 6,
"byte_len": 60,
"corpus_id": "64a0ce02-3565-43f9-a46b-1b4a24e50dee",
"doc_id": "1e2fbe5f-3f7a-462c-ba08-99fff632d445",
"finding_count": 3,
"last_seen_sha": "40d24a94c7194aa2a064f04fd61e04a424010182",
"path": "path-7e84",
"posture": "declared",
"profile": "profile-d1bb",
"record_count": 7,
"stale": false,
"stem": "stem-4d63",
"synced_at": "2026-10-14T22:45:12Z",
"title": "Pin a page's payload to the build that rendered it",
"created": "created-6a86",
"depends_on": [
"depends-on-cac1",
"depends-on-90c1"
],
"gsf_version": 77,
"kind": "kind-73f5",
"last_reviewed": "last-reviewed-e5f6",
"orphaned_at": "2026-10-13T18:54:13Z",
"owner_group_id": "4c1d8e2f-6a3b-4f90-b7c5-1e2d3c4b5a69",
"owner_principal_id": "2a7de25d-a410-49fa-b1b2-bf68c08e5776",
"parent_doc_id": "7df88067-520d-4929-b6ff-84c60447760f",
"part_of_doc_id": "39d5848d-4063-4650-8b39-23f91485fae1",
"status": "draft",
"status_note": "status-note-eca4",
"summary": "summary-248f",
"superseded_by": "b7e2d1c0-9f8e-4d7c-a6b5-c4d3e2f1a0b9",
"tags": [
"tags-55ca"
]
},
"findings": [
{
"code": "code-644d",
"doc_id": "31dee81c-b87f-4ca8-988f-7a23e60ebf1e",
"message": "Label every synthesized example",
"severity": "error"
},
{
"code": "code-57cb",
"doc_id": "c31f3694-5671-43a6-8899-628abddf14e0",
"message": "Inline scalar newtypes but keep their brand",
"severity": "error"
}
]
}
Graph
Used inside
No schema contains this one.
Used by
Sent by 0 operations
No operation takes it as a request body.
Returned by 1 operation