[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openclaw-openclaw-skills-oracle":3},{"error":4,"detail":5,"metadata":23,"markdownContent":25,"rawMarkdown":20},false,{"repo_full_name":6,"owner":7,"repo_name":7,"repo_forks":8,"skill_path":9,"repo_stars":10,"name":11,"category_id":12,"description":13,"file_tree":14,"skill_md_content":20,"skill_id":21,"skill_key":22},"openclaw/openclaw","openclaw",62387,"skills/oracle",323670,"oracle",1,"Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).",[15],{"name":16,"path":17,"size":18,"type":19},"SKILL.md","skills/oracle/SKILL.md",5073,"file","---\nname: oracle\ndescription: Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).\nhomepage: https://askoracle.dev\nmetadata:\n  {\n    \"openclaw\":\n      {\n        \"emoji\": \"🧿\",\n        \"requires\": { \"bins\": [\"oracle\"] },\n        \"install\":\n          [\n            {\n              \"id\": \"node\",\n              \"kind\": \"node\",\n              \"package\": \"@steipete/oracle\",\n              \"bins\": [\"oracle\"],\n              \"label\": \"Install oracle (node)\",\n            },\n          ],\n      },\n  }\n---\n\n# oracle — best use\n\nOracle bundles your prompt + selected files into one “one-shot” request so another model can answer with real repo context (API or browser automation). Treat output as advisory: verify against code + tests.\n\n## Main use case (browser, GPT‑5.2 Pro)\n\nDefault workflow here: `--engine browser` with GPT‑5.2 Pro in ChatGPT. This is the common “long think” path: ~10 minutes to ~1 hour is normal; expect a stored session you can reattach to.\n\nRecommended defaults:\n\n- Engine: browser (`--engine browser`)\n- Model: GPT‑5.2 Pro (`--model gpt-5.2-pro` or `--model \"5.2 Pro\"`)\n\n## Golden path\n\n1. Pick a tight file set (fewest files that still contain the truth).\n2. Preview payload + token spend (`--dry-run` + `--files-report`).\n3. Use browser mode for the usual GPT‑5.2 Pro workflow; use API only when you explicitly want it.\n4. If the run detaches/timeouts: reattach to the stored session (don’t re-run).\n\n## Commands (preferred)\n\n- Help:\n  - `oracle --help`\n  - If the binary isn’t installed: `npx -y @steipete/oracle --help` (avoid `pnpx` here; sqlite bindings).\n\n- Preview (no tokens):\n  - `oracle --dry-run summary -p \"\u003Ctask>\" --file \"src/**\" --file \"!**/*.test.*\"`\n  - `oracle --dry-run full -p \"\u003Ctask>\" --file \"src/**\"`\n\n- Token sanity:\n  - `oracle --dry-run summary --files-report -p \"\u003Ctask>\" --file \"src/**\"`\n\n- Browser run (main path; long-running is normal):\n  - `oracle --engine browser --model gpt-5.2-pro -p \"\u003Ctask>\" --file \"src/**\"`\n\n- Manual paste fallback:\n  - `oracle --render --copy -p \"\u003Ctask>\" --file \"src/**\"`\n  - Note: `--copy` is a hidden alias for `--copy-markdown`.\n\n## Attaching files (`--file`)\n\n`--file` accepts files, directories, and globs. You can pass it multiple times; entries can be comma-separated.\n\n- Include:\n  - `--file \"src/**\"`\n  - `--file src/index.ts`\n  - `--file docs --file README.md`\n\n- Exclude:\n  - `--file \"src/**\" --file \"!src/**/*.test.ts\" --file \"!**/*.snap\"`\n\n- Defaults (implementation behavior):\n  - Default-ignored dirs: `node_modules`, `dist`, `coverage`, `.git`, `.turbo`, `.next`, `build`, `tmp` (skipped unless explicitly passed as literal dirs/files).\n  - Honors `.gitignore` when expanding globs.\n  - Does not follow symlinks.\n  - Dotfiles filtered unless opted in via pattern (e.g. `--file \".github/**\"`).\n  - Files > 1 MB rejected.\n\n## Engines (API vs browser)\n\n- Auto-pick: `api` when `OPENAI_API_KEY` is set; otherwise `browser`.\n- Browser supports GPT + Gemini only; use `--engine api` for Claude/Grok/Codex or multi-model runs.\n- Browser attachments:\n  - `--browser-attachments auto|never|always` (auto pastes inline up to ~60k chars then uploads).\n- Remote browser host:\n  - Host: `oracle serve --host 0.0.0.0 --port 9473 --token \u003Csecret>`\n  - Client: `oracle --engine browser --remote-host \u003Chost:port> --remote-token \u003Csecret> -p \"\u003Ctask>\" --file \"src/**\"`\n\n## Sessions + slugs\n\n- Stored under `~/.oracle/sessions` (override with `ORACLE_HOME_DIR`).\n- Runs may detach or take a long time (browser + GPT‑5.2 Pro often does). If the CLI times out: don’t re-run; reattach.\n  - List: `oracle status --hours 72`\n  - Attach: `oracle session \u003Cid> --render`\n- Use `--slug \"\u003C3-5 words>\"` to keep session IDs readable.\n- Duplicate prompt guard exists; use `--force` only when you truly want a fresh run.\n\n## Prompt template (high signal)\n\nOracle starts with **zero** project knowledge. Assume the model cannot infer your stack, build tooling, conventions, or “obvious” paths. Include:\n\n- Project briefing (stack + build/test commands + platform constraints).\n- “Where things live” (key directories, entrypoints, config files, boundaries).\n- Exact question + what you tried + the error text (verbatim).\n- Constraints (“don’t change X”, “must keep public API”, etc).\n- Desired output (“return patch plan + tests”, “give 3 options with tradeoffs”).\n\n## Safety\n\n- Don’t attach secrets by default (`.env`, key files, auth tokens). Redact aggressively; share only what’s required.\n\n## “Exhaustive prompt” restoration pattern\n\nFor long investigations, write a standalone prompt + file set so you can rerun days later:\n\n- 6–30 sentence project briefing + the goal.\n- Repro steps + exact errors + what you tried.\n- Attach all context files needed (entrypoints, configs, key modules, docs).\n\nOracle runs are one-shot; the model doesn’t remember prior runs. “Restoring context” means re-running with the same prompt + `--file …` set (or reattaching a still-running stored session).\n","eaca6e0a-dbba-5740-932a-c6c80a011531","openclaw-openclaw-skills-oracle",{"name":11,"description":13,"homepage":24},"https://askoracle.dev","\u003Ch1>oracle — best use\u003C/h1>\n\u003Cp>Oracle bundles your prompt + selected files into one “one-shot” request so another model can answer with real repo context (API or browser automation). Treat output as advisory: verify against code + tests.\u003C/p>\n\u003Ch2>Main use case (browser, GPT‑5.2 Pro)\u003C/h2>\n\u003Cp>Default workflow here: \u003Ccode>--engine browser\u003C/code> with GPT‑5.2 Pro in ChatGPT. This is the common “long think” path: ~10 minutes to ~1 hour is normal; expect a stored session you can reattach to.\u003C/p>\n\u003Cp>Recommended defaults:\u003C/p>\n\u003Cul>\n\u003Cli>Engine: browser (\u003Ccode>--engine browser\u003C/code>)\u003C/li>\n\u003Cli>Model: GPT‑5.2 Pro (\u003Ccode>--model gpt-5.2-pro\u003C/code> or \u003Ccode>--model &quot;5.2 Pro&quot;\u003C/code>)\u003C/li>\n\u003C/ul>\n\u003Ch2>Golden path\u003C/h2>\n\u003Col>\n\u003Cli>Pick a tight file set (fewest files that still contain the truth).\u003C/li>\n\u003Cli>Preview payload + token spend (\u003Ccode>--dry-run\u003C/code> + \u003Ccode>--files-report\u003C/code>).\u003C/li>\n\u003Cli>Use browser mode for the usual GPT‑5.2 Pro workflow; use API only when you explicitly want it.\u003C/li>\n\u003Cli>If the run detaches/timeouts: reattach to the stored session (don’t re-run).\u003C/li>\n\u003C/ol>\n\u003Ch2>Commands (preferred)\u003C/h2>\n\u003Cul>\n\u003Cli>\u003Cp>Help:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>oracle --help\u003C/code>\u003C/li>\n\u003Cli>If the binary isn’t installed: \u003Ccode>npx -y @steipete/oracle --help\u003C/code> (avoid \u003Ccode>pnpx\u003C/code> here; sqlite bindings).\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Cp>Preview (no tokens):\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>oracle --dry-run summary -p &quot;&lt;task&gt;&quot; --file &quot;src/**&quot; --file &quot;!**/*.test.*&quot;\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>oracle --dry-run full -p &quot;&lt;task&gt;&quot; --file &quot;src/**&quot;\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Cp>Token sanity:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>oracle --dry-run summary --files-report -p &quot;&lt;task&gt;&quot; --file &quot;src/**&quot;\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Cp>Browser run (main path; long-running is normal):\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>oracle --engine browser --model gpt-5.2-pro -p &quot;&lt;task&gt;&quot; --file &quot;src/**&quot;\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Cp>Manual paste fallback:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>oracle --render --copy -p &quot;&lt;task&gt;&quot; --file &quot;src/**&quot;\u003C/code>\u003C/li>\n\u003Cli>Note: \u003Ccode>--copy\u003C/code> is a hidden alias for \u003Ccode>--copy-markdown\u003C/code>.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch2>Attaching files (\u003Ccode>--file\u003C/code>)\u003C/h2>\n\u003Cp>\u003Ccode>--file\u003C/code> accepts files, directories, and globs. You can pass it multiple times; entries can be comma-separated.\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cp>Include:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>--file &quot;src/**&quot;\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>--file src/index.ts\u003C/code>\u003C/li>\n\u003Cli>\u003Ccode>--file docs --file README.md\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Cp>Exclude:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>--file &quot;src/**&quot; --file &quot;!src/**/*.test.ts&quot; --file &quot;!**/*.snap&quot;\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>\u003Cp>Defaults (implementation behavior):\u003C/p>\n\u003Cul>\n\u003Cli>Default-ignored dirs: \u003Ccode>node_modules\u003C/code>, \u003Ccode>dist\u003C/code>, \u003Ccode>coverage\u003C/code>, \u003Ccode>.git\u003C/code>, \u003Ccode>.turbo\u003C/code>, \u003Ccode>.next\u003C/code>, \u003Ccode>build\u003C/code>, \u003Ccode>tmp\u003C/code> (skipped unless explicitly passed as literal dirs/files).\u003C/li>\n\u003Cli>Honors \u003Ccode>.gitignore\u003C/code> when expanding globs.\u003C/li>\n\u003Cli>Does not follow symlinks.\u003C/li>\n\u003Cli>Dotfiles filtered unless opted in via pattern (e.g. \u003Ccode>--file &quot;.github/**&quot;\u003C/code>).\u003C/li>\n\u003Cli>Files &gt; 1 MB rejected.\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch2>Engines (API vs browser)\u003C/h2>\n\u003Cul>\n\u003Cli>Auto-pick: \u003Ccode>api\u003C/code> when \u003Ccode>OPENAI_API_KEY\u003C/code> is set; otherwise \u003Ccode>browser\u003C/code>.\u003C/li>\n\u003Cli>Browser supports GPT + Gemini only; use \u003Ccode>--engine api\u003C/code> for Claude/Grok/Codex or multi-model runs.\u003C/li>\n\u003Cli>Browser attachments:\u003Cul>\n\u003Cli>\u003Ccode>--browser-attachments auto|never|always\u003C/code> (auto pastes inline up to ~60k chars then uploads).\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Remote browser host:\u003Cul>\n\u003Cli>Host: \u003Ccode>oracle serve --host 0.0.0.0 --port 9473 --token &lt;secret&gt;\u003C/code>\u003C/li>\n\u003Cli>Client: \u003Ccode>oracle --engine browser --remote-host &lt;host:port&gt; --remote-token &lt;secret&gt; -p &quot;&lt;task&gt;&quot; --file &quot;src/**&quot;\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\u003Ch2>Sessions + slugs\u003C/h2>\n\u003Cul>\n\u003Cli>Stored under \u003Ccode>~/.oracle/sessions\u003C/code> (override with \u003Ccode>ORACLE_HOME_DIR\u003C/code>).\u003C/li>\n\u003Cli>Runs may detach or take a long time (browser + GPT‑5.2 Pro often does). If the CLI times out: don’t re-run; reattach.\u003Cul>\n\u003Cli>List: \u003Ccode>oracle status --hours 72\u003C/code>\u003C/li>\n\u003Cli>Attach: \u003Ccode>oracle session &lt;id&gt; --render\u003C/code>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003Cli>Use \u003Ccode>--slug &quot;&lt;3-5 words&gt;&quot;\u003C/code> to keep session IDs readable.\u003C/li>\n\u003Cli>Duplicate prompt guard exists; use \u003Ccode>--force\u003C/code> only when you truly want a fresh run.\u003C/li>\n\u003C/ul>\n\u003Ch2>Prompt template (high signal)\u003C/h2>\n\u003Cp>Oracle starts with \u003Cstrong>zero\u003C/strong> project knowledge. Assume the model cannot infer your stack, build tooling, conventions, or “obvious” paths. Include:\u003C/p>\n\u003Cul>\n\u003Cli>Project briefing (stack + build/test commands + platform constraints).\u003C/li>\n\u003Cli>“Where things live” (key directories, entrypoints, config files, boundaries).\u003C/li>\n\u003Cli>Exact question + what you tried + the error text (verbatim).\u003C/li>\n\u003Cli>Constraints (“don’t change X”, “must keep public API”, etc).\u003C/li>\n\u003Cli>Desired output (“return patch plan + tests”, “give 3 options with tradeoffs”).\u003C/li>\n\u003C/ul>\n\u003Ch2>Safety\u003C/h2>\n\u003Cul>\n\u003Cli>Don’t attach secrets by default (\u003Ccode>.env\u003C/code>, key files, auth tokens). Redact aggressively; share only what’s required.\u003C/li>\n\u003C/ul>\n\u003Ch2>“Exhaustive prompt” restoration pattern\u003C/h2>\n\u003Cp>For long investigations, write a standalone prompt + file set so you can rerun days later:\u003C/p>\n\u003Cul>\n\u003Cli>6–30 sentence project briefing + the goal.\u003C/li>\n\u003Cli>Repro steps + exact errors + what you tried.\u003C/li>\n\u003Cli>Attach all context files needed (entrypoints, configs, key modules, docs).\u003C/li>\n\u003C/ul>\n\u003Cp>Oracle runs are one-shot; the model doesn’t remember prior runs. “Restoring context” means re-running with the same prompt + \u003Ccode>--file …\u003C/code> set (or reattaching a still-running stored session).\u003C/p>\n"]