A terminal is a verifiable outcome — a specific, binary condition the code must satisfy before it ships. Not a test. Not a feeling. A finite result based on the actual intent of the feature. XFDB checks every terminal, tells Claude what's unmet, loops until they're all green, and only then calls it done.
Connect with GitHub — it's freeA terminal is not a unit test. It's a finite, binary outcome that describes what the feature is supposed to do: 'Google OAuth redirects to /dashboard.' 'Email validation fires on blur.' 'Session persists across page refresh.' Met or unmet. No ambiguity. You define them. XFDB verifies them.
Write your terminals in a spec file before building. XFDB reads the spec and verifies the implementation against each terminal. The spec is the contract. The implementation either satisfies it or it doesn't. 'Looks right' is not a terminal. 'Renders without errors' is.
XFDB doesn't just report. It gives Claude a fix target for every unmet terminal. Claude fixes. XFDB re-runs. Loop continues until every terminal is green. You don't call it done — XFDB does, when the spec is fully met.
Unmet terminals come with a description of exactly what's missing in the implementation. Not 'test failed.' Not 'assertion error.' 'Google OAuth redirects to /dashboard — redirect handler missing.' Claude gets a concrete action, not a vague failure.
Run /xfdb before pushing. It reads your spec, checks every terminal, and returns the full report in seconds. Gate your ship on XFDB green. No green, no ship.
The spec-sync hook watches your source files. When a file that a terminal depends on is edited, XFDB re-runs that terminal automatically. Your spec stays in sync with your implementation — you don't have to remember to check.
Define terminals in your spec file — each is a binary outcome the feature must satisfy.
/xfdb fires — reads the spec, checks each terminal against the implementation.
Met terminals listed with ✓. Unmet listed with ✗ and what's missing.
Claude receives fix targets for every unmet terminal.
Claude fixes. /xfdb re-runs automatically.
Loop continues until all terminals are green. Then and only then: ship.