Skip to content

WP 7.2 — Gate-failure drills (SC-2, all eleven classes) #39

Description

Work package: WBS 7.2 · Phase: 7.0 — Integration Drills & Acceptance · Traces: SC-2, pattern 7 · Depends on: WP 6.3

Problem statement

SC-2 requires the Draft → Candidate gate to block each of eleven seeded defect classes, and each check
must demonstrate falsifiability (pattern 7): it goes red on the seeded defect for the right
reason
before going green on the fix. A gate that only ever passes proves nothing — the drill is
the evidence that each check actually fires and fires for its own reason. WP 6.3 has by now built
/cadence:promote with the full deterministic §6.1 gate plus the ID-namespace and quotation-symmetry
checks (AC-9.2); this package pins that guarantee as a reproducible gate-failure drill with retained,
append-only evidence.

Requested change

Author a gate-failure drill under drills/ that seeds one defect per SC-2 class and, for each,
captures the gate refusing the defective artifact and then promoting the fixed one. The eleven classes,
verbatim from SC-2:

  1. untagged claim
  2. malformed tag parameter
  3. rewritten revision row
  4. unresolvable identifier
  5. broken cross-reference
  6. missing manifest/registry row
  7. broken link
  8. asymmetric quotation
  9. hand-edited render (render-fidelity drift)
  10. silently disabled check (caught by the gate self-test)
  11. tooling shell-lint failure

For each class retain append-only evidence showing the failing gate run (verdict, the specific check
that fired, its failure reason) and the passing run after the fix, plus a drill definition and a runner
that regenerates the evidence from the fixtures. All drill scaffolding, fixtures, and evidence live
under drills/.

Acceptance criteria

  • drills/gate-failure/ exists and contains a drill definition enumerating exactly the eleven
    SC-2 defect classes, with one fixture pair (defective + fixed) per class.
  • For each of the eleven classes, retained evidence contains a fail gate run whose reported
    failing check matches the seeded class (red-for-the-right-reason, pattern 7) followed by a pass
    gate run on the fixed artifact (AC-9.1, AC-9.2, AC-13.1).
  • The failing run for each class records a non-zero promotion exit code and commits nothing
    (atomicity, AC-9.3); the passing run records the promote verdict.
  • The silently-disabled-check case is caught by the gate self-test and the tooling case by the
    shell-lint of the gate tooling (AC-9.2, FR-18).
  • Every drill verdict is script-computed from the append-only evidence tree, never narrated
    (SC-4, AC-15.1); no drill step calls an LLM (FR-8).
  • A drill runner exists that regenerates the evidence and exits 0 only when all eleven classes
    show the red-then-green sequence, non-zero otherwise.
  • Evidence is append-only with UTC timestamps (NFR-5); any class whose gate could not run is
    recorded as skipped, never passed (NFR-6).

Non-goals

  • Building or modifying the validators or the gate itself (WBS 5.0 / 6.0). This drill exercises the
    shipped gate; a check that fails to fire is a gate defect filed against its owning package, not fixed
    here.
  • The end-to-end cycle drill (WP 7.1), the advisory-drafting drill (WP 7.3), and acceptance sign-off
    (WP 7.4).

Constraints

  • No LLM in any verdict path — every drill verdict is the deterministic gate's script-computed result
    (FR-8, SC-4).
  • Never --force / --no-verify; explicit-path staging only (NFR-4).
  • Seeded defects and fixtures carry no credentials (NFR-4).

File hints

  • Read: docs/design/CADENCE_AUTOMATION_PROJECT_PLAN_WBS.md (SC-2, FR-18, §8 WBS 7.2 + 7.0 exit criteria),
    docs/design/CADENCE_AUTOMATION_USER_STORIES.md (US-9 / AC-9.1–AC-9.5, US-13 / AC-13.1, US-15 / AC-15.1).
  • Create: drills/gate-failure/ — drill definition, per-class defective/fixed fixtures, runner, and
    retained per-class evidence.

ADWS run

  • source_type: github_issue · output_mode: pr · target_branch: main
  • allowed_paths: [ "drills/" ]
  • test_policy: required · falsifiability: true · task_size: medium

Metadata

Metadata

Assignees

No one assigned

    Labels

    adws-runImplemented via the ADWS pipelinephase:7.0WBS Phase 7.0release-1Release 1 scope

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions