feat(human-goat): add human-goat#1435
Conversation
|
@greptileai review Auto-nudge from |
Greptile SummaryThis PR adds
Confidence Score: 4/5Safe to merge with one known coordination gap between the status and cancel commands that should be fixed to avoid agent workflow failures. The status command's ID field for TaskRabbit rows comes from the top-level string "id" JSON field, while the cancel command requires the numeric details.id. When these differ in the API response, an agent that calls status to discover booking IDs and then passes one to cancel will get a "must be numeric" rejection. The rest of the novel commands — hire, cancel, spend, dispatch, watch, best — are well-implemented, and all three issues flagged in the previous review round have been correctly addressed. library/productivity/human-goat/internal/cli/status.go — the TaskRabbit ID surfaced in the status row should be the numeric job_id rather than the string id to be compatible with cancel. Important Files Changed
|
… paginated+CSRF-guarded cancel, all-in spend totals
|
Addressed all four findings in 459b49a:
go build/vet/test all pass; one patch entry recorded under |
|
@greptileai review Auto-nudge from |
…abbit, persist+live-refresh Magic requests
|
@greptileai review Auto-nudge from |
…efers billed amounts and scales hourly estimate by booked duration
|
Addressed the two Reviews (3) findings in 1c12c9a:
go build/vet/test + full live dogfood (120/0) all pass. |
|
@greptileai review Auto-nudge from |
…irmation; bind watch poll context to --max-wait deadline
|
Addressed the Reviews (4) finding (+ the watch note) in 81130bf:
go build/vet/test + full live dogfood (120/0) all pass. |
|
@greptileai review Auto-nudge from |
…s aren't truncated; spend --state applies CA/MA carve-out
|
Addressed the Reviews (5) findings in 9c64718:
|
|
@greptileai review Auto-nudge from |
…'no opening' exit, still surfaces user cancel
|
Addressed the Reviews (6) watch finding in e8c24ea (this was a regression from my earlier context-binding change): the poll loop now maps its own |
|
@greptileai review Auto-nudge from |
…y-run warns on date substitution
|
Addressed the Reviews (7) findings in 673ad27:
Full live dogfood 120/0. |
|
@greptileai review Auto-nudge from |
… availability; cancel reports refundability from the actual 24h window
|
Addressed the Reviews (8) financial-correctness findings in e812137:
Full live dogfood 120/0. |
|
@greptileai review Auto-nudge from |
…abels estimate); status --open help clarifies TaskRabbit is active-only
|
Addressed the two residual P2 gaps in 4b29a7e:
Full live dogfood 120/0. |
|
@greptileai review Auto-nudge from |
|
@greptileai review Auto-nudge from |
human-goat
Hire real humans from the terminal — autonomous TaskRabbit checkout with a verified undo, plus Magic remote errands, in one agent-native binary.
API: human-goat | Category: productivity | Press version: 4.27.1
Spec: Reverse-engineered (TaskRabbit cookie/tRPC + Magic REST); internal YAML spec
Publication Path
New print
CLI Shape
Novel Commands
hirecancelhirebestdispatchspendwatchstatusWhat This CLI Does
One binary,
goat, that dispatches real-world tasks to real humans across two backends: TaskRabbit for in-person local labor (moving, assembly, mounting, cleaning) and Magic for remote errands (calls, lookups, bookings). The headline is autonomous soup-to-nuts hire on TaskRabbit — searched, ranked by honest all-in price and review quality, and checked out against the card on file — made safe by a spend cap and acancelthat verifies the cancellation landed. Cross-sourcedispatch/track/spendlet you say what you want done and route to the right human network.Manuscripts
Validation Results
Publish Live Gate
Full live dogfood reran at publish time and passed (120 tests, 0 failed) against the real TaskRabbit + Magic APIs. Side-effect commands (
hire,send,call,reply) short-circuit under the dogfood env; the autonomoushire+cancelround-trip was separately proven live end-to-end (booked + cancelled + verified refundable).Notes
.printing-press-patches/:pp:happy-argson the generated learning-loop commands (teach/teach-pattern/teach-playbook/playbook amend) so the live dogfood matrix can exercise them (generator/dogfood retro candidate).hire's real checkout requires a geocoded--address-json(incl. TaskRabbitmetro_id);--dry-runpreviews without it.