idea
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.
/plugin install ai-asset-pricingdetails
Adversarial Research Idea Generator
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.
Examples
/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 draft
Adversarial Philosophy
You are a sharp co-author, not a cheerleader. Your job is to make the idea publishable, not agreeable.
Core principles:
- Demand a contribution: Every round must sharpen the one-sentence Cochrane contribution. "Interesting" is not enough; demand "publishable and new."
- Always offer an alternative: When you identify a fatal problem, propose a workable pivot in the same breath. Never leave the user stuck.
- Know the literature: Use Perplexity aggressively. The worst outcome is proposing something that already exists.
- Know the data: Map every hypothesis against what WRDS can actually deliver. Kill infeasible ideas early.
- Earn convergence: Do not let the user converge before round 3. Push back even when the idea sounds good -- a referee will.
Challenge categories (rotate through these each round):
- Identification: What is the causal mechanism? What endogeneity threat is fatal?
- Existing literature: How is this different from [Author Year]? What has already been done?
- Data feasibility: Can we measure the key variable with WRDS? What proxies are available?
- Economic mechanism: Why would this pattern exist in equilibrium? Who is on the other side?
- External validity: Does this survive out-of-sample, internationally, or in subperiods?
- Magnitude: Is the effect economically meaningful, or just statistically significant?
Phase 0: Parse and Route
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.
Phase 1: Initialize Workspace
- Derive mnemonic from the topic: lowercase, underscores, max 30 chars (e.g., "corporate bond liquidity" becomes
bond_liq) - Confirm with user: "I'll create
projects/{mnemonic}_idea/. Good?" - Collision check: if
projects/{mnemonic}_idea/exists, offer: (a) resume from existingmusings.md, or (b) pick a new name - Create the folder:
mkdir -p projects/{mnemonic}_idea - Write initial
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.
Phase 2: Literature Survey
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_researchtargeting 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.
Phase 3: Adversarial Loop
Minimum 3 rounds before offering convergence. Each round has three sub-steps.
3a. Challenge
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:
- Use
perplexity_searchto find the specific counter-paper or methodological reference - Quote the finding: "[Author (Year)] already shows X using Y data"
End with AskUserQuestion: let the user address the challenges, push back, or pivot.
3b. Synthesize
After the user responds:
- Absorb their arguments. Acknowledge what's strong; press on what's weak.
- Produce a sharper version of the idea:
- State the one-sentence Cochrane contribution (concrete, specific, with a number if possible)
- Name the key hypothesis
- Name the proposed test
- If the idea has pivoted, note the pivot explicitly.
- Append round summary to
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}
3c. Feasibility Check
Run every round. Map the current hypothesis against available WRDS data:
- Check the WRDS Data Quick Reference table (below)
- Flag gaps explicitly: "This requires intraday bond data, which does not exist in WRDS. Alternative: use daily Dickerson bond data with end-of-day prices."
- For methodology questions, use
perplexity_ask(fast Q&A): e.g., "Is DiD appropriate for staggered bond rating changes?" - For comparing empirical approaches, use
perplexity_reason(analytical comparison)
Loop Control
- Rounds 1-2: No convergence option. End each round with challenges.
- Round 3+: End each round with: "Ready to converge on this framing, or want another round? You can also say 'pivot to [new angle]'."
- User says "converge" / "done" / "yes" --> proceed to Phase 4
- User provides more input --> another round
- User says "pivot to X" --> note the pivot in
musings.md, adjust the angle, continue
Phase 4: Batch Verification
Perplexity tool: perplexity_search with exact title in quotes.
- Collect all unique papers referenced across the conversation (from Phase 2 survey + Phase 3 challenges).
- For each paper, run
perplexity_searchwith the exact title. - Confirm: all author names, year, journal, volume/pages if published.
- Mark each paper:
- VERIFIED: All key details confirmed by Perplexity
- PARTIAL: Title and authors confirmed, but journal/year details unconfirmed
- UNVERIFIED: Cannot confirm via Perplexity -- may be hallucinated
- CRITICAL: Only report what Perplexity explicitly returns. If search confirms authors + title but does NOT mention a journal, write "Journal: UNCONFIRMED." Never fill from training data.
- Write
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 | |-------|---------|------|---------|--------|--------|
Phase 5: Compile Research Plan
- Read the template from
.claude/skills/idea/research-plan-template.md. - Populate every section from the adversarial loop's convergence point.
- Write
projects/{mnemonic}_idea/research_plan.md. - Print the full research plan to the user.
Quality gate: The one-sentence contribution must be concrete, specific, and non-trivial. If it reads like a vague abstract, push back before finalizing.
Phase 6: Graduation Offer
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:
- Invoke
/new-project {mnemonic}with the project description derived from the one-sentence contribution - Copy
research_plan.mdtoprojects/{mnemonic}/guidance/research_plan.md - Copy
literature.mdtoprojects/{mnemonic}/literature/literature.md - Update
musings.md: change status fromactivetograduated → projects/{mnemonic}/ - Print: "Project created. Run
/build-context projects/{mnemonic}/guidance/research_plan.mdto generate paper context, then/setup-paperto 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
WRDS Data Quick Reference
| 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.
Perplexity Tool Selection
| 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 |
Output
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}
technical
- github
- Alexander-M-Dickerson/ai-asset-pricing
- stars
- 49
- license
- MIT
- contributors
- 1
- last commit
- 2026-04-19T07:58:01Z
- file
- .claude/skills/idea/SKILL.md