Docket watch
A subscription on a patent family, $12 a month. Every Monday the AI checks the docket, a watcher acknowledges a date in its last week, and an office action on the family routes to Trademark response at that Service's own price.
legal's wordsmatter is a jobasset is a subjectreview is a tasksigner is a membernetwork is a pooloutcome is a end
A patent family keeps its dates long after the filing. Docket Watch keeps them: a subscription on the family, $12 a month, which provisional-patent.ts names as the family's steward. Its on key routes two things, a schedule that checks the docket every Monday and an event that sends an office action to its own Service.
cat services/docket-watch.tsimport { Service } from 'services.dev'
import { attorneys } from '../pools/attorneys.ts'
import rules from '../rules.ts'
import trademarkResponse from './trademark-response.ts'
// A subscription on the patent family, $12 a month. Every Monday the AI checks the docket, and inside
// the last week before a date on the family, the watcher acknowledges it too. An office action routes to its own Service.
export default Service({
name: 'Docket Watch',
description: 'A docket watched every week, and an office action routed to its response.',
input: { matter: 'text: an application or file number' },
output: { status: 'text', next_due: 'date' },
rules,
subject: { kind: 'patent family', key: 'matter' },
roles: { watcher: { pool: attorneys, pay: { usd: 4, on: 'act' } } },
on: { schedule: { check: 'every monday' }, event: { 'office_action.issued': trademarkResponse } },
deliver: { check: 'ai', ack: { by: 'watcher', when: job => job.clocks.inside('7d') } },
price: { usd: 12, every: 'month' },
})check reads it back. A watcher, a patent attorney or agent from the Pool, acknowledges a date for $4 an act:
npx services.dev checkservices/docket-watch.ts · 10 lines · $12 per month, charged at the start of each month.
roles watcher · patent attorney or agent · * · from attorneys · $4 an act
steps check · ai → ack · patent watcher → review · ai · adversarial
subject patent family · keyed by matter
ledger +$12.00 · AI $0.84 (example) · watcher $4.00 · coverage $4.00 · you $3.16
margin at least $1.60 when the first watcher does ack ($12.00 − $4.00 watcher − $2.40 AI cap − $4.00 coverage) · $0.00 at the ladder's cap, the lower of 50% and what the floor leavesThe rules table marks ack open: acknowledging a date is a delivery act, and the response is its own Service. Like every row, it's illustrative, and law.org.ai sets out positions like it.
cat rules.ts 'docket-watch': {
ack: { open: true, position: 'Acknowledging a date on the docket is a delivery act; the response is its own Service.' },The subscription names both routes, and its next Monday:
→ POST /matters {"service":"docket-watch","matter":"63/000,001","max_usd":12,"key":"watch"}← sbn_7Hq2 · docket-watch · active · cycle 1 · 2026-10-25 → 2026-11-25 · $12.00 per month
schedule check → docket-watch · next 2026-10-26
event office_action.issued → trademark-responseOn a test clock moved eight days, each Monday mints a check, included in the month. ack runs only inside the last week before a date on the family, and no Service in this folder puts a date there yet, so it's skipped:
→ POST /test_clocks/default/advance {"to":"8d"} 2026-10-26 sbn_7Hq2 schedule check → job_7Hq2 docket-watch · $0.00
2026-11-02 sbn_7Hq2 schedule check → job_7Hq3 docket-watch · $0.00
→ GET /owner/matters/job_7Hq2
← job_7Hq2 · accepted · $0
record check · ai | ack · skipped | review · ai · passThe docketing system posts an office action on the family. The watch includes no response, so the event offers Trademark response at its $349, and next is the order to place, keyed to the event:
→ POST /events {"type":"office_action.issued","id":"OA-97123456-1","data":{"matter":"63/000,001","serial":"97123456","action":"office-action.pdf","issued":"2026-10-30","client":{"name":"Ada Lovelace","email":"ada@example.com"}}}← subscription.minted · event office_action.issued → trademark-response offered at $349.00
next order trademark-response {"serial":"97123456","action":"office-action.pdf","issued":"2026-10-30","client":{"name":"Ada Lovelace","email":"ada@example.com"},"max_usd":349,"key":"sbn_7Hq2:event office_action.issued:OA-97123456-1","subscription":"sbn_7Hq2"}The buyer places it. The charge is held, the matter joins the patent family from the subscription, and the subscription lists what it minted:
→ POST /trademark-response {…the next's arguments}← job_7Hq4 · waiting · on party · $349.00 held · from sbn_7Hq2 · on sbj_7Hq2
← sbn_7Hq2 · docket-watch · active · cycle 1 · 2026-10-25 → 2026-11-25 · $12.00 per month
schedule check → docket-watch · next 2026-11-09
event office_action.issued → trademark-response
minted 2026-10-26 schedule check → job_7Hq2 docket-watch · $0.00
minted 2026-11-02 schedule check → job_7Hq3 docket-watch · $0.00
minted 2026-11-02 event office_action.issued → trademark-response offered at $349.00Trademark response answers it from there. Schedules and triggers covers on, and Every month builds one from scratch.