# Signals DSSE Evidence Staging (runtime/signals gaps) Artifacts prepared 2025-12-01 (UTC) for DSSE signing and Evidence Locker ingest: - Decay config: `docs/modules/signals/decay/confidence_decay_config.yaml` - Unknowns scoring manifest: `docs/modules/signals/unknowns/unknowns_scoring_manifest.json` - Heuristic catalog + schema + fixtures: `docs/modules/signals/heuristics/` - Checksums: `docs/modules/signals/SHA256SUMS` Planned Evidence Locker paths (to fill post-signing): - `evidence-locker/signals/decay/2025-12-01/confidence_decay_config.dsse` - `evidence-locker/signals/unknowns/2025-12-01/unknowns_scoring_manifest.dsse` - `evidence-locker/signals/heuristics/2025-12-01/heuristics_catalog.dsse` - `evidence-locker/signals/heuristics/2025-12-01/fixtures/` (golden inputs/outputs) Pending steps: 0) Provide signing key: CI/ops should supply `COSIGN_PRIVATE_KEY_B64` (base64 of private key) and optional `COSIGN_PASSWORD`. Local dev can place a key at `tools/cosign/cosign.key` (see `tools/cosign/cosign.key.example` stub) or decode the env var to `/tmp/cosign.key`. The helper script `tools/cosign/sign-signals.sh` auto-detects the key and cosign version. 1) Sign each artifact with its predicate (cosign v3.0.2 in `/usr/local/bin`, use `--bundle`; v2.6.0 fallback in `tools/cosign` also works with `--output-signature`): - `stella.ops/confidenceDecayConfig@v1` - `stella.ops/unknownsScoringManifest@v1` - `stella.ops/heuristicCatalog@v1` Shortcut: `OUT_DIR=evidence-locker/signals/2025-12-01 tools/cosign/sign-signals.sh` Example (v3, replace KEY): ```bash cosign sign-blob \ --key cosign.key \ --predicate-type stella.ops/confidenceDecayConfig@v1 \ --bundle confidence_decay_config.sigstore.json \ decay/confidence_decay_config.yaml ``` v2.6.0 fallback (if PATH prefixed with `tools/cosign`): ```bash cosign sign-blob \ --key cosign.key \ --predicate-type stella.ops/confidenceDecayConfig@v1 \ --output-signature confidence_decay_config.dsse \ decay/confidence_decay_config.yaml ``` 2) Record SHA256 from `SHA256SUMS` in DSSE annotations (or bundle metadata); keep canonical filenames: - v3: `confidence_decay_config.sigstore.json`, `unknowns_scoring_manifest.sigstore.json`, `heuristics_catalog.sigstore.json` - v2 fallback: `.dsse` signatures. 3) Place signed envelopes + checksums in the Evidence Locker paths above; update sprint tracker Delivery Tracker rows 5–7 and Decisions & Risks with the final URIs. 4) Add signer/approver IDs to the sprint Execution Log once signatures are complete. Notes: - Use UTC timestamps in DSSE `issuedAt`. - Ensure offline parity by copying envelopes + SHA256SUMS into the offline kit bundle when ready.