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 preservephi((m,a)) = m, fusea_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
- Freeze current manifest, compute
old_hash. - Add missing defaults (
policy.eps_a,policy.eps_w,gate.mode). - Review lens block parameters (
Unit,c,weights,gamma). - Add optional rollback policy if needed.
- Compute
new_hash; store both hashes in ledger. - Verify
phi((m,a)) = mbefore and after. - 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 bygate.rho.
Q7) Interop tests
| Test | Description |
|---|---|
| Round-trip | manifest → canonical_json → knobs_hash → reparse → identical |
| Batch equality | same inputs, any order ⇒ identical (U,W) and a_out |
| CSV/JSON parity | RSI 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
- Validate
schema_version. - Verify
knobs_hash== computed hash. - Replay pooled RSI:
tanh(sumU / max(sumW, eps_w)). - Confirm
phi((m,a)) = mon samples. - Verify band distribution from manifest thresholds.
- Gate range:
0 ≤ g_t ≤ 1. - 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.
| Property | Must hold |
|---|---|
| Parity | phi((m,a)) = m |
| Determinism | same manifest + inputs ⇒ same RSI/band |
| Invariance | order/shard safe via (U,W) |
| Bounds | ` |
| Hash stability | identical canonical output |
| Interop parity | CSV/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