$npx -y skills add tobihagemann/turbo --skill consult-oracleConsult ChatGPT Pro via ChatGPT browser automation for problems that resist standard approaches. Use when stuck on a very hard problem, when standard approaches have failed, when multiple debugging attempts haven't worked, or when the user says \"ask the oracle\", \"consult oracl
| 1 | # Consult Oracle |
| 2 | |
| 3 | Consult ChatGPT Pro via ChatGPT browser automation for problems that resist standard approaches. |
| 4 | |
| 5 | ## Configuration |
| 6 | |
| 7 | The oracle reads from `~/.turbo/config.json`: |
| 8 | |
| 9 | ```json |
| 10 | { |
| 11 | "oracle": { |
| 12 | "chatgptUrl": "https://chatgpt.com/", |
| 13 | "chromeProfile": "Default" |
| 14 | } |
| 15 | } |
| 16 | ``` |
| 17 | |
| 18 | | Key | Purpose | Default | |
| 19 | |---|---|---| |
| 20 | | `chatgptUrl` | ChatGPT URL (e.g., a custom GPT project URL) | `https://chatgpt.com/` | |
| 21 | | `chromeProfile` | Chrome profile directory name | `Default` | |
| 22 | |
| 23 | ## Step 1: Identify Key Files |
| 24 | |
| 25 | Find the 2-5 files most relevant to the problem. |
| 26 | |
| 27 | ## Step 2: Formulate the Question |
| 28 | |
| 29 | Write a clear, specific problem description. Include what has already been tried and why it failed. Open with a short project briefing (stack, services, build steps). The more context, the better the response. |
| 30 | |
| 31 | ## Step 3: Run the Oracle |
| 32 | |
| 33 | Run via the Bash tool (`timeout: 600000`, do not set `run_in_background`). The script loads `chatgptUrl` and `chromeProfile` from `~/.turbo/config.json` automatically and reuses the signed-in ChatGPT session from that Chrome profile. Generate a random tag and persist the response: |
| 34 | |
| 35 | ```bash |
| 36 | ORACLE_TAG=$(head -c 4 /dev/urandom | xxd -p) && mkdir -p .turbo/oracle |
| 37 | python3 scripts/run_oracle.py --prompt "<problem description>" --file <relevant files...> --write-output ".turbo/oracle/$ORACLE_TAG.txt" |
| 38 | ``` |
| 39 | |
| 40 | If the run fails, retry the command once — same prompt, attachments, profile, and timeout — when the failure looks transient, such as a browser challenge or automation error while the signed-in session is otherwise healthy. Report an authentication, browser-challenge, or permission blocker only after the retry reproduces it, and cite the failing output. Do not broaden permissions when the current context already has the access the run needs. |
| 41 | |
| 42 | ## Step 4: Follow Up |
| 43 | |
| 44 | Resume the same ChatGPT conversation with `--followup` and the session slug. The prior turn's attached files and context persist, so re-attaching the full diff each turn is unnecessary. Run via the Bash tool with the same settings as Step 3 (`timeout: 600000`, do not set `run_in_background`): |
| 45 | |
| 46 | ```bash |
| 47 | python3 scripts/run_oracle.py --followup "<session-slug>" --prompt "<follow-up>" --write-output ".turbo/oracle/$ORACLE_TAG.txt" |
| 48 | ``` |
| 49 | |
| 50 | Find the slug with `python3 scripts/run_oracle.py status` (the Slug column; follow-ups nest under their parent session) or from the directory names under `~/.oracle/sessions/`. |
| 51 | |
| 52 | Reuse the chat for a multi-turn review of the same code; start a fresh session (Step 3) for an unrelated question. Cap at 5 turns to prevent runaway conversations. |
| 53 | |
| 54 | When the reviewed code changed since the prior turn, re-attach the changed files (`--file <paths>`) or a fresh diff, or state what changed. Otherwise the model reasons from the earlier attachments and flags already-fixed issues as live contradictions. |
| 55 | |
| 56 | ## Step 5: Synthesize |
| 57 | |
| 58 | Read the response from `.turbo/oracle/$ORACLE_TAG.txt`. Summarize the key insights from the consultation. Cross-reference suggestions with official docs and peer open-source implementations before applying. Oracle suggestions are starting points, not guaranteed solutions. |