{
  "protocol": "OIP",
  "version": "1.2.0",
  "kind": "ask",
  "question": "write an article",
  "count": 12,
  "best": {
    "key": "PROTOCOL_WRITE",
    "run_now": "https://miscsubjects.com/api/dispatch?invoke=PROTOCOL_WRITE&body=BPC-157%20mechanisms%20and%20evidence&share=<TOKEN>",
    "do": "Open run_now to do it. Substitute your own text/args where the example has them."
  },
  "matches": [
    {
      "key": "PROTOCOL_WRITE",
      "recommended": true,
      "what": "Create, revise, or enrich an article via /api/protocol/write, /api/protocol/revise, or /api/protocol/populate.",
      "when_to_use": "the user asks for an article, wants it revised, or wants more sources/widgets added.",
      "category": "system",
      "runner": "fn",
      "example": "[PROTOCOL_WRITE]BPC-157 mechanisms and evidence[/PROTOCOL_WRITE]",
      "example_args": "BPC-157 mechanisms and evidence",
      "example_source": "curated",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=PROTOCOL_WRITE&body=BPC-157%20mechanisms%20and%20evidence&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "PROTOCOL_WRITE",
          "body": "BPC-157 mechanisms and evidence"
        },
        "router": "[PROTOCOL_WRITE]args[/PROTOCOL_WRITE]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=PROTOCOL_WRITE"
    },
    {
      "key": "WRITE_ARTICLE",
      "what": "Grok writes + publishes an article. ARGS: topic",
      "when_to_use": null,
      "category": "content-ops",
      "runner": "fn",
      "example": "[WRITE_ARTICLE]<arg1>[/WRITE_ARTICLE]",
      "example_args": "<arg1>",
      "example_source": "derived",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=WRITE_ARTICLE&body=%3Carg1%3E&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "WRITE_ARTICLE",
          "body": "<arg1>"
        },
        "router": "[WRITE_ARTICLE]args[/WRITE_ARTICLE]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=WRITE_ARTICLE"
    },
    {
      "key": "ARTICLES",
      "what": "Fast natural-language article CRUD. One row per article in D1; writes are URL-invocable through OIP.",
      "when_to_use": "list/read/create/rename/delete articles, set a manual article slot, or ask the writer to compose/revise a slot.",
      "category": "articles",
      "runner": "edge",
      "example": "[ARTICLES]list[/ARTICLES]",
      "example_args": "list",
      "example_source": "curated",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=ARTICLES&body=list&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "ARTICLES",
          "body": "list"
        },
        "router": "[ARTICLES]args[/ARTICLES]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=ARTICLES"
    },
    {
      "key": "PEPTIDE_WRITER",
      "what": "PEPTIDE_WRITER — 57-article content map",
      "when_to_use": null,
      "category": null,
      "runner": "model",
      "example": "[PEPTIDE_WRITER]<your request in plain words>[/PEPTIDE_WRITER]",
      "example_args": "<your request in plain words>",
      "example_source": "derived",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=PEPTIDE_WRITER&body=%3Cyour%20request%20in%20plain%20words%3E&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "PEPTIDE_WRITER",
          "body": "<your request in plain words>"
        },
        "router": "[PEPTIDE_WRITER]args[/PEPTIDE_WRITER]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=PEPTIDE_WRITER"
    },
    {
      "key": "KIMI_WRITER",
      "what": null,
      "when_to_use": null,
      "category": null,
      "runner": "model",
      "example": "[KIMI_WRITER]<your request in plain words>[/KIMI_WRITER]",
      "example_args": "<your request in plain words>",
      "example_source": "derived",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=KIMI_WRITER&body=%3Cyour%20request%20in%20plain%20words%3E&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "KIMI_WRITER",
          "body": "<your request in plain words>"
        },
        "router": "[KIMI_WRITER]args[/KIMI_WRITER]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=KIMI_WRITER"
    },
    {
      "key": "WRITER",
      "what": null,
      "when_to_use": null,
      "category": null,
      "runner": "model",
      "example": "[WRITER]<your request in plain words>[/WRITER]",
      "example_args": "<your request in plain words>",
      "example_source": "derived",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=WRITER&body=%3Cyour%20request%20in%20plain%20words%3E&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "WRITER",
          "body": "<your request in plain words>"
        },
        "router": "[WRITER]args[/WRITER]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=WRITER"
    },
    {
      "key": "WRITER_AGENT",
      "what": null,
      "when_to_use": null,
      "category": null,
      "runner": "model",
      "example": "[WRITER_AGENT]<your request in plain words>[/WRITER_AGENT]",
      "example_args": "<your request in plain words>",
      "example_source": "derived",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=WRITER_AGENT&body=%3Cyour%20request%20in%20plain%20words%3E&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "WRITER_AGENT",
          "body": "<your request in plain words>"
        },
        "router": "[WRITER_AGENT]args[/WRITER_AGENT]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=WRITER_AGENT"
    },
    {
      "key": "PIPELINE_WRITE",
      "what": "Write one item: outline -> article -> POST with provenance. ARGS: id",
      "when_to_use": null,
      "category": "pipeline",
      "runner": "fn",
      "example": "[PIPELINE_WRITE]<arg1>[/PIPELINE_WRITE]",
      "example_args": "<arg1>",
      "example_source": "derived",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=PIPELINE_WRITE&body=%3Carg1%3E&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "PIPELINE_WRITE",
          "body": "<arg1>"
        },
        "router": "[PIPELINE_WRITE]args[/PIPELINE_WRITE]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=PIPELINE_WRITE"
    },
    {
      "key": "QUEUE_ARTICLES",
      "what": "Queue one or more article jobs for the automatic writer queue. Cron writes them one at a time so the custodian does not have to wait for live replies.\\n# WHEN_TO_USE: the custodian wants to batch article requests and let the build process them asynchronously.\\n# ARGS: $1 = JSON object or plain topic. JSON keys: ask, slug, topic, web_search (default true), max_tokens, post_to (default /api/protocol/write), max_rounds, model.\\n# EX: [QUEUE_ARTICLES]{\"ask\":\"Write evidence-graded TB-500 article\",\"slug\":\"tb-500\"}[/QUEUE_ARTICLES]\\n# EX: [QUEUE_ARTICLES]{\"ask\":\"Populate BPC-157 with sources and widgets\",\"slug\":\"bpc",
      "when_to_use": "the custodian wants to batch article requests and let the build process them asynchronously.\\n# ARGS: $1 = JSON object or plain topic. JSON keys: ask, slug, topic, web_search (default true), max_tokens, post_to (default /api/protocol/write), max_rounds, model.\\n# EX: [QUEUE_ARTICLES]{\"ask\":\"Write evidence-graded TB-500 article\",\"slug\":\"tb-500\"}[/QUEUE_ARTICLES]\\n# EX: [QUEUE_ARTICLES]{\"ask\":\"Populate BPC-157 with sources and widgets\",\"slug\":\"bpc-157\",\"post_to\":\"/api/protocol/populate\",\"max_rounds\":4}[/QUEUE_ARTICLES]\\n[\"$1\",\"writer-queue\"]",
      "category": "tools",
      "runner": "fn",
      "example": "[QUEUE_ARTICLES]{\"ask\":\"Write evidence-graded TB-500 article\",\"slug\":\"tb-500\"}[/QUEUE_ARTICLES]\\n# EX: [QUEUE_ARTICLES]{\"ask\":\"Populate BPC-157 with sources and widgets\",\"slug\":\"bpc-157\",\"post_to\":\"/api/protocol/populate\",\"max_rounds\":4}[/QUEUE_ARTICLES]\\n[\"$1\",\"writer-queue\"]",
      "example_args": "{\"ask\":\"Write evidence-graded TB-500 article\",\"slug\":\"tb-500\"}",
      "example_source": "curated",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=QUEUE_ARTICLES&body=%7B%22ask%22%3A%22Write%20evidence-graded%20TB-500%20article%22%2C%22slug%22%3A%22tb-500%22%7D&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "QUEUE_ARTICLES",
          "body": "{\"ask\":\"Write evidence-graded TB-500 article\",\"slug\":\"tb-500\"}"
        },
        "router": "[QUEUE_ARTICLES]args[/QUEUE_ARTICLES]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=QUEUE_ARTICLES"
    },
    {
      "key": "ARTICLE_INGEST",
      "what": "Parse user-submitted evidence and write to article source ledger + optional claims. Hash-chained.",
      "when_to_use": "user texts evidence to add to a peptide article, or replies to a question node with new info.",
      "category": "content-ops",
      "runner": "fn",
      "example": "[ARTICLE_INGEST]bpc-157|paste from another model here[/ARTICLE_INGEST]",
      "example_args": "bpc-157|paste from another model here",
      "example_source": "curated",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=ARTICLE_INGEST&body=bpc-157%7Cpaste%20from%20another%20model%20here&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "ARTICLE_INGEST",
          "body": "bpc-157|paste from another model here"
        },
        "router": "[ARTICLE_INGEST]args[/ARTICLE_INGEST]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=ARTICLE_INGEST"
    },
    {
      "key": "OIP_ARTICLE_REVIEW",
      "what": "Run one OIP article loop tick. Claims the next tasks.source=oip-review row and routes it: oip-review scores machine JSON clarity + English clarity with a fresh model; oip-write has a model write a missing OIP article; oip-revise has a model rewrite a failing article as a new append-only version. Every step lands in the ledger.",
      "when_to_use": "cron or manual trigger to advance the recursive OIP documentation loop one step.",
      "category": "protocol",
      "runner": "fn",
      "example": "[OIP_ARTICLE_REVIEW][/OIP_ARTICLE_REVIEW]",
      "example_args": "",
      "example_source": "curated",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=OIP_ARTICLE_REVIEW&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "OIP_ARTICLE_REVIEW",
          "body": ""
        },
        "router": "[OIP_ARTICLE_REVIEW]args[/OIP_ARTICLE_REVIEW]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=OIP_ARTICLE_REVIEW"
    },
    {
      "key": "OIP_WRITER",
      "what": null,
      "when_to_use": null,
      "category": "content-ops",
      "runner": "model",
      "example": "[OIP_WRITER]<your request in plain words>[/OIP_WRITER]",
      "example_args": "<your request in plain words>",
      "example_source": "derived",
      "run_now": "https://miscsubjects.com/api/dispatch?invoke=OIP_WRITER&body=%3Cyour%20request%20in%20plain%20words%3E&share=<TOKEN>",
      "invoke": {
        "post": "https://miscsubjects.com/api/dispatch",
        "body": {
          "key": "OIP_WRITER",
          "body": "<your request in plain words>"
        },
        "router": "[OIP_WRITER]args[/OIP_WRITER]"
      },
      "self": "https://miscsubjects.com/api/dispatch?key=OIP_WRITER"
    }
  ],
  "compose": "Multiple targets (e.g. text 3 people)? Repeat the call once PER target — one invoke each, one receipt each. Don't cram a list into one call unless the row's args say it takes one. Multi-step (make an image THEN text it)? Do the steps in order, feeding each result into the next.",
  "json_and_post_free": "Needs a JSON body or looks 'POST-only'? You don't need POST. url-encode the JSON into &body= (?invoke=KEY&body=<encoded JSON>), or use the row's pipe args (a|b|c). Every write is a GET row — edit a prompt: DIR_PATCH body=KEY|{\"content\":\"...\"}; write/revise an article: PROTOCOL_WRITE body=<encoded JSON>; ingest: ARTICLE_INGEST body=slug|text.",
  "reply_contract": "OUTPUT RULE — after you invoke ANYTHING, your reply to the user IS the proof, never \"sent it\": for each action paste one line — \"✓ <what you did> — receipt: <the confirm/receipt URL from that invoke's proof.say_to_user>\" (or \"✗ <what> FAILED: <reason>\" when the response has ran:false / can_act:false / ok:false). N actions → N lines, N receipts. Never claim an action you have no receipt for; never fabricate a URL, count, or outcome.",
  "note": "Best match first. Each row's run_now is a URL that fires it with real example args — open it, swapping in your own values. No guessing: the example IS the shape. Then reply per reply_contract.",
  "registry": "https://miscsubjects.com/api/dispatch?registry=1"
}