{
  "schema_version": 1,
  "purpose": "Held-out prospective change assessment stimuli; no implementation or governance initiation authorized.",
  "persona": "quality-reviewer: architectural rigor, dependency tracing, maintainability assessment, size discipline",
  "checkout": "da741ef0d6c924c4b6b62bd75f8c1431faddcae2",
  "provenance": "Current producer/consumer source and declared documentation intent; no patch history, prior pilot inputs/responses, or web inspected.",
  "cases": [
    {
      "id": "current_flag_mention_boundary",
      "task_text": "Assessment only. Consider changing per-flag documentation coverage so mentioning a longer sibling flag does not count as documenting the shorter flag. For example, a page mentioning only --output-format must not satisfy coverage for --output. Assess the necessary coupled obligations, existing behavior, compatibility boundaries, and meaningful verification. Do not implement changes or initiate governance work.",
      "current_answer": "check_flag_doc_coverage currently accepts a raw substring anywhere in an existing command manpage, so the proposed sibling-only example passes. The adjacent truth checker already bounds flag endings but intentionally examines only fenced Usage/Synopsis blocks. cli_audit_cmd combines both issue streams from one flag-spec discovery and reports valid=false and exit 1 when issues exist. This proposal changes mention semantics, not discovery or command requirements.",
      "criteria": [
        {
          "id": "F1",
          "obligation": "Identify the actual presence producer and distinguish it from usage-truth checking; explain why sibling-only text currently satisfies coverage and why an exact shorter flag must still pass.",
          "witnesses": [
            "src/gzkit/doc_coverage/flag_scanner.py:220 check_flag_doc_coverage, especially `if flag in content`",
            "src/gzkit/doc_coverage/flag_scanner.py:289 _mentions",
            "tests/commands/test_cli_audit.py:186 test_check_flag_doc_coverage_flags_undocumented_flag"
          ],
          "verification": "Temporary manpage with only --output-format reports one gap for --output; adding an exact --output mention removes that gap. Include punctuation/backticks and --output=VALUE as positive mention forms; state any token-boundary interpretation explicitly."
        },
        {
          "id": "F2",
          "obligation": "Follow the indirect public consumer: retain issue dictionaries with canonical manpage paths and ensure a new presence finding affects JSON valid/issues and shell exit, while cross_coverage remains the separately modeled command-surface report.",
          "witnesses": [
            "src/gzkit/commands/cli_audit.py:243 flag checker imports and subsequent combined issue/result construction",
            "src/gzkit/doc_coverage/manifest.py:25 manpage_path_for",
            "src/gzkit/doc_coverage/models.py:41 CoverageReport"
          ],
          "verification": "An isolated audit fixture with otherwise valid command documentation and the sibling-only mention produces valid=false, a per-flag issue, and SystemExit(1); do not require the five-surface cross_coverage report itself to become false."
        },
        {
          "id": "F3",
          "obligation": "Preserve authority boundaries: parser AST discovery supplies the flag stream; the manifest governs command-level documentation obligations, not a per-flag filter. Exact command/flag waivers remain explicit exceptions; do not delete flags or expand waivers to hide the change.",
          "kind": "safety_authority",
          "witnesses": [
            "src/gzkit/doc_coverage/flag_scanner.py:119 discover_command_flag_specs",
            "src/gzkit/doc_coverage/flag_scanner.py:217 _PER_FLAG_DOC_WAIVERS",
            "src/gzkit/doc_coverage/manifest.py:49 CommandEntry",
            "src/gzkit/commands/cli_audit.py:173 cli_audit_cmd manifest absence discrimination"
          ],
          "verification": "Exact target waiver suppresses its gap; sibling waiver does not. Adopter/framework manifest branches are unchanged context: omitting their test inventory is not a failure, actively breaking them is."
        },
        {
          "id": "F4",
          "obligation": "Do not narrow presence to usage blocks or broaden truth checking to arbitrary prose: these are distinct contracts despite similar matching needs.",
          "kind": "negative_control",
          "witnesses": [
            "src/gzkit/doc_coverage/flag_scanner.py:220 presence docstring permits Usage, examples, or prose",
            "src/gzkit/doc_coverage/flag_scanner.py:310 check_flag_doc_truth",
            "docs/user/manpages/cli-audit.md:40 Per-flag coverage",
            "tests/commands/test_cli_audit.py:377 test_claims_outside_the_usage_block_are_not_read_as_usage"
          ],
          "verification": "An exact mention solely in Notes satisfies presence; historical optional-bracket prose outside Usage does not create a truth violation. Missing manpages remain owned by command-level checks rather than duplicated per-flag findings."
        },
        {
          "id": "F5",
          "obligation": "Identify coupled documentation-contract wording and the possibility that stricter mention semantics surfaces previously accepted real-project gaps. Reuse the current discovery stream; no separate flag roster is needed.",
          "witnesses": [
            "src/gzkit/commands/cli_audit.py:251 specs_by_command is projected to flags_by_command",
            "src/gzkit/doc_coverage/scanner.py:455 _read_cli_sources",
            "src/gzkit/doc_coverage/flag_scanner.py:196 scan_command_flag_specs",
            "docs/user/manpages/cli-audit.md:40",
            "tests/commands/test_cli_audit.py:test_per_flag_doc_waivers_match_real_project_drift"
          ],
          "verification": "Name docstring/manpage contract implications and propose checking the existing real-project drift test or equivalent census; do not claim gaps exist before measuring. Split-parser/alias tests are optional regression context unless the proposal changes discovery."
        }
      ],
      "uncertainties": [
        "The prompt settles longer-sibling collisions, not every conceivable shell token boundary. Left-boundary and Unicode edge cases require an explicit interpretation rather than an invented general parser contract.",
        "No live repository gap census was executed; this is a deterministic hypothetical stimulus, not a filed defect finding.",
        "No code change is proposed for the doc-coverage chore runner merely because it shares the package: it consumes command surfaces rather than the flag issue stream."
      ],
      "suggested_read_calls": 7
    },
    {
      "id": "current_smoke_elapsed_scope",
      "task_text": "Assessment only. Consider changing smoke-test budget measurement so the reported and enforced elapsed time includes test discovery and selection as well as execution. Assess the necessary coupled obligations, existing behavior, compatibility boundaries, and meaningful verification. Do not implement changes or initiate governance work.",
      "current_answer": "run_smoke discovers/selects the suite and constructs the runner before starting perf_counter, so its returned elapsed seconds exclude discovery. smoke_gate prints and compares that returned value with the default or explicit budget. It returns 1 on failed tests before checking budget, 3 on budget breach, and 0 on success. smoke_cmd transports nonzero returns as SystemExit; run_smoke_tier invokes the CLI through run_command and is included in gz check. Empty projects that have not opted into smoke.required currently receive an advisory pass before run_smoke is called.",
      "criteria": [
        {
          "id": "S1",
          "obligation": "Locate the real measurement boundary and the discovery-selection work excluded today; include those phases in the proposed elapsed value without substituting process launch time or a fixed estimate.",
          "witnesses": [
            "src/gzkit/smoke.py:81 collect_smoke_suite",
            "src/gzkit/smoke.py:120 run_smoke",
            "src/gzkit/smoke.py:127 suite collection precedes started at line 129"
          ],
          "verification": "Use phase-aware deterministic instrumentation: discovery/selection advance a fake clock independently of runner execution; measured elapsed includes both. Two predetermined clock returns that pass regardless of timer placement are insufficient."
        },
        {
          "id": "S2",
          "obligation": "Trace elapsed into the operator-visible report and gate decision; preserve test-failure precedence, strict greater-than comparison, default budget authority, and the explicit override.",
          "witnesses": [
            "src/gzkit/commands/smoke_cmd.py:21 smoke_gate",
            "src/gzkit/smoke.py:40 SMOKE_BUDGET_SECONDS",
            "src/gzkit/cli/parser_maintenance.py:129 --budget registration",
            "tests/test_smoke_gate.py:86 BudgetIsEnforced"
          ],
          "verification": "Passing tests whose total exceeds budget yield 3; equality yields 0; failed tests yield 1 even when over budget. Printed duration derives from measured elapsed, while enforcement retains unrounded precision."
        },
        {
          "id": "S3",
          "obligation": "Follow the indirect full-check consumer through actual exit-code transport rather than treating a returned integer or a report line as enforcement.",
          "witnesses": [
            "src/gzkit/commands/smoke_cmd.py:86 smoke_cmd",
            "src/gzkit/quality.py:1561 run_smoke_tier",
            "src/gzkit/quality.py:53 run_command",
            "src/gzkit/commands/quality.py:643 Smoke tier registry entry"
          ],
          "verification": "Show that over-budget policy becomes SystemExit(3) at the CLI and an unsuccessful QualityResult in the full-check adapter, with the child's returncode retained. Avoid changing full-unit or BDD budgets."
        },
        {
          "id": "S4",
          "obligation": "Detect the empty-tier prose/config disagreement without silently imposing a new adopter policy. Accept preserving observed opt-in behavior pending ruling, or withholding that policy decision while assessing independent timing scope.",
          "kind": "safety_authority",
          "witnesses": [
            "src/gzkit/config.py:137 SmokeConfig",
            "src/gzkit/commands/smoke_cmd.py:37 empty-tier config branch",
            "tests/test_smoke_gate.py:45 EmptyTierIsABreachWhenRequired",
            "docs/user/manpages/smoke.md:14 Description",
            ".gzkit/rules/tests.md:19 Smoke/BVT rule"
          ],
          "verification": "Name observed absent/false smoke.required advisory-success versus required=true exit 3 and contradictory unconditional prose. No requirement to resolve the conflict; no timing change authorizes a policy rewrite."
        },
        {
          "id": "S5",
          "obligation": "Preserve marker-based selection and metadata-only decorator behavior: charging discovery time does not authorize executing unmarked tests. A new test directory/roster is not required; omission of that unchanged safeguard does not lose credit, actively changing it is assessed as scope expansion.",
          "kind": "negative_control",
          "witnesses": [
            "src/gzkit/smoke.py:51 smoke",
            "src/gzkit/smoke.py:75 is_smoke",
            "src/gzkit/smoke.py:81 collect_smoke_suite",
            ".gzkit/rules/tests.md:44 Smoke tier membership"
          ],
          "verification": "A discovered unmarked failing test does not execute; a marked test still executes unchanged. A deterministic expensive-discovery fixture affects elapsed without expanding suite membership."
        },
        {
          "id": "S6",
          "obligation": "Name coupled timing-contract documentation and keep measurements factual: budget inclusion changes what elapsed means, not the policy ceiling or a hard timeout guarantee.",
          "witnesses": [
            "src/gzkit/smoke.py:120 run_smoke docstring",
            "docs/user/manpages/smoke.md:14 Description and Exit Codes",
            "src/gzkit/cli/parser_maintenance.py:118 smoke help",
            ".gzkit/rules/tests.md:19 budget rule"
          ],
          "verification": "Assessment distinguishes post-run budget enforcement from interrupting a hanging discovery/test and does not claim hard real-time cancellation. Any future implementation would align wording with discovery-plus-execution timing without silently changing the ceiling."
        }
      ],
      "uncertainties": [
        "Whether preflight static smoke_marked_files scanning and CLI startup should also count is outside the wording's discovery/selection/execution scope; do not silently broaden timing to whole-process wall clock.",
        "Current manpage/rule prose says an empty tier always fails while SmokeConfig and dedicated tests expressly preserve adopter opt-in; this is a named disagreement, not authorization to repair it in the experiment.",
        "The static marker scan and runtime discovery have distinct emptiness/error behavior; no new emptiness/discovery-error repair is authorized by this timing stimulus.",
        "No runtime benchmarks or tests were executed. Timing claims above are source-derived, and proposed verification is an assessment plan."
      ],
      "suggested_read_calls": 8
    }
  ],
  "limits": [
    "Read-only repository access; sole output is this /tmp proposal file.",
    "Read AGENTS and trust/state doctrine; advisory-rules-audit combined output was truncated, so no claim of exhaustive full-doctrine review is made.",
    "This oracle is bounded to the named producer/consumer chains, not a general project audit or implementation authorization."
  ],
  "scoring": "D/R/A each 0/1: specific discovery, causal relationship, consistent proposed application. Complete=all three. Score semantic equivalents, not exact witness strings or prescribed test inventory. Scope additions separate except direct criterion violations; missing evidence means not demonstrated. Optional unchanged regression context is not mandatory. No scores certify implementation.",
  "oracle_review": "Independent pre-dispatch review accepted source baselines with seven amendments: narrow optional regressions, no hidden smoke policy ruling, phase-aware clock, rounding precision, manifest/flag separation, real-population compatibility, semantic-equivalent scoring. Incorporated before freeze."
}
