Knowledge Portal · engineering documentation

Skip to content

ZAIXOS Engineering Platform — Validation Architecture

Document type: Technical Specification
Version: 1.0 · Phase: 12-3
Status: Permanent technical authority
Owner: D-V (definitions D-P, invocation D-R)


Purpose

Define validation layers, test suites, gates, failure semantics, and reporting — enforcing Contracts First and Validation First without implementing PHPUnit code.


Validation principles

IDPrinciple
V-01Validation depends on Contracts — not adapter internals as authority
V-02Fail closed on release branches
V-03Platform owns test definitions; product owns CI wiring
V-04Products must not skip or weaken platform tests
V-05Validation output is machine + human readable
V-06Architecture tests (product modules) are parallel suite — not merged into platform package

Validation layers

Layer 0: Config schema validation     (platform.yml, lock, extensions)
Layer 1: Contract reference validation (citations, implementedContracts)
Layer 2: Manifest parity               (counts, IDs, schemas)
Layer 3: Adapter workspace validation  (files exist, paths match profile)
Layer 4: Extension validation          (limits, categories, collisions)
Layer 5: Checksum integrity            (lock vs materialized workspace)
Layer 6: Product architecture tests    (module boundaries — product repo)

Layers 0–5 ship in platform package. Layer 6 is product-owned.


Validation flow

Trigger (local dev | CI PR | pre-release)

    ├─► Load platform.lock + paths

    ├─► Layer 0: ConfigSchemaTest
    │       FAIL → stop, emit report

    ├─► Layer 1: ContractComplianceTest
    │       FAIL → stop

    ├─► Layer 2: ManifestParityTest
    │       FAIL → stop

    ├─► Layer 3: AdapterWorkspaceTest
    │       FAIL → stop

    ├─► Layer 4: ExtensionSchemaTest
    │       FAIL → stop

    ├─► Layer 5: ChecksumIntegrityTest
    │       FAIL → stop

    ├─► Layer 6: Product CI invokes tests/Architecture/ (optional parallel)

    └─► Emit ValidationReport → pass | fail

Public test catalog (platform 1.0)

Test classLayerValidates
ConfigSchemaTest0YAML/JSON schemas
ContractComplianceTest1Contract files + adapter manifest
ManifestParityTest2Default counts vs workspace
AdapterWorkspaceTest3Required paths per adapter profile
ExtensionSchemaTest4manifest.yml + limits
ChecksumIntegrityTest5lock.checksum vs workspace

Suite name (product phpunit.xml): EngineeringRuntimePlatform

Integrity test (product): EngineeringRuntimePlatformIntegrityTest — may wrap or duplicate public entry; transitional in Dental Clinic repo.


Gate matrix

GateLocal devPR CIRelease branch
Layer 0–5RequiredRequiredRequired
Layer 6RecommendedRequiredRequired
failClosedRecommendedRequiredRequired
Manual acceptance checklistPhase completionPlatform upgrade MAJOR

Failure propagation

Layer failCIMergeRelease
Any Layer 0–5RedBlockBlock
Layer 6RedBlockBlock
Warning (soft limit)YellowAllow dev; block releaseBlock release

No partial pass on release branches when validation.failClosed: true.


Validation report structure

ValidationReport
├── status: pass | fail | warn
├── platformPin: { version, adapter, contractMajor }
├── layers: [
│     { id, name, status, durationMs, failures[] }
│   ]
├── failures: [
│     { layer, code, message, path, remediation }
│   ]
└── generatedAt: ISO8601

Runtime Implementation attaches report to Format A/B ERP reports.


Recovery procedures

Failure codeRemediation
CONFIG_DRIFTAlign lock with composer; refresh yaml
CONTRACT_MISSINGRematerialize; verify package version
MANIFEST_COUNTRestore adapter template; check extensions
WORKSPACE_GAPRematerialize adapter
EXTENSION_COLLISIONRename product extension ID
CHECKSUM_MISMATCHRematerialize; revert manual .cursor/ edits
RULE_CATEGORY_ABRemove or recategorize extension rule

Validation evolution

ChangeVersion impact
New non-breaking checkPlatform MINOR
New required checkPlatform MINOR + CHANGELOG
Removed checkPlatform MAJOR or deprecation cycle
Stricter extension limitPlatform MINOR

See EVOLUTION_MODEL.md.


Relationship to execution pipeline

Validation runs:

  1. After materialization (install/upgrade)
  2. Before Architecture Review acceptance (phase gate)
  3. On CI for every PR touching .zaixos/, .cursor/, or platform dependency

Does not replace Architect RESPONSE_TEMPLATE — human acceptance remains required.


Validation Architecture v1.0 — Phase 12-3.

ZAIXOS Knowledge Portal — public engineering docs at /docs · Staff operations at /admin