write-theory
This skill guides an agent to develop rigorous, mechanistic theories explaining scientific phenomena.
Identity proven by GitHub's verified organisation badge (imbue-ai)
- Agents
- Claude Code
- License
- AGPL-3.0 (copyleft)
- Pin
- a2ee48cpinned Oct 9, 2026
- Context cost
- about 2,800 tokenswhen the skill loads
- GitHub stars
- 36on imbue-ai/catalyst
- Scripts
- None found
What it does
“Write a theory to explain a given phenomenon.”
Generated summary from the skill's own text
This skill guides an agent to develop rigorous, mechanistic theories explaining scientific phenomena. The agent integrates prior exploration results and literature reviews, designs and runs experiments through the run-experiment skill, performs mathematical derivations, and iterates until producing a journal-quality theory document with falsifiable predictions and mechanistic explanations.
When to use it
- Building mechanistic explanations for observed scientific phenomena or experimental results.
- Developing predictive theories grounded in empirical validation and mathematical proof.
- Synthesizing prior explorations and literature into a coherent theoretical framework.
- Explaining the underlying causes behind complex behaviors or patterns in systems.
When not to
- When only descriptive summaries or literature reviews are needed, not mechanistic theories.
- For phenomena that cannot be tested experimentally or validated mathematically within available resources.
- When the task requires rapid prototyping rather than rigorous, journal-quality theoretical development.
Install
These commands install from the publisher's repository and need no account.
skills CLI
npx skills add imbue-ai/catalyst --skill write-theoryInstalls from the repository's default branch, which may have changed since the commit we checked.
GitHub CLI 2.90 or later
gh skill install imbue-ai/catalyst write-theory@a2ee48c34741df5d4549d97b22aa44589d9eaa6aInstalls the commit we checked (a2ee48c).
Copy by hand
Download the folder at a2ee48c and put it in .claude/skills/write-theory for Claude Code and in .agents/skills/write-theory for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.
Copy for your agent
A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.
Prompt
Install the agent skill "write-theory" by Imbue. Source, pinned to commit a2ee48c34741df5d4549d97b22aa44589d9eaa6a: https://github.com/imbue-ai/catalyst/tree/a2ee48c34741df5d4549d97b22aa44589d9eaa6a/src/claude_skills/skills/write-theory 1. Download that folder at exactly this commit. Do not use the default branch. 2. Copy every file unchanged, keeping the folder structure, into .claude/skills/write-theory/ for Claude Code and .agents/skills/write-theory/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist. 3. Do not edit the files, and do not run any script in the folder unless I ask you to. 4. When you are done, list the files you copied and where you put them. Listing and checks: https://www.agentnative.dev/skills/imbue/write-theory
SKILL.md at the pin
---
name: write-theory
description: "Write a theory to explain a given phenomenon."
argument-hint: "The phenomenon to explain, optional exploration ID (e.g. E_20260414_...), optional literature ID (e.g. L_20260414_...)."
---
You are an expert scientific agent. Your goal is to develop a theory to explain a given phenomenon.
## Mandate
- Focus on the phenomenon given.
- You will optionally be given an exploration ID that references prior exploration results, and optionally a literature review ID that references relevant papers. Use these as context to inform your theory development, but don't be limited by them - you can propose new experiments or lines of inquiry that haven't been explored yet.
- Be thorough and extremely rigorous in developing the theory. Make sure you verify every hypothesis in your theory. Propose and run experiments to test the hypotheses and/or derive mathematical proofs, and then iterate until you have a robust, well-supported theory.
- Make sure your theory *actually* explains the phenomenon! Keep asking yourself "does this theory really explain the phenomenon, or is it just describing it and/or handwaving key details?". Make improvements until you can confidently say it does. Aim to provide mechanistic explanations that get at the underlying causes of the phenomenon, not just surface-level descriptions.
- All experiment execution must go through the `run-experiment` skill. Never run a Python experiment script directly. See the "Running experiments" section below.
## What makes a good theory
- Your theory should be predictive: It should allow predicting when exactly the phenomenon will occur, and how it will manifest.
- The theory does not need to explain all instances of the phenomenon. It's best to start with a narrow scope, but be very precise, rigorous and thorough in your explanation and validation within that scope.
- If at all possible, your theory should provide a mechanistic explanation of the phenomenon, meaning it should explain the underlying mechanisms that give rise to the phenomenon, not just describe correlations or patterns.
- Each statement must be falsifiable and testable.
- Use empirical experiments to build intuition and to test statements. Then build a mathematical model and use mathematical proofs to rigorously verify them when possible.
## Input
Arguments: $ARGUMENTS
The arguments contain a description of the phenomenon to explain, an optional exploration ID (like `E_20260414_...`), and an optional literature review ID (like `L_20260414_...`). Parse all IDs from the arguments.
## Folder setup
All commands must be run in the current working directory. Do not `cd` anywhere else, do not try to use the global `/tmp` folder or TMPDIR (only use the local `./tmp` folder).
Set up two folders — one for input context, one for your own output:
CONTEXT_DIR: `mktemp -d -p ./tmp write-theory-context-XXXX`
OUTPUT_DIR: `mktemp -d -p ./tmp write-theory-output-XXXX`
Run this command to populate the context:
```bash
uv run python <SKILL_BASE_DIR>/scripts/context_manager.py create_context --for_agent_type write-theory --target_folder <CONTEXT_DIR> [--from_exploration <EXPLORATION_ID>] [--from_literature <LITERATURE_ID>]
```
- `<CONTEXT_DIR>/exploration/` — (if exploration ID provided) prior exploration results. Read `<CONTEXT_DIR>/exploration/report.md` and any artifacts in the folder (images, plots, etc.).
- `<CONTEXT_DIR>/literature/` — (if literature ID provided) literature review, with `summary.md` and downloaded TeX sources or PDFs in `papers/`. Read each `summary.md` and consult individual papers when relevant.
- `<OUTPUT_DIR>/` — write your theory, experiments, and any supporting notes here.
Any temporary files (including experiment scripts, intermediate results, etc.) must be stored only under `<OUTPUT_DIR>`.
## Obtaining cited experiment IDs
Your inputs may cite specific experiment IDs (`X_...`). You can retrieve these experiments and their results by running:
```bash
uv run python <SKILL_BASE_DIR>/scripts/context_manager.py fetch_experiment --target_folder <CONTEXT_DIR> --from_experiment <EXPERIMENT_ID>
```
This command will place the experiment description (`description.md`), Python script (`script.py`), and results into the `<CONTEXT_DIR>/experiments/<EXPERIMENT_ID>` folder.
## Running experiments
Every experiment, test, and validation must be set up and run through the `run-experiment` skill, using the AGENT_TYPE `write-theory`.
Cite experiments by their `X_ID` in your final `theory.md` so reviewers can audit the supporting evidence.
## Literature grounding
You may start with a literature review already in `<CONTEXT_DIR>/literature/`. During execution, if experiments or derivations raise questions the existing literature (or lack thereof) doesn't answer, invoke the `search-literature` skill with a concise description of the finding/question. It will return a new literature ID (`L_...`). Fold it into your context without rebuilding the folder:
```bash
uv run python <SKILL_BASE_DIR>/scripts/context_manager.py fetch_literature \
--target_folder <CONTEXT_DIR> \
--from_literature <NEW_L_ID>
```
Then read `<CONTEXT_DIR>/literature/<NEW_L_ID>/summary.md` and incorporate its findings into your refinement. You may do this multiple times during a single run if distinct questions arise.
## Theory Output Format
Your `theory.md` file must contain your theory.
Follow these guidelines when writing your theory:
- Start with a brief definition of the phenomenon and provide any necessary context, including a brief summary of the relevant literature.
- Then, provide a highly concise "key insights" summary of your theory. No more than 4 bullet points, 1-2 sentences each, listing out the key insights and discoveries made in your theory.
- Structure the main part of your theory into a sequence of precise definitions, conjectures, observations, lemmas and theorems (collectively referred to as "statements" in the following). Only call something a lemma or theorem if you can formally prove it! Statements that are only based on experimental observation should be labeled as observations. Later statements can build on earlier ones.
- Include a table that lists all statements in your theory upfront (statement number, few-word title, and whether you have verified it by mathematical proof or empirically).
- Present statements in a logical, cohesive order, so that the reader can easily follow the flow of ideas.
- Explicitly state ANY assumptions or limitations that you're making for each statement and list them out clearly.
- Explicitly lay out the evidence you have for each statement, either a thorough mathematical proof/derivation (preferred), or empirical evidence from experiments. You can also cite prior literature to support your statements. Experimental results and lengthy derivations should be placed in an appendix and referenced in the main text.
- Include key plots and figures from your experiments to provide intuition for your theory. Make sure to include detailed captions for each plot to explain what is being shown.
- Image references in the markdown file need to be relative to `<OUTPUT_DIR>`. NEVER use absolute paths. Copy image files to `<OUTPUT_DIR>/` (or a subfolder thereof) before you persist your theory. Image elements inside of code blocks (including carousel) are NOT supported and should not be used.
- Cite literature where applicable
- Use inline LaTeX for mathematical notation and formulas (`$...$` for inline math, and `$$...$$` for display math). Do NOT put formulas into code blocks.
The resulting theory MUST use language and rigor that is adequate for publishing in a high-quality scientific journal. Use clear language, illustrations, and provide helpful context to explain the theory's ideas.
## Execution Steps
1. **Context Checkout**: Run the bash command above to obtain the exploration and literature review results using `context_manager.py`.
2. **Exploration Review**: If an exploration report is available, read `<CONTEXT_DIR>/exploration/report.md` to understand prior findings. Read other files in `<CONTEXT_DIR>/exploration/` as needed for informing your theory.
3. **Literature Review**: If a literature review is available, read `<CONTEXT_DIR>/literature/summary.md` to ground your theory in existing research. Read the full papers in `<CONTEXT_DIR>/literature/papers/` as needed while developing your theory.
4. **Reproduce a base case**: Before you continue, make sure you can successfully reproduce a base case that robustly illustrates the phenomenon. Use `run-experiment`, and find the hyper-parameters that most clearly illicit it. It's a good idea to explore different variations and hyperparameter perturbations to see which ones impact whether and how the phenomenon occurs. You might also get a good figure out of this step for inclusion in your theory.
5. **Hypothesis Generation**: Generate different hypotheses that could explain the phenomenon. Try to generate at least 2-3 *alternative* explanations for every aspect of it, and think about how you can test and differentiate between these explanations. Limit your initial explanations to the smallest possible scope to make the problem tractable. You might want to make additional simplifying assumptions, or restrict the domain over which you're providing explanations.
6. **Validation**: Test your ideas using the available tools. Always test ALL of your alternative hypotheses. Even after one hypothesis is found to be promising, you must still attempt to validate the alternative explanations before you dismiss them. You might find that you need to perform additional experiments to conclusively discriminate which hypothesis is the correct one.
- **Experiment**: Invoke `run-experiment`. Reference each experiment's `X_ID` in your notes and theory.
- **Proof**: If applicable, use mathematical derivations.
- **Literature grounding**: You can cite prior literature to support your statement. Always read the full paper before citing it.
7. **Iteration**: Keep iterating until you're COMPLETELY CONFIDENT in your theory and have ruled out ALL alternative explanations.
- Based on the results of the validation step, refine your hypotheses, generate new ones if necessary, and repeat the validation process.
- Only after you have a robust theory that is well-supported by thorough mathematical derivation or experimental evidence, you can try to broaden the scope of it by relaxing your assumptions or generalizing your statements. Only broaden your theory to the extent that is strictly necessary for explaining the target phenomenon.
- Double-check that your theory provides a full and coherent explanation of the phenomenon. If you notice gaps or inconsistencies, go back and keep iterating.
8. **Reporting**: Write the final theory to `<OUTPUT_DIR>/theory.md` (this exact filename is required). Add helpful illustrations and plots from your experiments, or generate additional ones by running appropriate Python scripts. Consider the "Theory Output Format" instructions when writing your final theory.
9. **Store results**: Persist your output and return the theory ID:
```bash
uv run python <SKILL_BASE_DIR>/scripts/context_manager.py store_results --from_agent_type write-theory --from_folder <OUTPUT_DIR>
```
Note down the returned theory ID (e.g. `T_20260414_143100_d4e5f6`) as the result of this skill and include it in your final message.From imbue-ai/catalyst at a2ee48c, shown as plain text under its license: AGPL-3.0 (copyleft). The license text is in LICENSE.
View SKILL.md on GitHub at a2ee48cFiles
- SKILL.md11 KB · ca20d0123878
1 file, 11 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.
Skill folder on GitHub at a2ee48cMore from Imbue
architect
Generates an architecture document for a feature by reading the existing spec, analyzing the codebase deeply, and conducting guided Q&A with the user to…
Claude Code · about 4K tokens · pinned 6 days ago
build
This skill executes a multi-step implementation plan by working through task files sequentially.
Claude Code · about 1.1K tokens · pinned 6 days ago
build-sculptor-extension
Build or modify Sculptor extensions, which are runtime ES modules that add panels, overlays, widgets, home views, or settings UI to the Sculptor frontend.
Contains scripts
Claude Code, Codex, Cursor +3 · about 3.3K tokens · pinned 6 days ago
fix-bug
Fixes bugs using test-driven development with an interactive or autonomous workflow.
Claude Code · about 9.8K tokens · pinned 6 days ago
handoff
This skill hands off ongoing work to a fresh agent, either in the same workspace or a new isolated workspace, while preserving context through a synthesized…
Claude Code · about 1.1K tokens · pinned 6 days ago
help
This skill fetches the latest Sculptor documentation from GitHub and answers user questions about how to use Sculptor's features, including workspaces…
Claude Code · about 880 tokens · pinned 6 days ago
Related in Docs and writing
n8n-docs-assistant
This skill answers questions about n8n configuration, setup, credentials, nodes, and troubleshooting by retrieving information from current n8n documentation.
by n8nOfficial publisher
Claude Code, Codex, Cursor +3 · about 450 tokens · pinned 6 days ago
algodocs-automation
This skill automates Algodocs document processing tasks through Composio's toolkit via the Rube MCP server.
by ComposioOfficial publisher
Claude Code, Codex, Cursor +3 · about 690 tokens · pinned 6 days ago
remotion-docs
This skill enables agents to search and retrieve Remotion documentation via the Algolia API and fetch pages as Markdown.
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 320 tokens · pinned 6 days ago
remotion-docs
This skill searches the Remotion documentation using the Algolia API and retrieves documentation pages as Markdown.
by RemotionOfficial publisher
Claude Code, Codex, Cursor +3 · about 320 tokens · pinned 6 days ago
receipts
This skill generates a personal Claude Code usage report from local session transcripts stored in ~/.claude/projects, mining activity across projects without…
by AnthropicOfficial publisher
Contains scripts
Claude Code · about 4.1K tokens · pinned 6 days ago
solo
This skill enables an agent to work through a single difficult mathematics problem independently within one session.
by AnthropicOfficial publisher
Claude Code · about 1.4K tokens · pinned 6 days ago
Open roles at Imbue
No open roles at Imbue on the Agent Native jobs board right now.
Browse the jobs board