Tiden is live on Product Hunt. See the launch.

Quality gate

A quality gate forClaude Code and Cursor.

Tiden's quality gate passes a change from Claude Code, Cursor or any agent only when tests that ran in your environment prove the specs it touches. You get one verdict for main, each branch and each release, and tiden gate check puts it in CI.

A Beach with Dunes. The West Coast of Jutland, Dankvart Dreyer, 1843

How it decides

The verdict comes from tests that ran in your environment.

Tiden reads the results your reporters send, joins them to the specs they verify, and computes the verdict per component. By default every spec needs an executed test and every linked test has to pass. A spec Tiden drafted from a merge joins that check once a test has run against it.

One verdict for main, each branch and each release.

Main's verdict sits at the top of the product Overview, with what blocks it. A branch is graded on the specs it touched, and one with no evidence behind it reads Not verified. Creating a release freezes main's verdict and its traceability matrix, so a later edit to a spec, a link or a threshold can't rewrite what shipped.

  • Main's verdict on the product Overview
  • Branch verdicts scoped to what changed
  • Release verdicts frozen when the release is created
Evening at Skagen, P.S. Krøyer, 1893

The agent sees its verdict before it says it's done.

In Claude Code and Codex, tiden setup wires the hooks and skills, and tiden intent progress shows each spec's state as tests run. The session can't close over unverified work, and the close ends on a review card, because merging is your call. In Cursor, the agent reads the same gate through the MCP server or the CLI.

  • Per-spec progress with tiden intent progress
  • Close refused while work is unverified
  • Same verdict over MCP for Cursor

Hard failures get fixed. Soft ones need a reason.

On main and on a release, a spec with no executed test, a failing test or an open production issue blocks the gate, and nobody can sign it away. A spec Tiden drafted from a merge counts once a test has run against it. A result from an older build is softer: re-run it, or sign it off on the branch with a reason, under your name. A whole-verdict sign-off needs a second person.

  • Hard failures can't be signed away
  • Sign-offs carry a name and a reason
  • Agent risk acceptances shown at merge

Getting started

From install to a gated deploy.

  1. 01

    Install and set up

    Run the install line, then tiden setup. It approves the CLI in your browser and wires the agent hooks.

  2. 02

    Report test results

    Reporters cover Playwright, Vitest, Jest, PHPUnit, Go and Swift; JUnit XML covers the rest. Tests link to specs by source file.

  3. 03

    Agents close on proof

    Each session starts from a working contract and can't close until its specs are verified or a risk is recorded.

  4. 04

    Gate the deploy

    Add tiden gate check before the deploy step: exit 0 when shippable, 3 when not. tiden release create freezes the verdict.

46%
of developers actively distrust the accuracy of AI tools; 33% trust it. Stack Overflow 2025
66%
name AI answers that are almost right, but not quite, as their top frustration. Stack Overflow 2025
90%
of respondents use AI at work, and adoption still goes with lower delivery stability. DORA 2025
“Without robust control systems, like strong automated testing, mature version control practices, and fast feedback loops, an increase in change volume leads to instability.”
DORA, announcing the 2025 DORA report

Questions, answered.

What does Tiden's quality gate check?

It checks each component's specs against your latest reported results. Coverage fails a spec with no executed test, unless Tiden drafted it from a merge and no test has run yet. Pass rate fails on any failing test, production issues on open errors, and freshness flags older builds. The verdict is Pass, Blocked, Pass with risk acceptance or, on a branch, Not verified. No model grades the diff.

Does it work in Cursor, or only in Claude Code?

It works in both. The gate is computed in Tiden, so every agent reads the same verdict: Claude Code and Codex through the hooks and skills tiden setup wires, Cursor through the MCP server's gate_check tool or the tiden CLI in its terminal. Any other MCP-capable agent uses the same two routes.

Does Tiden post a check run on the pull request?

No. Tiden reads a pull request's merge state from GitHub and posts no check run, status or comment to it. The verdict lives on the Overview, the Quality Gate page, each branch and Releases, and in tiden gate check, which exits 3 when the gate isn't passed. Run it in CI and the job fails like a failing test. A merge past a blocked gate is never billed.

Who can accept a red gate?

On main and on a release, nobody: a missing or failing test, or an open production issue, has to be fixed. A result from an older build can be signed off on the branch, with a reason, under your name. An agent can record a risk on its own session only with the spec, one of five criteria and a line of evidence, and you see it at merge.

Can an agent pass its own gate?

It can pass only on tests that ran in your environment, and your existing tests keep guarding what the change never mentioned. Spec changes the agent proposes, and any risk it accepts, are on the record for the person who merges. The limit is real: if the spec captured the wrong ask, the gate passes the wrong thing. Deciding the spec was right stays a human judgment.

How is this different from a SonarQube or CodeRabbit gate?

They measure the code. SonarQube's default gate checks new issues, security hotspots, coverage and duplication on new code, and decorates the pull request; CodeRabbit runs AI review and pre-merge checks there. Tiden's gate asks whether tests that ran prove the specs a change touches, and whether production is throwing errors in those parts. Run both: they judge the diff, Tiden checks what it was for.

Midsummer Night at Tisvilde Beach, Julius Paulsen, 1886

Gate your next deploy on what you asked for.

Run tiden setup, connect GitHub, and add tiden gate check to CI.