# Tiny CLI so agent “done” means a verifier passed, not vibes

**URL:** <https://forum.cursor.com/t/tiny-cli-so-agent-done-means-a-verifier-passed-not-vibes/172481>\
**Category:** Built for Cursor\
**Tags:** cli\
**Created:** [September 21, 2026, 8:07am UTC](https://forum.cursor.com/t/tiny-cli-so-agent-done-means-a-verifier-passed-not-vibes/172481 "2026-09-21T08:07:56Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![olldin](https://avatars.discourse-cdn.com/v4/letter/o/439d5e/32.png) [@olldin](https://forum.cursor.com/u/olldin)\
**Post date:** [September 21, 2026, 8:07am UTC](https://forum.cursor.com/t/tiny-cli-so-agent-done-means-a-verifier-passed-not-vibes/172481/1 "2026-09-21T08:07:56Z")

</div>

I built a small OSS tool for agent workflows: [GitHub - Olie0512/goal-run: Tiny CLI that runs a GOAL.md until a verifier says done · GitHub](https://github.com/Olie0512/goal-run) (MIT).

Problem: coding agents love checklists and mark them done without proof.

Idea: GOAL.md + shell checks. `goal-run done` refuses self-grade — every check must exit 0.

```bash
pip install -e . # venv recommended
goal-run init "Ship MVP"
goal-run check # RED / GREEN
goal-run check --json # for CI
goal-run done # archives only if green

```

Also ships a GitHub Action wrapper. No LLM inside the CLI.

Would love feedback from folks wiring agents into CI — does this fit your loop, or do you already solve it differently?

v0.1.1: [Release v0.1.1 · Olie0512/goal-run · GitHub](https://github.com/Olie0512/goal-run/releases/tag/v0.1.1)
