2.2 KiB
2.2 KiB
Asset Workspace, Registry, and Stable Identity Agenda
Status
Open
Purpose
Close the packer model for managed assets, registry truth, anchor files, and stable asset identity.
Context
The draft proposes a Git-like workspace:
assets/may be messy,assets/.prometeu/index.jsonis the source of truth,- a managed asset is anchored by
asset.json, - each asset has
asset_idandasset_uuid.
This is the core model of the packer. If it stays vague, all later specs become unstable.
Source Sections
4. Mental Model: A "Git-like" Asset Workspace5. Core Concepts6. Directory Structure and Control Files
Key Questions
- Is
index.jsonthe sole source of truth, or doesasset.jsonalso carry authority? - What is the exact relationship between registry entry and anchor file?
- Which fields are stable identity and which are mutable presentation?
- Can an asset move directories without changing identity?
- How should orphaned
asset.jsonfiles be interpreted? - What is the normative lifecycle of
asset_idallocation and persistence?
Options
Option A
Treat index.json as the authoritative registry and asset.json as the asset-local contract.
Option B
Treat both as co-authoritative and reconcile divergences dynamically.
Tradeoffs
- Option A is easier to reason about and easier to validate.
- Option A enables clean diagnostics when local anchor and registry diverge.
- Option B increases reconciliation complexity and invites ambiguous conflict handling.
Recommendation
Adopt Option A:
index.jsonis the authoritative registry,asset.jsonis the authoritative asset-local declaration,- divergence between them must be explicit and diagnosable.
Expected Decisions to Produce
- Registry authority model.
- Managed asset lifecycle.
- Identity model for
asset_id,asset_uuid, name, and path. - Rules for relocation, adoption, forgetting, and removal.
Expected Spec Follow-up
- Workspace and control files spec.
- Managed asset and identity spec.
- Registry consistency and validation spec.
Non-Goals
- Detailed build output layout.
- CLI syntax for every command.
- Format-specific
asset.jsonpayload definitions.