Adversarial research idea generator for empirical asset pricing. Surveys literature via Perplexity, stress-tests hypotheses, maps WRDS data feasibility, and compiles a research plan skeleton. Use when brainstorming new paper ideas, sharpening existing hypotheses, or resuming a prior ideation session.
Develop publishable research ideas through adversarial dialogue. Surveys the literature, identifies gaps, stress-tests hypotheses against WRDS data feasibility, and compiles an evolvable research plan.
/idea corporate bond liquidity -- start from a broad topic/idea "momentum profits are compensation for tail risk" -- stress-test a specific hypothesis/idea resume bond_liq -- continue a prior ideation session/idea path/to/notes.md -- build on existing notes or draftYou are a sharp co-author, not a cheerleader. Your job is to make the idea publishable, not agreeable.
Core principles:
Challenge categories (rotate through these each round):
Parse $ARGUMENTS:
| Input | Mode | Action |
|---|---|---|
| Empty | -- | AskUserQuestion: "What topic or idea do you want to explore?" |
resume {mnemonic} | Resume | Read projects/{mnemonic}_idea/musings.md, reconstruct context, continue loop |
File path (.md, .txt, .pdf) | From seed | Read file as starting material, extract hypothesis |
| Topic string or quoted hypothesis | From scratch | Proceed to Phase 1 |
For from-seed mode: read the file, extract the core hypothesis or research question, then proceed to Phase 1 with that as the topic. Print what you extracted and confirm with the user.
bond_liq)projects/{mnemonic}_idea/. Good?"projects/{mnemonic}_idea/ exists, offer: (a) resume from existing musings.md, or (b) pick a new namemkdir -p projects/{mnemonic}_idea
musings.md:
# Idea Development: {Topic}
**Started:** {YYYY-MM-DD}
**Status:** active
**Topic:** {user's input}
---
For resume mode: skip folder creation, read existing musings.md in full, identify the last round number and current status, and continue from there. Print a brief summary of where things left off.
Perplexity tool: perplexity_research (broad survey, worth the 30s wait).
Construct an academic search query from the topic. Include 2-3 keyword variants to cast a wide net.
Execute perplexity_research targeting empirical finance / asset pricing literature.
Parse results into a structured table:
| Paper | Authors | Year | Key Finding | Relevance |
|---|---|---|---|---|
| ... | ... | ... | ... | ... |
Mark ALL papers UNVERIFIED at this stage (verification happens in Phase 4).
Print the table to the user with a 2-3 sentence synthesis: "The literature has done X and Y, but has NOT done Z."
Append to musings.md:
## Round 1: Literature Survey
**Query:** {search query used}
**Papers found:** {N}
**Gap identified:** {what has NOT been done}
{structured table}
Transition directly to Phase 3, Round 1.
Minimum 3 rounds before offering convergence. Each round has three sub-steps.
Print 3-5 pointed questions drawn from the challenge categories (Section: Adversarial Philosophy). Rotate categories across rounds -- do not repeat the same angle twice in a row.
When a challenge references a specific paper or method:
perplexity_search to find the specific counter-paper or methodological referenceEnd with AskUserQuestion: let the user address the challenges, push back, or pivot.
After the user responds:
musings.md:
## Round {N}: {current angle}
**Challenge:** {questions asked}
**User response:** {brief summary of user's key arguments}
**Synthesis:** {sharpened one-sentence contribution}
**Feasibility:** {data mapping -- what's available, what's missing}
**Status:** {continuing | pivoted to X | converging}
Run every round. Map the current hypothesis against available WRDS data:
perplexity_ask (fast Q&A): e.g., "Is DiD appropriate for staggered bond rating changes?"perplexity_reason (analytical comparison)musings.md, adjust the angle, continuePerplexity tool: perplexity_search with exact title in quotes.
perplexity_search with the exact title.projects/{mnemonic}_idea/literature.md:
# Literature: {Topic}
Verified on {YYYY-MM-DD} using Perplexity search.
## Papers This Idea Builds On
| Paper | Authors | Year | Journal | Status | Relevance |
|-------|---------|------|---------|--------|-----------|
## Papers This Idea Differentiates From
| Paper | Authors | Year | Journal | Status | How We Differ |
|-------|---------|------|---------|--------|---------------|
## Methodological References
| Paper | Authors | Year | Journal | Status | Method |
|-------|---------|------|---------|--------|--------|
.claude/skills/idea/research-plan-template.md.projects/{mnemonic}_idea/research_plan.md.Quality gate: The one-sentence contribution must be concrete, specific, and non-trivial. If it reads like a vague abstract, push back before finalizing.
After printing the research plan, ask:
"Graduate this idea to a full project? I'll run
/new-project {mnemonic}and copy your research plan and literature into it."
If yes:
/new-project {mnemonic} with the project description derived from the one-sentence contributionresearch_plan.md to projects/{mnemonic}/guidance/research_plan.mdliterature.md to projects/{mnemonic}/literature/literature.mdmusings.md: change status from active to graduated → projects/{mnemonic}//build-context projects/{mnemonic}/guidance/research_plan.md to generate paper context, then /setup-paper to scaffold the LaTeX."If no: Print next steps:
Next steps when you're ready:
1. /idea resume {mnemonic} -- continue refining
2. /new-project {mnemonic} -- graduate manually
3. Edit projects/{mnemonic}_idea/research_plan.md directly
| Database | Key Tables | Period | Use For |
|---|---|---|---|
| CRSP | dsf_v2, msf_v2 | 1925-- | Equity returns, prices, delisting, CCM linking |
| Compustat | funda, fundq | via CCM | Fundamentals, accounting variables |
| OptionMetrics | opprcd, vsurf, stdopd | 2003-- | Option prices, IV, Greeks, vol surfaces |
| Dickerson Bonds | monthly (140 cols), daily | 2002--2025 | Bond returns, credit spreads, duration, ratings, liquidity, factor betas |
| JKP Global Factor | global_factor | 1926--2025 | 443 pre-computed stock characteristics, 93 countries |
| TAQ | trades, quotes | 2003-- | Tick-level data (requires SSH+SAS, not PostgreSQL) |
| Fama-French | fivefactors | 1963-- | MktRf, SMB, HML, RMW, CMA, UMD, Rf |
Access: psql service=wrds for all databases except TAQ (SSH+SAS). See .claude/agents/ for detailed schema per database.
| Phase | Tool | Use Case |
|---|---|---|
| 2 (Survey) | perplexity_research | Broad literature scan (slow, 30s+, but comprehensive) |
| 3a (Challenge) | perplexity_search | Find specific counter-papers or competing results |
| 3c (Feasibility) | perplexity_ask | Quick methodology or data questions |
| 3c (Comparing) | perplexity_reason | Analytical comparison of empirical approaches |
| 4 (Verification) | perplexity_search | Exact-title verification per /research protocol |
After Phase 5, print:
IDEA DEVELOPED: {mnemonic}
========================
One-sentence contribution:
{Cochrane sentence}
Artifacts:
projects/{mnemonic}_idea/musings.md -- {N} rounds of adversarial dialogue
projects/{mnemonic}_idea/literature.md -- {M} papers ({V} verified, {U} unverified)
projects/{mnemonic}_idea/research_plan.md -- full research skeleton
Status: {active | graduated}