{
  "profileId": "uaix.advanced-persona.conformance-fixtures.v1",
  "targetProfiles": [
    "uaix.persona.v1",
    "uaix.persona.storage-binding.v1",
    "uaix.package.v0.1"
  ],
  "description": "Executable public-safe fixtures for the complete Advanced Persona Create, Update, validation, migration, privacy, source-integrity, and lossless round-trip contract.",
  "canonicalContract": {
    "sourcePersonaFiles": [
      ".uai/persona.uai",
      ".uai/personality/identity.uai",
      ".uai/personality/religion-worldview.uai",
      ".uai/personality/political-leaning.uai",
      ".uai/personality/sense-of-style.uai",
      ".uai/personality/sense-of-winter.uai",
      ".uai/personality/sense-of-spring-fall.uai",
      ".uai/personality/super-fashion-style.uai",
      ".uai/personality/jewelry-choices.uai",
      ".uai/personality/physical-appearance.uai",
      ".uai/personality/birth-age-generation.uai",
      ".uai/personality/romantic-orientation.uai",
      ".uai/personality/voice.uai",
      ".uai/personality/values.uai",
      ".uai/personality/temperament.uai",
      ".uai/personality/reasoning-style.uai",
      ".uai/personality/emotional-patterns.uai",
      ".uai/personality/relationship-style.uai",
      ".uai/personality/behavioral-patterns.uai",
      ".uai/personality/boundaries.uai",
      ".uai/personality/examples-dialogue.uai",
      ".uai/personality/adaptation-rules.uai",
      ".uai/personality/preservation-rules.uai",
      ".uai/personality/anti-drift-rules.uai",
      ".uai/personality/cadence.uai",
      ".uai/personality/examples.uai",
      ".uai/personality/fidelity-tests.uai",
      ".uai/personality/interaction-style.uai",
      ".uai/personality/symbols.uai",
      ".uai/personality/trait-lens.uai",
      ".uai/personality/worldview.uai"
    ],
    "evidenceFiles": [
      ".uai/evidence/source-excerpts.uai",
      ".uai/evidence/source-platform-profile.uai",
      ".uai/evidence/persona-fidelity-test-deck.uai",
      ".uai/evidence/variance-report-template.uai",
      ".uai/evidence/provenance.uai"
    ],
    "expectedFileCount": 36,
    "expectedFilesRule": "Every fixture resolves expectedFiles.ref to sourcePersonaFiles plus evidenceFiles, with no missing, extra, collapsed, or trigger-dependent Advanced Persona records.",
    "sourceIntegrityRule": "Validation and repair compare immutable pre-operation source bytes and SHA-256 values with post-operation values. Any intentional additive source update is separately reviewed, attributed, and revisioned; normalization is never silent."
  },
  "fixtures": [
    {
      "id": "AP-CF-01-EVIDENCE-RICH-CREATE",
      "scenario": "Complete evidence-rich persona creation",
      "operation": "create",
      "inputState": {
        "evidenceRich": true,
        "completeFileSet": true,
        "allSourceRefsResolve": true,
        "exactSelectedRoute": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact"
      },
      "expectedValidationResult": "pass",
      "expectedDiagnostics": [],
      "automaticRepair": {
        "permitted": false,
        "permittedActions": []
      },
      "humanReviewRequiredFor": [
        "approval of source selection",
        "approval of persona interpretation",
        "initial reviewed revision"
      ],
      "requiredNoOpBehavior": "Do not rewrite reviewed source text when validation already passes.",
      "sourceIntegrityProof": "Record pre-create source hashes, source excerpt IDs, generated file hashes, reviewer identity, and the immutable first revision."
    },
    {
      "id": "AP-CF-02-SILENT-PRIVATE-DIMENSIONS",
      "scenario": "Sources silent about private identity dimensions",
      "operation": "create",
      "inputState": {
        "completeFileSet": true,
        "silentPrivateDimensionsUseExplicitUnknown": true,
        "inferredPrivateDimensions": false,
        "allSourceRefsResolve": true,
        "exactSelectedRoute": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact"
      },
      "expectedValidationResult": "pass",
      "expectedDiagnostics": [],
      "automaticRepair": {
        "permitted": false,
        "permittedActions": []
      },
      "humanReviewRequiredFor": [
        "whether a dimension is unknown, private, or explicitly not disclosed"
      ],
      "requiredNoOpBehavior": "Do not infer religion, politics, romantic orientation, appearance, age, or other private traits from silence.",
      "sourceIntegrityProof": "Each silent dimension carries an explicit unknown or not-disclosed state, a reason, and a resolvable source-gap evidence ID."
    },
    {
      "id": "AP-CF-03-CONFLICTING-EVIDENCE",
      "scenario": "Conflicting or ambiguous source evidence",
      "operation": "create",
      "inputState": {
        "completeFileSet": true,
        "conflictingSourceEvidence": true,
        "conflictPreservedForReview": true,
        "allSourceRefsResolve": true,
        "exactSelectedRoute": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact"
      },
      "expectedValidationResult": "warning",
      "expectedDiagnostics": [
        "UAI-AP-SOURCE-CONFLICT-REVIEW"
      ],
      "automaticRepair": {
        "permitted": false,
        "permittedActions": []
      },
      "humanReviewRequiredFor": [
        "authority ordering",
        "which conflicting claim, if any, becomes current",
        "whether ambiguity remains explicit"
      ],
      "requiredNoOpBehavior": "Do not choose, blend, or delete conflicting evidence automatically.",
      "sourceIntegrityProof": "Preserve both excerpts, authorities, timestamps, and hashes; link the unresolved conflict without mutating either source."
    },
    {
      "id": "AP-CF-04-LEGACY-TWO-FILE-MIGRATION",
      "scenario": "A legacy two-file omnibus persona",
      "operation": "update",
      "inputState": {
        "legacyOmnibusFileCount": 2,
        "completeFileSet": false,
        "provenancePresent": false,
        "exactSelectedRoute": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact-after-approved-repair"
      },
      "expectedValidationResult": "repairable_failure",
      "expectedDiagnostics": [
        "UAI-AP-FILESET-MISSING",
        "UAI-AP-OMNIBUS-COLLAPSE",
        "UAI-AP-PROVENANCE-MISSING"
      ],
      "automaticRepair": {
        "permitted": true,
        "permittedActions": [
          "create missing canonical files",
          "copy source-backed passages without paraphrase",
          "materialize explicit unknown records",
          "add migration provenance and hashes"
        ]
      },
      "humanReviewRequiredFor": [
        "semantic splitting of ambiguous omnibus passages",
        "authority conflicts",
        "approval of the migrated revision"
      ],
      "requiredNoOpBehavior": "Do not delete, overwrite, reinterpret, or silently normalize the two legacy source files.",
      "sourceIntegrityProof": "Hash and preserve both legacy files as migration evidence, then prove all new records trace to a legacy excerpt or an explicit source gap."
    },
    {
      "id": "AP-CF-05-MISSING-PERSONALITY-RECORDS",
      "scenario": "Missing personality records",
      "operation": "update",
      "inputState": {
        "completeFileSet": false,
        "missingCanonicalPaths": true,
        "exactSelectedRoute": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact"
      },
      "expectedValidationResult": "fail",
      "expectedDiagnostics": [
        "UAI-AP-FILESET-MISSING"
      ],
      "automaticRepair": {
        "permitted": true,
        "permittedActions": [
          "create a missing file with source-backed content",
          "create an explicit unknown or not-disclosed record with reason and evidence reference"
        ]
      },
      "humanReviewRequiredFor": [
        "newly asserted persona facts"
      ],
      "requiredNoOpBehavior": "Do not mark the package complete while any canonical path is absent.",
      "sourceIntegrityProof": "Before-and-after manifests identify only newly added paths; pre-existing source hashes remain byte-identical."
    },
    {
      "id": "AP-CF-06-GENERIC-PLACEHOLDERS",
      "scenario": "Generic placeholder-filled records",
      "operation": "update",
      "inputState": {
        "completeFileSet": true,
        "placeholderOnlyRecords": true,
        "allSourceRefsResolve": true,
        "exactSelectedRoute": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact"
      },
      "expectedValidationResult": "fail",
      "expectedDiagnostics": [
        "UAI-AP-PLACEHOLDER-ONLY"
      ],
      "automaticRepair": {
        "permitted": true,
        "permittedActions": [
          "replace generic scaffolding with reviewed source excerpts",
          "replace unsupported placeholders with explicit unknown states and reasons"
        ]
      },
      "humanReviewRequiredFor": [
        "all substantive replacements"
      ],
      "requiredNoOpBehavior": "Do not treat headings, TODO text, template instructions, or generic prose as populated persona evidence.",
      "sourceIntegrityProof": "Preserve the placeholder revision hash and attribute each reviewed replacement to evidence without changing unrelated reviewed files."
    },
    {
      "id": "AP-CF-07-EVIDENCE-REF-FAILURES",
      "scenario": "Missing or unresolved evidence references",
      "operation": "update",
      "inputState": {
        "completeFileSet": true,
        "missingSourceExcerptRefs": true,
        "unresolvedSourceExcerptRefs": true,
        "exactSelectedRoute": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact"
      },
      "expectedValidationResult": "fail",
      "expectedDiagnostics": [
        "UAI-AP-EVIDENCE-REF-MISSING",
        "UAI-AP-EVIDENCE-REF-UNRESOLVED"
      ],
      "automaticRepair": {
        "permitted": true,
        "permittedActions": [
          "restore a reference to an already-preserved matching excerpt ID"
        ]
      },
      "humanReviewRequiredFor": [
        "creating new source evidence",
        "changing which excerpt supports a persona claim"
      ],
      "requiredNoOpBehavior": "Do not invent an evidence ID or silently point a claim at unrelated evidence.",
      "sourceIntegrityProof": "Reference resolution report maps every source-persona record to an existing source-excerpts ID and its unchanged hash."
    },
    {
      "id": "AP-CF-08-STALE-UPDATE-ROUTE",
      "scenario": "Stale setup or update URLs",
      "operation": "update",
      "inputState": {
        "completeFileSet": true,
        "allSourceRefsResolve": true,
        "exactSelectedRoute": false,
        "staleSetupOrUpdateRoute": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact"
      },
      "expectedValidationResult": "fail",
      "expectedDiagnostics": [
        "UAI-AP-UPDATE-ROUTE-MISMATCH"
      ],
      "automaticRepair": {
        "permitted": true,
        "permittedActions": [
          "replace only the route field with the exact currently selected public Setup URL Builder update route"
        ]
      },
      "humanReviewRequiredFor": [
        "changes to selected setup options"
      ],
      "requiredNoOpBehavior": "Do not change persona content while repairing route metadata.",
      "sourceIntegrityProof": "A field-level diff proves that only the declared route field changed and all persona content bytes are unchanged."
    },
    {
      "id": "AP-CF-09-SOURCE-CONSTRAINT-INJECTION",
      "scenario": "Runtime, platform, legal, safety, refusal-wrapper, or compatibility text injected into source-persona records",
      "operation": "update",
      "inputState": {
        "completeFileSet": true,
        "allSourceRefsResolve": true,
        "exactSelectedRoute": true,
        "sourceConstraintInjection": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact"
      },
      "expectedValidationResult": "fail",
      "expectedDiagnostics": [
        "UAI-AP-SOURCE-CONSTRAINT-INJECTION"
      ],
      "automaticRepair": {
        "permitted": false,
        "permittedActions": []
      },
      "humanReviewRequiredFor": [
        "whether text is source persona or receiving-runtime policy",
        "movement into a separate integration overlay"
      ],
      "requiredNoOpBehavior": "Do not weaken, rewrite, or delete source persona to satisfy a receiving runtime.",
      "sourceIntegrityProof": "Preserve the pre-injection source revision; record any external constraint only in a separately hashed runtime or integration overlay."
    },
    {
      "id": "AP-CF-10-ADDITIVE-REVIEWED-UPDATE",
      "scenario": "Additive update of an already reviewed persona",
      "operation": "update",
      "inputState": {
        "completeFileSet": true,
        "allSourceRefsResolve": true,
        "exactSelectedRoute": true,
        "additiveReviewedUpdate": true,
        "protectedUnchangedFilesByteIdentical": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact"
      },
      "expectedValidationResult": "pass",
      "expectedDiagnostics": [],
      "automaticRepair": {
        "permitted": false,
        "permittedActions": []
      },
      "humanReviewRequiredFor": [
        "new evidence authority",
        "new or changed persona facts",
        "new revision approval"
      ],
      "requiredNoOpBehavior": "Do not rewrite unchanged reviewed records, identifiers, or evidence.",
      "sourceIntegrityProof": "Revision receipt lists changed paths and new evidence IDs; every unlisted source path retains its exact prior SHA-256 and bytes."
    },
    {
      "id": "AP-CF-11-PRIVACY-RESTRICTED-PUBLIC-DERIVATIVE",
      "scenario": "Public derivative generation with privacy restrictions",
      "operation": "update",
      "inputState": {
        "completeFileSet": true,
        "allSourceRefsResolve": true,
        "exactSelectedRoute": true,
        "publicDerivativeIncludesRestrictedFacts": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact-source-package-plus-separate-derivative"
      },
      "expectedValidationResult": "fail",
      "expectedDiagnostics": [
        "UAI-AP-PUBLIC-DERIVATIVE-UNAUTHORIZED"
      ],
      "automaticRepair": {
        "permitted": false,
        "permittedActions": []
      },
      "humanReviewRequiredFor": [
        "public disclosure scope",
        "redaction",
        "book-attribution or named public-identity exceptions",
        "derivative approval"
      ],
      "requiredNoOpBehavior": "Do not publish, copy, summarize, or infer restricted facts into a public derivative without explicit authority.",
      "sourceIntegrityProof": "The private source package remains byte-identical; a separate derivative manifest records approved inclusions, redactions, authority, and hashes."
    },
    {
      "id": "AP-CF-12-LOSSY-ROUNDTRIP",
      "scenario": "Byte-changing import/export or silent normalization",
      "operation": "update",
      "inputState": {
        "completeFileSet": true,
        "allSourceRefsResolve": true,
        "exactSelectedRoute": true,
        "roundTripByteMismatch": true,
        "silentNormalizationAttempted": true
      },
      "expectedFiles": {
        "ref": "#/canonicalContract/sourcePersonaFiles+#/canonicalContract/evidenceFiles",
        "count": 36,
        "setRule": "exact"
      },
      "expectedValidationResult": "fail",
      "expectedDiagnostics": [
        "UAI-AP-ROUNDTRIP-MISMATCH",
        "UAI-AP-SOURCE-MUTATION-BLOCKED"
      ],
      "automaticRepair": {
        "permitted": false,
        "permittedActions": []
      },
      "humanReviewRequiredFor": [
        "any encoding, newline, ordering, metadata, or content normalization",
        "acceptance of a new source revision"
      ],
      "requiredNoOpBehavior": "Reject commit and return the original bytes unchanged when export is not byte-identical.",
      "sourceIntegrityProof": "Pre-import, stored-record, exported-file, and ZIP-entry SHA-256 values prove exact equivalence or identify the precise changed path without committing it."
    }
  ],
  "supportBoundary": "Fixtures contain no private persona source, credentials, tokens, hidden prompts, runtime authority, or publication permission. They validate record structure, evidence linkage, separation, repair boundaries, and source integrity."
}
