Skill Index

ai-asset-pricing/

idea

community[skill]

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-pricing

details

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):

  1. Identification: What is the causal mechanism? What endogeneity threat is fatal?
  2. Existing literature: How is this different from [Author Year]? What has already been done?
  3. Data feasibility: Can we measure the key variable with WRDS? What proxies are available?
  4. Economic mechanism: Why would this pattern exist in equilibrium? Who is on the other side?
  5. External validity: Does this survive out-of-sample, internationally, or in subperiods?
  6. Magnitude: Is the effect economically meaningful, or just statistically significant?

Phase 0: Parse and Route

Parse $ARGUMENTS:

InputModeAction
Empty--AskUserQuestion: "What topic or idea do you want to explore?"
resume {mnemonic}ResumeRead projects/{mnemonic}_idea/musings.md, reconstruct context, continue loop
File path (.md, .txt, .pdf)From seedRead file as starting material, extract hypothesis
Topic string or quoted hypothesisFrom scratchProceed 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

  1. Derive mnemonic from the topic: lowercase, underscores, max 30 chars (e.g., "corporate bond liquidity" becomes bond_liq)
  2. Confirm with user: "I'll create projects/{mnemonic}_idea/. Good?"
  3. Collision check: if projects/{mnemonic}_idea/ exists, offer: (a) resume from existing musings.md, or (b) pick a new name
  4. Create the folder:
    mkdir -p projects/{mnemonic}_idea
    
  5. 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).

  1. Construct an academic search query from the topic. Include 2-3 keyword variants to cast a wide net.

  2. Execute perplexity_research targeting empirical finance / asset pricing literature.

  3. Parse results into a structured table:

    PaperAuthorsYearKey FindingRelevance
    ...............
  4. Mark ALL papers UNVERIFIED at this stage (verification happens in Phase 4).

  5. Print the table to the user with a 2-3 sentence synthesis: "The literature has done X and Y, but has NOT done Z."

  6. Append to musings.md:

    ## Round 1: Literature Survey
    
    **Query:** {search query used}
    **Papers found:** {N}
    **Gap identified:** {what has NOT been done}
    
    {structured table}
    
  7. 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_search to 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:

  1. Absorb their arguments. Acknowledge what's strong; press on what's weak.
  2. 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
  3. If the idea has pivoted, note the pivot explicitly.
  4. 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.

  1. Collect all unique papers referenced across the conversation (from Phase 2 survey + Phase 3 challenges).
  2. For each paper, run perplexity_search with the exact title.
  3. Confirm: all author names, year, journal, volume/pages if published.
  4. 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
  5. 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.
  6. 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

  1. Read the template from .claude/skills/idea/research-plan-template.md.
  2. Populate every section from the adversarial loop's convergence point.
  3. Write projects/{mnemonic}_idea/research_plan.md.
  4. 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:

  1. Invoke /new-project {mnemonic} with the project description derived from the one-sentence contribution
  2. Copy research_plan.md to projects/{mnemonic}/guidance/research_plan.md
  3. Copy literature.md to projects/{mnemonic}/literature/literature.md
  4. Update musings.md: change status from active to graduated → projects/{mnemonic}/
  5. Print: "Project created. Run /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

WRDS Data Quick Reference

DatabaseKey TablesPeriodUse For
CRSPdsf_v2, msf_v21925--Equity returns, prices, delisting, CCM linking
Compustatfunda, fundqvia CCMFundamentals, accounting variables
OptionMetricsopprcd, vsurf, stdopd2003--Option prices, IV, Greeks, vol surfaces
Dickerson Bondsmonthly (140 cols), daily2002--2025Bond returns, credit spreads, duration, ratings, liquidity, factor betas
JKP Global Factorglobal_factor1926--2025443 pre-computed stock characteristics, 93 countries
TAQtrades, quotes2003--Tick-level data (requires SSH+SAS, not PostgreSQL)
Fama-Frenchfivefactors1963--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

PhaseToolUse Case
2 (Survey)perplexity_researchBroad literature scan (slow, 30s+, but comprehensive)
3a (Challenge)perplexity_searchFind specific counter-papers or competing results
3c (Feasibility)perplexity_askQuick methodology or data questions
3c (Comparing)perplexity_reasonAnalytical comparison of empirical approaches
4 (Verification)perplexity_searchExact-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

related