Skip to content

US-26.4.6: story verification judges CI with the merge gate's evidence rules - #916

Merged
mkreyman merged 2 commits into
masterfrom
docs/us-26.4.6-verification-ci
Sep 28, 2026
Merged

mkreyman merged 2 commits into
masterfrom
docs/us-26.4.6-verification-ci

Conversation

@mkreyman

Copy link
Copy Markdown
Owner

Adds US-26.4.6, which specifies the rewrite that #915 was held for after its third review round.

Story verification has never produced a CI verdict in production. Its rules were never designed, and #914/#915 ended up designing them one review finding at a time. This story settles them by reusing what already exists:

  • Repository: read only from the intake source, for the CI read and for the local clone.
  • Verdict: CiEvidence.judge/2 over the intake source's required_checks.
  • Transient failures: waited out, the way the merge gate does.
  • Credential: a single seam, so the open credential decision changes nothing else.

Needs Mark

The credential model, as described in #915's body under "Needs Mark". I'm asking for one fact: is a second tenant planned before verification has to work? If not, the story is implemented against the operator token behind the seam. If so, per-tenant GitHub App credentials come first.

This is a docs-only change: the schema test passes and the commit gate is green. The review gate is running (one prose round).

…e rules

Specs the rewrite #915 was held for after its third review round. Story verification has
never produced a CI verdict in production, and its rules (which runs count, which
repository and credential, when to wait) were being designed one review finding at a
time. This story settles them by reuse: the repository from the intake source only, the
verdict from CiEvidence over the source's required_checks, transient failures waited out
as the merge gate does, and one credential seam so the open per-tenant credential
decision changes nothing else.
…ent whole

The first draft fed CiEvidence.judge/2 a branch-free read, which drops the premise judge/2
is sound under (push runs of one branch at one SHA) and skipped the ci_definition_changed
refusal it depends on. The story now names the story's own branch and check_evidence/3,
the refusal, the :missing and jobless-run outcomes, required_checks as a pr-mode opt-in,
the merge gate's transient/permanent split and consecutive-fault bound, when the local
fallback may run and how it clones, one-read SHA resolution through /commits/:ref, an
operator-token allowlist until the per-tenant credential decision, ambiguous_intake_source
as its own code, separate runs per test outcome, and the #915 edge list as an acceptance
criterion rather than a note.
@mkreyman
mkreyman enabled auto-merge (squash) September 28, 2026 02:17
@mkreyman
mkreyman merged commit 7b96caf into master Sep 28, 2026
17 checks passed
@mkreyman
mkreyman deleted the docs/us-26.4.6-verification-ci branch September 28, 2026 02:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant