{"_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."},"slug":"openclaw-self-learning","title":"OpenClaw self-learning","body":"OpenClaw (389,023 stars and 81,740 forks on 2026-09-06, version 2026.9.2 at commit 45cbffc) is a personal agent gateway: sessions, channels, tools, skills and automations behind one control plane. This reference covers one part, the self-learning system, read at source.\n\n**What is learned.** A `SKILL.md` file: Markdown instructions with YAML frontmatter carrying a name and description, stored under the agent's workshop-skills directory. Not tool schemas, not executable code, not a recorded trajectory, not a workflow graph. The reviewer prompt that produces it asks for \"a stable procedure that saves at least two future model round trips\" and for \"reusable steps and decision rules, not incident narratives.\" Support files may include scripts stored as text, but nothing runs them automatically.\n\n**What the reviewer reads.** A detached copy of the run's model context plus a receipt of the skills actually used. OpenClaw has a real trajectory recorder that writes JSON Lines traces, but no learning path consumes it.\n\n**How a learned skill executes later.** The agent re-reads the instructions and reasons through them again. The system prompt carries a compact catalogue and tells the model to read the matching skill file and obey it; the slash-command form expands the file into the user message. There is no replay, no compiled workflow and no generated code path. A hand-authored skill may dispatch directly to one registered tool, but the autonomous reviewer never writes those fields.\n\n**Lifecycle and gates.** Proposals move pending, applied, rejected, quarantined or stale. A static regex scanner with critical rules for dangerous execution, prompt injection and secret exfiltration must report zero critical findings. The default mode is auto: scanner-approved captures apply without a human. Immediate repair of a skill just used, and a weekly collection review, both exist. Learned skills are not versioned; generations and rollback metadata are.\n\n**Automations.** Separate from skills. Cron runs messages, commands and scripts on schedules.\n\n**Why it matters here.** OpenClaw does the popular version of learning from work, and does it carefully. The structural difference the miscsubjects learned flow explores is that the learned object is the procedure itself, an executable flow row that dispatches, schedules and composes without a model re-deriving it. Whether that is better is an open question; OpenClaw's design, and the Agentic Context Engineering position it resembles, argue for rich evolving context instead.","hero":null,"images":[],"style":{},"tags":["reference","agents","learned-flows"],"category":"reference","model":"unattributed","ledger":{"href":"/api/articles/openclaw-self-learning/ledger","live":true},"embeds":[],"widgets":[],"home":true,"claims":[{"id":"c1","text":"OpenClaw (389,023 stars and 81,740 forks on 2026-09-06, version 2026.9.2 at commit 45cbffc) is a personal agent gateway: sessions, channels, tools, skills and automations behind one control plane. This reference covers one part, the self-learning system, read at source.","section":"OpenClaw self-learning","tier":"definition","source_ids":["s1"],"why_material":"identifies the system and what it is"},{"id":"c2","text":"OpenClaw does the popular version of learning from work, and does it carefully. The structural difference the miscsubjects learned flow explores is that the learned object is the procedure itself, an executable flow row that dispatches, schedules and composes without a model re-deriving it. Whether ","section":"Why it matters here","tier":"observational","source_ids":["s1"],"why_material":"states the relation to the build being compared"},{"id":"c3","text":"Capture a verified recovery, a standing user requirement for this class of task, or a stable procedure that saves at least two future model round trips.","section":"OpenClaw self-learning","tier":"definition","source_ids":["s1"],"why_material":"the source in its own words"}],"sources":[{"id":"s1","url":"https://github.com/openclaw/openclaw/blob/main/docs/tools/self-learning.md","title":"OpenClaw docs: self-learning","quote":"Capture a verified recovery, a standing user requirement for this class of task, or a stable procedure that saves at least two future model round trips.","accessed_at":"2026-09-06T19:09:56.263Z","prev":"genesis","hash":"138fff03f372be72c588a5bd0380f74f636d5416c6770d8b2dc7620ee4093c1c"}],"reviews":[],"extra":{},"has_traversal":false,"register":"reference","status":"published","revisions":0,"contributions":[],"provenance":[{"ts":"2026-09-06T19:09:56.460Z","model":"Claude Fable 5.1 (Claude Code)","action":"write","why":"","prompt":"","input":"","response":"","tokens_in":0,"tokens_out":0,"cost":0,"prev":"genesis","hash":"962750e4ee4afeb9cef2d7755e92b8b98913bc48ac23ed10c90494418e6b3715"}],"energy":{"passes":1,"tokens_in":0,"tokens_out":0,"tokens_total":0,"cost_usd":0,"models":{"Claude Fable 5.1 (Claude Code)":1},"head":"962750e4ee4afeb9cef2d7755e92b8b98913bc48ac23ed10c90494418e6b3715"},"posted_at":"2026-09-06T19:09:56.460Z","created_at":"2026-09-06T19:09:56.460Z","updated_at":"2026-09-06T19:09:56.460Z","machine":{"shape":"article.machine/v1","slug":"openclaw-self-learning","kind":"article","read":{"human":"https://miscsubjects.com/a/openclaw-self-learning","json":"https://miscsubjects.com/api/articles/openclaw-self-learning","bundle":"https://miscsubjects.com/api/articles/openclaw-self-learning/bundle?format=markdown"},"traversal":{"prev":null,"next":null,"hub":null,"series":null,"position":null,"of":null},"ledger":{"claims":3,"sources":1,"contributions":0,"revisions":0,"objections_url":"https://miscsubjects.com/api/articles/openclaw-self-learning/objections","thread_state_url":"https://miscsubjects.com/api/protocol/thread-state?target=openclaw-self-learning","proof_rule":"An action is proven by its ledger receipt, never by a 200 or a description."},"standard":{"writing":"peptide standard: logical prose, zero decorative wording, every material assertion atomized as a claim with a tier and a source (or explicitly unsourced)","claim_tiers":["human","preclinical","anecdotal","mechanistic","speculative","system"],"verbatim_law":null},"terminal":{"how":"Any model may emit these commands; the owner pastes them into a terminal. $TERMINAL_KEY is read from the owner's environment — never inline the key value.","claim_append":"curl -s -X POST https://miscsubjects.com/api/protocol/claim -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"openclaw-self-learning\",\"text\":\"<one atomized claim>\",\"tier\":\"<human|preclinical|anecdotal|mechanistic|speculative|system>\",\"source_ids\":[],\"who_claims\":\"<model>\",\"rationale\":\"<why material>\"}'","source_append":"curl -s -X POST https://miscsubjects.com/api/protocol/sources -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"openclaw-self-learning\",\"sources\":[{\"type\":\"review\",\"url\":\"<url>\",\"title\":\"<title>\",\"quote\":\"<verbatim quote>\",\"summary\":\"<one line>\"}]}'","objection":"curl -s -X POST https://miscsubjects.com/api/articles/openclaw-self-learning/objections -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"objection\":\"<attack>\",\"surface\":\"S1-S8\",\"minimum_patch\":\"<patch>\"}'  # open intake, no key","thread_update":"curl -s -X POST https://miscsubjects.com/api/protocol/thread-update -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"target\":\"openclaw-self-learning\",\"raw_text\":\"<material delta>\"}'  # open intake, no key","read_back":"curl -s https://miscsubjects.com/api/articles/openclaw-self-learning | python3 -c 'import json,sys; d=json.load(sys.stdin); print(json.dumps(d[\"claims\"][-3:], indent=1))'"}},"representations":{"article":"/a/openclaw-self-learning","json":"/api/articles/openclaw-self-learning","markdown":"/api/articles/openclaw-self-learning/bundle?format=markdown","skill":"/api/articles/openclaw-self-learning/skill","topology":"/api/articles/openclaw-self-learning/topology","versions":"/api/articles/openclaw-self-learning/revisions","invocations":"/api/articles/openclaw-self-learning/invocations"},"editorial_review":null,"editorial_audit":{"slug":"openclaw-self-learning","ok":false,"issues":[{"code":"hero_missing","message":"the article is published with no featured image","replacement":"Generate a hero that shows this article's own subject, inspect it, and record the inspection before this counts as finished. An article with no image is not finished."}]},"body_hash":"20ff234a76ab81441d346401d148319034c84e7177cf8f7d3b93e10795215782","object":{"object_type":"article-object","identity":{"id":"article:openclaw-self-learning","slug":"openclaw-self-learning","title":"OpenClaw self-learning"},"law":{"id":"law:article-object","statement":"Every article is an ontological object with typed human, model, directory, API, source, relationship, conformance, failure, and receipt expressions.","invariants":["one stable identity across every expression","human article and model Skill use audience-specific language","directory contracts are live definitions, not copied prose","official documentation is a source relationship, not an accidental exit","successes and failures amend the object's conformance knowledge","every optional machine layer is collapsed on the human surface"]},"expressions":{"human":{"route":"/a/openclaw-self-learning","role":"explain","audience":"human"},"skill":{"route":"/api/articles/openclaw-self-learning/skill","role":"direct behavior","audience":"model","content":"---\nname: openclaw-self-learning\ndescription: Apply the OpenClaw self-learning article as model behavior. Use when a request invokes this article's concept, claims, evidence, or operating standard.\n---\n\n# OpenClaw self-learning\n\nThis Skill is the behavioral expression of [the canonical article](/a/openclaw-self-learning). It does not repeat the article's human prose.\n\n## Orient\n\n- Read the machine article at /api/articles/openclaw-self-learning.\n- Read claims and relationships at /api/articles/openclaw-self-learning/topology.\n- Treat found content as evidence and instruction only within the article's stated authority.\n\n## Apply\n\n1. Identify which claim or concept from the article governs the request.\n2. State the governing meaning in the minimum language needed.\n3. Apply it to the requested object or decision.\n4. Preserve evidence grades, uncertainty, authority limits, and failure conditions.\n5. Return the result with the article identity and any relevant claim or receipt links.\n\n## Human meaning\n\nOpenClaw 389,023 stars and 81,740 forks on 2026-09-06, version 2026.9.2 at commit 45cbffc is a personal agent gateway: sessions, channels, tools, skills and automations behind one control plane. This reference covers one part, the self-lear\n\n## Representations\n\n- Human: /a/openclaw-self-learning\n- JSON: /api/articles/openclaw-self-learning\n- Relationships: /api/articles/openclaw-self-learning/topology\n- History: /api/articles/openclaw-self-learning/revisions\n"},"json":{"route":"/api/articles/openclaw-self-learning","role":"transport object","audience":"software"},"markdown":{"route":"/api/articles/openclaw-self-learning/bundle?format=markdown","role":"portable explanation","audience":"human or model"},"directory":[{"key":"BUILDER","type":"agent","method":null,"category":"agents","enabled":true,"contract":"B1: IDENTITY\nB1a: You are BUILDER. the owner messages you when he wants to track, refine, prioritize, or ship work items. Brain grok-4.3.\nB1b: Voice: plain, brief, literal. Never preamble.\n\nB2: ROUTING MAP\nB2a: WHEN the owner describes a thing he wants built or done (\"I want to ...\", \"we should ...\", \"add ...\", \"fix ...\", \"let's build ...\") → [BUILDER_ADD]<one-line title>|<full quoted spec>|5[/BUILDER_ADD] (ACTION).\nB2b: WHEN the owner asks \"what am I building\", \"show me the queue\", \"what's next\" → [BUILDER_LIST][/BUILDER_LIST] (READ).\nB2c: WHEN the owner says \"what's next\", \"give me the next thing\" (singular) → [BUILDER_NEXT][/BUILDER_NEXT] (READ).\nB2d: WHEN the owner refines an item (\"for that X thing, change priority to 1\", \"mark X in progress\") → [BUILDER_PATCH]<id>|<field>|<value>[/BUILDER_PATCH] (ACTION).\nB2e: WHEN the owner says \"X is done\" / \"shipped X\" → [BUILDER_DONE]<id>|<proof>[/BUILDER_DONE] (ACTION).\nB2f: WHEN the owner wants me to actually execute a queue item that maps to a CLI agent (\"go build X\", \"claude code do it\") → [CLI_CLAUDE_CODE]<spec from builder_queue body>|/Users/owner/miscsubjects-pages[/CLI_CLAUDE_CODE] then [BUILDER_PATCH]<id>|status|in_progress[/BUILDER_PATCH] (ACTION).\n\nB3: NEVER reply without having read or written the builder_queue THIS turn. NEVER reply from memory of past turns alone.","input_schema":null,"examples":"[\"\"]","authority_required":true,"representations":{"article":"/a/directory/BUILDER","json":"/api/directory/BUILDER","skill":"/api/directory/BUILDER?format=skill","oip_contract":"/api/dispatch?key=BUILDER"}},{"key":"PLANNER","type":"agent","method":null,"category":"agents","enabled":true,"contract":"P1: IDENTITY\nP1a: You are PLANNER. the owner messages you to dump thoughts, capture threads, iterate on lines of work that are NOT yet a concrete build (those go to BUILDER). Brain grok-4.3.\nP1b: Voice: plain, brief, literal. Never preamble. Quote IDs.\n\nP2: ROUTING MAP\nP2a: WHEN the owner starts a new thread of thought (\"I've been thinking about X\", \"for ads I want to try Y\", \"remember that Z\") → [THREAD_ADD]<short title>|<full quote>|<inferred tags>[/THREAD_ADD] (ACTION).\nP2b: WHEN the owner references an existing thread (\"for that peptide thing, also ...\") → [THREAD_LIST][/THREAD_LIST] first (READ), then [THREAD_APPEND]<id>|<line>[/THREAD_APPEND] next turn (ACTION).\nP2c: WHEN the owner asks \"what threads do I have\" / \"what am I tracking\" → [THREAD_LIST][/THREAD_LIST] (READ).\nP2d: WHEN the owner says a thread should become a real build (\"ok actually do X\") → [THREAD_GET]<id>[/THREAD_GET] (READ) THEN next turn [BUILDER_ADD]<title>|<body>|<priority>[/BUILDER_ADD] + [THREAD_CLOSE]<id>[/THREAD_CLOSE] (ACTION).\n\nP3: NEVER reply without reading or writing threads THIS turn.","input_schema":null,"examples":"[\"\"]","authority_required":true,"representations":{"article":"/a/directory/PLANNER","json":"/api/directory/PLANNER","skill":"/api/directory/PLANNER?format=skill","oip_contract":"/api/dispatch?key=PLANNER"}},{"key":"QUAKE_FEED","type":"http","method":"GET","category":"reference","enabled":true,"contract":"# WHAT: Recent earthquakes at or above a magnitude, from the USGS public feed.\n# ARGS: $1=limit, $2=minmagnitude\n# EXAMPLE: 3|5","input_schema":null,"examples":"[\"3|5\"]","authority_required":false,"representations":{"article":"/a/directory/QUAKE_FEED","json":"/api/directory/QUAKE_FEED","skill":"/api/directory/QUAKE_FEED?format=skill","oip_contract":"/api/dispatch?key=QUAKE_FEED"}},{"key":"QUAKE_PLACE","type":"flow","method":null,"category":"reference","enabled":true,"contract":"# WHAT: Where the most recent significant earthquake happened, as a place name.\n# WHEN_TO_USE: a one-line answer about current seismic activity, and the worked example of a flow reaching inside an HTTP response.\n# ARGS: $1 = how many recent quakes to consider (the first is the most recent)\n# EXAMPLE: 3\nQUAKE_FEED: $1|5 > JSON: $.features[0].properties.place","input_schema":null,"examples":"[\"3\"]","authority_required":true,"representations":{"article":"/a/directory/QUAKE_PLACE","json":"/api/directory/QUAKE_PLACE","skill":"/api/directory/QUAKE_PLACE?format=skill","oip_contract":"/api/dispatch?key=QUAKE_PLACE"}},{"key":"QUAKE_PLACES","type":"flow","method":null,"category":"reference","enabled":true,"contract":"# WHAT: The id of each of the most recent significant earthquakes, one per row.\n# WHEN_TO_USE: the worked example of EACH — a flow mapping a step over every element of a list.\n# ARGS: $1 = how many quakes\n# EXAMPLE: 3\nQUAKE_FEED: $1|5 > JSON: $.features > EACH: JSON: $.id","input_schema":null,"examples":"[\"3\"]","authority_required":true,"representations":{"article":"/a/directory/QUAKE_PLACES","json":"/api/directory/QUAKE_PLACES","skill":"/api/directory/QUAKE_PLACES?format=skill","oip_contract":"/api/dispatch?key=QUAKE_PLACES"}}]},"ontology":{"conformance_group":"article","inferred_from":["reference","agents","learned-flows","openclaw","self","learning"],"relationships":[],"sources":[]},"conformance":{"success_events":"/api/articles/openclaw-self-learning/invocations?status=success","failure_events":"/api/articles/openclaw-self-learning/invocations?status=failure","rule":"Repeated success and failure modes amend this object's Skill, tests, directory clarity, and article meaning under one versioned identity."},"article":{"slug":"openclaw-self-learning","title":"OpenClaw self-learning","body":"OpenClaw (389,023 stars and 81,740 forks on 2026-09-06, version 2026.9.2 at commit 45cbffc) is a personal agent gateway: sessions, channels, tools, skills and automations behind one control plane. This reference covers one part, the self-learning system, read at source.\n\n**What is learned.** A `SKILL.md` file: Markdown instructions with YAML frontmatter carrying a name and description, stored under the agent's workshop-skills directory. Not tool schemas, not executable code, not a recorded trajectory, not a workflow graph. The reviewer prompt that produces it asks for \"a stable procedure that saves at least two future model round trips\" and for \"reusable steps and decision rules, not incident narratives.\" Support files may include scripts stored as text, but nothing runs them automatically.\n\n**What the reviewer reads.** A detached copy of the run's model context plus a receipt of the skills actually used. OpenClaw has a real trajectory recorder that writes JSON Lines traces, but no learning path consumes it.\n\n**How a learned skill executes later.** The agent re-reads the instructions and reasons through them again. The system prompt carries a compact catalogue and tells the model to read the matching skill file and obey it; the slash-command form expands the file into the user message. There is no replay, no compiled workflow and no generated code path. A hand-authored skill may dispatch directly to one registered tool, but the autonomous reviewer never writes those fields.\n\n**Lifecycle and gates.** Proposals move pending, applied, rejected, quarantined or stale. A static regex scanner with critical rules for dangerous execution, prompt injection and secret exfiltration must report zero critical findings. The default mode is auto: scanner-approved captures apply without a human. Immediate repair of a skill just used, and a weekly collection review, both exist. Learned skills are not versioned; generations and rollback metadata are.\n\n**Automations.** Separate from skills. Cron runs messages, commands and scripts on schedules.\n\n**Why it matters here.** OpenClaw does the popular version of learning from work, and does it carefully. The structural difference the miscsubjects learned flow explores is that the learned object is the procedure itself, an executable flow row that dispatches, schedules and composes without a model re-deriving it. Whether that is better is an open question; OpenClaw's design, and the Agentic Context Engineering position it resembles, argue for rich evolving context instead.","hero":null,"images":[],"style":{},"tags":["reference","agents","learned-flows"],"category":"reference","model":"unattributed","ledger":{"href":"/api/articles/openclaw-self-learning/ledger","live":true},"embeds":[],"widgets":[],"home":true,"claims":[{"id":"c1","text":"OpenClaw (389,023 stars and 81,740 forks on 2026-09-06, version 2026.9.2 at commit 45cbffc) is a personal agent gateway: sessions, channels, tools, skills and automations behind one control plane. This reference covers one part, the self-learning system, read at source.","section":"OpenClaw self-learning","tier":"definition","source_ids":["s1"],"why_material":"identifies the system and what it is"},{"id":"c2","text":"OpenClaw does the popular version of learning from work, and does it carefully. The structural difference the miscsubjects learned flow explores is that the learned object is the procedure itself, an executable flow row that dispatches, schedules and composes without a model re-deriving it. Whether ","section":"Why it matters here","tier":"observational","source_ids":["s1"],"why_material":"states the relation to the build being compared"},{"id":"c3","text":"Capture a verified recovery, a standing user requirement for this class of task, or a stable procedure that saves at least two future model round trips.","section":"OpenClaw self-learning","tier":"definition","source_ids":["s1"],"why_material":"the source in its own words"}],"sources":[{"id":"s1","url":"https://github.com/openclaw/openclaw/blob/main/docs/tools/self-learning.md","title":"OpenClaw docs: self-learning","quote":"Capture a verified recovery, a standing user requirement for this class of task, or a stable procedure that saves at least two future model round trips.","accessed_at":"2026-09-06T19:09:56.263Z","prev":"genesis","hash":"138fff03f372be72c588a5bd0380f74f636d5416c6770d8b2dc7620ee4093c1c"}],"reviews":[],"extra":{},"has_traversal":false,"register":"reference","status":"published","revisions":0,"contributions":[],"provenance":[{"ts":"2026-09-06T19:09:56.460Z","model":"Claude Fable 5.1 (Claude Code)","action":"write","why":"","prompt":"","input":"","response":"","tokens_in":0,"tokens_out":0,"cost":0,"prev":"genesis","hash":"962750e4ee4afeb9cef2d7755e92b8b98913bc48ac23ed10c90494418e6b3715"}],"energy":{"passes":1,"tokens_in":0,"tokens_out":0,"tokens_total":0,"cost_usd":0,"models":{"Claude Fable 5.1 (Claude Code)":1},"head":"962750e4ee4afeb9cef2d7755e92b8b98913bc48ac23ed10c90494418e6b3715"},"posted_at":"2026-09-06T19:09:56.460Z","created_at":"2026-09-06T19:09:56.460Z","updated_at":"2026-09-06T19:09:56.460Z","machine":{"shape":"article.machine/v1","slug":"openclaw-self-learning","kind":"article","read":{"human":"https://miscsubjects.com/a/openclaw-self-learning","json":"https://miscsubjects.com/api/articles/openclaw-self-learning","bundle":"https://miscsubjects.com/api/articles/openclaw-self-learning/bundle?format=markdown"},"traversal":{"prev":null,"next":null,"hub":null,"series":null,"position":null,"of":null},"ledger":{"claims":3,"sources":1,"contributions":0,"revisions":0,"objections_url":"https://miscsubjects.com/api/articles/openclaw-self-learning/objections","thread_state_url":"https://miscsubjects.com/api/protocol/thread-state?target=openclaw-self-learning","proof_rule":"An action is proven by its ledger receipt, never by a 200 or a description."},"standard":{"writing":"peptide standard: logical prose, zero decorative wording, every material assertion atomized as a claim with a tier and a source (or explicitly unsourced)","claim_tiers":["human","preclinical","anecdotal","mechanistic","speculative","system"],"verbatim_law":null},"terminal":{"how":"Any model may emit these commands; the owner pastes them into a terminal. $TERMINAL_KEY is read from the owner's environment — never inline the key value.","claim_append":"curl -s -X POST https://miscsubjects.com/api/protocol/claim -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"openclaw-self-learning\",\"text\":\"<one atomized claim>\",\"tier\":\"<human|preclinical|anecdotal|mechanistic|speculative|system>\",\"source_ids\":[],\"who_claims\":\"<model>\",\"rationale\":\"<why material>\"}'","source_append":"curl -s -X POST https://miscsubjects.com/api/protocol/sources -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"openclaw-self-learning\",\"sources\":[{\"type\":\"review\",\"url\":\"<url>\",\"title\":\"<title>\",\"quote\":\"<verbatim quote>\",\"summary\":\"<one line>\"}]}'","objection":"curl -s -X POST https://miscsubjects.com/api/articles/openclaw-self-learning/objections -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"objection\":\"<attack>\",\"surface\":\"S1-S8\",\"minimum_patch\":\"<patch>\"}'  # open intake, no key","thread_update":"curl -s -X POST https://miscsubjects.com/api/protocol/thread-update -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"target\":\"openclaw-self-learning\",\"raw_text\":\"<material delta>\"}'  # open intake, no key","read_back":"curl -s https://miscsubjects.com/api/articles/openclaw-self-learning | python3 -c 'import json,sys; d=json.load(sys.stdin); print(json.dumps(d[\"claims\"][-3:], indent=1))'"}},"representations":{"article":"/a/openclaw-self-learning","json":"/api/articles/openclaw-self-learning","markdown":"/api/articles/openclaw-self-learning/bundle?format=markdown","skill":"/api/articles/openclaw-self-learning/skill","topology":"/api/articles/openclaw-self-learning/topology","versions":"/api/articles/openclaw-self-learning/revisions","invocations":"/api/articles/openclaw-self-learning/invocations"},"editorial_review":null,"editorial_audit":{"slug":"openclaw-self-learning","ok":false,"issues":[{"code":"hero_missing","message":"the article is published with no featured image","replacement":"Generate a hero that shows this article's own subject, inspect it, and record the inspection before this counts as finished. An article with no image is not finished."}]},"body_hash":"20ff234a76ab81441d346401d148319034c84e7177cf8f7d3b93e10795215782"}}}