{
  "markdown": "<p align=\"center\">\n  <img src=\"docs/src/assets/crystal-ball.svg\" width=\"80\" alt=\"Clairvoyance\">\n</p>\n\n<h1 align=\"center\">Clairvoyance</h1>\n\nAI agents can write working code, but they don't stop to consider effective design unless asked. Clairvoyance is a set of skills inspired by John Ousterhout's [*A Philosophy of Software Design*](https://web.stanford.edu/~ouster/cgi-bin/aposd.php). Each skill gives your agent **extrasensory perspective** around software design, with concrete tests to see ahead of obstacles during implementation and review.\n\n## How It Works\n\nSkills activate automatically and push your agent to ask questions like:\n\n- *Does this interface hide real complexity, or just pass things through?*\n- *Can this method be understood without reading another one in a different file?*\n- *Is error handling pushing work onto callers that the module could handle itself?*\n\nYou can also invoke them directly. Use `/clairvoyance:red-flags` to trigger a design smell scan, `/clairvoyance:deep-modules` to check interface depth and `/clairvoyance:design-it-twice` to compare alternatives before committing. (On platforms that install the skills without the plugin namespace, such as skills.sh, drop the `clairvoyance:` prefix.)\n\n## Installation\n\nGive your agent Clairvoyance: [Claude Code](#claude-code), [skills.sh](#skillssh), [Codex](#codex), [Cursor](#cursor), [OpenCode](#opencode), [Gemini CLI](#gemini-cli), [Antigravity](#antigravity), [Factory Droid](#factory-droid), [GitHub Copilot CLI](#github-copilot-cli), [Kimi Code](#kimi-code), [Pi](#pi).\n\n**Note:** Installation differs by platform. If you use more than one, install Clairvoyance separately for each.\n\n### Claude Code\n\n```bash\n/plugin marketplace add codybrom/clairvoyance\n/plugin install clairvoyance@clairvoyance-plugins\n```\n\n### [skills.sh](https://skills.sh/codybrom/clairvoyance)\n\n```bash\nnpx skills add codybrom/clairvoyance --skill '*'\n```\n\n### Codex\n\nRequires Codex CLI ≥ 0.142.0 (`codex --version`). The Codex App and CLI share the same config, so this also makes Clairvoyance visible in the App's Plugins panel.\n\n```bash\ncodex plugin marketplace add codybrom/clairvoyance\ncodex plugin add clairvoyance@clairvoyance\n```\n\nOlder Codex versions only get the 16 skills, via a manual symlink — see [.codex/INSTALL.md](.codex/INSTALL.md) for that fallback and full troubleshooting.\n\n### Cursor\n\nCursor doesn't yet have a one-line \"install from a GitHub URL\" flow for unlisted plugins, so clone (or symlink) the repo into Cursor's local plugins folder and restart:\n\n```bash\ngit clone https://github.com/codybrom/clairvoyance.git ~/.cursor/plugins/local/clairvoyance\n```\n\nThen check the **Customize** panel in the sidebar to confirm Clairvoyance and its 16 skills are listed.\n\n### OpenCode\n\nAdd Clairvoyance to the `plugin` array in your `opencode.json` (global or project-level):\n\n```json\n{\n  \"plugin\": [\"clairvoyance@git+https://github.com/codybrom/clairvoyance.git\"]\n}\n```\n\nRestart OpenCode — no symlinks or manual skill paths needed. See [.opencode/INSTALL.md](.opencode/INSTALL.md) for version pinning, troubleshooting, and migrating off the old symlink-based install.\n\n### Gemini CLI\n\nRequires Gemini CLI ≥ 0.26.0 and an account Gemini CLI currently serves (Code Assist Standard/Enterprise, Google Cloud, or a paid API key — see [.gemini/INSTALL.md](.gemini/INSTALL.md) for details).\n\n```bash\ngemini extensions install https://github.com/codybrom/clairvoyance.git\n```\n\nRestart Gemini CLI to load the extension.\n\n### Antigravity\n\n```bash\nagy plugin install https://github.com/codybrom/clairvoyance\n```\n\n### Factory Droid\n\nDroid translates Claude Code plugin format automatically — no Clairvoyance-specific files needed.\n\n```bash\ndroid plugin marketplace add https://github.com/codybrom/clairvoyance\ndroid plugin install clairvoyance@clairvoyance-plugins\n```\n\n### GitHub Copilot CLI\n\n```bash\ncopilot plugin marketplace add codybrom/clairvoyance\ncopilot plugin install clairvoyance@clairvoyance-plugins\n```\n\n### Kimi Code\n\nIn Kimi Code's plugin manager (`/plugins`), choose **Custom**, or run directly:\n\n```text\n/plugins install https://github.com/codybrom/clairvoyance\n```\n\nKimi Code will show a third-party trust prompt since this isn't an officially curated source — confirm to proceed.\n\n### Pi\n\n```bash\npi install git:github.com/codybrom/clairvoyance\n```\n\nPi auto-discovers the `skills/` directory with no extra config.\n\n### llms.txt\n\nMachine-readable skill index for LLM agents:\n\n- [clairvoyance.fyi/llms.txt](https://clairvoyance.fyi/llms.txt) — table of contents with descriptions\n- [clairvoyance.fyi/llms-full.txt](https://clairvoyance.fyi/llms-full.txt) — full content of all skills\n\n## What's Inside\n\n### Structure & Modules\n\n| Skill | Covers |\n| --- | --- |\n| `deep-modules` | Module depth, shallow modules, classitis, pass-through methods, interface vs implementation |\n| `module-boundaries` | Merge vs split, conjoined methods, method splitting, dependency minimization |\n| `information-hiding` | Information leakage, temporal decomposition, partial hiding, false encapsulation |\n| `pull-complexity-down` | Caller burden, configuration parameters, the core asymmetry |\n\n### Abstraction & Generality\n\n| Skill | Covers |\n| --- | --- |\n| `abstraction-quality` | Genuine vs false abstractions, layer boundaries, decorators |\n| `general-vs-special` | Interface generality, special-general mixture, edge-case elimination |\n| `error-design` | Define errors out of existence, exception masking, aggregation, just crash |\n\n### Clarity & Communication\n\n| Skill | Covers |\n| --- | --- |\n| `naming-obviousness` | Isolation test, scope-length principle, consistency, avoid extra words |\n| `comments-docs` | Comment types, comments-first workflow, cross-module documentation |\n\n### Process & Evolution\n\n| Skill | Covers |\n| --- | --- |\n| `strategic-mindset` | Strategic vs tactical, investment rule, tactical tornado |\n| `design-it-twice` | Generate alternatives, compare on criteria, synthesize |\n| `code-evolution` | \"Designed this way\" standard, repetition, technical debt |\n| `complexity-recognition` | Change amplification, cognitive load, unknown unknowns |\n\n### Diagnostic\n\n| Skill | Covers |\n| --- | --- |\n| `red-flags` | Design smell scan covering structure, boundaries, documentation, naming, and process |\n| `design-review` | Structured review funnel from complexity triage through structural, interface, and surface checks |\n| `diagnose` | Routes a vague symptom or complaint to the most relevant skill via a decision tree |\n\n## Attribution\n\nThese skills are adapted in part from the teachings of\n[John Ousterhout](https://web.stanford.edu/~ouster/cgi-bin/home.php),\nprofessor of computer science at Stanford University, and his book\n[*A Philosophy of Software Design*](https://web.stanford.edu/~ouster/cgi-bin/aposd.php). This project is not affiliated with, endorsed by, or sponsored by John Ousterhout, Stanford University, or the publishers of *A Philosophy of Software Design*.\n\n**If you find these skills useful, you should really buy and read the book.** The skills in this repo are by no means a substitute for reading it. It is the definitive treatment of these ideas and an enjoyable read for any dev.  Available from [Amazon](https://www.amazon.com/dp/173210221X) (no affiliate link). Also available in [German](https://www.oreilly.com/library/view/prinzipien-des-softwaredesigns/9781098130053/) (O'Reilly, 2021) and [Chinese](https://item.jd.com/14328323.html) (Posts and Telecommunications Press, 2024).\n\nThe skills and code in this project are independently authored original works by the project's contributors. Brief quotations from the book are sometimes used with full attribution for purposes of commentary, criticism, and education. All trademarks and copyrights are the property of their respective owners.\n\n## Contributing\n\nContributions are welcome beyond the inspiration material, but should reinforce the core philosophy of thinking strategically about software design.\n\nTo contribute:\n\n1. Fork the repository\n2. Create a branch\n3. Follow the [`writing-skills`](https://github.com/obra/superpowers/blob/main/skills/writing-skills/SKILL.md) skill from [Superpowers](https://github.com/obra/superpowers) for creating and testing skills\n4. Add your skill in `skills/<skill-name>/SKILL.md` with optional `references/` files\n5. Commit your changes and submit a PR\n\n## Updating\n\n- **Claude Code:** `/plugin update clairvoyance`\n- **skills.sh:** `npx skills update codybrom/clairvoyance`\n- **Codex:** `codex plugin marketplace upgrade clairvoyance && codex plugin add clairvoyance@clairvoyance`\n- **Cursor:** `cd ~/.cursor/plugins/local/clairvoyance && git pull`, then restart\n- **OpenCode:** doesn't auto-refresh on restart unless you pinned a tag — see [.opencode/INSTALL.md](.opencode/INSTALL.md#updating)\n- **Gemini CLI:** `gemini extensions update clairvoyance`\n- **Antigravity:** re-run `agy plugin install https://github.com/codybrom/clairvoyance`\n- **Factory Droid:** `droid plugin marketplace update clairvoyance-plugins && droid plugin update clairvoyance@clairvoyance-plugins`\n- **GitHub Copilot CLI:** `copilot plugin update clairvoyance`\n- **Kimi Code:** re-run the install command from the Custom tab\n- **Pi:** `pi update --extensions` (re-run install with a new ref if you pinned one)\n- **llms.txt:** Always up to date at [clairvoyance.fyi/llms-full.txt](https://clairvoyance.fyi/llms-full.txt).\n\nSee [CHANGELOG.md](CHANGELOG.md) or the [GitHub releases](https://github.com/codybrom/clairvoyance/releases) for what changed in each version.\n\n## License\n\n[MIT License](LICENSE) © 2026 [Cody Bromley](https://github.com/codybrom)\n",
  "bytes": 9651,
  "sha": "c774d89613e3b228e59e56530ec66a96ad8f5e2f4aa3d41c4a081c6f6fb045a6",
  "repo_slug": "codybrom/clairvoyance",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_codybrom_clairvoyance_f8b7ff3c/readme"
}