Keys (spec/02 §2.4), the rule paperstack settled on:
- A work key is a Scholar-style citation key, a hyphen and the first four
Crockford base32 characters of SHA-256("scienting-key/1:" + identity),
where the identity is the first of doi, arxiv, isbn, pmid, pmcid and
openalex in same_as, else the folded title, year and family name. A
collision lengthens the later key by two characters; a key is minted
once and never recomputed. A document key adds .si, .v<seq> or .<type>
for versions other than the version of record.
- Every fixture key is now minted (hale2026harmonic-damb,
okafor2025solvent-acth, writer2027fixed-ynr7.v3, tiny2026tiny-j4qm), so
every node and record ID was re-minted and the docs rewritten to match.
The validator checks the document key against the work key and version
(doc.key.work) and the hash part against the identifier (doc.key.suffix).
vectors/keys.jsonl pins the cases paperstack's tests pin.
Review:
- Spot-check seeds are ECVRF-EDWARDS25519-SHA512-TAI proofs (RFC 9381),
implemented in tools/oracle/vrf.py in plain Python and reproduced
against the RFC's Example 16; the sample ranks by the VRF output. The
earlier Ed25519 seed could be ground by a dishonest checker.
- RFC 9162 inclusion and consistency proofs (crypto.inclusion_path,
verify_inclusion, consistency_proof, verify_consistency) with
scienting-proof/1, vectors/proofs.jsonl and two fixture records.
- document.json carries `history`, the root over the corrections, with
the empty-tree hash for none (spec/11 §11.5, rule doc.history).
- A provisional transparency log (spec/23): log entries, signed-note
checkpoints with key hashes as transparency logs share them, the rule
that a logged revocation beats a self-asserted time, and vectors.
- Reserved signature schemes cose and ml-dsa-65 (spec/08 §8.4).
Identifiers and text:
- urn:scienting: becomes tag:scient.ing,2026: (RFC 4151), since the URN
namespace was never registered.
- Unicode 16.0 is pinned for normalization and categories (spec/01 §1.4);
the checker refuses another version.
Checking:
- check.py: keys, proofs, VRF and checkpoint vectors; the proof and
checkpoint records; a check that every ID and hash the prose quotes
exists in the fixtures or vectors; three more broken packages
(history-wrong, key-suffix, key-work).
- stress.py: key, VRF, proof and checkpoint properties.
- Docs: a keys section in the concepts and FAQ, rationale entries for
keys, VRF, proofs, tag URIs and the Unicode pin, a "Looking ahead"
section, media-type registration and OCI distribution notes.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
36 lines
2.0 KiB
JSON
36 lines
2.0 KiB
JSON
{
|
||
"comment": "A short synthetic Typst draft that cites sentences of hale2026harmonic by address. Text written for this fixture; CC0-1.0.",
|
||
"document": {
|
||
"store": "smithlab",
|
||
"kind": "draft",
|
||
"work": {"same_as": []},
|
||
"version": {"type": "draft", "seq": 3},
|
||
"relations": [],
|
||
"meta": {"type": "report", "title": "Fixed charges in biomolecular force fields", "author": [{"family": "Writer", "given": "A."}], "issued": {"date-parts": [[2027]]}},
|
||
"language": "en",
|
||
"license": {"spdx": "CC-BY-4.0"},
|
||
"policy": "full"
|
||
},
|
||
"tree": {"kind": "document", "children": [
|
||
{"kind": "front", "children": [
|
||
{"kind": "title", "children": [{"s": ["Fixed charges in biomolecular force fields"], "fidelity": "F2"}]},
|
||
{"kind": "authors", "runs": ["A. Writer"], "fidelity": "F2"}
|
||
]},
|
||
{"kind": "section", "label": "1", "level": 1, "title": "Introduction", "children": [
|
||
{"p": [
|
||
{"name": "@d1", "s": ["The bond term is harmonic in the bond length."], "fidelity": "F2"},
|
||
{"name": "@d2", "s": ["Its constants come from a two-step fit ", {"xref": "ext:hale2026harmonic:@s5", "text": "(Hale and Osei, Table 1)"}, ".", {"cite": ["@dr1"], "text": "1"}], "fidelity": "F2"},
|
||
{"name": "@d3", "s": ["In that fit the energy is ", {"t": "E = K_r (r - r_\"eq\")^2"}, ", up to a constant factor."], "fidelity": "F2"}
|
||
]}
|
||
]},
|
||
{"kind": "back", "children": [
|
||
{"kind": "references", "children": [
|
||
{"kind": "reference", "name": "@dr1", "label": "1", "runs": ["1. R. Hale and M. Osei, J. Example Chem. 2026, 14, 101–109."], "fidelity": "F2",
|
||
"csl": {"type": "article-journal", "author": [{"family": "Hale", "given": "R."}, {"family": "Osei", "given": "M."}], "container-title": "J. Example Chem.", "volume": "14", "page": "101-109", "issued": {"date-parts": [[2026]]}, "DOI": "10.5555/example.hale.2026"},
|
||
"resolution": {"type": "document", "doc": "ext:hale2026harmonic"}}
|
||
]}
|
||
]}
|
||
]},
|
||
"typst": {"sha_seed": "smithlab2027charges: Typst project, revision 3 (synthetic)", "size": 4211}
|
||
}
|