[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M72DZ2EAEASRTPCBY56T84NC":3,"skill-same:01M72DZ2EAEASRTPCBY56T84NC":51},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":28,"commitSha":29,"skillDirectory":30,"forksCount":14,"repositoryHtmlUrl":31,"repositoryHomepageUrl":32,"ownerHtmlUrl":33,"ownerBlogUrl":34,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M72DZ2EAEASRTPCBY56T84NC","rlm-auto",null,"Routes long-context, cross-document, and corpus tasks through the rlm plugin when the UserPromptSubmit hook flags them as RLM-shaped. Invoke only when an rlm-auto system reminder is present.","wbratz\u002Fbillys-ai-skills","wbratz","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6062728?v=4","01M72DZ0C1G73BCCR3TQ71PYZR","William Bratz","01M72DZ0CQJCZNJ273HCJ609TF",0,"MIT","https:\u002F\u002Fgithub.com\u002Fwbratz\u002Fbillys-ai-skills\u002Fblob\u002Fmain\u002Fclaude\u002Fplugins\u002Fbillys-rlm-auto\u002Fskills\u002Frlm-auto\u002FSKILL.md",[],[],"2026-11-10 18:39:20",false,"---\nname: rlm-auto\ndescription: >-\n  Routes long-context, cross-document, and corpus tasks through the rlm plugin\n  when the UserPromptSubmit hook flags them as RLM-shaped. Invoke only when an\n  rlm-auto system reminder is present.\ntriggers:\n  - \"rlm-auto: this task looks RLM-shaped\"\n  - \"rlm-auto: this task is borderline\"\n  - \"rlm-auto routing\"\n---\n\n# rlm-auto routing skill\n\nYou only run this skill when a `rlm-auto:` system reminder appears earlier in\nthe turn. The reminder will tell you:\n- the verdict (`rlm` \u002F `ambiguous` \u002F `direct`)\n- the signals\n- the cost estimate\n- the decision_id\n- the auto-approve cap\n\nThis skill never invokes a sibling plugin's scripts by path. It invokes the\npublic slash commands the user already has registered (`\u002Frlm:rlm-plan` and\n`\u002Frlm:rlm`) so the rlm plugin's install location stays opaque.\n\n## Workflow when verdict = rlm\n\n1. **Plan the run silently.** Invoke the planning slash command:\n\n   ```\n   \u002Frlm:rlm-plan \u003Ctarget-from-prompt> \"\u003Cuser's question>\"\n   ```\n\n   The command outputs the same Markdown + fenced JSON block as\n   `rlm_plan.py`. Parse the JSON block.\n\n2. **Check the cap deterministically.** Pipe the plan's JSON into the\n   bundled cap-check helper. Do not eyeball the math:\n\n   ```bash\n   py -3 \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fcheck_cap.py\" --plan-json '\u003Cplan-json>'\n   ```\n\n   The script reads `~\u002F.rlm\u002Fauto-config.json` for `auto_approve_cap_usd`,\n   compares it to `plan.est_cost_usd.high`, and prints one line:\n   `decision=auto_approve` or `decision=ask reason=\u003Creason>`. Exit code\n   matches: 0 for auto-approve, 1 for ask. Trust the exit code.\n\n3. **If decision=ask**, emit exactly one line and wait:\n\n   > rlm-auto: estimated cost up to **$X.XX** exceeds the auto-approve cap (**$Y.YY**). Run anyway? (yes\u002Fno)\n\n   Do not paraphrase, do not ask follow-ups. On `yes`, proceed; on\n   anything else, fall back to a normal direct flow.\n\n4. **Execute via the public slash command.** Once approved (auto or\n   explicit), invoke:\n\n   ```\n   \u002Frlm:rlm \u003Ctarget> \"\u003Cquestion>\"\n   ```\n\n   That command handles health probe + native fallback automatically.\n\n5. **Produce the answer.** Render the final answer to the user. Append\n   exactly ONE footer line built from the estimate the system reminder\n   gave you (or re-derived via the `rlm-estimate` skill):\n\n   ```\n   [rlm-auto] used RLM mode=\u003Cmin|default|max> (est $X.XX-$Y.YY,\n   ~Z% vs direct, +Wpp acc projected; log: .rlm\u002Flogs\u002F\u003Cid>.jsonl;\n   decision: \u003Cdecision_id>)\n   ```\n\n   This footer is the user-visible transparency signal. Do NOT skip it\n   unless `show_footer: false` is set in `~\u002F.rlm\u002Fauto-config.json`.\n\n6. **Attach an accurate outcome.** If the runner reported a real cost\n   figure, write it to the decision log so the evaluator grades against\n   reality, not the projection:\n\n   ```bash\n   py -3 \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fdecision_log.py\" attach-outcome \\\n     --decision-id \u003Cdecision_id> \\\n     --outcome-json '{\"ran\":\"rlm\",\"actual_cost_est_usd\":0.22,\"rlm_fanout\":12,\"tool_calls\":N}'\n   ```\n\n   Otherwise the Stop hook fills in what it can from session telemetry.\n\n## Workflow when verdict = ambiguous\n\nDo not auto-route. Decide for yourself based on the user's actual question:\n- If the question requires reasoning *across* the inputs (compare,\n  aggregate, audit, summarize the whole), invoke `\u002Frlm:rlm-plan` and\n  follow the same cap-check + execute flow as above.\n- If it's a lookup-style question on one of the inputs, proceed normally.\n\nEither way, no footer is required when going direct.\n\n## Workflow when verdict = direct\n\nDo nothing. The hook already logged the decision; the evaluator will\ngrade it on session end.\n\n## Critical rules\n\n- **Never explain RLM unless asked.** This skill is meant to be invisible.\n  The one-line footer is the only transparency signal.\n- **Never put the user's raw input into your chat context.** Pass paths\n  to the RLM scripts. RLM's whole point is to keep big context outside\n  the prompt.\n- **Honor the cap script's exit code.** Even if you're confident, never\n  bypass `check_cap.py`. The cap exists so a misclassification costs at\n  most $cap.\n- **Never write to the user's `settings.json`.** Configuration changes\n  go through `\u002Frlm-auto:config`.\n- **Don't grade the decision.** That is the evaluator's job. Just route\n  and write the outcome.\n\n## What this skill does NOT do\n\n- It does not run the planner if the user has already typed `\u002Frlm:rlm`\n  directly. In that case, defer to the base rlm skill.\n- It does not collect telemetry or send anything off the machine beyond\n  what already flows to the API via the normal Claude Code request.\n- It does not retry on RLM failure. If the RLM run fails or returns\n  `ok: false`, fall back to a normal Read\u002FGrep flow and write that\n  outcome to the log so the evaluator can mark it.\n\n## Required dependency\n\nThis skill calls `\u002Frlm:rlm-plan` and `\u002Frlm:rlm`. If those commands are\nnot registered, the rlm plugin is not installed. Tell the user to\ninstall it (`claude plugin install rlm`) and abort the auto-routing - fall back to a normal direct flow for the current turn.\n","# rlm-auto routing skill\n\nYou only run this skill when a `rlm-auto:` system reminder appears earlier in\nthe turn. The reminder will tell you:\n- the verdict (`rlm` \u002F `ambiguous` \u002F `direct`)\n- the signals\n- the cost estimate\n- the decision_id\n- the auto-approve cap\n\nThis skill never invokes a sibling plugin's scripts by path. It invokes the\npublic slash commands the user already has registered (`\u002Frlm:rlm-plan` and\n`\u002Frlm:rlm`) so the rlm plugin's install location stays opaque.\n\n## Workflow when verdict = rlm\n\n1. **Plan the run silently.** Invoke the planning slash command:\n\n   ```\n   \u002Frlm:rlm-plan \u003Ctarget-from-prompt> \"\u003Cuser's question>\"\n   ```\n\n   The command outputs the same Markdown + fenced JSON block as\n   `rlm_plan.py`. Parse the JSON block.\n\n2. **Check the cap deterministically.** Pipe the plan's JSON into the\n   bundled cap-check helper. Do not eyeball the math:\n\n   ```bash\n   py -3 \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fcheck_cap.py\" --plan-json '\u003Cplan-json>'\n   ```\n\n   The script reads `~\u002F.rlm\u002Fauto-config.json` for `auto_approve_cap_usd`,\n   compares it to `plan.est_cost_usd.high`, and prints one line:\n   `decision=auto_approve` or `decision=ask reason=\u003Creason>`. Exit code\n   matches: 0 for auto-approve, 1 for ask. Trust the exit code.\n\n3. **If decision=ask**, emit exactly one line and wait:\n\n   > rlm-auto: estimated cost up to **$X.XX** exceeds the auto-approve cap (**$Y.YY**). Run anyway? (yes\u002Fno)\n\n   Do not paraphrase, do not ask follow-ups. On `yes`, proceed; on\n   anything else, fall back to a normal direct flow.\n\n4. **Execute via the public slash command.** Once approved (auto or\n   explicit), invoke:\n\n   ```\n   \u002Frlm:rlm \u003Ctarget> \"\u003Cquestion>\"\n   ```\n\n   That command handles health probe + native fallback automatically.\n\n5. **Produce the answer.** Render the final answer to the user. Append\n   exactly ONE footer line built from the estimate the system reminder\n   gave you (or re-derived via the `rlm-estimate` skill):\n\n   ```\n   [rlm-auto] used RLM mode=\u003Cmin|default|max> (est $X.XX-$Y.YY,\n   ~Z% vs direct, +Wpp acc projected; log: .rlm\u002Flogs\u002F\u003Cid>.jsonl;\n   decision: \u003Cdecision_id>)\n   ```\n\n   This footer is the user-visible transparency signal. Do NOT skip it\n   unless `show_footer: false` is set in `~\u002F.rlm\u002Fauto-config.json`.\n\n6. **Attach an accurate outcome.** If the runner reported a real cost\n   figure, write it to the decision log so the evaluator grades against\n   reality, not the projection:\n\n   ```bash\n   py -3 \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fdecision_log.py\" attach-outcome \\\n     --decision-id \u003Cdecision_id> \\\n     --outcome-json '{\"ran\":\"rlm\",\"actual_cost_est_usd\":0.22,\"rlm_fanout\":12,\"tool_calls\":N}'\n   ```\n\n   Otherwise the Stop hook fills in what it can from session telemetry.\n\n## Workflow when verdict = ambiguous\n\nDo not auto-route. Decide for yourself based on the user's actual question:\n- If the question requires reasoning *across* the inputs (compare,\n  aggregate, audit, summarize the whole), invoke `\u002Frlm:rlm-plan` and\n  follow the same cap-check + execute flow as above.\n- If it's a lookup-style question on one of the inputs, proceed normally.\n\nEither way, no footer is required when going direct.\n\n## Workflow when verdict = direct\n\nDo nothing. The hook already logged the decision; the evaluator will\ngrade it on session end.\n\n## Critical rules\n\n- **Never explain RLM unless asked.** This skill is meant to be invisible.\n  The one-line footer is the only transparency signal.\n- **Never put the user's raw input into your chat context.** Pass paths\n  to the RLM scripts. RLM's whole point is to keep big context outside\n  the prompt.\n- **Honor the cap script's exit code.** Even if you're confident, never\n  bypass `check_cap.py`. The cap exists so a misclassification costs at\n  most $cap.\n- **Never write to the user's `settings.json`.** Configuration changes\n  go through `\u002Frlm-auto:config`.\n- **Don't grade the decision.** That is the evaluator's job. Just route\n  and write the outcome.\n\n## What this skill does NOT do\n\n- It does not run the planner if the user has already typed `\u002Frlm:rlm`\n  directly. In that case, defer to the base rlm skill.\n- It does not collect telemetry or send anything off the machine beyond\n  what already flows to the API via the normal Claude Code request.\n- It does not retry on RLM failure. If the RLM run fails or returns\n  `ok: false`, fall back to a normal Read\u002FGrep flow and write that\n  outcome to the log so the evaluator can mark it.\n\n## Required dependency\n\nThis skill calls `\u002Frlm:rlm-plan` and `\u002Frlm:rlm`. If those commands are\nnot registered, the rlm plugin is not installed. Tell the user to\ninstall it (`claude plugin install rlm`) and abort the auto-routing - fall back to a normal direct flow for the current turn.\n",{"name":5,"triggers":24,"description":7},[25,26,27],"rlm-auto: this task looks RLM-shaped","rlm-auto: this task is borderline","rlm-auto routing","main","94180703a15a9ead6d04c29c492368d6f5aa02db","claude\u002Fplugins\u002Fbillys-rlm-auto\u002Fskills\u002Frlm-auto","https:\u002F\u002Fgithub.com\u002Fwbratz\u002Fbillys-ai-skills","https:\u002F\u002Fwww.williambratz.com\u002Fprojects","https:\u002F\u002Fgithub.com\u002Fwbratz","https:\u002F\u002Fwww.williambratz.com","Senior software engineer building production AI platforms, MCP infrastructure, and distributed systems.","2026-11-01 12:09:23",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add wbratz\u002Fbillys-ai-skills --skill rlm-auto",{"tool":43,"command":44},"bunx","bunx skills add wbratz\u002Fbillys-ai-skills --skill rlm-auto",{"tool":46,"command":47},"pnpm","pnpm dlx skills add wbratz\u002Fbillys-ai-skills --skill rlm-auto","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fwbratz\u002Fbillys-ai-skills\u002Fblob\u002Fmain\u002Fclaude\u002Fplugins\u002Fbillys-rlm-auto\u002Fskills\u002Frlm-auto\u002FSKILL.md",true,[],[52,59,66,73,80,87],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":19},"01M72DZMY6D9D12FE3CAPVEFRJ","todo-skill-name","TODO describe exactly when Codex should use this skill and when it should not.","https:\u002F\u002Fgithub.com\u002Fwbratz\u002Fbillys-ai-skills\u002Fblob\u002Fmain\u002Fopenai\u002Ftemplates\u002Fskill\u002FSKILL.md",[],[],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":65,"publishedAt":19},"01M72DZK2J8D6JYBWMP4N1E3H4","example-skill","TODO replace this with the plugin skill trigger.","https:\u002F\u002Fgithub.com\u002Fwbratz\u002Fbillys-ai-skills\u002Fblob\u002Fmain\u002Fopenai\u002Ftemplates\u002Fplugin\u002Fskills\u002Fexample-skill\u002FSKILL.md",[],[],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":19},"01M72DZH2S7V8AW6CHN15V18BF","rlm","Use when the user explicitly says \"use RLM\" or a task needs long-context recursive decomposition across many files, logs, transcripts, corpora, PDFs, or documents. Do not use for narrow edits, small single-file analysis, ordinary repo search, or tasks with no external context.","https:\u002F\u002Fgithub.com\u002Fwbratz\u002Fbillys-ai-skills\u002Fblob\u002Fmain\u002Fopenai\u002Fplugins\u002Frlm-codex\u002Fskills\u002Frlm\u002FSKILL.md",[],[],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":19},"01M72DZEDMFV84RHNP7J7DAHN7","openai-marketplace-maintainer","Use when adding, reviewing, or fixing Codex skills, plugins, custom subagents, marketplace entries, or registry metadata under this OpenAI marketplace folder.","https:\u002F\u002Fgithub.com\u002Fwbratz\u002Fbillys-ai-skills\u002Fblob\u002Fmain\u002Fopenai\u002F.agents\u002Fskills\u002Fopenai-marketplace-maintainer\u002FSKILL.md",[],[],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":19},"01M72DZD2VA2ZX1NEB8VT4SDDK","My Skill Name","One sentence describing what this skill does and when to invoke it.","https:\u002F\u002Fgithub.com\u002Fwbratz\u002Fbillys-ai-skills\u002Fblob\u002Fmain\u002Fclaude\u002Ftemplates\u002Fskill\u002Fskill.md",[],[],{"skillNo":88,"name":68,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":19},"01M72DZA2X3B9TE15WJMAT9348","Use when a task involves long context, many files, PDFs, logs, transcripts, URLs, corpora, or anything requiring recursive decomposition over external context that won't fit comfortably in a single prompt. NOT for ordinary small edits, short Q&A, or single-file inspection.","https:\u002F\u002Fgithub.com\u002Fwbratz\u002Fbillys-ai-skills\u002Fblob\u002Fmain\u002Fclaude\u002Fplugins\u002Fbillys-rlm\u002Fskills\u002Frlm\u002FSKILL.md",[],[]]