## §SELF — miscsubjects capability (paste without context)
**Principle:** Self-explaining payload — no external context required. This _self block is the capability: what it is, how to run it, how to change it, and where to look next.
**Path:** OIP > QUEUE > QUEUE_ARTICLES
**Capability:** `QUEUE_ARTICLES` — Queue one or more article jobs for the automatic writer queue. Cron writes them one at a time so Cyrus does not have to wait for live replies.\n# WHEN_TO_USE: Cyrus 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:** Cyrus 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"]
**RUN NOW (open this URL):** 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>
**Example call:** [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"]
- **type · runner:** tool · fn · tools
- **run it:** Open run_now (URL, fires the example), or POST https://miscsubjects.com/api/dispatch {"key":"QUEUE_ARTICLES","body":"{"ask":"Write evidence-graded TB-500 article","slug":"tb-500"}"}. From the router: [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"]
- **inputs:** {"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\"]"}
- **outputs:** { ok, result, invocation, yield, _self } — result is this object's output; yield is tokens/cost/material; invocation is the ledgered record.
- **auth · risk:** none · low
### Machine Contract
- Read this article first; do not infer the row shape from memory.
- If acting with a URL-only tool, open run_now after replacing placeholder args.
- If the call returns ran:false or proof.ok:false, read the receipt and repair the failed invocation instead of narrating success.
- If the token denies the call, report the denial exactly; do not switch to a broader action unless the owner supplied a broader token.
### Invocation, Ledger, Repair
- root tree: https://miscsubjects.com/api/dispatch?map=1&format=markdown
- parent system article: https://miscsubjects.com/api/dispatch?map=QUEUE&format=markdown
- append-only ledger: https://miscsubjects.com/api/invocations?object_id=QUEUE_ARTICLES
- receipt pattern: https://miscsubjects.com/api/dispatch?receipt=inv_ID&share=<TOKEN>
- replay: POST /api/dispatch {"replay":"inv_ID"}
- repair: POST /api/dispatch {"key":"QUEUE_ARTICLES","body":"corrected args","repairs":"inv_ID"}
### Troubleshooting
- **unknown key** — Use the did_you_mean links or ask URL; never guess another key. · https://miscsubjects.com/api/dispatch?ask=QUEUE_ARTICLES
- **argument/body mismatch** — Read inputs/example_args here, then retry with repairs: inv_ID so lineage closes. · https://miscsubjects.com/api/dispatch?key=QUEUE_ARTICLES
- **expired or corrupted token** — Report token_expired/token_corrupted from the response; owner mints a fresh scoped link. · https://miscsubjects.com/api/dispatch?explain=1&share=<TOKEN>
- **tool returned ok:false / exit nonzero** — Do not call it sent. Read the receipt, correct the body, fire a repair. · https://miscsubjects.com/api/dispatch?receipt=inv_ID&share=<TOKEN>
### Logical proof (verify each step)
1. Every capability is an invokable object with its own _self — this block. → https://miscsubjects.com/api/dispatch?key=QUEUE_ARTICLES
2. You run it by POSTing to /api/dispatch; in a model turn the router tag is [QUEUE_ARTICLES]args[/QUEUE_ARTICLES]. → https://miscsubjects.com/api/dispatch?registry=1
3. Every invocation is ledgered with actor, cost, and material/waste. → https://miscsubjects.com/api/invocations?object_id=QUEUE_ARTICLES
4. You can ask the build for capabilities in plain language. → https://miscsubjects.com/api/dispatch?ask=Queue%20one%20or%20more%20article%20jobs%20for%20the%20a
5. The whole build is one self-describing map, with the terminal key. → https://miscsubjects.com/api/dispatch?build=1
### Where to look next
- **registry** — Every capability, self-describing · https://miscsubjects.com/api/dispatch?registry=1
- **ask** — Ask the build what to use, in plain language · https://miscsubjects.com/api/dispatch?ask=<question>
- **history** — This capability's invocation history — its edges · https://miscsubjects.com/api/invocations?object_id=QUEUE_ARTICLES
- **build** — The whole build as one map (terminal key) · https://miscsubjects.com/api/dispatch?build=1
*Self-explaining. Not project knowledge — fetch specifics from the links above.*