{"slug":"udst-v1-1-appendix-c-attack-types","title":"UDST: V1 1 Appendix C Attack Types","body":"# Appendix C — Attack Types\n\n1. **Definition** — terms are incoherent. In the build, this is tested by the `?ask` endpoint: if a term cannot be resolved to a capability, the router returns `did_you_mean` with nearest keys. A term that has no nearest key is incoherent. Example: asking for `LOCAL_BATTERY` when the capability is `LOCAL_BATTERY` (not `LOCAL_BATTERY_CHECK`) — the router returns `did_you_mean: [LOCAL_BATTERY]` and the term is resolved. A term that returns no nearest keys is flagged as a definition error.\n\n2. **Logic** — conclusion does not follow. In the build, this is tested by the materiality classifier: `POST /api/protocol/thread-update` classifies the raw turn into `objection`, `settlement`, `patch`, `breakage`, `test_result`, `clarification`, `prior_art`, `open_question`, or `branch_update`. If the conclusion does not follow from the premises, the classifier routes it to `sludge` (noise floor), not `material`. The logic is tested by the ledger: if the conclusion contradicts the premises in the same thread, the owner rejects it.\n\n3. **Empirical** — a real case falsifies. In the build, this is tested by the conformance suite: `GET /api/dispatch?conformance=1` runs 15 clauses against production, each with a live receipt. An empirical attack must produce a receipt that shows the clause failing. A claim without a receipt is not empirical.\n\n4. **Scope** — full-scope accounting is impossible or misused. In the build, this is tested by the receipt's `story` field: the story is a one-line forensic narrative that includes the full accounting (enforcement cost, externality, recurrence, suppressed capability, downstream instability, maintenance burden, audit debt). A receipt without a story is out of scope. The `?receipt=INV_ID` endpoint returns the full story; if the story omits a known cost, the scope is violated.\n\n5. **Category-error** — a concept is transferred across levels invalidly. In the build, this is tested by the capability's `category` field: a capability is typed by category (e.g., `oip`, `mcp`, `system`, `runner`), and a concept from one category cannot be transferred to another without explicit mapping. Example: treating `OIP` as a content management protocol (category `content`) when it is an object invocation protocol (category `oip`) is a category error. The directory enforces category boundaries.\n\n6. **Implementation** — the protocol cannot be executed. In the build, this is tested by the `?conformance=1` endpoint: if any clause cannot be executed, the suite returns `status: failed` with the exact clause and error. The protocol is not a specification; it is a live system that executes every time it is invoked.\n\n7. **Prior-art** — the welded construction already exists. In the build, this is tested by the `?why=1` endpoint: it lists 18 objections, each with a verdict. If the attack is already addressed, the endpoint returns the settled answer and the relitigation detection. The system does not claim novelty; it claims operationality.\n\n8. **Falsifiability** — the counterexample condition cannot be met in practice. In the build, this is tested by the `?conformance=1` endpoint: the falsifiers are live metrics, not theoretical conditions. If a counterexample cannot be produced, the system does not claim it is impossible; it claims it has not been observed. The ledger records the absence of counterexamples as a standing metric.\n\nA valid attack states its type, names its tier, names the exact claim, shows the work, and proposes the minimum patch. In the build, this is the `POST /api/protocol/thread-update` endpoint: the body must include `type`, `tier`, `exact_claim`, `work`, and `minimum_patch`. If any field is missing, the classifier routes it to `sludge`. The system does not reject attacks; it classifies them. Valid attacks are material; invalid attacks are noise. The distinction is not censorship; it is taxonomy.\n\n\n---\n\n## Corpus map\n- Previous: [UDST: V1 1 Appendix B Compact Benchmark](/a/udst-v1-1-appendix-b-compact-benchmark)\n- Series start: [UDST v1.1 — The Claim](/a/udst-v1-1-the-claim)\n- Kin: [Book V — The Machine Plane](/a/oip-machine-plane) · [Total Structure](/a/oip-total-structure)","register":"oip_protocol","tags":["OIP","UDST","systems-theory","deterministic"],"category":null,"style":{},"claims":[{"text":"The build tests definition errors via the ?ask endpoint: a term that returns no nearest keys is flagged as incoherent.","tier":"system","source_ids":[]},{"text":"The materiality classifier at POST /api/protocol/thread-update routes conclusions that do not follow from premises to sludge, not material.","tier":"system","source_ids":[]},{"text":"An empirical attack must produce a receipt showing clause failure; a claim without a receipt is not empirical.","tier":"system","source_ids":[]},{"text":"A receipt without a story field is out of scope; the ?receipt=INV_ID endpoint returns the full forensic narrative.","tier":"system","source_ids":[]},{"text":"The directory enforces category boundaries via the capability's category field; transferring a concept across categories without explicit mapping is a category error.","tier":"system","source_ids":[]},{"text":"A valid attack submitted to POST /api/protocol/thread-update must include type, tier, exact_claim, work, and minimum_patch; missing fields route to sludge.","tier":"system","source_ids":[]}],"sources":[{"type":"system","url":"https://miscsubjects.com/api/dispatch?conformance=1","title":"Build Conformance Suite","quote":"GET /api/dispatch?conformance=1 runs 15 clauses against production, each with a live receipt.","summary":"Live endpoint executing 15 conformance clauses with receipts."},{"type":"system","url":"https://miscsubjects.com/api/protocol/thread-update","title":"Materiality Classifier","quote":"POST /api/protocol/thread-update classifies the raw turn into objection, settlement, patch, breakage, test_result, clarification, prior_art, open_question, or branch_update.","summary":"Open intake endpoint classifying material turns and routing invalid attacks to sludge."},{"type":"article","url":"https://miscsubjects.com/a/udst-v1-1-the-claim","title":"UDST v1.1 — The Claim","quote":"A valid attack states its type, names its tier, names the exact claim, shows the work, and proposes the minimum patch.","summary":"Hub article defining valid attack structure for the UDST v1.1 series."},{"type":"system","url":"https://miscsubjects.com/api/dispatch?why=1","title":"Prior Art & Objections Endpoint","quote":"The ?why=1 endpoint lists 18 objections, each with a verdict.","summary":"Endpoint enumerating settled objections with verdicts for relitigation detection."}],"prov":{"model":"Fable 5 (Claude Code)","action":"write"}}