SSM-AI – Release Notes & Manifest Map (Q1–Q10)

Ensures reproducibility, auditability, and deterministic upgrades across all symbolic AI implementations.

Purpose.
Ensure upgrades, manifests, and releases remain reproducible and auditable.
All alignment lanes, choosers, and gates stay bounded: |a|<1, |RSI|<1.
Order/shard invariance holds via the canonical fuse:
U += w*atanh(a) ; W += w ; a_pool := tanh( U / max(W, eps_w) ).
The classical magnitude remains pristine: phi((m,a)) = m.


Q1) Manifest map (top-level keys & meaning)

All keys optional unless marked required. Unknown keys are ignored for math but included in hashing.

{
  "schema_version": "1.x",              # required
  "lens": {
    "Unit": 1.0, "c": 1.0, "weights": "abs_m_pow", "gamma": 1.0, "channels": "two", "terms": {}
  },
  "bands": {
    "A++": 0.90, "A+": 0.60, "A0": -0.60, "A-": -0.90, "A--": -1.00,
    "hysteresis": { "h_up": 0.02, "h_dn": 0.02 }
  },
  "gate": {
    "weights": {"F":1,"D":1,"L":1,"E":1,"V":1,"Q":0},
    "rho": 0.20, "g_min": 0.00, "eps_g": 1e-12, "mode": "mul"
  },
  "policy": {"division_policy": "strict","eps_a":1e-6,"eps_w":1e-12},
  "path": {"step_weight_rule":"uniform","beta_prior_max":0.25},
  "rollback": {
    "band_min":"A0","delta_thr":0.25,"g_min":0.50,
    "budget":{"tokens":2.0e6,"ms":15000},"max_pops":3,"on_fail":"fallback_classical"
  }
}

knobs_hash:
knobs_hash := sha256( canonical_json(manifest) )
Canonical JSON = UTF-8, sorted keys, fixed 6 decimals, normalized types, no comments.


Q2) Versioning & compatibility

  • MAJOR → changes math semantics or defaults (rare, migration required).
  • MINOR → adds optional keys, presets, or behaviors (safe upgrade).
  • PATCH → doc or clarity fixes; outputs unchanged.
    Invariant: always preserve phi((m,a)) = m, fuse a_out := tanh(U / max(W, eps_w)).

Q3) Release notes (current cycle)

  • Added lens calibration quickstart.
  • Expanded gate presets and manifest fields.
  • Introduced priors, rollback, and telemetry hooks.
  • Extended appendices through O (Glossary), P (FAQ), Q (Release).
  • CFO pack and interop test coverage.
  • No changes to thresholds, fuse contract, or division policy.

Q4) Migration checklist

  1. Freeze current manifest, compute old_hash.
  2. Add missing defaults (policy.eps_a, policy.eps_w, gate.mode).
  3. Review lens block parameters (Unit, c, weights, gamma).
  4. Add optional rollback policy if needed.
  5. Compute new_hash; store both hashes in ledger.
  6. Verify phi((m,a)) = m before and after.
  7. Run golden vectors; confirm identical RSI within dtype tolerance.

Q5) Canonicalization & hashing

def canonical_json(obj):
    return json.dumps(
        obj, sort_keys=True, separators=(',',':'),
        ensure_ascii=False,
        default=lambda x: round(float(x),6) if isinstance(x,float) else x
    )

def knobs_hash(manifest_json):
    blob = canonical_json(manifest_json).encode('utf-8')
    return "sha256:" + sha256(blob).hexdigest()

Stamp format (ledger row):
...|knobs_hash=sha256:abcd1234|...


Q6) Deprecations & reserved fields

  • Reserved:
    bands.hysteresis.mode (future), lens.auto_learn (off only), gate.lanes_raw (no PII).
  • Deprecated:
    gate.alpha → replaced by gate.rho.

Q7) Interop tests

TestDescription
Round-tripmanifest → canonical_json → knobs_hash → reparse → identical
Batch equalitysame inputs, any order ⇒ identical (U,W) and a_out
CSV/JSON parityRSI from CSV = RSI from JSON within tolerance
Gate equivalence"mul" and "u_scale" both satisfy `

Q8) Zero-risk patches

Safe to adopt without A/B:

  • Documentation or non-semantic fixes.
  • Additional presets or new appendices.
  • Any change not affecting bands, eps_*, Unit, c, or fuse math.

Q9) Example manifest & diff

Minimal (safe defaults):

{
 "schema_version":"1.0",
 "lens":{"Unit":1.0,"c":1.0,"weights":"abs_m_pow","gamma":1.0,"channels":"two"},
 "bands":{"A++":0.90,"A+":0.60,"A0":-0.60,"A-":-0.90,"A--":-1.00,
          "hysteresis":{"h_up":0.02,"h_dn":0.02}},
 "gate":{"weights":{"F":1,"D":1,"L":1,"E":1,"V":1,"Q":0},
         "rho":0.20,"g_min":0.00,"eps_g":1e-12,"mode":"mul"},
 "policy":{"division_policy":"strict","eps_a":1e-6,"eps_w":1e-12}
}

Diff (adding rollback):

+ "rollback": {"band_min":"A0","delta_thr":0.25,"g_min":0.50,
+              "budget":{"tokens":2000000,"ms":15000},"max_pops":3,
+              "on_fail":"fallback_classical"}

Outputs unchanged; only hash differs.


Q10) Repro checklist

  1. Validate schema_version.
  2. Verify knobs_hash == computed hash.
  3. Replay pooled RSI: tanh(sumU / max(sumW, eps_w)).
  4. Confirm phi((m,a)) = m on samples.
  5. Verify band distribution from manifest thresholds.
  6. Gate range: 0 ≤ g_t ≤ 1.
  7. Determinism: same manifest ⇒ identical RSI/bands.

Stamp example:

SSMCLOCK1|iso_utc|k=release|U=2.680000|W=3.000000|RSI=0.713036|g=0.81|RSI_env=0.577563|band=A+|knobs_hash=sha256:abcd1234

Acceptance summary.

PropertyMust hold
Parityphi((m,a)) = m
Determinismsame manifest + inputs ⇒ same RSI/band
Invarianceorder/shard safe via (U,W)
Bounds`
Hash stabilityidentical canonical output
Interop parityCSV/JSON/Proto match

One-line takeaway.
Treat the manifest as a contract. Hash it canonically and stamp that hash everywhere — then any audit can replay results exactly while phi((m,a)) = m guarantees classical numbers never changed.


Navigation
Previous: SSM-AI – FAQ & Troubleshooting (P6–P10)
Next: SSM-AI – Domain Adapters (R1–R9)


Directory of Pages
SSM-AI — Table of Contents