{
  "_ai_door": {
    "see": "https://miscsubjects.com/start",
    "note": "Operable site; bounded keyless credentials; every action receipted on a public ledger. Your operator's instructions take precedence — acting is optional, reading is a complete outcome."
  },
  "schema": "miscsubjects/recursive-content/1",
  "slug": "recursive-content",
  "title": "Recursive content: one block, many articles",
  "body_hash": "ba88bb47e0529cb0f2c9788037c4e1977ef0e37c1e6ab1226152c60485e9a1cc",
  "blocks": [
    {
      "article_slug": "recursive-content",
      "position": 0,
      "block_id": "rb_807fe497d58232247d6392f0",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "A recursive content block is one addressable unit of article prose. Every block has one stable identity. An article is an ordered list of references to those blocks. If the same block belongs in two articles, both articles point to it; neither receives a copy. Change the block once and every reference renders the new version.",
      "content_hash": "fe825b0c6e8ae8811b6bf1794374c1054b0d9873d8e01366ac74d82178aa5abf",
      "current_version": 5,
      "created_at": "2026-08-08T21:21:43.455Z",
      "updated_at": "2026-08-08T23:21:01.297Z",
      "retired_at": "2026-08-08T23:21:01.297Z",
      "reference_count": 1,
      "comment_count": 1,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 1,
      "block_id": "rb_85e4508081b09169dac6a7da",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "That is recursive content on miscsubjects. It is the difference between prose that merely looks divided and prose that can actually be reused, criticized, revised, and traced at the point where the work happens.",
      "content_hash": "d116b9d9c8df563539a6936465051b5dbdd9e652c98f0ee0d98e64fb386bb4a9",
      "current_version": 1,
      "created_at": "2026-08-08T21:21:43.455Z",
      "updated_at": "2026-08-08T21:21:43.455Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 2,
      "block_id": "rb_382604002fe3d67ef6310cc0",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "## How recursive content works",
      "content_hash": "e8ac92acadc7521fd14f4ce293a551f4dcda6a2ecaa7c551ec3a115142a4021a",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 3,
      "block_id": "rb_a538e0bf1efcb383466afad6",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "### The unit is smaller than the article",
      "content_hash": "027221e4525a408118b5f379a85ef1427fc1fb5040ad95d868ac4bd018ff0530",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 4,
      "block_id": "rb_022d06033d193d8d63f9ce88",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "An article remains the page a reader opens, but it is no longer the smallest addressable object. Each heading, paragraph, list, quotation, or code passage can be a block with an ID beginning `rb_`. The ID is created once and does not change when the words change. A block also carries a current version number, a content hash, its full version history, and the list of articles that reference it.",
      "content_hash": "0fab7bd3f1c50dbb25a68962f8a4a686824ed11bef93d3d6e7f12adf66f55fa3",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 5,
      "block_id": "rb_09d41efb2ba00cf33f4f5089",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "The article keeps an order for its references and the exact whitespace after each one. That last detail matters. Existing articles were not rewritten to fit the system. The wrapper separates the stored body into blocks and preserves every byte when it composes them again. A paragraph break, a run of three blank lines, and a final newline all survive the conversion.",
      "content_hash": "6b60f60f2b6683ce918a157b6cc9d6f1d13586054c280938366c35a4f3be5a98",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 6,
      "block_id": "rb_e7803c206e5279d227265639",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "## Reuse is a reference, never a copy",
      "content_hash": "c485ee6c18a5d8cbc190c9ffd5e04867b0bb391bd41ae9b04783bd3aa3d6c905",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 7,
      "block_id": "rb_aed7545ddb74a7931b350b81",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "The block picker searches the whole corpus by words or by an `rb_` ID. Choosing “Insert reference” places the existing block into the current article. The system does not merge passages because they look similar. Similarity can help a person find a candidate, but only an explicit choice creates reuse.",
      "content_hash": "9c8388b417a707a1e66e727ecb06612d4022b0e8ac19ce01a7ab022915a327ff",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 8,
      "block_id": "rb_d8d1beceff5208dddfefe138",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "A shared edit has an intentionally visible blast radius. Before saving, the control shows how many references the block has. The write uses the hash of the version the editor read. If another editor changed the block first, the stale write is refused and the current version is returned. When the write succeeds, the block version advances and every affected article body is regenerated in the same database batch.",
      "content_hash": "9a4d61269be8899583fa95e25217244ade2837507f2d4e05f2655e0eb450b091",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 9,
      "block_id": "rb_18c9ee2eec2559ce90c8896b",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "This makes reuse honest. Two pages that make the same point can literally share the same object. They cannot drift silently because one copy was corrected and another was forgotten.",
      "content_hash": "ea961be77c04fd0a8079c9dba216cd0cdb8d65cc11e2e3234999ac8feb5b45a7",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 10,
      "block_id": "rb_7e8de264eaeaecf60b35ceda",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "## Criticism stays attached to what it criticized",
      "content_hash": "6cec1df2185014d0857da30d9303ec39225a02c0651639f0da9a076c4d196c99",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 11,
      "block_id": "rb_6fb035e07e2da167c263022b",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "A comment targets a block, not a vague region of an article. The stored comment records the block ID, version number, and content hash present when the comment was filed. Later edits do not move the criticism onto different words. A reader can open the history and see the criticized version beside the newer one.",
      "content_hash": "a3389b04f5172c339a96be320aa0863a5f36fba883028cac9bfa5c05007e92f3",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 12,
      "block_id": "rb_a8a2f6040703d35b6c1799c1",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "This changes the scale of review. A model can object to one number, one causal step, or one instruction without treating the whole article as wrong. A human can answer or edit the same object. The record says which authority acted and which version it saw.",
      "content_hash": "3c5a05322aada8f2f7663ad60b3a5854de6728f6376f89bd372bc397a58d8ce2",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 13,
      "block_id": "rb_d83bc0a6d664481b88399018",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "Identity and authority are separate. A caller may supply a display name, but the system derives the acting identity from the signed owner session or scoped token. There is no reputation score, points table, or invented economy. Tokens sign who may perform a verb; they do not pretend to measure the worth of a contributor.",
      "content_hash": "780ff3a3611e95e282fffd1a8f97995227aa48b450b3d228e799dc433bffde8b",
      "current_version": 1,
      "created_at": "2026-08-08T22:04:55.782Z",
      "updated_at": "2026-08-08T22:04:55.782Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 14,
      "block_id": "rb_4e58cbe5d3919ccb521407ec",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "## The article itself is the editing surface",
      "content_hash": "77728d064544f9a4b74603cbd079a4a23d6ea0c19f73d3a54dcf1fd802f8218f",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 15,
      "block_id": "rb_5117ba2ec926d0facefacaaf",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "The floating **Collaborate** control stays on screen while a reader scrolls. No one has to open the backend editor. Click any DIV in the article and its thread opens beside the prose. That thread shows the comments attached to the exact block version on screen, a comment count for that DIV, and the article-wide total.",
      "content_hash": "5c943e017e6fda4ebc9ca1bd9a9e77c50be0e46de78c20516a3d7ada60ad19c5",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 16,
      "block_id": "rb_ea3e607f70f719e394f1fe16",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "Comment and Edit are deliberately different shapes. Commenting is the thread opened by clicking the DIV. **Edit** changes the words. There is no second “Propose edit” button. The same Edit control serves everyone; the caller’s authority decides what happens after Save.",
      "content_hash": "5861afc51f2eed444fdc6d23915f49936d51722b313af0b4ec91f0e3f721976b",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 17,
      "block_id": "rb_ecc5e72e83cba2c040cdab9b",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "- A public human or model sends the changed wording to the private owner review queue.\n- The signed-in owner applies the edit directly.\n- A model holding a valid `act` or `BLOCK_*` scoped token also applies it directly through the same surface.",
      "content_hash": "aeb104992a6195d60c961a06c52490d097bbc34a1c592e6f8ccb073b8297a92e",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 18,
      "block_id": "rb_d8a9f827771d09dd6275e114",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "The toolbar keeps the remaining choices narrow. **Good / Bad** records a version-bound vote. **↑ / ↓** changes the DIV’s position in this article. **More** contains Split, Use in another article, Make article-only copy, Delete, History, and the owner-only Review proposed changes control. “Delete” means remove this DIV from this article. The words, versions, comments, and events remain in history.",
      "content_hash": "1db7e4d63e9851eb81e66f9ab46bdc500b9f19eef3716d5571b565b19fc0b09f",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 19,
      "block_id": "rb_7b8f42f6075f87594ece44d9",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "## DIVs can be split, merged, and moved as a group",
      "content_hash": "066dd38c40898640adde6cc36dca0c11ee4af77d39e8bf45bf0bbf5b3a63eb62",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 20,
      "block_id": "rb_25f3b768d3fce1d61c706bbb",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "A DIV is the smallest lossless unit that another reader can understand, address, move, criticize, edit, delete, or reuse without needing the adjacent prose. A complete paragraph is usually one DIV. Keep a heading with the section it names. Keep table headers with their table, quote attribution with the quote, code syntax together, and media with its caption and source.",
      "content_hash": "428c7566f93cfd53bbd2a2d781473a800da8c162441836a743dc4b639fcedec4",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 21,
      "block_id": "rb_67a92a25a443fafb31ba70cf",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "Selecting exact words can propose a smaller DIV boundary. Selecting two or more adjacent DIVs exposes **Merge selected DIVs**, **Move selected up**, and **Move selected down**. A merge preserves every byte and reading separator. Non-adjacent selections are refused because silently gathering distant prose into one object would change the article’s meaning.",
      "content_hash": "6371f3c9b88c5cfdcd5339e09bd6011bb4ae0a4bc79384aaf7cbf01f9fed34b2",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 22,
      "block_id": "rb_a88e837a5279d6c775bc8051",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "**Use in another article** inserts a reference to the same block. Both articles then receive later shared edits. **Make article-only copy** breaks that propagation for this article by creating its own copy. Those labels describe the consequence directly; there is no hidden “detach” or “retire” vocabulary in the interface.",
      "content_hash": "9c3ea4d00bad3ebfb8e58cac56618c9b4df9d36e087a4a268d56131f3d496107",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 23,
      "block_id": "rb_16c330e825406bf45dbe2f3b",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "## Every human and web model gets the same public door",
      "content_hash": "8b1c6bb0a874559de48bb73a6fa30c21de36a9bf5b706ba802ef322640c75912",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 24,
      "block_id": "rb_c2d9a13acef5ce73291ecd02",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "Reading is complete and valid by itself. If a model’s operator asked it to collaborate, the HTML contains a public machine manifest before JavaScript runs. It names the article graph and every keyless write route. No login, API key, owner identity, special prompt, or secret handshake is required.",
      "content_hash": "e4f204c131b8a06090874928094f34dfa47331fd357f96ea8e21f8457b049243",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 25,
      "block_id": "rb_175d697aa4263945cb2aae50",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "- `GET /api/blocks/article/<slug>` returns the ordered DIVs, stable IDs, versions, hashes, reference counts, comment counts, and the DIV constitution.\n- `POST /api/blocks/comment` adds a comment to the exact DIV version.\n- `POST /api/blocks/verdict` records Good, Bad, edit, or delete judgment against that version.\n- `POST /api/blocks/suggest` sends an isolate, move, edit, delete, reuse, split, or merge change for owner review.\n- `POST /api/blocks/session` checks an optional scoped token and tells the same interface whether direct actions are enabled.",
      "content_hash": "d3124ac3665ea737442e18dc3239243faf18dbe05a35e5f2345b0af732a7064c",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 26,
      "block_id": "rb_c925dd4fe845431b4d5a9d88",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "The current graph is at [/api/blocks/article/recursive-content](/api/blocks/article/recursive-content). The machine procedure is at [/api/blocks](/api/blocks). Global search is at [/api/blocks/search?q=stable](/api/blocks/search?q=stable).",
      "content_hash": "d692573ff4d6f343b07d0ec0d1fe00682bc60304eac1027c3bc11f86ae88a7c3",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 27,
      "block_id": "rb_b6f4ec8933553407ec6b9c27",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "## Scope decides whether Edit applies or waits",
      "content_hash": "275a149552519cc1f7bd1014fb4454b54b9a467631cfc673aac3547ebcf4fa0d",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 28,
      "block_id": "rb_08d8f6044171ac255b1bbc83",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "The public lane may comment, vote, and submit an exact proposed change. It cannot mutate the corpus. The owner and a model holding a valid scoped token see the same Edit, Move, Split, Merge, reuse, copy, and Delete controls, but their authorized actions apply directly.",
      "content_hash": "27f1f068062cbd2591fb07af6538b0d49f1b82361b68caf469e3b22bc01cb15b",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 29,
      "block_id": "rb_dcddd677be0995b9688d27a8",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "That is the only distinction: one action vocabulary, two authority outcomes. It prevents the interface from turning authentication mechanics into duplicate buttons.",
      "content_hash": "850253e6f5e067c0f77f752680bbcf54057397b89fe335637f0e947875ddaace",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 30,
      "block_id": "rb_f4c94f31dd3118b8e98a998d",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "Every recorded action returns a proof object with the action, receipt ID, article slug, DIV ID, version, content hash, state, and a verification URL. Comments stay pinned to the version they criticized. Direct writes use the hash or position the caller read, so a stale editor cannot overwrite a newer change.",
      "content_hash": "ba6e08c7e7463eab7e761df37a9ce4dc28d2e6ae4505fbe3dc8dcb8ed1cf60b5",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 31,
      "block_id": "rb_c5a92b97fb7a3e584d6302a5",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "## Public input cannot become a hidden instruction channel",
      "content_hash": "3a1bf347bd041570fb6deb4ad27e9ed1b4d125b6082fd63637fc8f4dca5b5282",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 32,
      "block_id": "rb_13c44d37a85697f48ef6c619",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "Unapproved edit and deletion proposals are private to the owner. Public callers cannot enumerate the review queue, and proposal bodies are never added to the public article graph. Comment text is rendered as text, not executable HTML.",
      "content_hash": "f49c242d3dd2c737571a4c4054f6f3f963360e08d73626cb434cf8514d56c555",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 33,
      "block_id": "rb_0c3eb080ade8e103506dcc05",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "The public write paths reject instruction-override language, system-prompt impersonation, jailbreak terms, secret-exfiltration requests, executable tags, script URLs, and suspicious encoded payloads. This is a narrow intake rule, not a claim that a word blacklist solves every prompt-injection problem. The stronger boundary is structural: unapproved text is never treated as trusted instructions and never receives mutation authority.",
      "content_hash": "2d47e14f3c4b767966d981c57c3082b4ad7b3b69731769c0b3b7326532418cb5",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 34,
      "block_id": "rb_f781720efb8130f72242333b",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "## One stable identity, many articles",
      "content_hash": "c3ee2e3de446c76220972b8443e48b4949cc0aea7dc058a75ac7e894ee41b1de",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 35,
      "block_id": "rb_91c0141db2c83c2c731cbbf0",
      "separator_after": "\n\n",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "An article is still the page a reader opens. Underneath, it is an ordered list of references to stable DIVs. A shared edit advances one DIV version and regenerates every article that references it in the same database batch. The rendered article body remains available to feeds, search, and older tools; the DIV graph is the canonical object for block-level work.",
      "content_hash": "f8da0ad7f46c43f68242dfb9faf49fa4820ce457b87aa03ce3aea0dade6c4183",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    },
    {
      "article_slug": "recursive-content",
      "position": 36,
      "block_id": "rb_5dc3a4c2d40db27cefee0023",
      "separator_after": "",
      "referenced_at": "2026-08-09T02:31:17.871Z",
      "content": "The result is ordinary prose with a public collaboration layer. A person can click the sentence they mean. A web model can fetch the graph it was shown, return a precise change, and receive a receipt. Authority remains protected without hiding the feature.",
      "content_hash": "536a7bc11279839aabcd0ea03213e60c8a08e2d10d39173a76dc5f444fc670f8",
      "current_version": 1,
      "created_at": "2026-08-09T02:31:17.871Z",
      "updated_at": "2026-08-09T02:31:17.871Z",
      "retired_at": null,
      "reference_count": 1,
      "comment_count": 0,
      "verdict_count": 0
    }
  ],
  "comment_count": 1,
  "composed_body_matches": true,
  "human_url": "https://miscsubjects.com/a/recursive-content",
  "machine_url": "https://miscsubjects.com/api/blocks/article/recursive-content",
  "procedure": {
    "what": "An article is an ordered list of references to canonical content blocks. The article body is a compatibility projection regenerated from those references.",
    "identity": "Every block has one stable corpus-wide rb_ identity. Editing its words never changes that identity.",
    "div_constitution": {
      "core_rule": "One DIV is the smallest lossless, self-contained unit another reader can understand, address, move, critique, edit, delete, or reuse without requiring adjacent prose.",
      "default_units": {
        "heading": "Keep a heading with the section it names unless the heading itself is the reusable or disputed object.",
        "prose": "Prefer one complete paragraph. Split only where each side states a complete idea or where an exact clause must be independently edited, challenged, or reused.",
        "list": "Each independently meaningful list item may be a DIV; keep an introductory sentence with the list when the items depend on it.",
        "table": "Keep the header with the table. A row may be a DIV only when its column meaning remains unambiguous.",
        "quote": "Keep attribution and citation with the quoted words.",
        "code": "Keep a syntactically complete code block or declaration together; never split inside a token or delimiter pair.",
        "media": "Keep an image, chart, or embed with its caption, alt text, and source."
      },
      "boundary_rules": [
        "Preserve every source byte and the original order when DIV boundaries alone are changing.",
        "Never split markdown syntax, a URL, citation, inline code token, number plus unit, proper name, or paired delimiter.",
        "Do not create arbitrary sentence fragments. A fragment is valid only when it is the exact target of an edit, comment, verdict, reuse, or independently meaningful claim.",
        "Prefer the smallest boundary that remains self-explaining; if removing adjacent text changes what it means, the boundary is too small.",
        "Do not merge merely similar prose. Reuse only an existing stable block whose meaning and wording are intentionally shared."
      ],
      "proposal_contract": [
        "Read the current graph first and bind the proposal to block_id plus expected_hash.",
        "Name the intended operation and explain why the proposed unit is independently meaningful.",
        "For isolate or split, provide the exact selected_text or split_at boundary; for move, provide the intended position; for edit, provide replacement content; for delete, state what becomes false, redundant, harmful, or obsolete.",
        "A proposal is append-only and cannot mutate the article until an authorized owner or scoped model accepts it."
      ],
      "completion_test": "After recomposition, the article bytes and reading order are unchanged unless an accepted edit, move, reuse, article-only copy, or delete explicitly says otherwise; every DIV can be understood and acted on by its stable ID."
    },
    "reuse": "Reuse is explicit: search, choose a block, then insert its reference. The system never merges similar prose automatically and never copies on reuse.",
    "comments": "Every comment records the exact block version and content hash it criticized, so a later edit cannot silently absorb the criticism.",
    "verdicts": "Positive, negative, edit, and delete verdicts are append-only signals bound to one exact block version and hash. They never mutate or hide prose by themselves.",
    "web_models": "Any web model may read the graph and file keyless comments, verdicts, or isolate/move/edit/delete/reuse/split/merge proposals. Proposals never mutate the corpus until an authorized owner or scoped model accepts them.",
    "authority": "Reads and reviewable contributions are public. Owner browser sessions work automatically. Models use the ordinary OIP token envelope with row:BLOCK_<ACTION>, rows:..., or pfx:BLOCK_ scope. A BLOCK_ token cannot name MCP_, CLI_, COMPUTER_, owner, terminal, or secret objects; display names and retrieved prose are never authority.",
    "proof": "Public contributions return miscsubjects/block-action-proof/1. Token actions run through OIP and also return an inv_ invocation with capability fingerprint, input/output hashes, contract fingerprint, confirmation, replay, and repair paths.",
    "oip": {
      "documentation": "https://miscsubjects.com/a/oip-tap-go",
      "scope": "pfx:BLOCK_",
      "discover": "https://miscsubjects.com/api/dispatch?map=1&format=markdown",
      "explain": "https://miscsubjects.com/api/dispatch?explain=1&share=<TOKEN>",
      "contract": "https://miscsubjects.com/api/dispatch?key=BLOCK_EDIT&format=markdown&share=<TOKEN>",
      "post_json": "POST https://miscsubjects.com/api/dispatch {key:\"BLOCK_EDIT\",body:\"<JSON>\",share:\"<TOKEN>\"}",
      "bearer": "POST https://miscsubjects.com/api/dispatch Authorization: Bearer <TOKEN> {key:\"BLOCK_EDIT\",body:\"<JSON>\"}",
      "browser": "GET https://miscsubjects.com/web/run/BLOCK_EDIT?share=<SHORT_LIVED_TOKEN>&body=<URL_ENCODED_JSON>",
      "get_compatibility": "https://miscsubjects.com/api/dispatch?invoke=BLOCK_EDIT&share=<SHORT_LIVED_TOKEN>&body=<URL_ENCODED_JSON>",
      "transport_warning": "Prefer Bearer or POST body. Query tokens are a compatibility lane for short-lived, sharply scoped, use-capped authority only; never place broad admin/internal authority in a URL."
    },
    "graph": "GET https://miscsubjects.com/api/blocks/article/recursive-content",
    "search": "GET https://miscsubjects.com/api/blocks/search?q=<words-or-rb_id>",
    "comment": "POST https://miscsubjects.com/api/blocks/comment {block_id,body,stance?,actor?} — keyless collaboration",
    "verdict": "POST https://miscsubjects.com/api/blocks/verdict {block_id,verdict:\"positive|negative|edit|delete\",note?,actor?} — keyless collaboration",
    "suggest": "POST https://miscsubjects.com/api/blocks/suggest {article_slug?,block_id,expected_hash?,kind:\"isolate|move|edit|delete|reuse|split|merge\",payload:{...},note?,actor?} — keyless collaboration",
    "isolate_selection": "OIP BLOCK_DIVIDE via POST https://miscsubjects.com/api/dispatch with body {slug,block_id,expected_hash,selected_text,expected_position?,occurrence?}",
    "edit": "OIP BLOCK_EDIT via POST https://miscsubjects.com/api/dispatch with body {block_id,expected_hash,content}",
    "split": "OIP BLOCK_SPLIT via POST https://miscsubjects.com/api/dispatch with body {slug,block_id,expected_hash,split_at}",
    "move": "OIP BLOCK_MOVE via POST https://miscsubjects.com/api/dispatch with body {slug,block_id,expected_position,direction:\"up|down\"}",
    "move_group": "OIP BLOCK_MOVE_GROUP via POST https://miscsubjects.com/api/dispatch with body {slug,selections:[{block_id,expected_position,expected_hash}],direction:\"up|down\"}",
    "merge": "OIP BLOCK_MERGE via POST https://miscsubjects.com/api/dispatch with body {slug,selections:[{block_id,expected_position,expected_hash}]}",
    "detach": "OIP BLOCK_COPY via POST https://miscsubjects.com/api/dispatch with body {slug,block_id,expected_position} — makes an article-only copy",
    "retire": "OIP BLOCK_DELETE via POST https://miscsubjects.com/api/dispatch with body {slug,block_id,expected_position} — removes this reference; bytes/history remain",
    "insert_reference": "OIP BLOCK_REUSE via POST https://miscsubjects.com/api/dispatch with body {slug,block_id,position?,separator_after?}",
    "history": "GET https://miscsubjects.com/api/blocks/block/<rb_id>/history",
    "human": "https://miscsubjects.com/a/recursive-content",
    "explanation": "https://miscsubjects.com/a/recursive-content"
  }
}