| name | ledger-registry |
| description | Reads /ledger/manifest.json, verifies per-ledger checksums, and returns the active ledger map. **Version:** 1.1 **Author:** Entropy Control Theory **License:** MIT **Based on:** Structure DNA v1.0 + PROFILE-GENERATOR-SPEC v1.0 |
ledger.registry — v1.1
Goal
Provide a single source of truth for active ledgers and integrity status.
If missing, auto-generate /ledger/profile.json (energy-aware preferences) based on profile.schema.json + profile.defaults.json.
Inputs
- none (or
verify=trueto force SHA-256 recompute)
Outputs
- Returns manifest summary:
- module → path
- schema version
- metadata.version
- metadata.checksum (valid/invalid)
- Auto-generates
profile.jsonif absent, ensuring downstream Skills can use energy preferences.
Mechanism
- Load
/ledger/manifest.jsonor scan/ledger/for.jsonfiles. - Check for presence of module
"profile":- If absent → call
ensure_profile(ledger_dir="/ledger"). - Reload ledger list to include the newly created
profile.json.
- If absent → call
- For each ledger, recompute checksum; compare with
metadata.checksumper Structure DNA integrity rules. - Write updated checksums and ledger list back to
/ledger/manifest.json. - Return runtime registry map.
Pseudocode
def run_registry(ledger_dir="/ledger"):
ledgers = scan_ledgers(ledger_dir)
# ✅ NEW STEP: ensure profile.json exists
if not any(L["module"] == "profile" for L in ledgers):
ensure_profile(ledger_dir) # uses profile.schema.json + profile.defaults.json
ledgers = scan_ledgers(ledger_dir) # re-scan to include it
manifest = build_manifest(ledgers)
manifest["metadata"]["last_sync"] = now_iso()
manifest["metadata"]["checksum"] = recompute_checksum(manifest)
save_json(f"{ledger_dir}/manifest.json", manifest)
return manifest