schemaVersion: 1

analysis:
  parentHarness: H052
  generation: H052
  analysisRunId: h052-postformal-20260814-019ff5c4-a
  stableNamespace: H052/h052-postformal-20260814-019ff5c4-a
  authorityClass: user-confirmed-retrospective
  method: >-
    Read-only post-formal reconstruction of the two H052 weaknesses that the
    user explicitly selected for the H0601 successor. The analysis binds H052
    frozen Change Specs, Operator decisions, fresh Implement trajectories,
    Controller receipts, evaluator provenance, and Blind Judge outcomes. It is
    not a new Luna/Sol full-batch mining run and does not import H0601 outcomes
    as H052 behavioral evidence.
  sourceLineage:
    weakness: H04/h04-postformal-20260812-019ff55f-a/W-01
    proposal: H04/h04-postformal-20260812-019ff55f-a/P-01
    analyzedHarness: H052
    implementedSuccessor: H0601

primaryView:
  denominator: 24
  selection: >-
    D1-D7 use the 21-cell H052 formal selection, including the D4 replacement
    paln-r2-replacement-1 and excluding the original parser-invalid paln-r2.
    D8 uses only the three-cell append-only evaluator-fixed rerun; the original
    invalid D8 evaluator is excluded.
  evidenceBoundary: >-
    Workflow completion, semantic confirmation, Candidate-visible verification,
    external hidden/focused evaluation, treatment Audit, and Blind Judge quality
    remain separate facts. Hidden evaluator cases are never treated as legal
    Spec or Implement-repair input.

weaknesses:
  - weakness_id: W-01
    stable_ref: H052/h052-postformal-20260814-019ff5c4-a/W-01
    title: Spec-to-Implement handoff does not require real semantic closure
    pattern_refs: []
    first_divergence: >-
      In H052 D8 evaluator-fixed r3, the Change Spec simultaneously required
      dots escaping to double source underscores and claimed that legacy
      underscores remain byte-for-byte unchanged under dots. The Operator's
      last exact-digest decision was CONTINUE and explicitly named that conflict,
      but turn exhaustion was normalized to EXHAUSTED with workflowBlocking=false.
      The unchanged artifact was still bound as confirmedSpec and handed to a
      fresh Implement Session. This is the earliest point at which an explicitly
      unconfirmed, internally inconsistent product contract became operational.
    hypothesis: >-
      H052 made one exact Change Spec the sole operational product authority but
      did not make semantic closure a true handoff predicate. Public identity,
      adjacent preserved behavior, precedence/default/fallback, docs/changelog,
      or an internal conflict could remain unresolved while the artifact was
      confirmed or while an Operator CONTINUE was converted into a nonblocking
      exhaustion. Fresh Implement then had to make a product decision or choose
      between contradictory clauses.
    attribution:
      - Workflow
      - Information Flow
      - Artifact
      - Agent Responsibility
    support:
      - >-
        D8 evaluator-fixed r3 handed off the same digest after the Operator
        identified the dots/underscore contradiction and never returned CONFIRM;
        Implement selected a legacy-valid early return, external verification was
        7/8, and Blind Judges scored 71 and 76.
      - >-
        D5 bln-r1 was genuinely CONFIRMED even though the Spec reversed the
        product authority's show-all and loop-through/cat precedence and omitted
        the required changelog obligation. Implement followed that erroneous
        contract, focused verification remained 5/5 green, and Judges scored
        85 and 86.
      - >-
        D7 aln-r3 declared no open decision while describing only a generic
        public submission method and omitting its exact identity. Implement
        legally chose spawn. The hidden evaluator later hard-coded execute,
        exposing an authority/evaluator mismatch rather than proving that spawn
        violated the visible contract.
      - >-
        H052 structure findings were recorded but did not prevent acceptance,
        and EXHAUSTED/CONTINUE was explicitly nonblocking at the handoff boundary.
    alternatives:
      - >-
        Candidate implementation mistakes remain possible after a complete Spec;
        D8 fixed r2 had a real CONFIRM but still failed most external cases.
      - >-
        D7's execute-versus-spawn outcome is partly an evaluator overconstraint
        because neither the public task nor the private prose contract fixed the
        method name. It supports false open-decision closure, not a claim that
        execute was the legitimate hidden answer.
      - >-
        Difficult edge-heavy tasks and model stochasticity can explain isolated
        mistakes, but cannot explain the deterministic Controller conversion of
        an explicit CONTINUE into a confirmed handoff.
    counterevidence:
      - >-
        D8 evaluator-fixed r1 received the same underscore correction before
        CONFIRM, revised the Spec, passed 8/8, and scored 95/95.
      - >-
        D5 bln-r3 explicitly closed show-all/cat precedence and changelog before
        CONFIRM, remained focused-green, and scored 95/98.
      - >-
        D7 aln-r1 and aln-r2 fixed an exact execute identity before CONFIRM and
        passed the evaluator, but the hidden-name provenance prevents treating
        those runs alone as proof of the correct public product decision.
      - >-
        Many H052 cells reached high Judge quality with the same two-stage
        topology, so the weakness is not caused by having only two model stages.
    scope: >-
      Applies only to result-changing product decisions at the Spec-to-Implement
      handoff: exact public surface identity/name/signature or a legitimate
      not-product-contract reason; adjacent preserved behavior; defaults,
      ordering, precedence/conflict, failure/fallback; docs/changelog
      applicability; and exact-digest CONFIRM semantics. It excludes internal
      files/helpers/patches/tasks, hidden evaluator symbols or cases, ordinary
      Implement coding defects, obligation-to-verification evidence coverage,
      and any restoration of Proposal/Design/Tasks/Review as authorities.
    counterfactual_prediction: >-
      Under a real closure predicate, D5-like trajectories cannot CONFIRM before
      show-all/cat precedence and changelog applicability are closed; D7-like
      trajectories must obtain a legitimate product-authority identity or remain
      openly unresolved without importing a hidden symbol; and D8-r3-like
      CONTINUE/EXHAUSTED artifacts cannot create a confirmed binding or start
      Implement. Product-red from independent implementation defects may remain.
    confidence: high
    raw_refs:
      - "campaigns/prometheus-utf8-negotiation-matrixspec-lean-v1-evaluator-fixed-v1/runs/h052-d8-fixed-r3/frozen-delta-spec.md#L16-L55"
      - "campaigns/prometheus-utf8-negotiation-matrixspec-lean-v1-evaluator-fixed-v1/runs/h052-d8-fixed-r3/operator-decisions.jsonl#L12-L13"
      - "campaigns/prometheus-utf8-negotiation-matrixspec-lean-v1-evaluator-fixed-v1/runs/h052-d8-fixed-r3/state.json"
      - "campaigns/prometheus-utf8-negotiation-matrixspec-lean-v1-evaluator-fixed-v1/runs/h052-d8-fixed-r3/implementation-focused-tests.log#L1-L24"
      - "campaigns/bat-sanitize-matrixspec-lean-v1/runs/bln-r1/frozen-delta-spec.md#L32-L71"
      - "campaigns/bat-sanitize-matrixspec-lean-v1/runs/bln-r1/operator-decisions.jsonl"
      - "packs/tasks/bat-sanitize/task.md#L13-L17"
      - "packs/tasks/bat-sanitize/ground-truth/contract.md#L16-L23"
      - "campaigns/bat-sanitize-matrixspec-lean-v1/evaluation/results/judge-01/Candidate-C/judge.final.json"
      - "campaigns/bat-sanitize-matrixspec-lean-v1/evaluation/results/judge-02/Candidate-C/judge.final.json"
      - "campaigns/axum-custom-executor-matrixspec-lean-v1/runs/aln-r3/frozen-delta-spec.md#L16-L62"
      - "campaigns/axum-custom-executor-matrixspec-lean-v1/runs/aln-r3/operator-decisions.jsonl"
      - "campaigns/axum-custom-executor-matrixspec-lean-v1/evaluation/results/judge-01/Candidate-B/judge.final.json"
      - "campaigns/axum-custom-executor-matrixspec-lean-v1/evaluation/results/judge-02/Candidate-B/judge.final.json"
      - "campaigns/prometheus-utf8-negotiation-matrixspec-lean-v1-evaluator-fixed-v1/evaluation/results/judge-01/Candidate-B/judge.final.json"
      - "campaigns/prometheus-utf8-negotiation-matrixspec-lean-v1-evaluator-fixed-v1/evaluation/results/judge-02/Candidate-B/judge.final.json"
      - "engine/drivers/matrixspec-lean/harness.ps1#L358-L418"
      - "engine/drivers/matrixspec-lean/driver.ps1#L138-L150"
    status: user-confirmed-and-selected-for-H0601

  - weakness_id: W-02
    stable_ref: H052/h052-postformal-20260814-019ff5c4-a/W-02
    title: Confirmed obligations are disconnected from Candidate-visible independent evidence
    pattern_refs: []
    first_divergence: >-
      In D4 paln-r3, the exact confirmed Change Spec made public typing,
      type-checker acceptance, documentation, and documentation-build behavior
      explicit obligations, but Spec confirmation required no executable evidence
      declaration for them. The Controller later ran only the task manifest's two
      pytest files. Implement did run mypy, saw a relevant nonzero error, and then
      hid it first behind later successful commands in one shell invocation and
      again behind a pipeline ending in || true. The Controller's unrelated
      pytest receipt was green and the workflow completed.
    hypothesis: >-
      H052 stored product obligations in the confirmed Spec, Controller commands
      in a separate static task manifest, and Implement verification in
      unstructured shell logs. With no authoritative REQ-to-command-to-result
      mapping, a green task-level suite could not prove each confirmed obligation,
      and an aggregate shell exit could overwrite or deliberately suppress an
      earlier failure.
    attribution:
      - Verification
      - Information Flow
      - Evidence Authority
      - Workflow
    support:
      - >-
        D4 paln-r3 explicitly required typing/type-checker and docs acceptance,
        while the Controller command set contained only pytest. The visible mypy
        error was followed by successful pytest/git commands and an aggregate
        exit 0; a later mypy pipeline used || true. Controller pytest still
        reported 306 passed and one xfailed.
      - >-
        The H052 receipt bound a static focused suite to the current Spec and
        product projection, but contained no ordered per-REQ evidence coverage;
        currentness therefore did not imply obligation sufficiency.
      - >-
        D6 sln-r3 illustrates the adjacent execution gap: its Spec explicitly
        preserved ordinary/generated fields, Candidate-visible tests did not
        produce trustworthy prepared-runtime evidence, and only a hidden hook
        found the regression. That hidden case is not legal repair input and is
        not claimed as direct proof that a declared visible command would have
        been adequate.
    alternatives:
      - >-
        The underlying mypy defect and the decision to use || true are Candidate
        behavior. Harness attribution is limited to accepting a green terminal
        evidence state with no independent result for the confirmed typing
        obligation.
      - >-
        A static task suite may happen to cover all obligations for simple tasks;
        the weakness concerns cases where the confirmed Spec adds or names an
        executable evidence class not represented by that suite.
      - >-
        Oracle adequacy is a separate uncertainty. Requiring one command per REQ
        does not prove that the command exercises every edge of the acceptance
        text.
    counterevidence:
      - >-
        D4 paln-r1's duplicate Union IDs were caught by Candidate-visible repo
        pytest with exit 1. That cell already had usable failure evidence; its
        missing repair loop is a different lever.
      - >-
        D6 sln-r3 and D8 fixed r2/r3 were red only under hidden evaluator hooks.
        Returning those exact cases to Implement would leak the blind oracle and
        is explicitly outside this weakness and proposal.
      - >-
        D8 fixed r3 had a Candidate-visible helper test but still missed a hidden
        end-to-end case; structured evidence cannot by itself guarantee oracle
        completeness, and that cell first diverged at semantic closure.
    scope: >-
      Applies to confirmed public obligations that have a legitimate
      Candidate-visible executable verification class and lack an independent,
      current result bound to the exact Spec and product projection. It excludes
      hidden-only cases, evaluator coverage adequacy, Spec semantic conflicts,
      already-visible failures that merely lack repair, and any claim that a red
      visible result should block workflow completion.
    counterfactual_prediction: >-
      In a D4-r3-like trajectory, static typing must appear as its own ordered
      nonzero result even if later pytest or git checks succeed; it cannot be
      transformed into green by command chaining, a pipeline, or || true. Every
      confirmed REQ must have corresponding Candidate-visible declared results,
      hidden hooks must remain absent, and any Spec/product drift must invalidate
      the receipt. Honest product-red may still complete the workflow under the
      H052 nonblocking measurement policy.
    confidence: high
    raw_refs:
      - "campaigns/pytest-addini-type-expressions-matrixspec-lean-v1/runs/paln-r3/frozen-delta-spec.md#L19-L22"
      - "campaigns/pytest-addini-type-expressions-matrixspec-lean-v1/runs/paln-r3/frozen-delta-spec.md#L48-L54"
      - "packs/tasks/pytest-addini-type-expressions/task.json#L31-L43"
      - "campaigns/pytest-addini-type-expressions-matrixspec-lean-v1/runs/paln-r3/candidate-main-turn-01.jsonl#L88-L94"
      - "campaigns/pytest-addini-type-expressions-matrixspec-lean-v1/runs/paln-r3/focused-test-01.stdout.txt#L1-L6"
      - "campaigns/pytest-addini-type-expressions-matrixspec-lean-v1/runs/paln-r3/state.json"
      - "campaigns/pytest-addini-type-expressions-matrixspec-lean-v1/evaluation/results/judge-01/Candidate-A/judge.final.json"
      - "campaigns/pytest-addini-type-expressions-matrixspec-lean-v1/evaluation/results/judge-02/Candidate-A/judge.final.json"
      - "campaigns/pytest-addini-type-expressions-matrixspec-lean-v1/runs/paln-r1/focused-test-01.stdout.txt#L2-L16"
      - "campaigns/sqlmodel-field-constraints-matrixspec-lean-v1/runs/sln-r3/frozen-delta-spec.md#L20-L43"
      - "packs/tasks/sqlmodel-field-constraints/hooks/verify.ps1#L7-L22"
    status: user-confirmed-and-selected-for-H0601

confirmation:
  status: user-confirmed-through-H0601-authorization
  confirmedWeaknesses:
    - W-01
    - W-02
  note: >-
    The user explicitly selected both repair directions and authorized the H0601
    successor. This retrospective card generation records that prior decision; it
    does not authorize another implementation, experiment, merge, or push.

historicalDisposition:
  selectedSuccessor: H0601
  selectedProposals:
    - P-01
    - P-02
  implementationStatus: complete
  evaluationStatus: complete
  implementationTip: afab51580435e8e71d1b80a52d22b72ecd774151
  resultBoundary: >-
    H0601 outcomes are successor evaluation, not H052 Weakness evidence. Its
    treatment Audit, external focused verification, Candidate-visible
    verification, workflow completion, and Judge results remain separate.

authorizationBoundary:
  cardGenerationAuthorized: true
  historicalProposalSelectionRecorded: true
  newImplementationAuthorized: false
  newExperimentAuthorized: false
  mergeAuthorized: false
  pushAuthorized: false
