Repository navigation
Releases: dadwritestech/thisisfine
Release list
v0.2.0: promise everything
thisisfine 0.2.0: promise everything, not just pages.
Until now a promise was a browser check. Now it can be about an HTTP API or a command-line tool, and the check is written in the language your project already uses:
| Your project | The check | Runs on |
|---|---|---|
| A web app | .thisisfine/checks/3-badge.spec.ts |
Playwright, in a real browser |
| An HTTP API, in Python | .thisisfine/checks/4-expired-token.py |
pytest, in thisisfine's own venv |
| A CLI, in Go | .thisisfine/checks/5-dry-run/check_test.go |
go test, in thisisfine's own module |
JS/TS projects get request and run fixtures in .spec.ts for the same thing.
What's new
- Checks are black-box: they call your API over HTTP or run your CLI as a process. A check that imports your code is refused, so it can't be satisfied by a mock.
- Evidence instead of screenshots: thisisfine records what each check sent and what came back, and shows you both sides (with the fix, and without) before you say "y".
initsets up only what your project needs: Playwright for web apps, a pytest venv for Python, a Go module for Go. It detects Go'scmd/<name>, a packagebin, Django, Flask and FastAPI as well as Next.js and Vite..thisisfine/config.jsongainscli(what checks run) andbuild(runs before the app starts or the CLI runs, in both your tree and the proof's).- The guard treats a locked Go check as its whole directory.
- The GitHub Action installs only what your committed checks need, and says so if Go checks need
actions/setup-go. - Two runnable examples, each broken and caught in CI on Ubuntu and Windows: a Python API whose expired tokens got in, and a Go CLI whose
--dry-runwrote anyway.
Upgrade
- Claude Code:
/plugin marketplace update thisisfine - npm:
npm install -g @dadwritestech/thisisfine@0.2.0 - CI:
uses: dadwritestech/thisisfine@v0picks it up automatically.
Existing browser promises and ledgers work unchanged.
v0.1.0
First release of thisisfine.
Your agent says "done" while your app is on fire. thisisfine turns every behaviour you said "y" to into a proven Playwright check, and won't let the agent finish a turn that breaks one.
Install
- Claude Code:
/plugin marketplace add dadwritestech/thisisfine, then/plugin install thisisfine@thisisfine - pi:
pi install npm:@dadwritestech/thisisfine - Codex / any shell:
npm install -g @dadwritestech/thisisfine
In CI
uses: dadwritestech/thisisfine@v0 runs every promise in a real browser on each pull request, fails the job when one is broken, and posts a behaviour diff: what the PR locked, retired, or broke.
What's in 0.1.0
- Promises locked only on a human's "y", signed with Ed25519, kept in an append-only ledger in git
- Every check proven by breaking the app on purpose before it's locked
- Stop hook that sends the agent back when a promise breaks
thisisfine verifyaudits every lock against the transcript and committed keys- GitHub Action with a PR behaviour diff, updated in place on each push