Skip to content

Gate canonical App Builder showcase regeneration #150

Description

@kattsushi

Part of #131. Follows #146/PR #147 and #148/PR #149 as Unit 7 of the App Builder feature-branch chain.

Problem

PR #130 must not be regenerated from incomplete or noncanonical proof. This unit adds a pure typed eligibility gate, not GitHub mutation authority.

Scope

  • Define a finite typed proof input representing canonical Units 1-6 completion and exact evidence identities.
  • Return typed Pr130RegenerationBlocked for missing or mismatched proof.
  • Return regeneration eligibility only when the proof is complete.
  • Order block reasons deterministically.
  • Treat frozen PR feat(app-builder): regenerate canonical Todo showcase #130 head d5928f99a122b04cb70ff68bfa02fa2d5648a5fc as an input expectation and evidence identity, never as a mutation target.
  • Keep the gate pure, with no filesystem, network, GitHub read, or GitHub mutation capability.

Acceptance criteria

  • The named test incomplete canonical proof blocks PR #130 regeneration before effects proves incomplete proof blocks before any mutation or read side effect.
  • The named test mismatched evidence identities block PR #130 regeneration deterministically proves mismatches return ordered Pr130RegenerationBlocked reasons.
  • The named test complete canonical proof returns regeneration eligibility only proves complete proof yields eligibility without performing regeneration.
  • The named test frozen PR #130 head remains typed input evidence only proves the expected head remains d5928f99a122b04cb70ff68bfa02fa2d5648a5fc without reading or mutating GitHub.
  • The gate never regenerates, updates, comments on, closes, rebases, or otherwise mutates PR feat(app-builder): regenerate canonical Todo showcase #130.
  • The delivery stays within 400 changed lines (additions + deletions).
  • Rollback removes only the eligibility gate and its tests.

Non-goals

Chain context

#143 (+ #145) → #147 → #149 → 📍 Unit 7 → frozen #130

Part of #131. This issue does not close prior issues.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions