A brief before every run. A check after.

Coding agents already have harnesses: the loop that keeps Claude Code or Cursor on task. Nothing harnesses the product. The product harness is the layer above your agents that holds what the software is supposed to be, and enforces it on everything that builds.

See how it works →

Agents work at a scale people don't.

That's the advantage. A model can write a feature in the time it takes you to describe it, and it will happily write it in any direction you point.

That's also the problem. You can go really fast in the wrong direction. You can't review everything a human used to review, because there's too much of it and it arrives too quickly. Code review still catches bad code. It doesn't catch correct code that quietly breaks a rule nobody wrote down.

So the review has to move. Before the run, so the agent starts from what you decided instead of a guess. After the run, so what shipped is held against everything the product is supposed to be, not just the lines that changed. That's a harness for the product, and it's the missing layer.

product harness (n.) The layer that holds what a product is supposed to be and enforces it on everything that builds: compiling intent and standards into constraints before every run, and checking every result back against intent after.

A coding harness keeps the agent on task.

A product harness keeps the product on intent.

What a product harness actually does.

1. Scope in.

A work packet gives the agent the feature, its rules, its acceptance criteria, and the boundary: what's adjacent and must hold. It works a scoped change, not a free roam of your repo.

2. Invariants on the record.

Working flows, layout decisions, business rules, your coding and security standards: explicit, not tribal. Compiled into the agent's constraints alongside your rules file, before the run starts.

3. Verify against the whole picture.

After the run, the code is compared against everything the product is supposed to be. A change to the feature you targeted that contradicts a feature you didn't shows up, in plain language, before your users find it.

4. A person decides.

Each mismatch surfaces with the intent it violates attached. Regression to fix, or intent that changed and should be updated. Warnings, never gates. The failure mode was never the break. It was not noticing.

No new tool to live in.

This is the part that matters most. A product harness isn't a place you go. It's two steps added to the loop you already run, with the agents you already pay for, on the repo you already have.

  1. 01

    Your repo stays on GitHub. Artifact connects read-only.

  2. 02

    Your agent stays. Add Artifact as an MCP in Claude Code, Cursor, or Codex.

  3. 03

    Before a task, the agent pulls its brief. You don't paste context anymore.

  4. 04

    After the task, the result is checked. You read the mismatches, not the diff.

  5. 05

    Your pull requests, your CI, your reviews: exactly as they are.

Today. Not after a migration, a rollout, or a change-management deck.

artifact › work_packet FEA-0001
Invite teammates with roles
4 requirements · 5 acceptance · 4 what-ifs
REQ-0004 an unaccepted invitation expires after seven days
ACR-0002 no seat billed before acceptance
EDG-0004 admin leaves with a seat → QST-0001, open
boundary FEA-0002 seat-based billing must hold
guardrails priced like a tool, not a toll · admins never wait on support
rules a seat is billed from acceptance, never from invitation
✓ bundle ready — this is the whole context

The brief. This is what the harness hands an agent before it writes a line.

Four things a product harness isn't.

  1. 01

    Not a project manager.

    No tickets, no sprints, no burndown. The record says what the product is supposed to be. Your tickets can point at it.

  2. 02

    Not an IDE, and not a new agent.

    Artifact doesn't write code and doesn't wrap your agent. It briefs the one you have and checks what it did.

  3. 03

    Not a wiki.

    A wiki goes stale by Friday. The record is typed, anchored to the code, and checked against it on every run. Drift is shown, not discovered.

  4. 04

    Not a gate.

    Nothing here blocks a merge. It shows you the problem, with the reason, and leaves the call to a person.

Keep your agents. Add the harness.

See the five steps in detail, or bring a repo and try it with us.

How it works →