$npx -y skills add scdenney/open-science-skills --skill divergeBefore implementing, generate 3-5 conceptually distinct approaches labeled by creativity dimension (Novel, Surprising, Diverse, Conventional), then hold for selection. Brainstorm-then-select to resist defaulting to the most obvious solution.
| 1 | # Diverge |
| 2 | |
| 3 | Interrupt the default path of jumping to the most probable — and least creative — solution. |
| 4 | |
| 5 | ## Heritage and scope |
| 6 | |
| 7 | This is an original Open Science Skills workflow grounded in **Creative Preference Optimization** (Ismayilzada et al., 2025; background in [`reference/creative-preference-optimization.md`](reference/creative-preference-optimization.md)). Standard preference alignment (RLHF/DPO) optimizes for the most human-expected output, which is by construction the least surprising one. The paper's most accessible remedy — its own "brainstorm-then-select" baseline — needs no fine-tuning: force divergence before convergence by generating several conceptually distinct approaches, requiring that at least one is surprising and one is novel, and deferring quality and implementation until after selection. |
| 8 | |
| 9 | Use `diverge` for creative, architectural, or analytical work where more than one non-obvious solution exists. To isolate the brainstorm in a fresh Codex context, use the sibling `$diverge-codex`. |
| 10 | |
| 11 | **Model.** This skill makes no separate model call — it runs entirely in whatever model and reasoning effort your current Codex session is already using, not a fixed pin. `$diverge-codex` spawns a fresh subagent for a clean context, but that subagent is still Codex, so it also runs at whatever model and effort your session is using — it is not a cross-model pin. For a genuinely separate, explicitly pinned model (`gpt-5.6-sol` at `xhigh`), that only happens from the Claude Code side, via `/oss:diverge-codex`. |
| 12 | |
| 13 | ## When to invoke |
| 14 | |
| 15 | Use `$diverge <task>` when: |
| 16 | - multiple non-obvious implementations exist |
| 17 | - you want to avoid the conventional approach |
| 18 | - the task is creative, architectural, or analytical, not purely mechanical |
| 19 | |
| 20 | Do not use for rote tasks with one correct answer (e.g., fix this syntax error). |
| 21 | |
| 22 | ## Behavior |
| 23 | |
| 24 | Given the task supplied with the invocation: |
| 25 | |
| 26 | ### Step 1 — Clarify if needed |
| 27 | |
| 28 | If the task is ambiguous about what "good" looks like, ask **one** focused question before proceeding. Skip this if the goal is clear. Do not ask about implementation details. |
| 29 | |
| 30 | ### Step 2 — Generate approaches |
| 31 | |
| 32 | Produce **3–5 approaches** that are genuinely conceptually distinct. Differences must be in underlying mechanism, not surface vocabulary. |
| 33 | |
| 34 | Label each with its primary creativity dimension: |
| 35 | |
| 36 | - **[Novel]** — semantically far from the conventional solution; different conceptual basis |
| 37 | - **[Surprising]** — violates the obvious assumption about how this should work; would not be the first answer |
| 38 | - **[Diverse]** — maximally different from the other approaches in this list |
| 39 | - **[Conventional]** — the expected path, included as a reference point |
| 40 | |
| 41 | For each approach provide: |
| 42 | 1. Core mechanism — one sentence naming the key insight |
| 43 | 2. How it works — two to three sentences on the mechanism and what makes it distinct |
| 44 | 3. Main tradeoff — one sentence |
| 45 | |
| 46 | ### Step 3 — Hold |
| 47 | |
| 48 | Do not implement. Present all approaches, then ask: |
| 49 | |
| 50 | > "Which approach should I pursue? Or should I synthesize elements from multiple?" |
| 51 | |
| 52 | ## Constraints |
| 53 | |
| 54 | - At least one approach must be **[Surprising]** |
| 55 | - At least one must be **[Novel]** |
| 56 | - Approaches must not merely restate each other with different vocabulary |
| 57 | - Quality matters second in this phase — novelty and surprise come first |
| 58 | - Do not use markdown headers per approach — keep the list scannable |
| 59 | |
| 60 | ## After selection |
| 61 | |
| 62 | Implement the selected approach directly. If the user asks to synthesize, identify which elements are mechanically compatible and propose a brief hybrid plan before implementing. |