Skip to content

Add an exercised host-only advisory PR recipe with no manifest or saved baseline #780

Description

@pengfei-threemoonslab

Observed

The 2026-09-14 review at e2ab00078b2ca5b9e73405109a6f09b820f5fc9e found a gap between the shipped host-review engine and the integration a first team is told to copy:

  • examples/github-actions/README.md:3 describes its recipes as requiring a root shipgate.yaml; the recommended first recipe is presented as adding a gate.
  • docs/integrations.md:22–31 starts with config: shipgate.yaml, although the released Route H measurement in docs/design-partner-pilot-results.md:95–97 records successful manifest-free verify and six advisory change rows.
  • The host-grant recipe is scheduled baseline/drift, a different job from reviewing the current PR against Git history. Local diff already needs neither a manifest nor a committed baseline.

The product has a manifest-free per-change path, but a team that got value locally has no equally clear, exercised first PR recipe. A GitHub App is not required to fix that gap.

Why it matters

Repeated use should arrive on the next relevant PR without a developer remembering another audit command. Requiring declarations or baseline maintenance before that happens creates adoption work unrelated to the selected host-review job. The first integration must show what the current PR changed, explain unread coverage and let the team's reviewer decide.

Proposed

Add one copyable host-only advisory PR recipe to the existing GitHub Actions examples, using the current composite Action and existing manifest-free verifier/PR projection. Pin the Action source ref and package version from the tested released provenance rather than maintaining another handwritten version constant. Do not introduce a new renderer, Action wrapper, hosted service or gate vocabulary.

Make the base/head checkout explicit and available locally (fetch-depth: 0 or an equivalently exercised bounded fetch). The engine never fetches. Exercise the actual composite Action, not a script that merely reconstructs its expected CLI arguments. A manifest or pre-existing host baseline must be absent in the tested repository.

Default to advisory output, with no required check, fail-on-verdict policy or generated host instruction. Show one human PR summary naming changed capabilities, evidence, coverage limits and next action. Keep detailed machine output in the existing artifacts. Explain the minimum contents/PR-comment permissions, and preserve the workflow-summary/artifact fallback when a fork or token cannot post a comment. Do not ask for broad write permissions or use an untrusted-code execution path to make a fork appear supported.

Let the existing in-job trigger/comparison decide applicability; do not add a separate path allowlist that can silently miss the engine's supported cases. A correct no-change run stays quiet or gives a compact no-change status. An incomplete comparison, missing base or execution error is visible and distinguishable from no change, even though findings do not make this default advisory integration a merge requirement.

Acceptance

  • The new complete recipe runs in a repository with supported host configuration and no shipgate.yaml or committed baseline. README/quickstart link it as the next step after local host-diff value, while the existing builder/strict recipes retain their own scope.
  • A real GitHub-hosted run exercises the pinned public Action and package on exact base/head refs. Preserve the run URL, version/ref, outputs and test inputs; a source-only unit test cannot stand in for this observation.
  • Changed permission/MCP examples agree with the same-version local CLI on subject, direction, expansion semantics and coverage; include a narrowing case so every row cannot become a widening. No-change and malformed known input have distinct outcomes.
  • A second update to the PR produces the current result without accumulating duplicate actionable comments. An unrelated or covered no-change update does not create a new warning; missing history and unread inputs never disappear as quiet success.
  • Advisory defaults do not install a blocking policy or require the check. Execution/setup failure remains explicit and the documentation distinguishes it from a review finding or merge decision.
  • The recipe uses the minimum demonstrated permissions and records the tested same-repository/fork behavior. With comment permission absent, a reviewer can still find the same evidence and the limitation is explicit.
  • No user code, agent or declared MCP server is executed to analyze the PR. Installation uses the pinned trusted release, not package code selected from an untrusted PR checkout.
  • Run the published advisory host-diff pilot: first reviewer value and the next eligible change #571 records actual setup time, assistance, continued enablement and second-reviewer use when a participant opts into this recipe. The hosted test proves integration behavior, not external adoption.

Sequencing

The same hosted run should satisfy #570's still-open literal post-publication tag/Action replay and be linked there; record tag resolution as well as the generated immutable-SHA default. No second harness is needed.

P1 in #778, alongside #779 and #781 in the first week. #779 owns the first local route; this issue owns the concrete team-workflow handoff. #653/#571 can begin human local observations before this recipe is finished. Reuse #684/#662's delivered host comparison and PR projection; do not reopen their completed implementations unless this exercised recipe reveals a bounded defect.

#664 remains conditional on useful repeat use and an observed obstacle that survives this working Action route. #690 stays paused. Baseline governance, authenticated approval (#337/#555), required branch checks and organization policy are separate choices, not default setup for this recipe.

Journey delivery - 2026-09-16

Program: #778. Delivery milestone: Adoption Phase 2 - Decide and verify the correction. Accountable role: GitHub integration/release engineering.

The recipe and source repair in #786 are delivered. Finish only remaining evidence against the exact distributed Action/package: actual hosted PR output, fork/minimal-permission fallback, second-push sticky update, artifact/summary agreement and safe install imports. Reuse this hosted observation for #570 rather than building a second harness. The owner's existing hosted-run deferral is retained until an authorized execution is selected; a milestone is not a completed hosted run. #811's local journey and human attempts continue independently. Offer CI through #796 after first value, not as a prerequisite.

Planning checkpoints preserve #778's original 2026-09-14 start: Oct 14 / Nov 13 / Dec 13. They are evidence-review dates, not promises about external replies. Phases overlap; a later milestone never delays supported research, an already-possible correction or an individual four-week opportunity window. A named accountable owner is required before execution; the role here is not an assignment to an uninvolved person.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Next after P0; blocks other work or ships a misleading resultarea:releaseRelease pipeline, packaging, and safety qualificationenhancementNew feature or requestworkstream:adoptionReviewer journey, distribution, workflow delivery and observed reuse.

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions