gibbon

Three inputs. One pure function.

Every decision that can move money is made in computePlan: no network, no clock, no disk.

  • the middle file is why you never type a UUID
  • 100 offline tests

bounties.yamlwhat you want

- id: fix-142 title: "Fix memory leak" amount: "1.00"

.gibwork/state.jsonwhat you made

"fix-142": { "taskId": "3f9c8a21-…"}

gibwork, livewhat exists

3f9c8a21-…Fix memory leak1.00 USDC, open

computePlan()

  • create
  • update
  • refund
  • blocked
  • unchanged
The whole decision table
in filetrackedon gibworkresult
yesnoanythingcreate
yesyesidenticalunchanged
yesyescontent, deadline or verified-only differsupdate
yesyestitle, tags, amount or mint differsblocked
yesyesmissing, closed or refundedblocked
noyesopen and refundablerefund
noyesopen, escrow held by submissionsblocked
noyesalready closeddropped
nonolive, posted some other wayignored

Module map, the create sequence and the recovery verdicts are in the README.