Skip to content

v0.8 close-out: tier integration into life-package.schema.json + auto-compute builder + status docs#117

Merged
LING71671 merged 1 commit into
masterfrom
devin/1777247804-v08-tier-integration
Apr 27, 2026
Merged

v0.8 close-out: tier integration into life-package.schema.json + auto-compute builder + status docs#117
LING71671 merged 1 commit into
masterfrom
devin/1777247804-v08-tier-integration

Conversation

@devin-ai-integration
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot commented Apr 27, 2026

Summary

Final integration PR that closes out the v0.8-asset-architecture epic (#106). Weaves the standalone schemas/tier.schema.json (shipped in #113) into the top-level schemas/life-package.schema.json so v0.8 builders emit a single descriptor that carries the tier block, and teaches tools/build_life_package.py to auto-compute that block at build time. Also refreshes the long-lived status documents (IMPLEMENTATION_STATUS.md, GAP_ANALYSIS.md, ROADMAP.md, CHANGELOG.md) to reflect the v0.8 release.

Schema integration

  • schemas/life-package.schema.json
    • Adds an optional top-level tier property that $refs #/$defs/tier_block.
    • Inlines $defs.tier_block + $defs.tier_dimensions copied verbatim from schemas/tier.schema.json, so offline validators do not need to resolve cross-file $ref (same pattern the repo already uses everywhere else).
    • Marks verification_level as deprecated in v0.8 in the description text while keeping it required for v0.1 back-compat. Points at docs/LIFE_TIER_SPEC.md §6 for the migration mapping.
    • v0.7 packages (no tier) keep validating; v0.8 packages (with tier) are additionally score↔level consistency-checked via the 12 allOf bands.
  • tools/test_life_package_schema.py
    • +10 new sanity cases (54 → 64 total): tier omitted, tier present + consistent (score 54 → VII), lowest-bound (0 → I Quark), highest-bound (100 → XII Singularity), score↔level mismatch rejection, hand-rolled computed_by rejection, score > 100 rejection, off-enum dimension, missing required dimension, unknown field.

Builder auto-compute

  • tools/build_life_package.py v0.2
    • Adds _compute_tier that deterministically maps v0.7 verification_level → v0.8 identity_verification (per docs/LIFE_TIER_SPEC.md §6), infers asset_completeness from capability-bearing top-level directories, and defaults the remaining four dimensions conservatively.
    • Applies the normative weighted-average formula (identity & consent ×2, others ×1) then bands the rounded result into the 12 Schema D tiers (Quark → Singularity). All 12 bands are generated from the same _TIER_BANDS table used by the schema, so any drift is a test-visible bug.
    • Stamps computed_by = "tools/build_life_package.py@0.2.0"; the mandatory @<version> separator is schema-enforced, so hand-rolled tier blocks fail validation.
    • Adds six --tier-<dim> CLI overrides for issuers who can declare higher-than-default levels (e.g. a studio-recorded voice asset → --tier-detail-level high_fidelity) and a --no-tier escape hatch for emitting v0.7-shaped descriptors.
  • tools/test_minimal_life_package.py now asserts the emitted descriptor contains a well-formed tier block with all 6 dimensions and an @-separated computed_by.

Spec / status doc refresh

  • docs/LIFE_FILE_STANDARD.md — adds the tier row to the descriptor table; marks verification_level as deprecated with a pointer to docs/LIFE_TIER_SPEC.md §6.
  • docs/IMPLEMENTATION_STATUS.md — bumps to doc version 6.0; adds v0.8 increment summary; overall maturity ~80% → ~82%.
  • docs/GAP_ANALYSIS.md — baseline moves to post-[EPIC] v0.8 — Asset Architecture (Genesis / Lifecycle / Binding / Tier / Assembly) #106; .life Archive Standard 70% → 82%; .life Runtime Standard 30% → 45%.
  • ROADMAP.md — marks life-format v0.1.0 and life-runtime v0.1 as Delivered; adds life-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+ → v0.9+.
  • CHANGELOG.md — v0.8-asset-architecture stanza flipped from Draft → Released; new entries describing the tier integration + builder v0.2 + status doc bumps.

Local verification

  • python tools/test_life_package_schema.py → all 64/64 cases pass.
  • python tools/test_minimal_life_package.py → OK (descriptor valid, contents inventory matches, audit chain links, deterministic bytes across two builds).
  • python tools/batch_validate.py → 22/22 passed.

Review & Testing Checklist for Human

  • Confirm the inlined $defs.tier_block / $defs.tier_dimensions in life-package.schema.json stays byte-for-byte identical to schemas/tier.schema.json (the repo has no automated drift check yet; future signature/cross-schema PR should add one).
  • Spot-check the _compute_tier defaults in tools/build_life_package.py — conservative defaults are intentional (consent_completeness: text_only, audit_chain_strength: linked, jurisdiction_clarity: unspecified). If the org expects a different default for the demo record, issuers can lift them with the new --tier-* flags.
  • Verify the new tier row in docs/LIFE_FILE_STANDARD.md reads correctly and the verification_level deprecation note is visible.

Notes

This is the spec-layer close-out for v0.8. It is not the start of v0.9 runtime implementation. No runtime code is added; the builder is the only code change and its behaviour remains deterministic + offline + pointer-mode.

Closes out epic #106 follow-up (integration). Sub-issues #100#105 were already merged via PRs #107, #108, #110, #111, #113, #115; follow-ups #109, #112, #114, #116 merged alongside.

Link to Devin session: https://app.devin.ai/sessions/ff7322e18fd94887875daa2c1c75f87d
Requested by: @LING71671


Open in Devin Review

- schemas/life-package.schema.json: inline $defs.tier_block + $defs.tier_dimensions (copied from tier.schema.json); add optional top-level tier property; mark verification_level deprecated (remains required for v0.1 back-compat).
- tools/build_life_package.py v0.2: auto-compute tier from contents + CLI overrides; weighted-average scoring per docs/LIFE_TIER_SPEC.md §4.1; Schema D banding; computed_by stamped with mandatory @<version> separator (hand-rolled blocks rejected).
- tools/test_life_package_schema.py: +10 tier cases (54 -> 64) covering back-compat omission, consistent happy path, both boundaries, score↔level mismatch, hand-rolled computed_by, score range, off-enum dim, missing dim, unknown field.
- tools/test_minimal_life_package.py: verifies builder emits well-formed tier block with @-separated computed_by and all 6 dimensions.
- docs/LIFE_FILE_STANDARD.md: adds tier row; marks verification_level deprecated with link to docs/LIFE_TIER_SPEC.md §6.
- docs/IMPLEMENTATION_STATUS.md (v6.0), docs/GAP_ANALYSIS.md, ROADMAP.md, CHANGELOG.md: v0.8 release stanza + delivery table updates; reference runtime deferral moved from v0.8+ to v0.9+.

All 22/22 batch_validate checks pass; test_life_package_schema 64/64; test_minimal_life_package deterministic bytes match across two builds.

Closes v0.8-asset-architecture follow-up (epic #106).
@devin-ai-integration
Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

Copy link
Copy Markdown
Contributor Author

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 4 additional findings.

Open in Devin Review

@LING71671 LING71671 merged commit acced0b into master Apr 27, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants