Skip to content
Agentmart
Submit a tool

governed-qa-gate

Governed QA gate that verifies delivered PRs against acceptance criteria before the human merge wait.

Skill by TribalScale

IndexedApache-2.0★ 2
Write a review

Chalk Labs

Need help deploying governed-qa-gate?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/tribalscale-governed-qa-gate

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Governed QA gate that verifies delivered PRs against acceptance criteria before the human merge wait. Use for implement_work_orders / implement_delivery qa_gate stage.

Use cases: testing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/governed-qa-gate

What's inside

Skill name
governed-qa-gate
Description
Governed QA gate that verifies delivered PRs against acceptance criteria before the human merge wait. Use for implement_work_orders / implement_delivery qa_gate stage.
License
Apache-2.0
Instructions
102 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Governed QA Gate

`governed-qa-gate` is the program stage that runs **after** delivery produces
PRs, their CI checks finish (`await_pr_checks`) and the automated code review
passes (`finalize_code_review`), and **before** `await_human_merge`. It confirms each delivered PR satisfies
its work-item acceptance criteria and emits the canonical QA envelope the
runtime uses to arm the merge wait (`match_all` over the PR set).

It is **not** the host verify step. Host verify (build/lint/typecheck/tests run
by `run_coding_backend` during `deliver_work_order`) proves the change compiles
and the delivered suite passes on the host. `qa_gate` is an independent
acceptance review of the resulting PR(s). Do **not** re-run the full test suite
by default — reuse the host verify summary as evidence and add targeted checks
only where acceptance criteria demand it.

## Start Here

At invocation, announce:

> "I'm running the governed QA gate over the delivered PR set."

Then:

1. Read `input.pr_urls` (Jira multi-PR path) or `input.pr_url` (single WO path).
   The set of PR URLs you report back **must equal** the input set exactly — no
   extras, no omissions. A mismatch blocks the gate.
2. Read `input.checks_state`, `input.checks` / `input.pr_checks`, and
   `input.failed_checks`. These are the repo's own CI results on the PR head
   SHA, collected by `await_pr_checks`. They are the primary build evidence.
   If `checks_state` is `failure`, the PR whose check failed is `failed` and
   each failed check is listed in `defects`.
3. Read `input.work_order_body` / work-item references, `input.files`, and
   `input.host_verify_summary`. Each `input.files` entry is one changed file
   (`filename`, `patch`, `additions`, `deletions`). That patch is the
   implementation. Judge each acceptance criterion from the patch. A missing
   `host_verify_summary` is not a defect and is not a reason to fail: host
   verify is supporting evidence only, and it never overrides a failed
   external check. When `checks_state` is `success`, cite those CI checks as
   the test evidence. Do not ask for a diff, a changed-file list, or a local
   workspace checkout that was not supplied. `input.host_security` is the
   host secret scan and dependency audit result (file and line only); cite it
   as security evidence.
4. For each PR, evaluate acceptance criteria and record evidence:
   - `acceptance_criteria`: per-criterion pass/fail with a short note.
   - `tests`: tests exercised or the host verify summary reused as evidence.
   - `defects`: blocking issues found (empty when the PR passes).
5. Set each PR `status` to `success` or `failed`.
6. Set top-level `status` to `success` **only if every** per-PR `status` is
   `success`; otherwise `failed`.
7. Return the canonical QA envelope exactly (see below).

## Output Contract (canonical QA envelope)

```json
{
  "status": "success",
  "result": {
    "summary": "All delivered PRs meet acceptance criteria.",
    "prs": [
      {
        "pr_url": "https://github.com/org/repo/pull/123",
        "work_item_ref": "WO-001",
        "status": "success",
        "acceptance_criteria": [
          { "criterion": "Endpoint returns 200", "status": "pass", "note": "verified in PR diff + host tests" }
        ],
        "tests": ["host verify: 42 passed"],
        "defects": [],
        "summary": "Meets all AC."
      }
    ]
  },
  "confidence": 0.9,
  "warnings": [],
  "follow_up_needed": false
}
```

Rules enforced by the `validate_qa_pr_url_set` semantic validator:

- Output `result.prs[].pr_url` set **==** input PR URL set, exactly.
- Top-level `status: success` requires **every** per-PR `status == success`.
- Schema-valid `status: failed` is a legitimate result and produces a **blocked**
  stage outcome (the merge wait is not armed). Do not fabricate success to pass.

## Failure Behavior

- A `failed` envelope blocks the workflow at `qa_gate`; `await_human_merge` never
  arms, so no external merge wait is left dangling. Metrics increment
  `qa_gate_failed`.
- A blocked gate sends the PR back to the dev agent automatically with your
  defects as `qa_feedback`. The revised PR then runs checks, code review and QA
  again. Code review and QA share a budget of 3 revisions per workflow; after
  that the stage stays blocked and a human decides.

## Not In Scope

- Merging PRs (humans merge; the orchestrator resumes `await_human_merge`).
- Re-running the full delivery/build pipeline.
- Editing code or opening new PRs.

From TribalScale/ts-harness, Apache-2.0.

More from TribalScale/ts-harness

Signals

Stars
2
Forks
0
Open issues
0
Last commit (this folder)
Oct 23, 2026 (7 days ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from TribalScale

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get governed-qa-gate running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying governed-qa-gate?

CallGet help
Cite this page

governed-qa-gate skill. Agent Mart. https://agentmart.dev/skills/tribalscale-governed-qa-gate (last updated 2026-10-24)