Knowledge Portal · engineering documentation

Skip to content

ZAIXOS Engineering Platform — Packaging Strategy

Document type: Product Definition
Version: 1.0 · Phase: 12-2
Status: Permanent product authority
Constraint: Specification only — no implementation choice executed in this phase


Purpose

Define how ZEP may be distributed to products, selection criteria, and strategic ordering — without building packages, CLIs, or installers.

Aligns with ADR-005 decisions recorded in 12-1A.


Distribution Models Evaluated

ModelDescriptionFit for ZEP
Composer packagezaixos/engineering-platform in product composer.jsonHigh for PHP/Laravel products
Git submodulePlatform repo linked as submoduleMedium — transitional
Git templateGitHub template generates new repo snapshotLow — bootstrap only
CLI installerBinary downloads and lays down .zaixos/Medium — future convenience
Git submodule + symlinkSubmodule + link .zaixosLow — ops friction
Standalone repository (consume via tag)Manual copy from releasesLow — drift risk
SaaS generatorHosted scaffoldFuture candidate — not packaging for v1
npm packageFor TS tooling / SDKFuture if SDK is JS-first

Primary Distribution Strategy

Composer package for PHP/Laravel products.

AttributeDefinition
IntentProducts declare platform as dependency; vendor path or custom installer places .zaixos/
Pin mechanismcomposer.lock + .zaixos/platform.lock
Upgrade pathcomposer update + platform migration guide
Why primaryDental Clinic and near-term ZAIXOS products are Laravel; Composer is native; semver familiar

Status: Strategic decision from ADR-005 — not implemented in Phase 12-2.


Secondary Distribution Strategy

Git submodule (transitional).

AttributeDefinition
IntentBridge period while Composer package matures or for contributors working on platform + product simultaneously
Pin mechanismSubmodule commit SHA recorded in .zaixos/platform.lock
When usedPlatform repo extraction phases; dual maintenance
Exit criteriaComposer GA + migration guide published; submodule deprecated classification

Future Distribution Strategy

StrategyTriggerRole
Platform CLIPost-v1 GA; Experimental → PublicUnified validate, materialize, doctor across install methods
Git templateNew product bootstrap automationSecondary one-time scaffold — not ongoing updates
Standalone tarball releaseAir-gapped or non-Composer CIEdge cases; not primary
npm / multi-ecosystem packagesNon-PHP product ADR acceptedParallel primary for that ecosystem

Selection Criteria (Decision Matrix)

When choosing distribution for a given product or phase, apply in order:

CriterionWeightQuestion
Drift resistanceCriticalDoes the model prevent authoritative copies in product repos?
Semver alignmentCriticalCan products pin and upgrade with explicit migration notes?
PHP/Laravel fitHigh (ZAIXOS v1)Is product Composer-based?
IDE materializationHighCan adapter workspace be regenerated deterministically?
Contributor ergonomicsMediumDoes platform team need simultaneous platform+product edits? → submodule OK temporarily
Onboarding frictionMediumSteps until first green validation
Air-gap / offlineLow (until enterprise ADR)Tarball fallback
Non-PHP productsDeferredRequires separate primary strategy ADR

Winner for ZAIXOS v1 PHP products: Composer primary; submodule secondary.


Packaging Contents (What Gets Delivered — Conceptual)

Regardless of distribution channel, the logical package contains:

core/           # Constitution, methodology, templates
contracts/      # contracts@1
runtime/        # Specs, manifest schemas
adapters/       # Certified adapter templates
validation/     # Integrity tests
docs/           # Developer guide, product specs

Product repo retains:

.zaixos/        # Materialized or symlinked from package
.zaixos/platform.lock
.zaixos/extensions/manifest.yml   # product-owned entries
.cursor/        # Adapter materialization (Cursor v1)
app/            # product domain
docs/architecture/  # product constitution

Explicit Non-Decisions (This Phase)

The following are not chosen for implementation in Phase 12-2:

  • Exact Composer package name beyond ADR provisional zaixos/engineering-platform
  • Post-install script behavior
  • CLI command names
  • Whether .zaixos/ is copied or symlinked from vendor/
  • Repository name for platform host

These belong to Phase 12-4 (Repository Extraction Planning) and later implementation phases (12-5 through 12-9).


Compatibility Philosophy (Packaging)

RuleStatement
Lock file authority.zaixos/platform.lock is source of truth for platform version identity
Composer lockMust agree with platform lock for PHP products
Adapter pinLock records adapter ID + compatible version range
Contract pinLock records contracts@1 until new contract major ADR

Packaging Strategy v1.0 — Phase 12-2.

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