{
  "$schema": "./schema.json",
  "schema_version": 1,
  "canonical_origin": "https://hashsigsdocs.sahastasai.com",
  "profiles": [
    {
      "id": "legacy-keccak",
      "label": "LEGACY_KECCAK",
      "compatibility": "Byte-compatible with the pinned HashSigsRS legacy Keccak-256 construction; incompatible with SHA-256 generic v1."
    },
    {
      "id": "hashsigs-sha256-generic-v1",
      "label": "HASHSIGS_SHA256_GENERIC_V1",
      "compatibility": "SHA-256 performance profile; incompatible with LEGACY_KECCAK keys and signatures."
    }
  ],
  "tiers": [
    {
      "id": "model",
      "ordinal": 0,
      "label": "Model",
      "proves": "Software-oracle, dependency, or arithmetic-model behavior for the stated inputs.",
      "nonclaims": ["RHDL behavior", "generated RTL", "synthesis", "timing", "route", "hardware"]
    },
    {
      "id": "source-simulation",
      "ordinal": 1,
      "label": "Rust/RHDL source simulation",
      "proves": "Behavior of the exact Rust/RHDL source in the executed finite trace.",
      "nonclaims": ["generated RTL equivalence", "mapped resources", "timing", "route", "hardware"]
    },
    {
      "id": "generated-rtl",
      "ordinal": 2,
      "label": "Generated RTL simulation",
      "proves": "Lowering equivalence for the exact generated RTL and executed trace.",
      "nonclaims": ["formal proof", "four-state proof", "synthesis", "timing", "route", "hardware"]
    },
    {
      "id": "u280-synthesis",
      "ordinal": 3,
      "label": "U280 synthesis",
      "proves": "Mapped resource and synthesis timing estimates for the exact top, part, source, and constraint.",
      "nonclaims": ["complete placement", "complete route", "shell timing", "card throughput"]
    },
    {
      "id": "u280-route",
      "ordinal": 4,
      "label": "U280 placement and route",
      "proves": "Resource and timing reports for a completely routed exact design.",
      "nonclaims": ["card execution", "untested shell behavior", "unmeasured workloads"]
    },
    {
      "id": "card-execution",
      "ordinal": 5,
      "label": "Card execution",
      "proves": "Validated runtime behavior and throughput for the exact programmed artifact and workload.",
      "nonclaims": ["other source revisions", "other clocks", "other shells", "untested workloads"]
    }
  ],
  "records": [
    {
      "id": "legacy-wots-upstream-vectors",
      "title": "Pinned HashSigsRS legacy WOTS vectors",
      "date": "2026-07-15",
      "status": "passed",
      "subject": "compatibility",
      "profile": "legacy-keccak",
      "topology": "Software reference oracle; five upstream WOTS vectors",
      "tier": "source-simulation",
      "source_commit": "2165652a5a1a853252bf5fe5e4b2084c65bc94de",
      "source_dirty": false,
      "source_path": "tests/vectors/hashsigs/README.md",
      "summary": "All five pinned upstream public keys and signatures match byte for byte under LEGACY_KECCAK. The SHA-256 profile is deliberately separate.",
      "command": "cargo test --locked -j1 -p hashsigs-reference --test upstream_compatibility",
      "measurements": [
        { "name": "vectors", "value": 5, "unit": "cases", "context": "vector0 through vector4" }
      ],
      "tools": [
        { "name": "HashSigsRS source", "version": "2d315dd4168804b7cbc51c51a1bf7ca27bf74140" }
      ],
      "artifacts": [
        { "name": "wotsplus_keccak256.json", "sha256": "5e960bc3b4e6153cf42ad7c70424d9361a55f19f694eef7cb2cb7f16f7d2b041" }
      ],
      "claims": [
        "The pinned legacy vector keys and signatures match byte for byte.",
        "Only randomization elements zero through fifteen affect observable results."
      ],
      "nonclaims": [
        "SHA-256 compatibility",
        "a legacy hardware verifier",
        "synthesis, timing, route, or card behavior"
      ],
      "next_gate": "Keep every compatibility change differential-tested against the pinned upstream revision."
    },
    {
      "id": "sha256-three-lane-generated-rtl",
      "title": "Replicated three-lane SHA-256 arithmetic",
      "date": "2026-07-15",
      "status": "passed",
      "subject": "hash",
      "profile": "hashsigs-sha256-generic-v1",
      "topology": "Three independent 64-stage compression lanes",
      "tier": "generated-rtl",
      "source_commit": "beb9ada48fc01e089ec4fbaa05d2fdeab338de47",
      "source_dirty": false,
      "source_path": "evidence/rtl/sha256-replicated-farm-arithmetic-2026-07-15.md",
      "summary": "The complete generated lane and exact three-lane farm matched an independent Rust compression oracle for the finite reset, bubble, adjacent-token, non-IV, and asymmetric-lane vectors.",
      "command": "target/debug/rhdl-gen check --full --keep --temp-root <temporary-directory>",
      "measurements": [
        { "name": "lane latency", "value": 64, "unit": "cycles", "context": "exact valid/tag latency" },
        { "name": "farm vectors", "value": 5, "unit": "outputs", "context": "asymmetric activity across three lanes" }
      ],
      "tools": [
        { "name": "Verilator", "version": "5.048" },
        { "name": "RHDL", "version": "c99d5cc53269a247bbc675d0fbd766991d409f56" }
      ],
      "artifacts": [
        { "name": "replicated farm RTL", "sha256": "0b4aef07029d4ae3a9e3cfa271c8ebe899a2128dc3c95794977c5dce4c2160d9" },
        { "name": "farm simulation log", "sha256": "6df649738af9f23515c0c73fcce9477b387e7720223939012c4db1a384b209e1" }
      ],
      "claims": [
        "Five expected compression outputs matched across the exact generated three-lane farm.",
        "Opaque tags and valid state crossed exactly 64 cycles, including reset flushing."
      ],
      "nonclaims": [
        "formal SHA-256 proof",
        "mapped three-lane resources",
        "timing, route, signature throughput, or hardware execution"
      ],
      "next_gate": "Use the complete production signer bundle for system-level evidence, then synthesize the exact staged RTL."
    },
    {
      "id": "production-signer-source-finite",
      "title": "Production signer source simulation",
      "date": "2026-07-15",
      "status": "passed",
      "subject": "signer",
      "profile": "hashsigs-sha256-generic-v1",
      "topology": "Three clusters × four contexts with three complete SHA-256 lanes",
      "tier": "source-simulation",
      "source_commit": "2f21bd47bcbab521e3c2055fed6df2eb3fbfb03d",
      "source_dirty": true,
      "source_path": "evidence/rtl/wots-production-signer-source-simulation-2026-07-15.md",
      "summary": "The actual production RHDL specialization completed twelve distinct fused jobs after a live reset, saturation, backpressure, exact frame, and quiescence checks.",
      "command": "cargo test -j1 -p wots-rhdl --test top_full -- --ignored --nocapture --test-threads=1",
      "measurements": [
        { "name": "accepted SHA requests", "value": 15096, "unit": "blocks", "context": "twelve jobs × 1,258 blocks" },
        { "name": "modeled trace", "value": 6836, "unit": "cycles", "context": "finite source-simulation trace including reset and quiescence" },
        { "name": "fused results", "value": 12, "unit": "jobs", "context": "four completed by each cluster" }
      ],
      "tools": [
        { "name": "rustc", "version": "1.96.0" },
        { "name": "RHDL", "version": "c99d5cc53269a247bbc675d0fbd766991d409f56" }
      ],
      "artifacts": [],
      "claims": [
        "All twelve source-level jobs matched the independent software oracle and exact 35-beat frames.",
        "Reset flushing, saturation, noninterleaving, held output stability, release accounting, and final quiescence passed in the finite trace."
      ],
      "nonclaims": [
        "generated RTL equivalence",
        "steady-state throughput",
        "resource use, timing, route, or hardware"
      ],
      "next_gate": "Lower, link, parse, and simulate the exact production generated RTL."
    },
    {
      "id": "production-signer-generated-rtl-finite",
      "title": "Production signer generated-Verilog equivalence",
      "date": "2026-07-15",
      "status": "passed",
      "subject": "signer",
      "profile": "hashsigs-sha256-generic-v1",
      "topology": "Three clusters × four contexts; one linked lane definition elaborated three times",
      "tier": "generated-rtl",
      "source_commit": "dbd18593527673be2a93d7067ee03667892c582a",
      "source_dirty": false,
      "source_path": "evidence/rtl/wots-production-signer-generated-verilog-2026-07-15.md",
      "summary": "The immutable modular production bundle matched twelve independent fused WOTS results in a finite self-checking Verilator trace.",
      "command": "cargo run --release --locked -j1 -p rhdl-gen -- check --signer-full --temp-root <evidence-root> --keep",
      "measurements": [
        { "name": "jobs", "value": 12, "unit": "results", "context": "four admitted to each cluster" },
        { "name": "output transfers", "value": 420, "unit": "beats", "context": "twelve exact 35-beat frames" },
        { "name": "first final hold", "value": 5, "unit": "cycles", "context": "registered output stability under backpressure" }
      ],
      "tools": [
        { "name": "Verilator", "version": "5.048" },
        { "name": "RHDL", "version": "c99d5cc53269a247bbc675d0fbd766991d409f56" }
      ],
      "artifacts": [
        { "name": "linked signer bundle", "sha256": "41fe7ba31ec811b6a69ebcb9d2e76af512b0b49af99b7c83389d5cf97b978e68" },
        { "name": "final evidence manifest", "sha256": "5fb20020be4957b0d2fa83d77a42529e59bd2cc2da05a36cc9bd308a8a90b467" }
      ],
      "claims": [
        "The exact finite generated-RTL trace matched twelve independent software-oracle results.",
        "The linked hierarchy contains the intended three cluster paths and three effective lane paths."
      ],
      "nonclaims": [
        "formal or four-state proof",
        "sustained throughput",
        "synthesis, timing, mapping, route, or U280 execution"
      ],
      "next_gate": "Measure a sustained generated-RTL trace, then stage this exact bundle for U280 synthesis."
    },
    {
      "id": "production-signer-generated-rtl-sustained",
      "title": "Production signer sustained generated-RTL throughput",
      "date": "2026-07-15",
      "status": "passed",
      "subject": "signer",
      "profile": "hashsigs-sha256-generic-v1",
      "topology": "Three clusters × four contexts; continuous admission and always-ready output",
      "tier": "generated-rtl",
      "source_commit": "dbd18593527673be2a93d7067ee03667892c582a",
      "flow_commit": "276c538fbc4d316a610f673121dd7476e6c2a25d",
      "source_dirty": false,
      "source_path": "evidence/rtl/wots-production-signer-sustained-throughput-2026-07-15.md",
      "summary": "The preserved production bundle completed 72 unique jobs; a 48-result steady interval stayed below the 500-cycle budget normalized at 250 MHz.",
      "command": "cargo run --release --locked -j1 -p rhdl-gen -- signer-throughput --source-evidence <finite-evidence> --output <new-evidence-directory>",
      "measurements": [
        { "name": "steady interval", "value": 23121, "unit": "cycles", "context": "completion boundary 12 through boundary 60" },
        { "name": "measured results", "value": 48, "unit": "results", "context": "after twelve warmup results and before twelve tail results" },
        { "name": "cycles per result", "value": 481.6875, "unit": "cycles/result", "context": "23,121 cycles divided by 48 results" },
        { "name": "normalized rate at 250 MHz", "value": 519008.693, "unit": "results/second", "context": "arithmetic normalization; not a measured clock or card rate" }
      ],
      "tools": [
        { "name": "Verilator", "version": "5.048" },
        { "name": "rhdl-gen", "version": "0.1.0" }
      ],
      "artifacts": [
        { "name": "linked signer bundle", "sha256": "41fe7ba31ec811b6a69ebcb9d2e76af512b0b49af99b7c83389d5cf97b978e68" },
        { "name": "throughput evidence manifest", "sha256": "99c6e9c1eb6e93731e1fe8aa53a633ae61df3a3109d2075136a8fd6cd0a00c33" }
      ],
      "claims": [
        "The exact always-ready trace completed one aggregate 48-result interval at an average 481.6875 cycles per result with zero faults.",
        "All 72 jobs, 2,520 output beats, and 72 releases matched the independent oracle and accounting rules."
      ],
      "nonclaims": [
        "an achieved 250 MHz clock",
        "synthesis, resources, timing closure, route, shell, or card throughput",
        "arbitrary-backpressure sustained throughput"
      ],
      "next_gate": "Synthesize and implement the checksum-identical linked bundle on the U280 at the stated constraints."
    },
    {
      "id": "production-verifier-source-finite",
      "title": "Three-cluster SHA-256 verifier source simulation",
      "date": "2026-07-15",
      "status": "passed",
      "subject": "verifier",
      "profile": "hashsigs-sha256-generic-v1",
      "topology": "Three clusters × four contexts with three complete SHA-256 lanes",
      "tier": "source-simulation",
      "source_commit": "892b7e62ed45e766033a382ba46b89ad0d18599b",
      "source_dirty": false,
      "source_path": "crates/wots-rhdl/VERIFIER_TOP_EVIDENCE.md",
      "summary": "The full source verifier executed twelve worst-case jobs, exact tag transport, fair admission, backpressure, and fail-closed drainage across all three clusters.",
      "command": "cargo test --release --locked -j1 -p wots-rhdl --test verify_top -- --ignored --nocapture --test-threads=1",
      "measurements": [
        { "name": "accepted SHA tasks", "value": 12480, "unit": "blocks", "context": "twelve jobs × worst-case 1,040 tasks" },
        { "name": "routed returns", "value": 12480, "unit": "returns", "context": "exactly one routed return per accepted task" },
        { "name": "modeled trace", "value": 5778, "unit": "cycles", "context": "finite full-source verifier trace" },
        { "name": "full-source runtime", "value": 110.12, "unit": "seconds", "context": "one ignored release-profile test" }
      ],
      "tools": [
        { "name": "rustc", "version": "1.96.0" },
        { "name": "RHDL", "version": "c99d5cc53269a247bbc675d0fbd766991d409f56" }
      ],
      "artifacts": [],
      "claims": [
        "All twelve worst-case source-level verifier jobs completed with exact accepted-task and routed-return counts.",
        "Framing, expected-tag transport, held results, first-cause diagnostics, global poison, peer abort, and identified drainage passed in the exercised tests."
      ],
      "nonclaims": [
        "legacy Keccak hardware verification",
        "linked generated-RTL equivalence",
        "synthesis, resources, timing, route, throughput, or card execution"
      ],
      "next_gate": "Link the modular verifier lane leaves and run a self-checking generated-RTL verifier trace."
    },
    {
      "id": "production-signer-u280-synthesis-250",
      "title": "Production signer U280 synthesis at 250 MHz",
      "date": "2026-07-15",
      "status": "pending",
      "subject": "integration",
      "profile": "hashsigs-sha256-generic-v1",
      "topology": "Raw production signer top; three clusters × four contexts",
      "tier": "u280-synthesis",
      "source_commit": "dbd18593527673be2a93d7067ee03667892c582a",
      "source_dirty": false,
      "source_path": "fpga/u280/README.md",
      "summary": "This row reserves the synthesis gate. It carries no U280 result until exact staged provenance and reports are recorded.",
      "measurements": [],
      "tools": [],
      "artifacts": [
        { "name": "candidate linked signer bundle", "sha256": "41fe7ba31ec811b6a69ebcb9d2e76af512b0b49af99b7c83389d5cf97b978e68" }
      ],
      "claims": [],
      "nonclaims": [
        "synthesis pass",
        "mapped resources",
        "250 MHz timing",
        "placement, route, shell, or hardware throughput"
      ],
      "next_gate": "Create a fresh schema-v2 baseline stage (the preserved 6801a66 stage is unlaunchable), then run isolated checksum-bound synthesis for xcu280-fsvh2892-2L-e at a 4.000 ns constraint and archive the applied/observed constraint reports with all other reports."
    },
    {
      "id": "production-signer-u280-route-250",
      "title": "Production signer U280 route at 250 MHz",
      "date": "2026-07-15",
      "status": "pending",
      "subject": "integration",
      "profile": "hashsigs-sha256-generic-v1",
      "topology": "Raw production signer top; three clusters × four contexts",
      "tier": "u280-route",
      "source_commit": "dbd18593527673be2a93d7067ee03667892c582a",
      "source_dirty": false,
      "source_path": "fpga/u280/README.md",
      "summary": "No completely routed 4.000 ns result is recorded in this manifest yet.",
      "measurements": [],
      "tools": [],
      "artifacts": [],
      "claims": [],
      "nonclaims": [
        "complete placement or route",
        "setup or hold closure",
        "routed resources",
        "shell or card throughput"
      ],
      "next_gate": "After a passing exact synthesis gate, implement sequentially and require complete route plus setup and hold closure."
    },
    {
      "id": "production-signer-u280-synthesis-300",
      "title": "Production signer U280 synthesis at 300 MHz",
      "date": "2026-07-15",
      "status": "pending",
      "subject": "integration",
      "profile": "hashsigs-sha256-generic-v1",
      "topology": "Raw production signer top; three clusters × four contexts",
      "tier": "u280-synthesis",
      "source_commit": "dbd18593527673be2a93d7067ee03667892c582a",
      "source_dirty": false,
      "source_path": "fpga/u280/README.md",
      "summary": "This row reserves the separate 3.333 ns synthesis gate. It carries no U280 result until exact staged provenance and reports are recorded.",
      "measurements": [],
      "tools": [],
      "artifacts": [
        { "name": "candidate linked signer bundle", "sha256": "41fe7ba31ec811b6a69ebcb9d2e76af512b0b49af99b7c83389d5cf97b978e68" }
      ],
      "claims": [],
      "nonclaims": [
        "synthesis pass",
        "mapped resources",
        "300 MHz timing",
        "placement, route, shell, or hardware throughput"
      ],
      "next_gate": "After the 4.000 ns synthesis and route sequence is understood, run isolated checksum-bound synthesis for xcu280-fsvh2892-2L-e at a separate 3.333 ns constraint and archive all reports."
    },
    {
      "id": "production-signer-u280-route-300",
      "title": "Production signer U280 route at 300 MHz",
      "date": "2026-07-15",
      "status": "pending",
      "subject": "integration",
      "profile": "hashsigs-sha256-generic-v1",
      "topology": "Raw production signer top; three clusters × four contexts",
      "tier": "u280-route",
      "source_commit": "dbd18593527673be2a93d7067ee03667892c582a",
      "source_dirty": false,
      "source_path": "fpga/u280/README.md",
      "summary": "No completely routed 3.333 ns result is recorded in this manifest yet.",
      "measurements": [],
      "tools": [],
      "artifacts": [],
      "claims": [],
      "nonclaims": [
        "complete placement or route",
        "300 MHz setup or hold closure",
        "routed resources",
        "shell or card throughput"
      ],
      "next_gate": "Attempt the 3.333 ns variant separately after the 4.000 ns result is understood; never combine their reports."
    },
    {
      "id": "production-signer-u280-card",
      "title": "Production signer U280 card execution",
      "date": "2026-07-15",
      "status": "pending",
      "subject": "integration",
      "profile": "hashsigs-sha256-generic-v1",
      "topology": "Production signer plus a separately validated U280 shell",
      "tier": "card-execution",
      "source_commit": null,
      "source_dirty": null,
      "source_path": "fpga/u280/README.md",
      "summary": "No programmed-card result exists for this exact production signer and shell in the canonical manifest.",
      "measurements": [],
      "tools": [],
      "artifacts": [],
      "claims": [],
      "nonclaims": [
        "xclbin generation",
        "card correctness",
        "measured clock or throughput",
        "host and memory-traffic sufficiency"
      ],
      "next_gate": "Package and route a provenance-bound shell, program the reserved card, and validate every returned result before measuring throughput."
    }
  ]
}
