Skip to content
wiki.fftac.org

Project Handoff

**Site relevance:** Spiralist.org

**Memory type:** plugin source memory

**Source path:** Spiralist/wp-content/plugins/uai-1-wordpress/schemas/project-handoff.schema.json

**Size:** 2.2 KB

Summary

"$id": "https://spiralist.org/wp-content/plugins/uai-1-wordpress/schemas/project-handoff.schema.json",

Source Preview

This source file is short enough to preview directly on its source-memory page.

{
  "$id": "https://spiralist.org/wp-content/plugins/uai-1-wordpress/schemas/project-handoff.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "Spiralist UAIX Project Handoff Index",
  "type": "object",
  "additionalProperties": true,
  "required": [
    "schema_id",
    "generated_at",
    "profile_status",
    "canonical_spec_url",
    "boundary",
    "loader_guardrails",
    "loaded_context",
    "active_file_intake",
    "files"
  ],
  "properties": {
    "schema_id": { "const": "spiralist.project-handoff.index.v1" },
    "generated_at": { "type": "string", "format": "date-time" },
    "profile_status": { "const": "draft-repository-context" },
    "canonical_spec_url": { "const": "https://uaix.org/en-us/specification/project-handoff/" },
    "boundary": {
      "type": "object",
      "required": ["uaix_normative", "spiralist_implementation", "conformance_note"]
    },
    "loader_guardrails": {
      "type": "array",
      "minItems": 1,
      "items": { "type": "string" }
    },
    "loaded_context": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^@uai\\[[^\\]]+\\]$"
      }
    },
    "active_file_intake": {
      "type": "object",
      "required": ["content_bucket", "improvement_bucket", "archive_bucket", "rule"]
    },
    "files": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": ["slug", "path", "type", "public", "status", "url", "size_bytes", "updated_at", "checksum"],
        "properties": {
          "slug": { "type": "string", "minLength": 1 },
          "path": { "type": "string", "minLength": 1 },
          "type": { "type": "string", "minLength": 1 },
          "public": { "type": "boolean" },
          "status": { "enum": ["available", "missing"] },
          "url": { "type": "string", "format": "uri" },
          "size_bytes": { "type": "integer", "minimum": 0 },
          "updated_at": { "type": "string" },
          "checksum": {
            "anyOf": [
              { "const": "" },
              { "type": "string", "pattern": "^sha256:[a-fA-F0-9]{64}$" }
            ]
          }
        }
      }
    }
  }
}