3.8 KiB
3.8 KiB
PR - Assets.pa Autocontained Spec Propagation
Briefing
A decisao 011-assets-pa-autocontained-runtime-contract.md fechou o contrato arquitetural de assets.pa como artefato runtime-facing autocontido.
Agora o runtime precisa publicar esse contrato em spec para que:
../runtimetenha base normativa consolidada;- o
studiopossa evoluir o packer em paralelo sem depender de heuristica local; - a PR de codigo implemente um contrato ja estabilizado.
Esta PR e editorial/normativa. Ela nao rediscute a arquitetura da decisao 011.
Decisions de Origem
../decisions/011-assets-pa-autocontained-runtime-contract.md
Alvo
Propagar a decisao 011 para o corpus normativo do runtime, principalmente:
../specs/13-cartridge.md../specs/15-asset-management.md
Escopo
- mover
asset_tableepreloadpara dentro do contrato deassets.pa; - descrever
assets.pav1 como:- prelude binario fixo;
- header JSON;
- payload binario;
- registrar prelude minimo:
magicschema_versionheader_lenpayload_offset
- registrar opcionais permitidos:
flagsreservedheader_checksum
- fixar que offsets de
AssetEntrysao relativos ao inicio da regiao de payload; - fixar lifecycle:
preloadso no boot;asset_tableviva durante a execucao do cart;
- fixar leitura sob demanda por slice (
open_slicecomo conceito normativo); - fixar
OP_MODEderivado decodec/CODEX no v1; - fixar falha antecipada quando
Capability::Assetexigirassets.paausente.
Fora de Escopo
- alterar codigo do loader, firmware ou
AssetManager; - implementar
.pmc; - definir formato dos JSONs auxiliares do
shipperalem de seu status nao normativo para runtime; - introduzir novos codecs ou alterar o shape semantico de
AssetEntryePreloadEntry; - escrever a spec do packer no
studio.
Plano de Execucao
- Atualizar
13-cartridge.mdpara:- remover
asset_tableepreloadcomo superficie primaria de runtime no manifest; - descrever
assets.pacomo artefato autocontido; - registrar a regra de falha antecipada ligada a
Capability::Asset.
- remover
- Atualizar
15-asset-management.mdpara:- descrever o envelope de
assets.pa; - distinguir lifecycle de
preloadeasset_table; - registrar offsets relativos ao payload;
- registrar leitura sob demanda por slice;
- registrar
OP_MODEpor codec/CODEX.
- descrever o envelope de
- Revisar cross-references entre
13,15e16. - Garantir que a linguagem normativa deixe claro o que e contrato runtime-facing e o que e apenas helper para o
shipper.
Criterios de Aceite
13-cartridge.mdnao apresenta maisasset_tableepreloadcomo contrato primario do manifest consumido pelo runtime.15-asset-management.mddescreveassets.pacomo artefato autocontido com prelude, header e payload.- a spec fixa offsets relativos ao payload, nao ao arquivo inteiro.
- a spec fixa que
preloade dado transitorio de boot easset_tablepermanece viva durante a execucao do cart. - a spec fixa leitura sob demanda do payload, sem baseline de blob inteiro residente em RAM.
- a spec fixa falha antecipada quando
Capability::Assetexigirassets.paausente. - a linguagem publicada e suficiente para o Studio implementar o packer em paralelo sem depender do codigo do runtime.
Tests / Validacao
- revisao editorial cruzada entre
13e15para garantir ausencia de contradicao; - revisao de consistencia com a decisao
011; - conferência de que a PR de codigo derivada consegue citar trechos normativos concretos sem reinterpretacao arquitetural.
Riscos
- deixar resquicios do modelo antigo (
asset_table/preloadno manifest) em texto normativo; - documentar
open_sliceeOP_MODEde forma vaga demais, prejudicando a implementacao; - deixar lacuna suficiente para que o Studio reabra localmente a autoridade dos JSONs auxiliares.