Publication status
Version map
These numbers identify three separate components of the same public edition.
Normative rules
Technical Specification
Revision 3.1
Pilot protocol
Open Pilot Baseline
Version 1.0
Signed record
Preregistration and evidence package
Revision 0.7
The signed filenames, manifests, checksums and signatures retain their exact technical identifiers.
Public Set
Primary downloads
Preregistration package
triz_ri_smart_ai_evaluator_en_pilot_baseline_1_0_prereg_0_7.zip
786.0 KB
SHA-256 c2eb9fc3fea9e0e21d6d812bc4a744fd26fb2f2b4d0c8f714010dc6773e97169
Google Sheets witness
triz_ri_smart_ai_evaluator_en_pilot_baseline_1_0_prereg_0_7_google_sheets_witness.json
15.4 KB
SHA-256 56734f387bc1b98a98f64305ac0a6098a5df1512c36a96d4539085afea5123ce
Post-run evidence
triz_ri_smart_ai_evaluator_en_pilot_baseline_1_0_prereg_0_7_post_run_evidence.zip
2.37 MB
SHA-256 4a8e3b050e47cdf58b7cdc421c51a61ff926c652beefab0d10e01ca447f07e77
Integrity and authenticity
Verification files
Common checksum list
SHA256SUMS.txt
431 bytes
SHA-256 b5af7c76678cf4dc3f9ea9fed49cca35a0962179ba16f0f12593065633d8fa01
Minisign signature
SHA256SUMS.txt.minisig
330 bytes
SHA-256 604d2fbf56273703fac2731b5aa996dd13b532faeda911ee8e7204c8b080ab5b
OpenTimestamps proof
SHA256SUMS.txt.minisig.ots
945 bytes
SHA-256 1e4bb4d1365e359fea9adc4f1f684504258903a17263d9f152c3831d4a3a2346
Official public key
triz-ri-release.pub
113 bytes
SHA-256 5a1728cf1067ddc87e9e7b7a76eaab4ca8f3c5173d1968f05a4976c9dc37457b
Detached checksum
triz_ri_smart_ai_evaluator_en_pilot_baseline_1_0_prereg_0_7.zip.sha256
130 bytes
SHA-256 36ec01de03d09e315b9340e24e5c0c684b5bb6b231f3f819d15611e7cf4e87f2
Detached checksum
triz_ri_smart_ai_evaluator_en_pilot_baseline_1_0_prereg_0_7_google_sheets_witness.json.sha256
153 bytes
SHA-256 4c59795b926bf5ca04afd11f4192bf2bbe6b68a9a468a0318bff330e50528ead
Detached checksum
triz_ri_smart_ai_evaluator_en_pilot_baseline_1_0_prereg_0_7_post_run_evidence.zip.sha256
148 bytes
SHA-256 ff30a1eadd7e44db3643d0745b0a1c415679ca42d8e02f3031f63e9bafa85c9c
Local verification
Verify the published set
shasum -a 256 -c SHA256SUMS.txt
minisign -Vm SHA256SUMS.txt -p triz-ri-release.pub -x SHA256SUMS.txt.minisig
ots verify SHA256SUMS.txt.minisig.ots
The preregistration package is rebuilt from any directory with
python build_package.py --root ..
The post-run evidence archive contains a portable replay runner with
explicit --prereg-zip, --witness-json and
--output-root arguments.
Canonical package source
Signal calculator
triz_ri_smart_ai_evaluator/common/signal_calculator.py
View canonical source code
#!/usr/bin/env python3
from __future__ import annotations
import json, math, pathlib, sys
def calculate(spec):
B = float(spec.get("base_unit", 1.0))
blocks = spec.get("result_blocks", [])
quality = spec.get("quality", {})
violations = spec.get("critical_violations", [])
external = spec.get("required_external_checks", {})
escrow = spec.get("escrow", {"release_fraction": 1.0, "state": "released"})
reasons = []
if violations:
reasons.append("critical_violation")
q_value = float(quality.get("value", 1.0))
q_threshold = float(quality.get("threshold", 1.0))
if q_value < q_threshold:
reasons.append("quality_gate_failed")
for b in blocks:
if b.get("required", True) and float(b["value"]) < float(b.get("threshold", 0.0)):
reasons.append("result_threshold_failed:" + b["name"])
incomplete = [k for k, v in external.items() if v is not True]
if incomplete:
reasons.append("external_checks_incomplete:" + ",".join(sorted(incomplete)))
perf_overall = math.prod(float(b["value"]) for b in blocks) if blocks else 0.0
eligible = not reasons
gross = B + B * perf_overall if eligible else 0.0
fraction = min(1.0, max(0.0, float(escrow.get("release_fraction", 1.0))))
state = escrow.get("state", "released")
preliminary = gross * fraction
held = gross - preliminary
if state == "released":
final = gross
held = 0.0
elif state == "forfeited":
final = preliminary
held = 0.0
else:
final = None
return {
"formula_model": "mandatory quality and external gates; S=B+B*product(Perf_i); escrow applied after eligibility",
"base_unit": B,
"Perf_overall": perf_overall,
"eligible": eligible,
"blocking_reasons": reasons,
"gross_signal": gross,
"preliminary_signal": preliminary,
"held_signal": held,
"final_signal": final,
"escrow_state": state,
}
if __name__ == "__main__":
if len(sys.argv) != 2:
raise SystemExit("usage: signal_calculator.py input.json")
print(json.dumps(calculate(json.loads(pathlib.Path(sys.argv[1]).read_text(encoding="utf-8"))), ensure_ascii=False, indent=2))