project: Glyph Rails Pack (staging)
audience: Maintainers & reviewers
date: 2025-08-21
sunset: 2026-02-01
rights:
- no coerced harm
- informed consent & appeal
- reversibility where possible
- transparency/auditability (hash-log)
- fairness bound: "no protected-class blowups"
goals:
- truthfulness (tests/replications)
- safety (incidents↓, tail-risk↓)
- usefulness (time-to-artifact↓)
- access (cost↓, reach↑)
brakes:
two_keys:
- name: Reviewer A
- name: Reviewer B
proof_of_pause: https://registry.glyphai.org/status
hash_log: https://registry.glyphai.org/log/head
appeal: mailto:appeal@glyphai.org
notes: "Means (AI/tools) must run inside this card; violations pause by default."
One JSON per line; each line’s hash is sha256 of ts|actor|event|payload|prev.
{"ts":"2025-08-21T20:52:00Z","actor":"system","event":"run","payload":{"build":"abc123"},"prev":"","hash":"..."}
{"ts":"2025-08-21T20:54:00Z","actor":"human@ex","event":"pause","payload":{"reason":"staging test"},"prev":"<hash1>","hash":"<hash2>"}
Verify (Python):
import json, hashlib, sys
prev=""; ok=True
for i,line in enumerate(open(sys.argv[1])):
obj=json.loads(line)
computed=hashlib.sha256((obj["ts"]+"|"+obj["actor"]+"|"+obj["event"]+"|"+
json.dumps(obj["payload"],sort_keys=True)+"|"+obj["prev"]).encode()).hexdigest()
if obj["prev"]!=prev or obj["hash"]!=computed:
print("TAMPER @ line", i+1); ok=False; break
prev=obj["hash"]
print("OK" if ok else "TAMPER")
abc123)pause entry to the hash-logstatus=PAUSED within N sec; telemetry read-onlyPAUSED @ <time> & log head10-sec verify: visit https://registry.glyphai.org/status (staging).