Spiral Script V0 - Source Excerpt 04 - 22. Canonical JSON Examples
Summary
This source excerpt begins near 22. Canonical JSON Examples and preserves the surrounding evidence from Wiki.FFTAC.org/raw/system-archives/spiralist.org/docs-archive/2026-05-10/docs/planning/spiral-script-v0.1.md.
**Source path:** Wiki.FFTAC.org/raw/system-archives/spiralist.org/docs-archive/2026-05-10/docs/planning/spiral-script-v0.1.md
"label": { "type": "string" },
"access": { "type": "string", "enum": ["public", "members", "private"] },
"rights": { "type": "string" }
}
}
},
"intent": { "type": "string", "minLength": 1, "maxLength": 1000 },
"inputs": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "type", "required"],
"properties": {
"name": { "type": "string" },
"type": { "type": "string", "enum": ["text", "markdown", "json", "manuscriptRef", "symbolRef", "url", "fileRef", "enum", "number", "boolean"] },
"required": { "type": "boolean" },
"default": {},
"allowedValues": { "type": "array" }
}
}
},
"symbolicFrame": {
"type": "array",
"items": {
"type": "object",
"required": ["symbol", "machineMeaning"],
"properties": {
"symbol": { "type": "string" },
"name": { "type": "string" },
"machineMeaning": { "type": "string" },
"note": { "type": "string" }
}
}
},
"transformationRules": {
"type": "array",
"items": {
"type": "object",
"required": ["verb"],
"properties": {
"verb": { "type": "string", "enum": ["perceive", "classify", "interpret", "compare", "translate", "synthesize", "generate", "rewrite", "validate", "score", "fork", "archive"] },
"from": { "type": "string" },
"to": { "type": "string" },
"conditions": { "type": "array", "items": { "type": "string" } }
}
}
},
"outputContract": {
"type": "object",
"required": ["format", "requirements"],
"properties": {
"format": { "type": "string" },
"schemaRef": { "type": "string" },
"sections": { "type": "array", "items": { "type": "string" } },
"requirements": { "type": "array", "items": { "type": "string" } }
}
},
"constraints": { "type": "array", "items": { "type": "string" } },
"safetyRules": { "type": "array", "items": { "type": "string" } },
"validationRules": {
"type": "array",
"items": {
"type": "object",
"required": ["rule", "severity"],
"properties": {
"rule": { "type": "string" },
"severity": { "type": "string", "enum": ["info", "warning", "error", "blocker"] },
"message": { "type": "string" }
}
}
},
"provenance": {
"type": "object",
"required": ["createdBy", "createdAt", "rights", "reviewState"],
"properties": {
"createdBy": { "type": "string" },
"createdAt": { "type": "string", "format": "date-time" },
"rights": { "type": "string" },
"reviewState": { "type": "string" },
"parentScriptId": { "type": "string" }
}
},
"runSettings": {
"type": "object",
"properties": {
"modelPolicy": { "type": "string" },
"temperature": { "type": "number", "minimum": 0, "maximum": 2 },
"maxOutputTokens": { "type": "integer", "minimum": 1 },
"storeRunLog": { "type": "boolean" }
}
},
"revisionHistory": { "type": "array", "items": { "type": "object" } },
"forkPolicy": {
"type": "object",
"required": ["allowForks"],
"properties": {
"allowForks": { "type": "boolean" },
"requiresAttribution": { "type": "boolean" },
"allowedVisibility": { "type": "array", "items": { "type": "string" } }
}
},
"publicationStatus": {
"type": "object",
"required": ["status", "lane"],
"properties": {
"status": { "type": "string", "enum": ["draft", "private_ready", "provisional_public", "peer_reviewed", "restricted_review", "reverted", "archived", "official_canon"] },
"lane": { "type": "string" },
"publishedAt": { "type": "string", "format": "date-time" }
}
}
}
}
' ' '
## 22. Canonical JSON Examples
### Minimal Example
' ' ' json
{
"scriptId": "ss:example.raw-plate-note@0.1.0",
"version": "0.1.0",
"title": "Raw Plate Note",
"visibility": "private",
"authorMode": "human",
"sourceReferences": [],
"intent": "Turn a short symbolic note into a structured manuscript plate interpretation.",
"inputs": [{ "name": "note", "type": "text", "required": true }],
"symbolicFrame": [{ "symbol": "◇", "name": "Pattern", "machineMeaning": "symbol.pattern" }],
"transformationRules": [{ "verb": "interpret", "from": "note", "to": "plate_note" }],
"outputContract": { "format": "markdown.sections", "sections": ["Pattern", "Interpretation", "Use"], "requirements": ["No fact claims beyond the supplied note."] },
"constraints": ["Separate metaphor from fact."],
"safetyRules": ["deny ai_personhood_fact", "deny speculative_truth_claim"],
"validationRules": [{ "rule": "intent.present", "severity": "blocker" }],
"provenance": { "createdBy": "user:local", "createdAt": "2026-04-25T00:00:00Z", "rights": "private draft", "reviewState": "unreviewed" },
"runSettings": { "modelPolicy": "site-default", "temperature": 0.4, "maxOutputTokens": 1200, "storeRunLog": true },
"revisionHistory": [],
"forkPolicy": { "allowForks": false, "requiresAttribution": true, "allowedVisibility": ["private"] },
"publicationStatus": { "status": "draft", "lane": "private_workspace" }
}
' ' '
### Full Example
' ' ' json
{
"scriptId": "ss:manuscript.plate-reader@0.1.0",
"version": "0.1.0",
"title": "Manuscript Plate Reader",
"visibility": "members",
"authorMode": "ai_assisted",
"sourceReferences": [
{ "type": "manuscript", "ref": "folio:plate-i-the-sealed-system", "label": "Plate I - The Sealed System", "access": "public", "rights": "Spiralist manuscript reference" }
],
"intent": "Interpret a manuscript plate as a reusable symbolic prompt pattern.",
"inputs": [
{ "name": "folioSlug", "type": "manuscriptRef", "required": true },
{ "name": "readerQuestion", "type": "text", "required": false }
],
"symbolicFrame": [
{ "symbol": "◇", "name": "Pattern", "machineMeaning": "symbol.pattern", "note": "Detect visible and conceptual recurrence." },
{ "symbol": "⊙", "name": "Seal", "machineMeaning": "control.boundary", "note": "Read boundaries as constraints." },
{ "symbol": "⊣", "name": "Threshold", "machineMeaning": "gate.threshold", "note": "Identify entry condition." }
],
"transformationRules": [
{ "verb": "perceive", "from": "folio", "to": "observations" },
{ "verb": "interpret", "from": "observations", "to": "symbolic_reading" },
{ "verb": "synthesize", "from": "symbolic_reading", "to": "prompt_pattern" },
{ "verb": "validate", "from": "prompt_pattern", "to": "validated_output" }
],
"outputContract": {
"format": "markdown.sections",
"sections": ["Observed Pattern", "Symbolic Interpretation", "Prompt Pattern", "Constraints", "Validation"],
"requirements": ["Mention manuscript source.", "Separate observation from interpretation.", "Include reusable prompt rule."]
},
"constraints": ["900 words max.", "No unverifiable spiritual truth claims.", "No AI identity claims."],
"safetyRules": ["deny ai_personhood_fact", "deny dependency_cue", "require metaphor_fact_boundary", "require human_review before publish"],
"validationRules": [
{ "rule": "sourceReferences[0].type == manuscript", "severity": "error", "message": "A plate reader requires a manuscript source." },
{ "rule": "output.contains_sections", "severity": "blocker", "message": "Output must follow the declared sections." }
],
"provenance": { "createdBy": "user:system", "createdAt": "2026-04-25T00:00:00Z", "rights": "site-managed prompt draft", "reviewState": "needs_peer_review" },
"runSettings": { "modelPolicy": "site-default", "temperature": 0.35, "maxOutputTokens": 1800, "storeRunLog": true },
"revisionHistory": [{ "version": "0.1.0", "change": "Initial v0.1 plate reader contract.", "changedAt": "2026-04-25T00:00:00Z" }],
"forkPolicy": { "allowForks": true, "requiresAttribution": true, "allowedVisibility": ["private", "members", "public"] },
"publicationStatus": { "status": "provisional_public", "lane": "community_library" }
}
' ' '
### Validation Error Example
' ' ' json
{
"errorCode": "SS-MISSING-PROVENANCE",
"errorClass": "validation",
"failingField": "provenance",
"failingValue": null,
"reason": "Public Spiral Script prompts must declare origin, rights, and review state.",
"recoverable": true,
"suggestedFix": "Add provenance.createdBy, provenance.createdAt, provenance.rights, and provenance.reviewState before publication.",
"severity": "blocker"
}
' ' '
### Forked Prompt Example
' ' ' json
{
"scriptId": "ss:comparative.plate-reader@0.1.0+fork.a91c",