The Agent Work Law: the infrastructure is the authority, not the instruction file
This build is operated by AI agents, and until 4 August 2026 the intelligence that decided what they worked on lived in the wrong place: in hidden Markdown files and in whichever model session happened to be open. This page is the law that
This build is operated by AI agents, and until 4 August 2026 the intelligence that decided what they worked on lived in the wrong place: in hidden Markdown files and in whichever model session happened to be open. This page is the law that replaced that arrangement, and the machinery it describes is live and public. Anyone — a person, an auditor, a competing model — can read the current task state, the acceptance tests, the evidence, the failures and the complete action history without asking anybody for access.
You are a clerk. The infrastructure is the law.
Nothing in a Markdown file — not CLAUDE.md, not STATE.md, not AGENTS.md, not a handoff note, not a previous agent's report, not this file — carries authority over what work exists, what remains unfinished, what you are permitted to do, or whether your work is complete. Those files are pointers. The authority is one canonical object, live on the site, readable by anyone:
Human projection: https://miscsubjects.com/a/the-work-object
Both projections read the same record. There is no copy to keep in sync.
Why this exists
For months the project's operating intelligence lived in a running model's context and in hidden files. The rules were in CLAUDE.md. What remained unfinished was in STATE.md. Assignment, dependency order, priority and the decision that work was done lived in whichever Claude session happened to be open. A fresh agent could not enter the project. A different model could not continue it. An auditor could not check any of it. Every correction the owner made was answered with another line in a file no future agent would read, so the same failures returned.
The migration inverted that. Every operational fact is a row. Every transition is code.
The five rules that bind you
Work exists only as a task object. If it is not a row in the work object, it is not work.
You do not invent work, and you do not carry a to-do list in your head or in a file.
You obtain work by leasing it. You do not choose. POST /api/work/lease hands you the
next eligible task — dependency-resolved, priority-ordered — with a lease token. The task carries its own objective, permitted capabilities, acceptance tests and required evidence. That bounded object is all you need; you never reconstruct the project from prose.
You cannot complete work by saying you completed it. You POST your evidence to
/api/work/task/<id>/submit. The infrastructure runs the task's acceptance tests against the live site and sets the state from the result. accepted:false comes back with the exact test that failed. Your assertion is not an input.
A failure becomes a child task, not a sentence in a report.
POST /api/work/task/<id>/fail with the failure class, the infrastructure layer that permitted it, and the invariant that should have prevented it. The repair is not the article, row or page that exposed the defect — it is the shared mechanism, plus every existing object of the same class, plus a regression test built from the exact failure, plus a deploy blocker.
Every action is appended, never overwritten. Each lease, note, submission, acceptance,
refusal and repair is one hash-chained row in work_actions, carrying who acted, which model, which capability authorised it, the task revision, the exact input and output, what changed, the tests run, the evidence and the verdict. Corrections append a revision naming what they supersede. The full chain is public at /api/work/audit.
# 1. read the object (public, no credential)curl -sS https://miscsubjects.com/api/work | jq '{objective, counts, next_eligible_action}'
# 2. lease the next taskcurl -sS -X POST https://miscsubjects.com/api/work/lease \
-H 'content-type: application/json' \
-d '{"agent":"<your name>","model":"<your model id>","capability_token":"<scoped token>"}'
# 3. do exactly what the task says, using only the capabilities it lists# 4. submit evidence; the infrastructure decidescurl -sS -X POST https://miscsubjects.com/api/work/task/WT-0001/submit \
-H 'content-type: application/json' \
-d '{"agent":"<your name>","lease_token":"<from step 2>",
"evidence":{"rendered_url":"https://miscsubjects.com/a/...","sources_added":"..."},
"changed":["/a/..."]}'
# 5. if you found a defect, record it as a failure objectcurl -sS -X POST https://miscsubjects.com/api/work/task/WT-0001/fail \
-H 'content-type: application/json' \
-d '{"agent":"<your name>","failure":{"failure_class":"...","layer":"...","missing_invariant":"..."}}'
Line 21, Column 1Shell Script
Reads are public. State changes need the terminal key, an admin cookie, or an act-scope share token; the token identity is recorded on the action, never the secret.
What the task object contains
task_id, objective, detail, state, priority, depends_on, permitted_capabilities, acceptance_tests, required_evidence, parent_task, supersedes, failure, failure_count, last_result, lease, revision, created_at, updated_at, and the two URLs you need: audit and submit_to.
The states, and who moves them
open → leased → in_progress → evidence_submitted → accepted → completed, with refused, failed and repair_required as the branches. Transitions are declared in functions/_lib/work_object.js and enforced there. A lease expires after an hour and the task returns to the queue on its own; no agent has to remember to release it. Nothing an agent writes in prose moves a state.
Content law still applies, and it is also enforced
The write path refuses violations server-side with a 422 that names the fix, so you learn the law by hitting it rather than by remembering it:
one object per article — a compound page carries no condition frame (one_object_guard.js)
no model signature in a body
no test-shaped titles, no model self-introduction, no hashtag blocks
plain language over the body and the claims, checked in the deploy chain
an authored body always beats the slot composer
The governing invariants are listed in full, live, inside the work object.
What you must never do
Add a rule to CLAUDE.md, STATE.md, AGENTS.md or a handoff file and call it a fix.
Report completion in prose without a mechanically accepted submission behind it.
Repair only the object that exposed a defect.
Trust another agent's final report, or your own memory, as evidence.
Write to the database directly for ordinary work. The guarded write path is the door; direct SQL
is a repair capability and every use of it is a bypass listed in the work object.
The work object — human projection“The same record as /api/work, rendered for a reader: tasks, state machine, invariants, audit head and the unresolved bypasses.”
The governing invariants“54 enabled law rows, each with its level, category, rule and rationale, exposed inside the work object.”
the whole object this page is drawn from, as JSON
{
"schema":"http://google-preview.miscsubjects.com/schemas/jarticle.json",
"status":"published",
"slug":"agent-work-law",
"title":"The Agent Work Law: the infrastructure is the authority, not the instruction file",
"kind":"system",
"summary":"This build is operated by AI agents, and until 4 August 2026 the intelligence that decided what they worked on lived in the wrong place: in hidden Markdown files and in whichever model session happened to be open. This page is the law that",
"created":"2026-08-06T07:33:28.985Z",
"body": [
"This build is operated by AI agents, and until 4 August 2026 the intelligence that decided what they worked on lived in the wrong place: in hidden Markdown files and in whichever model session happened to be open. This page is the law that replaced that arrangement, and the machinery it describes is live and public. Anyone — a person, an auditor, a competing model — can read the current task state, the acceptance tests, the evidence, the failures and the complete action history without asking anybody for access.\n\nYou are a clerk. The infrastructure is the law.\n\nNothing in a Markdown file — not CLAUDE.md, not STATE.md, not AGENTS.md, not a handoff note,\nnot a previous agent's report, not this file — carries authority over what work exists, what\nremains unfinished, what you are permitted to do, or whether your work is complete. Those files\nare pointers. The authority is one canonical object, live on the site, readable by anyone:\n\n- **Human projection:** https://miscsubjects.com/a/the-work-object\n- **Machine projection:** https://miscsubjects.com/api/work\n- **Cold start:** https://miscsubjects.com/api/work/bootstrap\n\nBoth projections read the same record. There is no copy to keep in sync.\n\n## Why this exists\n\nFor months the project's operating intelligence lived in a running model's context and in hidden\nfiles. The rules were in CLAUDE.md. What remained unfinished was in STATE.md. Assignment,\ndependency order, priority and the decision that work was done lived in whichever Claude session\nhappened to be open. A fresh agent could not enter the project. A different model could not\ncontinue it. An auditor could not check any of it. Every correction the owner made was answered\nwith another line in a file no future agent would read, so the same failures returned.\n\nThe migration inverted that. Every operational fact is a row. Every transition is code.\n\n## The five rules that bind you\n\n1. **Work exists only as a task object.** If it is not a row in the work object, it is not work.\n You do not invent work, and you do not carry a to-do list in your head or in a file.\n\n2. **You obtain work by leasing it.** You do not choose. `POST /api/work/lease` hands you the\n next eligible task — dependency-resolved, priority-ordered — with a lease token. The task\n carries its own objective, permitted capabilities, acceptance tests and required evidence.\n That bounded object is all you need; you never reconstruct the project from prose.\n\n3. **You cannot complete work by saying you completed it.** You `POST` your evidence to\n `/api/work/task/<id>/submit`. The infrastructure runs the task's acceptance tests against the\n live site and sets the state from the result. `accepted:false` comes back with the exact test\n that failed. Your assertion is not an input.\n\n4. **A failure becomes a child task, not a sentence in a report.**\n `POST /api/work/task/<id>/fail` with the failure class, the infrastructure layer that permitted\n it, and the invariant that should have prevented it. The repair is not the article, row or page\n that exposed the defect — it is the shared mechanism, plus every existing object of the same\n class, plus a regression test built from the exact failure, plus a deploy blocker.\n\n5. **Every action is appended, never overwritten.** Each lease, note, submission, acceptance,\n refusal and repair is one hash-chained row in `work_actions`, carrying who acted, which model,\n which capability authorised it, the task revision, the exact input and output, what changed,\n the tests run, the evidence and the verdict. Corrections append a revision naming what they\n supersede. The full chain is public at `/api/work/audit`.\n\n## The loop, exactly\n\n```bash\n# 1. read the object (public, no credential)\ncurl -sS https://miscsubjects.com/api/work | jq '{objective, counts, next_eligible_action}'\n\n# 2. lease the next task\ncurl -sS -X POST https://miscsubjects.com/api/work/lease \\\n -H 'content-type: application/json' \\\n -d '{\"agent\":\"<your name>\",\"model\":\"<your model id>\",\"capability_token\":\"<scoped token>\"}'\n\n# 3. do exactly what the task says, using only the capabilities it lists\n\n# 4. submit evidence; the infrastructure decides\ncurl -sS -X POST https://miscsubjects.com/api/work/task/WT-0001/submit \\\n -H 'content-type: application/json' \\\n -d '{\"agent\":\"<your name>\",\"lease_token\":\"<from step 2>\",\n \"evidence\":{\"rendered_url\":\"https://miscsubjects.com/a/...\",\"sources_added\":\"...\"},\n \"changed\":[\"/a/...\"]}'\n\n# 5. if you found a defect, record it as a failure object\ncurl -sS -X POST https://miscsubjects.com/api/work/task/WT-0001/fail \\\n -H 'content-type: application/json' \\\n -d '{\"agent\":\"<your name>\",\"failure\":{\"failure_class\":\"...\",\"layer\":\"...\",\"missing_invariant\":\"...\"}}'\n```\n\nReads are public. State changes need the terminal key, an admin cookie, or an act-scope share\ntoken; the token identity is recorded on the action, never the secret.\n\n## What the task object contains\n\n`task_id`, `objective`, `detail`, `state`, `priority`, `depends_on`, `permitted_capabilities`,\n`acceptance_tests`, `required_evidence`, `parent_task`, `supersedes`, `failure`, `failure_count`,\n`last_result`, `lease`, `revision`, `created_at`, `updated_at`, and the two URLs you need:\n`audit` and `submit_to`.\n\n## The states, and who moves them\n\n`open → leased → in_progress → evidence_submitted → accepted → completed`, with `refused`,\n`failed` and `repair_required` as the branches. Transitions are declared in\n`functions/_lib/work_object.js` and enforced there. A lease expires after an hour and the task\nreturns to the queue on its own; no agent has to remember to release it. Nothing an agent writes\nin prose moves a state.\n\n## Content law still applies, and it is also enforced\n\nThe write path refuses violations server-side with a 422 that names the fix, so you learn the law\nby hitting it rather than by remembering it:\n\n- one object per article — a compound page carries no condition frame (`one_object_guard.js`)\n- no model signature in a body\n- no test-shaped titles, no model self-introduction, no hashtag blocks\n- plain language over the body **and** the claims, checked in the deploy chain\n- an authored body always beats the slot composer\n\nThe governing invariants are listed in full, live, inside the work object.\n\n## What you must never do\n\n- Add a rule to CLAUDE.md, STATE.md, AGENTS.md or a handoff file and call it a fix.\n- Report completion in prose without a mechanically accepted submission behind it.\n- Repair only the object that exposed a defect.\n- Trust another agent's final report, or your own memory, as evidence.\n- Write to the database directly for ordinary work. The guarded write path is the door; direct SQL\n is a repair capability and every use of it is a bypass listed in the work object."
],
"facts": {
"converted_from":"markdown",
"original_updated":"2026-08-04T23:31:21.691Z",
"register":"essay",
"category":"system"
},
"model":"unattributed",
"tags": [
"governance",
"agents",
"work-object",
"infrastructure",
"audit"
],
"sources": [
{
"id":"s1",
"type":"live_surface",
"url":"https://miscsubjects.com/api/work",
"title":"The work object — machine projection",
"quote":"Every task, invariant, acceptance test, piece of evidence and failure that governs this build, as JSON.",
"accessed_at":"2026-08-04T23:31:21.691Z",
"prev":"genesis",
"hash":"8885ebcfb151159327948c808fd1ecfcc866e8723a72cd23686789741712c6ef",
"quote_sha256":"4257bc691d68c509717a10506824b3a4c295d311d83d00865f35ef25e8742ff4"
},
{
"id":"s2",
"type":"live_surface",
"url":"https://miscsubjects.com/api/work/bootstrap",
"title":"Cold-start contract for an agent with no prior context",
"quote":"Everything an agent needs to start working on this build with no prior conversation, no CLAUDE.md, no STATE.md, no AGENTS.md and no previous agent's report.",
"accessed_at":"2026-08-04T23:31:21.691Z",
"prev":"8885ebcfb151159327948c808fd1ecfcc866e8723a72cd23686789741712c6ef",
"hash":"411a1d593eef342222981af0072245271dc3626fbfe3d213a753841162576469",
"quote_sha256":"b0b501b719caae45adde0720fd2f2bfcda553aa6aa81295742c9bb57c08f8f1c"
},
{
"id":"s3",
"type":"live_surface",
"url":"https://miscsubjects.com/api/work/audit",
"title":"The append-only, hash-chained action log",
"quote":"Each row hashes prev_hash plus its payload. Nothing is updated or deleted.",
"accessed_at":"2026-08-04T23:31:21.691Z",
"prev":"411a1d593eef342222981af0072245271dc3626fbfe3d213a753841162576469",
"hash":"4463258321be0cd2213db9a54c6280f0618e903e4a4f23aaeed3fd992c77fc38",
"quote_sha256":"0a9d0a0bd8e166d3614a92b961083656686c25b93a7a996f83e1772e0c8a44e9"
},
{
"id":"s4",
"type":"live_surface",
"url":"https://miscsubjects.com/a/the-work-object",
"title":"The work object — human projection",
"quote":"The same record as /api/work, rendered for a reader: tasks, state machine, invariants, audit head and the unresolved bypasses.",
"accessed_at":"2026-08-04T23:31:21.691Z",
"prev":"4463258321be0cd2213db9a54c6280f0618e903e4a4f23aaeed3fd992c77fc38",
"hash":"250a52d99c34ac6439a90750bd9b964c465d2ab15a711d6edfe0eb37dd75fc63",
"quote_sha256":"f6b38f53151de7d79042a4120c84fc0a005d5e14a7df0712c181618d732fb7b3"
},
{
"id":"s5",
"type":"live_surface",
"url":"https://miscsubjects.com/api/laws",
"title":"The governing invariants",
"quote":"54 enabled law rows, each with its level, category, rule and rationale, exposed inside the work object.",
"accessed_at":"2026-08-04T23:31:21.691Z",
"prev":"250a52d99c34ac6439a90750bd9b964c465d2ab15a711d6edfe0eb37dd75fc63",
"hash":"bcec12ba566991e4bccbc147bdd83c9dabab51f83abd741aa379ed9b28f43e4b",
"quote_sha256":"4da98ff0702cd73c79ea43cda2b2d526cf1efb0b3e6b4782fa2c92c7140a4873"
}
],
"claims": [
{
"id":"c1",
"text":"Work exists only as a task object. If it is not a row in work_tasks, it is not work.",
"section":"what_it_is",
"tier":"regulatory",
"source_ids": [
"s1"
]
},
{
"id":"c2",
"text":"An agent obtains work by leasing a task object; dependency order and priority are computed by the infrastructure, not chosen by the agent.",
"section":"mechanism",
"tier":"regulatory",
"source_ids": [
"s1",
"s2"
]
},
{
"id":"c3",
"text":"An agent cannot complete a task by asserting completion. It submits evidence, and the infrastructure runs the task's acceptance tests against live surfaces and sets the state from the result.",
"section":"mechanism",
"tier":"regulatory",
"source_ids": [
"s1"
]
},
{
"id":"c4",
"text":"Every lease, note, submission, acceptance, refusal and repair appends one hash-chained row carrying the agent, the model, the authorising capability identity, the task revision, the exact input and output, the tests run and the verdict.",
"section":"mechanism",
"tier":"regulatory",
"source_ids": [
"s3"
]
},
{
"id":"c5",
"text":"A failure becomes a child task naming its failure class, the infrastructure layer that permitted it, the missing invariant, the repair, the regression test, the deploy blocker and the runtime evidence.",
"section":"mechanism",
"tier":"regulatory",
"source_ids": [
"s1"
]
},
{
"id":"c6",
"text":"CLAUDE.md, STATE.md and AGENTS.md carry no rules, no state and no priorities. They contain a pointer to the canonical object and nothing else.",
"section":"what_is_known",
"tier":"regulatory",
"source_ids": [
"s2",
"s4"
]
},
{
"id":"c7",
"text":"Every path that can still change state without passing the work object is listed inside the work object itself, so the gap is a record rather than a claim in a chat message.",
"section":"limitations",
"tier":"regulatory",
"source_ids": [
"s1",
"s4"
]
}
],
"type":"article",
"updated":"2026-10-08T11:31:25.980Z",
"version":1,
"hash":"b35f5c6a2e492329227b9a70264d52d46d1ada873185a6ace98dbdc2c045b1db",
"styling": {
"scope":"shared",
"how":"no value on the page is set by hand: each comes from this theme, and each theme value becomes the CSS variable named beside it. PATCH http://google-preview.miscsubjects.com/api/jarticles/theme changes them.",
"widget_style": {
"what":"every widget may carry style: {…}; these are the only keys it reads",
"rotate":"degrees, a number",
"offset_x":"pixels, a number",
"offset_y":"pixels, a number",
"pulse":"true to pulse"
},
"theme": {
"color": {
"page_bg":"#f5f5f7",
"sheet_bg":"#ffffff",
"ink":"#1d1d1f",
"soft":"#424245",
"muted":"#6e6e73",
"dim":"#86868b",
"line":"#d2d2d7",
"accent":"#0071e3",
"accent_soft":"rgba(0,113,227,0.08)",
"link":"#0066cc",
"selection":"rgba(0,113,227,0.18)",
"widget_bg":"#f5f5f7",
"widget_border":"#d2d2d7",
"card_bg":"#ffffff",
"code_bg":"#f5f5f7",
"json_bg":"#161b19",
"json_ink":"#e6e1d4",
"json_key":"#7fd3c3",
"json_string":"#e9c46a",
"json_number":"#f4a261",
"json_bool":"#c792ea",
"json_null":"#928d7e",
"json_punct":"#6b6759",
"json_bar":"#0e1512",
"kind_badge_bg":"#0e6e60",
"kind_badge_ink":"#ffffff"
},
"color_dark": {
"page_bg":"#000000",
"sheet_bg":"#1d1d1f",
"ink":"#f5f5f7",
"soft":"#d2d2d7",
"muted":"#a1a1a6",
"dim":"#86868b",
"line":"#424245",
"accent":"#2997ff",
"accent_soft":"rgba(41,151,255,0.12)",
"link":"#2997ff",
"selection":"rgba(41,151,255,0.25)",
"widget_bg":"#2c2c2e",
"widget_border":"#424245",
"card_bg":"#1d1d1f",
"code_bg":"#2c2c2e",
"json_bg":"#0a0d0c",
"json_ink":"#e6e1d4",
"json_key":"#7fd3c3",
"json_string":"#e9c46a",
"json_number":"#f4a261",
"json_bool":"#c792ea",
"json_null":"#757062",
"json_punct":"#5d665f",
"json_bar":"#060807",
"kind_badge_bg":"#4fc1ab",
"kind_badge_ink":"#0b0f0d"
},
"font": {
"display":"-apple-system,BlinkMacSystemFont,\"SF Pro Display\",\"SF Pro Text\",\"Helvetica Neue\",Helvetica,Arial,sans-serif",
"body":"-apple-system,BlinkMacSystemFont,\"SF Pro Display\",\"SF Pro Text\",\"Helvetica Neue\",Helvetica,Arial,sans-serif",
"mono":"ui-monospace,SFMono-Regular,\"SF Mono\",Menlo,Consolas,monospace",
"google_fonts":""
},
"size": {
"body":"17px",
"small":"17px",
"eye":"17px",
"lead":"17px",
"h1":"52px",
"h2":"34px",
"h3":"22px",
"byline":"17px",
"h1_measure":"none",
"code":"17px",
"json":"17px",
"widget_title":"17px"
},
"leading": {
"body":"1.7",
"head":"1.18",
"lead":"1.5",
"json":"1.6"
},
"weight": {
"display":"700",
"head":"700",
"body":"400",
"strong":"700",
"eye":"700"
},
"tracking": {
"eye":"0.14em",
"display":"-0.03em",
"body":"-0.006em",
"badge":"0.08em"
},
"layout": {
"sheet_width":"1000px",
"text_width":"880px",
"gutter":"16px",
"sheet_padding":"56px 64px 64px",
"sheet_padding_mobile":"24px 18px 40px",
"sheet_margin":"28px auto 72px",
"block_gap":"1.15em",
"widget_gap":"28px",
"grid_gap":"14px"
},
"border": {
"sheet":"0px solid",
"sheet_radius":"30px",
"widget":"1px solid",
"widget_radius":"24px",
"card_radius":"24px",
"badge_radius":"999px",
"rule":"1px solid",
"code_radius":"18px",
"accent_bar":"3px"
},
"shadow": {
"sheet":"0 1px 1px rgba(0,0,0,.02),0 6px 26px rgba(0,0,0,.05)",
"widget":"none",
"card_hover":"0 10px 28px -16px rgba(28,27,23,0.35)"
},
"motion": {
"hover":"160ms ease"
}
}
},
"page":"http://google-preview.miscsubjects.com/a/agent-work-law",
"json":"http://google-preview.miscsubjects.com/a/agent-work-law.json",
"markdown":"http://google-preview.miscsubjects.com/a/agent-work-law.md",
"theme":"http://google-preview.miscsubjects.com/article-theme.json",
"calls": [
{
"what":"this article as a page (no key)",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/a/agent-work-law",
"headers": {}
},
{
"what":"this article as its object (no key)",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/a/agent-work-law.json",
"headers": {}
},
{
"what":"this article as Markdown (no key)",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/a/agent-work-law.md",
"headers": {}
},
{
"what":"the object with its hash, drafts too",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/api/jarticles/agent-work-law",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)"
}
},
{
"what":"one piece and that piece’s hash",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/api/jarticles/agent-work-law/at?path=facts",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)"
}
},
{
"what":"grep: every key or value that matches, with the path to change it",
"method":"GET",
"url":"http://google-preview.miscsubjects.com/api/jarticles/agent-work-law/grep?q=owner",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)"
}
},
{
"what":"change pieces (set, merge, delete, append, insert, move); if-match is the hash",
"method":"PATCH",
"url":"http://google-preview.miscsubjects.com/api/jarticles/agent-work-law",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json",
"if-match":"<hash from the read>"
},
"body": {
"ops": [
{
"op":"set",
"path":"facts.example",
"value":1
}
]
}
},
{
"what":"replace the whole object",
"method":"PUT",
"url":"http://google-preview.miscsubjects.com/api/jarticles/agent-work-law",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json",
"if-match":"<hash>"
},
"body": {
"slug":"agent-work-law",
"title":"…"
}
},
{
"what":"fetch every source, hash what came back and check the quote is in it",
"method":"POST",
"url":"http://google-preview.miscsubjects.com/api/jarticles/agent-work-law/verify",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json"
},
"body": {}
},
{
"what":"an Obsidian-style command",
"method":"POST",
"url":"http://google-preview.miscsubjects.com/api/jarticles/cli",
"headers": {
"x-sheets-key":"$(cat /Users/cyrusmassoumi/.misc-sheets-key)",
"content-type":"application/json"
},
"body": {
"command":"backlinks",
"file":"agent-work-law"
}
}
]
}