v0.8-asset-architecture — Four-Layer Asset Architecture + Tier System + 5-Stage Assembly
LatestThis release ships the v0.8-asset-architecture epic
(#106) —
the four-layer asset architecture (Genesis / Lifecycle / Binding / Tier) plus
the 5-stage assembly pipeline added as Part B of the runtime spec.
Shipped via 6 sub-issue PRs (#107 / #108 / #110 / #111 / #113 / #115) + 4
post-merge review follow-ups (#109 / #112 / #114 / #116) + close-out
integration PR (#117) + README / spec-header sync PR (#118).
See the bundled CHANGELOG stanza below for the full change list.
v0.8-asset-architecture (2026-04-26)
Status: Released. v0.8 closes the four asset-architecture gaps left
by v0.7-vision-shift: provenance (Genesis), evolution (Lifecycle),
consumption (Binding), and orchestration (Assembly), plus a
multi-dimensional tier system that replaces v0.7's single-axis
verification_level.
Tracked in epic
#106
(closed). Sub-issues #100–#105 all merged; four post-merge review
follow-ups (#109, #112, #114, #116) merged alongside. Final integration
step (this release) folds the tier block into life-package.schema.json
and teaches tools/build_life_package.py to auto-compute it from
package contents, completing the v0.8 spec → builder loop.
Added
docs/LIFE_ASSET_ARCHITECTURE.md— authoritative human-readable
record of the four-topic architecture discussion (Genesis /
Lifecycle / Binding / Tier / Assembly). Single overview document
capturing all final decisions, design rationale, cross-topic
dependencies, the Schema D Cosmic Evolution naming registry
(Quark → Singularity), the memorial dispute period (7-day
reverse-attestation window), and a "rejected alternatives"
appendix preserving institutional memory of options considered and
declined. Entry point for sub-issues #101–#105 which deliver the
per-topic normative specs and schemas. [#100]docs/LIFE_GENESIS_SPEC.md— per-topic normative spec for Topic 1
(Asset Genesis). Definesgenesis/<asset_id>.genesis.jsonand
encodes the five Topic-1 decisions: base pretrained models as
virtual assets (D1=C); hosted-API use declared but not blocking
(D2=B); gradedreproducibility_levelenum (D3=C); fixed
consent_scopeenum (D4=A); separategenesis/directory (D5=B).
#101schemas/genesis.schema.json— JSON Schema for the genesis file
format (dlrs-life-genesis/0.1). Conditional rule:
compute.hosted_api_used: truerequires at least one entry in
compute.hosted_api_providers[]. #101tools/test_genesis_schema.py— 36 sanity-test cases (4 happy-path- 32 negative) wired into
tools/batch_validate.py. #101
- 32 negative) wired into
docs/LIFE_LIFECYCLE_SPEC.md— per-topic normative spec for Topic 2
(Asset Lifecycle). Defines four document shapes
(package_lifecycle,asset_lifecycle,mutation_event,
cascade_index) and encodes the five Topic-2 decisions: dual
human/machine identity (D1=D); forks allowed, merges forbidden
(D2=C); withdrawal cascade marks derived assetstaintedinstead
of deleting (D3=B); memorial trigger from executor / next-of-kin /
court order with 7-day reverse-attestation window (D4=C+(a)+(c));
recommended_re_consent_afteris a soft hint that never blocks
(D5=C). #102schemas/lifecycle.schema.json— JSON Schema exporting four
reusable shapes via$defs. Conditional rules:lifecycle_state == "memorial"requiresmemorial_metadata+frozen: true;
state == "tainted"requirestainted_reason;
action == "state_changed"requiresfrom_state+to_state;
supersedes.maxItems: 1enforces fork-yes / merge-no statically.
Post-review tightening:elseclause forcesmemorial_metadata
to null on non-memorial states;mutation_log_refpattern uses
the same..-rejection lookahead aslife-package.schema.json.
#102tools/test_lifecycle_schema.py— 42 sanity-test cases (9
happy-path + 33 negative) covering all four shapes, wired into
tools/batch_validate.py. The 42 reflects the post-merge fixes
applied in #110 (memorialelseclause +..path-traversal
rejection onmutation_log_ref) plus the asset_id pattern fix
in #112. #102docs/LIFE_BINDING_SPEC.md— per-topic normative spec for Topic 3
(Runtime Binding). Definesbinding/runtime_binding.jsonand
encodes the four locked Topic-3 decisions: hybrid capability
vocabulary (D1=C, ~20 core enum +x-extension); issuer-self
-decided engine strictness (D2=C,strict: true | false); hybrid
hard-constraints keys with runtime fail-close on unknown keys
(D4=C); AND-gate hosted-API decision (D5=A, issuer half only —
user half ispolicy/hosted_api.jsonfrom v0.6). #103schemas/binding.schema.json— JSON Schema for the binding file
format (dlrs-life-binding/0.1).patternPropertiesenforce both
the capability-name hybrid vocabulary and the hard-constraints
hybrid keyspace;additionalProperties: falsemakes unknown
non-x-keys reject statically (decision D4=C fail-close at schema
layer). #103tools/test_binding_schema.py— 63 sanity-test cases (11 happy-path- 52 negative) wired into
tools/batch_validate.py. The 63 includes
three negatives forproviders_whitelist_refpath-traversal (added
in #111 review fix-up) and eight more cases (6 negative + 2 happy)
for path-traversal rejection onsurface.ui_hints.avatar_image_ref
andsurface.ui_hints.background_audio_ref, applying the same
cross-schema convention. #103
- 52 negative) wired into
docs/LIFE_TIER_SPEC.md— per-topic normative spec for Topic 3
(Tier System). Defines a six-dimensional credit rating
(identity_verification,asset_completeness,
consent_completeness,detail_level,audit_chain_strength,
jurisdiction_clarity), a normative weighted-score formula
(consent + identity ×2, others ×1), 12 score → level boundaries
(I–XII), and a back-compat mapping from v0.7verification_level
totier.dimensions.identity_verification. #104schemas/tier.schema.json— JSON Schema for the v0.8 tier block
(dlrs-life-tier/0.1shape via$defs). 12allOf/if-then
rules bindscoreranges to Roman-numerallevelvalues;
computed_bypattern requires<path>@<semver>so hand-rolled
tier blocks fail validation. Standalone for v0.8; integration into
life-package.schema.jsondeferred to a follow-on PR. #104docs/appendix/TIER_NAMING_SCHEMA_D.md— versioned naming
appendix listing the 12 Schema D tiers (Cosmic Evolution: Quark →
Singularity), their canonical names, glyphs, score ranges, and
cosmological reading. The appendix is decoupled from
LIFE_TIER_SPEC.mdso future naming schemes can ship without a
spec major bump. #104tools/test_tier_schema.py— 81 sanity-test cases (26 happy-path- 55 negative) covering both ends of every score → level range,
every score → level mismatch boundary, every required-field
removal, every dimension off-enum, and the auto-computation guard
oncomputed_by. Wired intotools/batch_validate.py. #104
- 55 negative) covering both ends of every score → level range,
docs/LIFE_RUNTIME_STANDARD.md— appends Part B with normative
v0.8 additions for Topic 4 (Runtime / Assembly): the five-stage
assembly pipeline (Verify / Resolve / Assemble / Run / Guard),
the Provider Registry concept, the abstract
LifeCapabilityProviderinterface, the three-tier sandbox class
(built_in/user_installed/bundled_in_life), the
hosted-API AND-gate, and the OS-package-manager bootstrap rule.
Encodes Topic 4 decisions D1=C (graded sandbox), D2=B (no
bundled providers in v0.8), D3=mixed (offline + hosted both
first-class), D4=C (three-field surface — already in binding
spec), D5=C (OS package manager bootstrap), and the new D6
(fail-close stage gating). Adds four new audit event types:
capability_bound,assembly_aborted,withdrawal_poll(reuse of
the v0.7 event with a v0.8 field requirement), and
lifecycle_transition_observed. Part A (the v0.7 eight-step
load sequence) is unchanged. #105schemas/life-package.schema.json— v0.8 integration: adds optional
top-leveltierproperty referencing inlined$defs.tier_block+
$defs.tier_dimensions(copied verbatim from
schemas/tier.schema.jsonso offline validators do not need to
resolve cross-file$ref). Marksverification_levelas deprecated
in description text (remains REQUIRED for v0.1 back-compat). 10 new
sanity cases intools/test_life_package_schema.py(64 total, up
from 54): tier omitted (back-compat), tier present (consistent
score/level), lowest / highest boundary, score↔level mismatch
rejection, hand-rolledcomputed_byrejection, score out of range,
off-enum dimension, missing required dimension, unknown tier field.tools/build_life_package.pyv0.2 — auto-computes thetierblock
from the staged package: maps v0.7verification_levelto v0.8
identity_verificationperdocs/LIFE_TIER_SPEC.md§6, infers
asset_completenessfrom capability-bearing top-level directories,
defaults the remaining four dimensions conservatively, applies
weighted-average scoring (identity & consent ×2, others ×1), and
bands the result into the 12 Schema D tiers. Adds six
--tier-<dim>CLI overrides and a--no-tierescape hatch for
emitting v0.7-shaped descriptors.computed_byis stamped with the
mandatory@<version>separator so hand-rolled tier blocks fail
schema validation.docs/LIFE_FILE_STANDARD.md— adds thetierrow to the
top-level descriptor table and marksverification_levelas
deprecated in v0.8, pointing atdocs/LIFE_TIER_SPEC.md§6 for the
migration mapping.
Changed
docs/IMPLEMENTATION_STATUS.md— bumped to doc version 6.0 with a
new v0.8 increment summary; overall maturity adjusted from ~80% to
~82% (Asset Architecture + Tier + Assembly spec deltas).docs/GAP_ANALYSIS.md— baseline moved to post-#106;.life
Archive Standard maturity 70% → 82%,.lifeRuntime Standard
30% → 45%; overall 80% → 82%.ROADMAP.md— markslife-format v0.1.0andlife-runtime v0.1
as Delivered; addslife-format v0.1.1(Asset Architecture) and
life-runtime v0.1.1(Assembly) rows as Delivered under
v0.8-asset-architecture; reference runtime deferral moved from
v0.8+ to v0.9+.