Skip to content

Phase 1: fail closed across verifier evidence paths#274

Merged
pengfei-threemoonslab merged 2 commits into
mainfrom
enforce_non_mergeable
Jul 18, 2026
Merged

Phase 1: fail closed across verifier evidence paths#274
pengfei-threemoonslab merged 2 commits into
mainfrom
enforce_non_mergeable

Conversation

@pengfei-threemoonslab

@pengfei-threemoonslab pengfei-threemoonslab commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR is the Phase 1 trustworthy-candidate hardening pass. It makes non-mergeable verifier states operationally fail closed and closes several evidence paths that could previously degrade silently.

Changes

  • Fail both Agents Shipgate workflows on every non-mergeable verifier verdict:
    • blocked
    • human_review_required
    • insufficient_evidence
    • unknown
  • Emit source warnings for parsed-but-invalid .mcp.json files instead of silently returning an empty tool surface.
  • Treat unrecognized n8n MCP Client selection modes as an unproven wildcard surface and route them to review.
  • Convert enabled plugin validation/runtime failures into source-warning evidence while preserving advisory CLI exit behavior.
  • Fail closed when the verifier cannot collect working-tree diff context.
  • Route semantic diff-reference degradation through the typed evidence action rather than matching CLI command/path strings.
  • Correct the handoff v5 documentation and control.next_action guidance.
  • Update workflow contract tests for the new four-verdict policy and make the help-output assertion robust to Rich line wrapping.

Validation

  • Ruff: passed on all tracked Python files.
  • Generated-schema consistency: passed.
  • Static-adapter suite: 400 passed.
  • Remaining non-performance suite: 3,468 passed, 5 skipped.
  • Committed-tree verification receipt:
    sha256:4e03af1348814cdadf9393dd42c41f3606b8209807be578358069628045e1b78

Trust and release state

The committed-tree verifier completed successfully, but the candidate is intentionally not mergeable without human review:

  • control.state = human_review_required
  • control.must_stop = true
  • gate.merge_verdict = insufficient_evidence
  • Both workflow files are correctly recognized as touched release trust roots.
  • shipgate.yaml#agent_bindings.root still requires a human-reviewed exact source_id and object declaration.

This PR does not suppress findings, lower severity, expand a baseline/waiver, weaken CI, or invent binding/authority evidence.

Required human action before merge

  1. Review the two protected workflow changes as release trust-root changes.
  2. Determine and author the real root binding values in shipgate.yaml#agent_bindings.root; do not infer or auto-fill them.
  3. Rerun:
agents-shipgate verify --base origin/main --head HEAD --json

The resulting verifier artifact remains the authority for merge readiness.

@pengfei-threemoonslab pengfei-threemoonslab changed the title Fail CI on all non-mergeable Shipgate verifier verdicts. Phase 1: fail closed across verifier evidence paths Jul 16, 2026
pengfei-threemoonslab and others added 2 commits July 17, 2026 22:34
Expand fail_on_merge_verdicts in both advisory workflows so PRs cannot merge while the verifier reports human review, insufficient evidence, or unknown states.

Co-authored-by: Cursor <cursoragent@cursor.com>
@pengfei-threemoonslab
pengfei-threemoonslab merged commit d37626d into main Jul 18, 2026
2 of 4 checks passed
@pengfei-threemoonslab
pengfei-threemoonslab deleted the enforce_non_mergeable branch July 18, 2026 06:38
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