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
python
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