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 completion—Platform 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