Eligibility

The running jobjob_7Hq2 · waiting · on approval · $49.00 held

Seven predicates, in order, decide whether a member may take a Task, and a work register adds two. The first one they fail is the answer, with its cure, and no tier overrides it.

#PredicateNeedsCure
1credential<credential>Finish /join: the verifier checks the application before any Task is offered.
1credential<credential>Renew <credential>; the verifier writes it once it checks.
2region<credential> in <region>Add <region> to your regions at /join; the verifier checks the admission.
3coverage<amount> of coverage in force per actRenew the policy; the verifier writes the new term.
4availabilityavailability onSet your availability to on.
4availabilityverified facts fresh at useThe verifier rechecks your facts; nothing waits on you.
5separationa member who did not do <role>None: another member takes this one.
5separationthe member who did <role>None: the member who did it takes this one.
5separationseparation: recused from <subject>None: you stepped aside, and another member takes it.
6conflictno party in your conflicts ledgerNone for this Task: your ledger stays yours, and no one learns which entry matched.
7clearanceeach statement attested: <statements>Send each statement in attest, word for word.
8in_rangein a work register: the site within your radius of your baseWiden your radius at /join, or set a base nearer the work.
9window_freein a work register: the window, and 30 minutes either side, free of every window you holdGive back a window you hold before notice, or wait for the next Task.
MemberBranch
mbr_eligibleA member who holds every credential the Pool names, everywhere, with coverage in force: eligible for every Task, and the last member a cascade offers one to.
mbr_lapsed_credentialA member whose credential has lapsed: ineligible, on the credential predicate.
mbr_lapsed_coverageA member whose coverage lapsed yesterday: ineligible, on the coverage predicate.
mbr_out_of_regionA member admitted only in ZZ, a region no job names: ineligible on the region predicate wherever an act needs a region.
Call
→ POST /matters {"service":"contract-review","contract":"lease.pdf","client":{"name":"Ada Lovelace","email":"signs@example.test"},"client_region":"US-CA","max_usd":99,"key":"lease-ca"}
magic values: client.email = signs@example.test, member = mbr_lapsed_credential, member = mbr_out_of_region, member = mbr_lapsed_coverage, member = mbr_eligible
← job_7Hq2 · waiting · on claim · $99.00 held · advise · tsk_7Hq2

→ POST /reviews/tsk_7Hq2/claim   # as mbr_lapsed_credential
← 403 ineligible · credential: attorney needs bar admission, and the verifier holds no current one for mbr_lapsed_credential.
  cure  Renew bar admission; the verifier writes it once it checks.

→ POST /reviews/tsk_7Hq2/claim   # as mbr_out_of_region
← 403 ineligible · region: attorney needs bar admission in US-CA, and mbr_out_of_region holds it in ZZ.
  cure  Add US-CA to your regions at /join; the verifier checks the admission.

→ POST /reviews/tsk_7Hq2/claim   # as mbr_lapsed_coverage
← 403 ineligible · coverage: attorney needs $1,000,000 of coverage in force per act, and mbr_lapsed_coverage's policy lapsed on 2026-10-24.
  cure  Renew the policy; the verifier writes the new term.

→ POST /reviews/tsk_7Hq2/claim   # as mbr_eligible
← 200 tsk_7Hq2 · claimed · attorney · advise · US-CA · $50.00 · 45 min · $66.67 an hour · due 2026-10-27 14:02
Run
grep -E "coverage:|dispatch:" pools/attorneys.ts
magic values: client.email = signs@example.test, member = mbr_lapsed_credential, member = mbr_out_of_region, member = mbr_lapsed_coverage, member = mbr_eligible
  coverage: { per_act: 1_000_000, by: 'member', usd: 4 },
  dispatch: 'feed', affinity: '30d', rank: ['fit', 'track', 'speed'],

→ POST /matters {"service":"contract-review","contract":"lease.pdf","client":{"name":"Ada Lovelace","email":"signs@example.test"},"client_region":"US-CA","max_usd":99,"key":"lease-ca"}
← job_7Hq2 · waiting · on claim · $99.00 held · advise · tsk_7Hq2

→ POST /reviews/tsk_7Hq2/claim   # as mbr_lapsed_credential
← 403 ineligible · credential: attorney needs bar admission, and the verifier holds no current one for mbr_lapsed_credential.
  cure  Renew bar admission; the verifier writes it once it checks.
CodeCategoryHTTPWhy
ineligibleblocked403The member can't take this Task: the answer names the first eligibility predicate they fail, and its cure.
task_takenconflict409Another member holds this Task, or has it offered to them first.