Menu

PR and MR Answer Packs

Answer Packs attach scoped repository context to GitHub pull requests and GitLab merge requests. Snipara listens to the review event, builds a source-grounded pack for the changed surface, extracts explicit source-authored rationale into review-pending decision candidates, and publishes the result back to the provider-native review surface.

Positioning

Think of this as AI Answer Packs for code reviews, not a vector search feature. The user sees an artifact: impacted symbols, architecture continuity, implementation history, conventions, and code impact context.

The flow

PR Answer Pack flow
Rendering diagram...

The pack is generated for the pull request or merge request, not for a generic repository search. That is the difference: the active AI client gets context aligned to the current branch, changed paths, indexed symbols, and relevant project history.

Where this fits

PR/MR Answer Packs are one surface in a larger Workflow Continuity mechanism. The same evidence should look different before editing, while resuming, and during review.

Before edits

Start Work Brief

While resuming

What Changed For Me

During review

PR Answer Pack

Start Work Brief shape

The Start Work Brief is the pre-edit artifact that feeds a better PR later. In the current implementation, snipara-companion team-sync start-work can fetch the hosted brief when the workspace is configured, and the same evidence model then flows into resume and review. That is not a claim that every repository already has a generated backend brief.

Brief field

Task and target branch

Brief field

Last relevant decisions

Brief field

Source authority and freshness

Brief field

Likely files or modules

Brief field

Risks and stale assumptions

Brief field

Suggested tests

Brief field

Memory and context refs

Brief field

Agent handoff note

After implementation and review, the PR Answer Pack should reuse the same evidence: what changed, why the author chose it, which decisions still apply, which assumptions went stale, and what tests prove the touched surface. Missing rationale stays missing; the pack does not invent it from retrieved context or generated judgment.

Provider-native surfaces

The first useful surface is the repository provider itself. Snipara publishes the pack where reviewers and agents already look, while the dashboard keeps status and regeneration controls available for maintainers.

Check Run

Publishes the pack as a neutral GitHub Check Run named Snipara Answer Pack.

Sticky comment

Optionally mirrors the pack into a single updatable PR comment for teams that want visible handoff notes.

GitLab MR note

Publishes the pack into a single updatable GitLab merge request note for GitLab-backed repositories.

Dashboard viewer

Shows recent packs, pack status, freshness, and manual regeneration controls inside Snipara.

Marketplace lifecycle

Records Marketplace purchase, change, cancellation, and free-trial events without mixing teams.

What a pack contains

Answer Pack

PR scope

Answer Pack

Source-authored rationale

Answer Pack

Review-pending decisions

Answer Pack

Changed files

Answer Pack

Impacted symbols

Answer Pack

Repository context

Answer Pack

Architecture continuity

Answer Pack

Implementation history

Answer Pack

Team Sync review

Answer Pack

Reviewer hints

Answer Pack

Verification checklist

Answer Pack

Source map

Answer Pack

Repository conventions

Answer Pack

Agent handoff

Answer Pack

Caveats

Answer Pack contract

The current provider surfaces are the GitHub Check Run plus optional sticky PR comment, and a GitLab sticky merge request note. Treat this schema as the product contract for how an Answer Pack should be read by agents and humans. Internal payloads remain machine-versioned; that identifier is operational metadata, not a public product label.

{
  "repository": "owner/repo",
  "pull_request": {
    "number": 31,
    "head_sha": "eeaa70d",
    "base_branch": "main",
    "title": "Refactor authentication middleware"
  },
  "scope": {
    "changed_files": ["apps/web/src/lib/github/app.ts"],
    "impacted_symbols": ["getInstallationToken", "loadPrivateKey"],
    "context_documents": ["docs/development/CODING_STANDARDS.md"]
  },
    "sections": [
      "PR Scope",
      "Review Rationale",
      "Changed Files",
      "Impacted Symbols",
      "Repository Context",
      "Related Conventions And Architecture",
      "Implementation History",
      "Team Sync Review",
      "Reviewer Hints",
      "Verification Checklist",
      "Source Map",
      "Agent Handoff",
      "Caveats"
    ],
  "publication": {
    "github_check_name": "Snipara Answer Pack",
    "github_sticky_comment_marker": "<!-- snipara-pr-answer-pack -->",
    "gitlab_sticky_note_marker": "<!-- snipara-gitlab-mr-answer-pack -->"
  }
}

Trust layer

A strong PR Answer Pack is not only scoped. It is source-backed. Authority labels such as freshness, confidence, commit SHA, validation state, and stale warnings keep the pack from pretending that every retrieved fact is equally safe to trust. Rationale candidates come only from review text and commit messages, keep their source references, and require human approval before they become current project decisions. See Context Authority.

What agents should do with it

Claude Code, GitHub Copilot, Codex, Cursor, and other AI coding clients should treat the pack as the first context briefing for the review. It does not replace reading files or running tests. It reduces rescanning and gives the agent a better starting map.

  • scoped repository cognition
  • relevant architectural continuity
  • high-quality contextual grounding
  • source-aware implementation history

Setup

GitHub PR Answer Packs are generated by the hosted Snipara GitHub App. GitLab MR Answer Packs use the connected GitLab account and project webhook. Once connected, review events queue Answer Packs and push events keep the repository index fresh.

npx create-snipara --github

Keep the boundaries clear

Snipara prepares the repository context. Your chosen AI client reasons and edits. The project memory stays independent from any one model, session, or user.