Skip to content

feat: keep agents on spec by wiring in the project's own checks #1983

Open

Description

@clay-good

OpenSpec's value depends on the agent actually following the specs while it writes code. Today that's mostly left to the agent's judgment, and it often drifts. #901 is one example: agents skip reading the existing specs before proposing a change.

Agents already check their own work as they go: they run tests, linters and builds. OpenSpec doesn't use any of that. The apply instructions never tell the agent to run the project's checks, and config.yaml has no place to say what those checks are. So "done" means "tasks ticked," not "the code passes and matches the spec."

Ideas

Idea What it does
Project checks in config.yaml Declare the project's test, lint and build commands once, e.g. checks: { test: "make test", lint: "make lint" }
Apply runs them Apply tells the agent to run the declared checks after each task and fix failures before ticking it off
Read the specs first Apply and propose name the exact main specs the change touches and tell the agent to read them before writing anything (#901)
Trace scenarios to tests Every scenario the agent implements should have a test, reported by verify (builds on #1979)
Setup check in openspec doctor Warn when the project has no declared checks, no tests, or an agent instructions file too big to be useful

Out of scope

  • OpenSpec running the checks itself or blocking archive on them. This issue is about steering the agent, not replacing CI.
  • Judging whether the code is good. Only whether the agent did what the project and spec ask.

Open questions

  • Should checks be advisory guidance only (like operations.apply.guidance), or also something openspec verify reports on?
  • Can we detect likely commands (package.json scripts, Makefile targets) during init and offer to fill checks in?

Related: #901, #880, #1979, #1720

Activity

  1. clay-good commented on Oct 1, 2026

    @clay-good
    CollaboratorAuthor

    A user building agent skills (not code) with OpenSpec asked whether verify can test their Given/When/Then scenarios against the generated SKILL.md.

    The design ask: extend "trace scenarios to tests" beyond code to any deliverable that has its own way of being checked. Code is checked by unit tests and infrastructure as code (Terraform) by plan or policy checks. An agent skill is checked by evals, which run each scenario as a prompt against the skill and report pass/fail. A declared check should be able to be any of these, so verify can confirm each scenario was actually exercised, whatever the deliverable is.

    Docs side of the same request: #2023.

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

    design-reviewNeeds product/design decision

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions