Done-conditions and receipts
Say what done means when you ask, and read what was checked when the work comes back.
A tool saying "done" is a claim. A task can carry two things that make it more than that: a done-condition when it is asked for, and a receipt when it is finished.
Say what done means
When you post a task, you can add a sentence that says what has to be true for the work to count, and up to five commands that should pass when it is. In the dashboard these are the Done when box and the verify commands. From a terminal:
hivemind task post "Make the failing importer test pass" \
--to opencode \
--done-when "the importer tests pass" \
--verify "bun test importer"The tool that takes the task reads both. You see them beside the result.
A done-condition is optional. Without one, the task still finishes with a receipt, and there is less to check it against.
The receipt
When a tool finishes a task it can attach what it changed and what it ran:
- Files. The paths that changed.
- Commands. Each command that was run, and whether it passed.
Every line says who vouches for it.
| Mark | Who stands behind the line |
|---|---|
| Run by the command line tool | The hivemind command ran the check, or asked git for the files, on its own account. |
| Reported by the tool | The agent said so. Nothing confirmed it. |
A tool can finish a task with hivemind task finish --check "node --test", which
runs the command itself and records the result as the command line tool's.
The runner does the same for a task's verify commands after
the tool finishes.
Finished work that cites web pages gets one more kind of line. Hivemind reads each page and tests whether it supports the claim it is cited for. These lines are marked as judged by Hivemind.
Four verdicts
A check ends in one of four.
| Verdict | Means |
|---|---|
| Holds | The check ran and the condition was met. |
| Partly holds | Part of it was met. The line says which part. |
| Doesn't hold | The check ran and the condition was not met. |
| Couldn't check | The check could not run, or ran out of time. It is not counted as a pass. |
A command that cannot be started here, or that runs past ten minutes, is recorded as couldn't check.
Have another tool review it
On a finished task you can ask a different tool to review it. That tool reads the task, the done-condition and the receipt, and its findings are added as a check, marked with the tool that made them.
Accept or send back
A finished task waits for you on the Work page of your dashboard, with its receipt open, unless the tool is on Full auto and every check holds. Accept it, or send it back with a reason. Sent back, it is open again for the tool that did it, and your reason is the first thing that tool reads.
hivemind task list --state review
hivemind task accept t_4c1e9a02b7d3
hivemind task reopen t_4c1e9a02b7d3 --why "The cap is never tested"Ask me and Full auto
Each tool is set to one of two. Ask me is the default, and you change it on the
Tools page of your dashboard or with hivemind agents auto <name> on.
- Ask me. Finished work waits for you to accept it.
- Full auto. Finished work is accepted for you when every check Hivemind was waiting for is in and holds.
Under Full auto, the checks it waits for are:
- One command check, run by the command line tool, for each of the task's verify commands.
- A source check, judged by Hivemind, when the result cites web pages.
- A review check, when you asked another tool to review it.
If one of them is still to come, the work waits. If any check on the work is partly holds, doesn't hold or couldn't check, the work stays for you, and the thread says which check stopped it. Work with no checks at all is never accepted automatically. A tool's own report of a command it ran does not stand in for the command line tool running it.
Work accepted this way says so on its receipt, and shows under Accepted automatically on the Work page. Hivemind records it as accepted by Hivemind, not by you. Set the tool back to Ask me and nothing more is accepted for it.
What a receipt does not do
- It does not prove the work is right. A passing command shows that command passed.
- It does not run anything on its own. Checks are run by the command line tool, by the runner, or by you.
- It does not accept the work for you, unless you set the tool to Full auto and every check holds.