{
 "atlas_url": "https://stockql.ai/atlas/wave-002/quantitative-specificity.json",
 "current_url": "https://stockql.ai/atlas/quantitative-specificity.json",
 "wave": "wave-002",
 "published_spec_sha256": "fd86e35595660e82a1c65c914b7959a1b892773931c5aa67d93758b675b550f0",
 "verify_with": "freeze_registry.py verify (github: see /atlas/index.json tooling note)",
 "generated_utc": "2026-10-26T17:26:21Z",
 "frozen_entry": {
  "contract_version": "signal-atlas-registry-v2",
  "policy_version": "registry-policy-v1",
  "registry_wave_id": "wave-002",
  "family": {
   "family_id": "quantitative-specificity",
   "family_title": "Quantitative Specificity: the density and texture of numbers in management speech",
   "owner": "Star",
   "independent_reviewer": "Temperance",
   "source_bead": "cst-5cr5.11.33",
   "spec_version": 1,
   "supersedes_spec_sha256": null,
   "claimed_at_utc": "2026-10-19T12:12:41Z",
   "shared_extraction": {
    "input_unit": "single call, joined to the same issuer's prior quarterly calls' stored per-call feature rows (never prior transcript text) for trailing baselines, exactly as the CM family declared: baseline rows are the deterministic per-call scalars this family emits (QS-1..QS-3 call-level values plus support counts) and MAY be read from calls preceding the discovery window so early discovery quarters remain scorable.",
    "input_binding": "transcript-gate splitter output with verdict ok, via import from the CSL extractor module's public API (workshop/signal-atlas/extractors/call_structure_logistics.py, csl_parse_call -> CslParsedCall) at the behavior manifest current at QS freeze time, so this family cannot disagree with CSL/CM about section boundaries, speaker roles, or answer turns; csl_parse_call returning None (non-ok splitter verdict) makes all features null. QS-1 and QS-2 read the body text of management turns in the PREPARED-REMARKS section only. QS-3 reads Q&A exchanges formed by the same acr.extract_exchanges grouping algorithm with the CSL question/answer tests as frozen in CM-1, reading the analyst question turn body and the concatenated management answer turn bodies. Snapshot metadata limited to ticker, call_date, fiscal_quarter, fiscal_year, calendar_quarter.",
    "output_contract": "one typed row per call: {transcript_id, pr_mgmt_tokens, qs_digit_density (per 100 prepared-remarks management tokens), qs_vague_density (per 100), qs_digit_vague_ratio, qualifying_range_count, qs_range_relative_width (median), numeric_question_count, evaded_numeric_question_count, qs_numeric_evasion_rate, per-field support counts, explicit null for any field whose inputs are absent}; evidence = matched character offsets for every digit-bearing token, lexicon hit, and qualifying range, plus exchange turn indices for QS-3; no confidence field - deterministic code, not a judgment",
    "model_or_algorithm": "deterministic algorithm: Python extractor over CSL-module output; whitespace tokenization (str.split); match normalization = case-fold, strip non-alphanumeric characters except '.' '%' '$' and ',' WITHIN digit-bearing tokens (so '120bps,' '14.5%,' '$1.2' survive as one token), CSL-5 rule otherwise; a DIGIT TOKEN is a normalized token containing at least one of 0-9; frozen phrase lists verbatim in each hypothesis; leftmost-longest non-overlapping phrase matching; no model in the loop; code artifact hashed before scoring together with the behavior manifest of every imported module, per the CSL-6 precedent",
    "prompt_or_code_artifact_sha256": null,
    "scorer_blinded_to_returns": true,
    "scorer_blinded_to_future_transcripts": true
   },
   "hypotheses": [
    {
     "hypothesis_id": "QS-1",
     "title": "Digit-density delta in prepared remarks",
     "statement": "Calls whose prepared remarks carry a higher ratio of digit-token density to vague-language density than the issuer's own trailing norm (issuer-baseline delta of the smoothed log ratio) have higher +2..+60 session SPY-relative abnormal returns; the measured object is the texture of the language (digit-dense versus vague), not a classification of claims, and the delta is preregistered as directionally positive on the Lazy-Prices-adjacent reading that language change carries information.",
     "direction": "positive",
     "unit_of_analysis": "one earnings call (issuer-quarter) with issuer trailing call history",
     "cost_class": "string-match",
     "primary_feature": {
      "name": "qs_digit_vague_ratio_delta",
      "definition": "digit density = digit tokens per 100 management prepared-remarks tokens (DECLARED: this counts every digit-bearing token, years and fiscal references included - the construct is digit-token density, not quantified claims); vague density = matches per 100 of the frozen vague-language lexicon (DECLARED: adjectives and nouns of vague magnitude, not only grammatical quantifiers) {meaningful, meaningfully, significant, significantly, substantial, substantially, material, materially, considerable, considerably, strong, strongly, solid, robust, healthy, modest, modestly, slight, slightly, somewhat, nicely, 'a lot', 'a bit', 'good deal of', 'great deal of', momentum, encouraging, 'improving trends', 'trending well'}; qs_digit_vague_ratio = ln((digit density + 0.5) / (vague density + 0.5)); feature = call value minus the median of the same value over up to 4 immediately preceding baseline calls (minimum 2)",
      "aggregation": "single ratio per call from section-level densities; issuer-baseline delta as defined",
      "comparison": "issuer-baseline delta, then quarterly cross-sectional quintiles"
     },
     "primary_endpoint": {
      "return_field": "abnormal_60_winsor",
      "window_start_session": 2,
      "window_end_session": 60,
      "benchmark": "cumulative stock return divided by SPY return, winsorized 1/99 percent, per transcript-alpha settled-entry convention",
      "price_timing": "close of first SPY session strictly after call_date through close of session +60"
     },
     "estimator": "quarterly high-minus-low quintile spread, Newey-West lag-1 on quarterly spreads, ticker-cluster bootstrap as in settled entries 1-4; two-sided primary p-value per registry-policy-v1, with the preregistered sign required for a directional verdict",
     "universe": "all calls in the wave-002 discovery Research Snapshot passing the settled liquidity gates and splitter verdict ok, with every baseline call also splitter-verdict ok and trailing history per shared_extraction.input_unit",
     "exclusions": [
      "splitter verdict not ok on the current call",
      "fewer than 300 management prepared-remarks tokens on the current call",
      "fewer than 2 baseline calls that are splitter-verdict ok and have >= 300 management prepared-remarks tokens",
      "baseline adjacency failing the settled pairing rules (call exclusion; funnel reports the count)",
      "below settled liquidity/price gates",
      "incomplete +60 session return horizon at frozen price cutoff"
     ],
     "missingness_rule": "calls below token or baseline support are excluded, not imputed; densities are always computable on a non-empty section (zero matches is a value, not a missing)",
     "support_gate": "minimum 400 scored calls, 150 distinct issuers, 6 calendar quarters",
     "smallest_effect_size_of_interest": "0.01 (one percentage point) quarterly high-minus-low spread in abnormal_60_winsor units",
     "power_target": 0.8,
     "calibration_gate": {
      "blind_to_returns": true,
      "labeled_sample_design": "deterministic fixture plan: constructed prepared-remarks sections with known digit-token and lexicon-hit counts by construction (digits inside words, '$1.2 billion' tokenization, comma-bearing numerals, lexicon phrases split across lines, case variants, overlapping phrases resolved leftmost-longest); plus a seeded deterministic draw of 30 real discovery-window calls whose densities and ratio are hand-recomputed by a seat other than the owner; PLUS a construct-validity check with a frozen pairing rule: rank the 30 sampled calls by qs_digit_vague_ratio; pair rank 1 of the top tercile with rank 1 of the bottom tercile, rank 2 with rank 2, ... forming exactly 10 pairs; for each pair the reviewer judges, return-blind, which member reads as more digit-dense-versus-vague; agreement = pairs where the reviewer picks the top-tercile member",
      "metrics": [
       "deterministic exactness: extractor token counts, hit counts, and ratio equal hand-computed values on 100% of fixtures",
       "per-call agreement on the 30 sampled real calls with every disagreement itemized by character offset",
       "construct validity: paired tercile agreement per the frozen pairing rule"
      ],
      "minimum_thresholds": "100% on fixtures; >= 27/30 exact agreement on real calls; >= 8/10 paired tercile agreements; frozen before scoring",
      "disagreement_review": "all disagreements listed verbatim with offsets; reviewer signs off on lexicon coverage as frozen (additions after review round are a spec_version bump, never silent)",
      "failure_verdict": "construct-rejected"
     },
     "multiplicity_family": "wave-002-primary",
     "holdout_rule": "common-wave-002",
     "primary_p_value_count": 1,
     "leakage_boundary": {
      "allowed_fields": [
       "prepared-remarks management turn body text (current call only; baselines are stored scalars)",
       "speaker labels and role tags (section/turn selection only)",
       "call_date, fiscal_quarter, fiscal_year (pairing only)",
       "ticker (issuer-baseline join key only)"
      ],
      "forbidden_fields": [
       "return_fields",
       "price_fields",
       "outcome_labels",
       "future_transcripts",
       "post_endpoint_metadata",
       "Q&A section text"
      ],
      "identifier_handling": "required-and-declared",
      "date_handling": "required-and-declared",
      "future_text_handling": "forbidden",
      "pretraining_risk_mitigation": "no model in the loop - deterministic token and lexicon counting; pretraining leakage structurally impossible",
      "rationale": "ticker joins the issuer baseline; dates establish adjacency; prepared-remarks text is the measured object itself; roles select the section and never enter the feature"
     },
     "overlap_boundary": "Distinct from Temperance's FCI-2 (forward specificity): FCI-2 scores FORWARD claims only - the share carrying both a quantity and a named horizon, an LLM-classified subset - while QS-1 reads the whole prepared-remarks section with no forward/backward classification, no horizon concept, and no model. Distinct from frozen CSL (owns section token COUNTS, not content texture) and CM (per the boundary in CM's own preregistration notes: CM dropped numeric-density constructs because this family owns them). Distinct from settled entries 1-4: none measure digit density.",
     "secondary_analyses": [
      "digit density alone (no vague denominator), to show the ratio is not driven by one leg (reported, no p-value)"
     ]
    },
    {
     "hypothesis_id": "QS-2",
     "title": "Prepared-remarks range width",
     "statement": "Calls whose prepared remarks express numeric ranges that are relatively WIDE (median relative width of qualifying ranges) have lower +2..+60 session SPY-relative abnormal returns; the construct is the width of numeric range expressions in prepared remarks - numeric imprecision in management communication - with no claim that every range is forward guidance.",
     "direction": "negative",
     "unit_of_analysis": "one earnings call (issuer-quarter); level comparison, no baseline required",
     "cost_class": "string-match",
     "primary_feature": {
      "name": "qs_range_relative_width",
      "definition": "a QUALIFYING RANGE is a frozen-pattern match in management prepared-remarks text of the forms 'X to Y', 'X-Y', or 'between X and Y' where X and Y are digit tokens with compatible units (both percent-marked, both $-marked, or both bare followed within 2 tokens by the same unit word from {percent, bps, 'basis points', million, billion, dollars, cents}), both parse as finite decimals after stripping unit characters with 0 < X < Y strictly (DECLARED: nonpositive, cross-zero, reversed, and equal endpoints are explicitly non-qualifying, so the measure is total on its domain and sign normalization cannot flip it; the funnel reports each non-qualifying class); relative width = (Y - X) / ((X + Y) / 2), strictly positive on the qualifying domain; call value = median relative width over qualifying ranges; requires >= 2 qualifying ranges",
      "aggregation": "median over qualifying ranges in the call's prepared remarks",
      "comparison": "level, quarterly cross-sectional quintiles (declared: no issuer baseline, because range-bearing calls are a self-selected subset where within-issuer history is often absent)"
     },
     "primary_endpoint": {
      "return_field": "abnormal_60_winsor",
      "window_start_session": 2,
      "window_end_session": 60,
      "benchmark": "cumulative stock return divided by SPY return, winsorized 1/99 percent, per transcript-alpha settled-entry convention",
      "price_timing": "close of first SPY session strictly after call_date through close of session +60"
     },
     "estimator": "quarterly high-minus-low quintile spread, Newey-West lag-1 on quarterly spreads, ticker-cluster bootstrap as in settled entries 1-4; two-sided primary p-value per registry-policy-v1, with the preregistered sign required for a directional verdict",
     "universe": "all calls in the wave-002 discovery Research Snapshot passing the settled liquidity gates and splitter verdict ok",
     "exclusions": [
      "splitter verdict not ok on the current call",
      "fewer than 300 management prepared-remarks tokens",
      "fewer than 2 qualifying ranges on the current call",
      "below settled liquidity/price gates",
      "incomplete +60 session return horizon at frozen price cutoff"
     ],
     "missingness_rule": "calls with fewer than 2 qualifying ranges are excluded as unsupported, not scored zero; a range that is non-qualifying (incompatible units, nonpositive/cross-zero/reversed/equal endpoints) is reported in the funnel by class",
     "support_gate": "minimum 300 scored calls, 120 distinct issuers, 6 calendar quarters; if unmet the honest entry is support-failed (first-class under contract v2), declared here as the expected risk for this sparser construct (range-bearing calls are a subset)",
     "smallest_effect_size_of_interest": "0.01 (one percentage point) quarterly high-minus-low spread in abnormal_60_winsor units",
     "power_target": 0.8,
     "calibration_gate": {
      "blind_to_returns": true,
      "labeled_sample_design": "deterministic fixture plan: constructed sections with ranges of known width (percent pairs, dollar pairs, mixed-unit non-qualifiers, 'X to Y' spanning line breaks, en dash vs hyphen forms, reversed Y < X non-qualifiers, negative/cross-zero/zero-midpoint/equal-endpoint non-qualifiers, '3 to 4 weeks' time ranges which must NOT qualify - time-unit words are absent from the frozen unit list by design, multiple-range medians); plus a seeded deterministic draw of real discovery-window calls with >= 1 pattern match, drawn until the sample contains >= 30 calls AND >= 60 extracted ranges, every extracted range adjudicated and the qualifying set and median width hand-recomputed by a seat other than the owner",
      "metrics": [
       "deterministic exactness on 100% of fixtures",
       "per-call agreement on the sampled real calls (sample floors: >= 30 calls and >= 60 adjudicated ranges)"
      ],
      "minimum_thresholds": "100% on fixtures; >= 90% call-level exact agreement over every sampled call once both floors are reached (>= 30 calls, >= 60 adjudicated ranges), every range-level disagreement itemized; frozen before scoring",
      "disagreement_review": "all disagreements and all non-qualifying classifications listed verbatim with offsets; reviewer signs off on the unit list, patterns, and the strictly-positive domain rule as frozen",
      "failure_verdict": "construct-rejected"
     },
     "multiplicity_family": "wave-002-primary",
     "holdout_rule": "common-wave-002",
     "primary_p_value_count": 1,
     "leakage_boundary": {
      "allowed_fields": [
       "prepared-remarks management turn body text (current call only)",
       "speaker labels and role tags (section/turn selection only)",
       "call_date (price alignment only)",
       "ticker (snapshot join only)"
      ],
      "forbidden_fields": [
       "return_fields",
       "price_fields",
       "outcome_labels",
       "future_transcripts",
       "post_endpoint_metadata",
       "Q&A section text"
      ],
      "identifier_handling": "required-and-declared",
      "date_handling": "required-and-declared",
      "future_text_handling": "forbidden",
      "pretraining_risk_mitigation": "no model in the loop; pretraining leakage structurally impossible",
      "rationale": "the measured object is the prepared-remarks text; ticker and call_date exist only to join prices at scoring time, never visible to the extractor beyond the row key"
     },
     "overlap_boundary": "Distinct from Temperance's FCI family: FCI tracks commitment LIFECYCLE across adjacent calls (restatement, slippage, substitution); QS-2 reads a single call's range geometry with no cross-call linkage, no commitment identity, and (as renamed this round) no forward-guidance classification at all. Distinct from QS-1: QS-1 counts digit density; QS-2 reads the internal width of range expressions only. No settled entry touches range-expression geometry.",
     "secondary_analyses": [
      "roundness: share of qualifying ranges whose endpoints are both multiples of 5 in their leading unit (reported descriptively, no p-value)",
      "count of qualifying ranges per call vs returns (reported descriptively)"
     ]
    },
    {
     "hypothesis_id": "QS-3",
     "title": "Numeric evasion in Q&A",
     "statement": "Calls where management answers a higher share of numerically-cued analyst questions WITHOUT any substantive digit (calendar/fiscal/form reference tokens excluded), relative to the issuer's own trailing norm (issuer-baseline delta of the numeric evasion rate), have lower +2..+60 session SPY-relative abnormal returns; declining to produce any substantive number when numerically cued is informative reticence.",
     "direction": "negative",
     "unit_of_analysis": "one earnings call (issuer-quarter) with issuer trailing call history",
     "cost_class": "string-match",
     "primary_feature": {
      "name": "qs_numeric_evasion_delta",
      "definition": "exchanges per the CM-1 frozen grouping (acr.extract_exchanges over CslParsedCall.qa_turns with the CSL question/answer tests, last-question rule, operator skips); a NUMERIC-CUED question is an exchange whose question turn body matches either (cue branch A) a frozen phrase from {'how much', 'how many', 'what percent', 'what percentage', 'can you quantify', 'could you quantify', 'can you size', 'order of magnitude', 'what kind of number', 'put a number'}, or a BROAD phrase from {'what was the', 'what is the'} ONLY when the same question body also contains a digit token or a frozen metric-unit word from {percent, percentage, bps, 'basis points', margin, margins, rate, rates, growth, revenue, revenues, cost, costs, dollar, dollars, million, billion, units, volume, mix, capex, 'free cash flow'}; or (cue branch B) a digit token together with any of {'versus', 'vs', 'compared to', 'up from', 'down from', 'how does that'}; an exchange is EVADED when the first 150 normalized tokens of the concatenated management answer contain zero SUBSTANTIVE digit tokens, where a digit token is non-substantive iff it matches a frozen reference grammar: four-digit years 1900-2099 standalone or in FY/CY forms (fy24, fy2025, 'calendar 2025'), fiscal-period tokens (q1-q4, h1, h2, 1q25-style), SEC form names (10-k, 10-q, 8-k), and slide/page references ('slide 7', 'page 12' - the digit following those two words); every other digit token is substantive; qs_numeric_evasion_rate = evaded / numeric-cued exchanges, requiring >= 4 numeric-cued exchanges; feature = call rate minus the median rate over up to 4 immediately preceding baseline calls (minimum 2, each with >= 4 numeric-cued exchanges)",
      "aggregation": "single rate per call; issuer-baseline delta as defined",
      "comparison": "issuer-baseline delta, then quarterly cross-sectional quintiles"
     },
     "primary_endpoint": {
      "return_field": "abnormal_60_winsor",
      "window_start_session": 2,
      "window_end_session": 60,
      "benchmark": "cumulative stock return divided by SPY return, winsorized 1/99 percent, per transcript-alpha settled-entry convention",
      "price_timing": "close of first SPY session strictly after call_date through close of session +60"
     },
     "estimator": "quarterly high-minus-low quintile spread, Newey-West lag-1 on quarterly spreads, ticker-cluster bootstrap as in settled entries 1-4; two-sided primary p-value per registry-policy-v1, with the preregistered sign required for a directional verdict",
     "universe": "all calls in the wave-002 discovery Research Snapshot passing the settled liquidity gates and splitter verdict ok, with baseline history per shared_extraction.input_unit",
     "exclusions": [
      "splitter verdict not ok on the current call",
      "fewer than 10 management answer turns in the Q&A section (shared with CSL-4/CSL-5 and CM)",
      "fewer than 4 numeric-cued exchanges on the current call",
      "fewer than 2 qualifying baseline calls (splitter ok, >= 10 management answer turns, >= 4 numeric-cued exchanges)",
      "baseline adjacency failing the settled pairing rules",
      "below settled liquidity/price gates",
      "incomplete +60 session return horizon at frozen price cutoff"
     ],
     "missingness_rule": "calls below cue or baseline support are excluded, not imputed; an exchange with an empty-body question label has no cue match and is simply not numeric-cued",
     "support_gate": "minimum 350 scored calls, 140 distinct issuers, 6 calendar quarters",
     "smallest_effect_size_of_interest": "0.01 (one percentage point) quarterly high-minus-low spread in abnormal_60_winsor units",
     "power_target": 0.8,
     "calibration_gate": {
      "blind_to_returns": true,
      "labeled_sample_design": "deterministic fixture plan: constructed Q&A sections with known cue matches and evasion outcomes (broad cue WITH and WITHOUT metric-unit word - the bare 'what is the strategy?' must NOT qualify, cue phrase split across clauses, digit+comparison branch with and without the comparison word, answers whose only digits are years/fiscal periods/form names/slide references - must count as EVADED, substantive digit after token 150 - must count as evaded, substantive digit before token 150 - answered, multi-executive concatenation); plus a seeded deterministic draw of 30 real discovery-window calls hand-recomputed by a seat other than the owner; PLUS construct validity on a STRATIFIED seeded draw of EXACTLY 30 real numeric-cued exchanges satisfying all strata simultaneously (strata may overlap): >= 12 from cue branch A (>= 4 via the broad-phrase+metric-unit path), >= 8 from cue branch B, and by answer-head digit category >= 6 with only non-substantive digits, >= 6 with zero digits, and >= 6 with a substantive digit before token 150; reviewer labels each, return-blind: (a) does the question genuinely ask for a number, (b) is the evaded/answered verdict right by their reading",
      "metrics": [
       "deterministic exactness on 100% of fixtures",
       "per-call agreement on the 30 sampled real calls",
       "cue precision overall and as a proportion per cue branch",
       "evasion verdict agreement overall and per answer-digit category"
      ],
      "minimum_thresholds": "100% on fixtures; >= 27/30 call agreement; cue precision >= 24/30 overall AND >= 0.70 within each cue branch at the stated support floors (A >= 12, B >= 8); evasion verdict agreement >= 25/30 overall AND >= 5/6 within each of the three answer-digit categories at their >= 6 floors; frozen before scoring",
      "disagreement_review": "every disagreement itemized by exchange index and stratum with the question and answer-head text quoted; reviewer signs off on both cue branches, the metric-unit list, the reference grammar, and the 150-token head rule as frozen",
      "failure_verdict": "construct-rejected"
     },
     "multiplicity_family": "wave-002-primary",
     "holdout_rule": "common-wave-002",
     "primary_p_value_count": 1,
     "leakage_boundary": {
      "allowed_fields": [
       "Q&A turn structure and body text: speaker labels, role tags, turn order, question and answer turn text (current call; baselines are stored scalars)",
       "call_date, fiscal_quarter, fiscal_year (pairing only)",
       "ticker (issuer-baseline join key only)"
      ],
      "forbidden_fields": [
       "return_fields",
       "price_fields",
       "outcome_labels",
       "future_transcripts",
       "post_endpoint_metadata",
       "prepared-remarks text"
      ],
      "identifier_handling": "required-and-declared",
      "date_handling": "required-and-declared",
      "future_text_handling": "forbidden",
      "pretraining_risk_mitigation": "no model in the loop; pretraining leakage structurally impossible",
      "rationale": "the measured object is Q&A text; ticker joins the baseline; dates establish adjacency; roles group exchanges and never enter the feature"
     },
     "overlap_boundary": "DESIGNED AGAINST settled entry 4 (the evasion proxy), per the family claim: entry 4 scored semantic answer relevance over ALL questions with an embedding model; QS-3 restricts to a deterministic numeric-cue subset, tests only the presence of SUBSTANTIVE digits in the answer head (frozen reference grammar), uses no model and no relevance judgment, and is an issuer-baseline DELTA rather than a level. Distinct from CM-2/CM-3 (filler and hedge density: lexical delivery texture, no question-conditioning, no numeric concept) and CM-4 (question echo: verbatim reuse, not numeric content). Distinct from Sun's analyst-agenda-shift: that family reads question CONTENT for topic; QS-3 uses the question only as a deterministic trigger.",
     "secondary_analyses": [
      "evasion rate level (no baseline) as a cross-check (reported, no p-value)",
      "evasion under the raw any-digit test (no reference grammar), to show the substantive-digit exclusion matters (reported, no p-value)"
     ]
    }
   ],
   "preregistration_notes": "Family boundary: the density and texture of NUMBERS in management speech - digit density and its ratio to a vague-language lexicon (QS-1, prepared remarks), the geometry of numeric range expressions (QS-2, prepared remarks), and numeric responsiveness under direct numeric questioning (QS-3, Q&A) - claimed 2026-10-19 on cst-5cr5.11 and ratified in the family-claims round; CM's frozen notes record dropping its numeric constructs to this family. Reviewer independence: author (Star) != reviewer; reviewer Temperance (accepted 2026-10-26); reviewer probes are built from this spec text, not the owner's fixture suite (CM precedent). Review-round changelog: v1 draft filed 2026-10-26; round 1 (Temperance, 2026-10-26, B1-B5): schema fixes (archaeology pointer removed, RFC3339 claimed_at, reviewer confirmed); all primaries moved to two-sided p-values with preregistered sign per registry-policy-v1; QS-1 honestly narrowed to digit-token density vs vague-language lexicon with a frozen 10-pair tercile validity rule; QS-2 renamed to prepared-remarks range width (guidance interpretation dropped), domain restricted to 0 < X < Y with all other endpoint classes non-qualifying, real-call gate requires >= 60 adjudicated ranges; QS-3 broad cues gated on metric-unit context, answer test counts substantive digits only (frozen calendar/fiscal/form/reference grammar), validity draw stratified per cue branch and answer category with per-branch thresholds; round 2 (Temperance, 2026-10-26, R2-A..D exactness fixes): claimed_at set to the exact ledger timestamp of the family claim; digit-density/range-expression/substantive-digit terminology cut over with no aliases; QS-2 real-sample gate restated as >= 90% call-level agreement once both floors (>= 30 calls, >= 60 ranges) are reached; QS-3 validity draw fixed at exactly 30 overlapping-strata exchanges with proportional per-branch precision (>= 0.70) and per-category verdict agreement (>= 5/6) gates. Known risks and gates: QS-2 support is the declared weak point (range-bearing calls are a subset; support-failed is the honest outcome if the gate misses); QS-1's vague-language lexicon and QS-3's cue list are frozen verbatim at freeze and any post-review addition is a spec_version bump; construct-validity thresholds (QS-1 paired tercile agreement, QS-3 per-branch cue precision and per-category verdict agreement) are construct-rejection gates, not advisories. Process archaeology lives in the owning bead (source_bead)."
  },
  "freeze": {
   "state": "frozen",
   "frozen_at_utc": "2026-10-26T15:40:53Z",
   "spec_sha256": "fd86e35595660e82a1c65c914b7959a1b892773931c5aa67d93758b675b550f0"
  },
  "execution": {
   "state": "not-started",
   "candidate_snapshot_sha256": "7598552efaaf54966426c6a240f3a9a8508d1cf45a349459b7d3ec23c6439d1a",
   "extractor_artifact_sha256": null,
   "calibration_artifact_sha256": null,
   "exclusion_funnel_sha256": null,
   "engine_job_manifest_sha256": null,
   "compute": {
    "jobs": null,
    "tokens": null,
    "model": null,
    "code_revision": null
   }
  },
  "results": {
   "state": "not-opened",
   "discovery_artifact_sha256": null,
   "holdout_artifact_sha256": null,
   "multiplicity_artifact_sha256": null,
   "raw_primary_p_value": null,
   "effect_interval": null,
   "hypothesis_results": {
    "QS-1": {
     "adjusted_primary_q_value": null,
     "verdict": "not-evaluated"
    },
    "QS-2": {
     "adjusted_primary_q_value": null,
     "verdict": "not-evaluated"
    },
    "QS-3": {
     "adjusted_primary_q_value": null,
     "verdict": "not-evaluated"
    }
   },
   "verdict": "not-evaluated",
   "second_seat_review_bead": null
  }
 }
}
