Idea to proposal
Skill JeanDiable/academic-research-plugin/skills/idea-to-proposal
Multi-dimensional research idea evaluation with iterative refinement and publication-quality proposal generation. Takes any research idea (free text, structured brief, paper extension, or file path), scores it across 8 dimensions (novelty, technical soundness, feasibility, significance, clarity, experimental validity, scalability, positioning), refines autonomously for 2-3 rounds, then generates a detailed proposal with method design (architecture diagrams, equations, pseudocode), experiment plan (benchmarks, baselines, ablations, supplementary experiments), and qualitative/quantitative analysis plans. Use when the user wants to "evaluate my idea", "research proposal", "refine this idea", "idea to proposal", "score my research idea", or "turn this idea into a paper plan".From its SKILL.md
npx -y skills add JeanDiable/academic-research-plugin --skill idea-to-proposalAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 19 stars19 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
19.1 KB, as published. Nobody here has run it
Idea-to-Proposal Skill
Overview
This skill takes a raw research idea through a rigorous multi-phase pipeline:
- Idea Structuring — Parse any input format into a structured research brief
- Literature Search + 8-Dimension Evaluation — Parallel agents search literature and score the idea
- Autonomous Refinement Loop — Iteratively improve weak dimensions until all meet threshold
- Human Review Gate — Present scores and refined idea for user approval
- Proposal Generation — Parallel agents write method design and experiment plan
The output is a publication-quality research proposal suitable for a top-tier AI conference, saved to the user's Obsidian vault.
Setup
Before running the skill, install dependencies:
pip install -r "BASE_DIR/scripts/requirements.txt"
Required packages:
arxiv— arXiv API accessrequests— HTTP requests for paper fetchingbibtexparser— BibTeX parsing and generationsemanticscholar— Semantic Scholar API integration
Parameters
Parse the following from $ARGUMENTS:
| Parameter | Default | Description |
|---|---|---|
--target-venue | none (general) | Conference/journal: NeurIPS, ICML, CVPR, ACL, AAAI, ICCV, ICLR |
--threshold | 7 | Minimum score (1-10) across all 8 dimensions to pass |
--max-rounds | 3 | Maximum autonomous refinement rounds before human gate |
--domain | auto-detect | Research domain for literature search focus |
Everything else in $ARGUMENTS is the idea input (text, file path, or URL).
Output Directory
~/Library/Mobile Documents/iCloud~md~obsidian/Documents/My_note/10_Projects/Idea-Proposals/YYYY-MM-DD-<topic>/
├── idea-evolution.md # Version history through refinement rounds
├── evaluation-report.md # Final scores + per-dimension analysis
├── proposal.md # The full research proposal
├── references.bib # All collected BibTeX citations
├── experiment-benchmarks.md # Detailed benchmark/baseline survey
└── figures/ # Mermaid diagrams
Collision handling: If directory exists, create versioned copy (-v2, -v3, etc.).
Output Quality Targets
- Proposal length: 10-15 pages (Markdown), approximately 5000-8000 words
- Target format: Conference pre-proposal or detailed concept paper
- Assumed reader: Program committee member from neighboring subfield
- Math depth: Key equations with intuition; full proofs only if central to contribution
- Citation style:
[Author et al., Year]with correspondingreferences.bib
Phase 1: Idea Structuring
Purpose: Parse any input format into a structured research brief.
Input Detection
Detect input type from $ARGUMENTS:
- File path — Ends in
.md,.txt, or is an absolute/relative path to a file- Read file content, extract the idea description
- arXiv URL — Contains
arxiv.org/abs/- Extract paper ID, fetch metadata via
paper_search.py --arxiv-id <ID> - Treat as paper-extension input: user wants to extend/improve this paper
- Extract paper ID, fetch metadata via
- PDF path — Ends in
.pdf- Read with pagination (pages 1-20); extract core concepts
- Treat as paper-extension input
- Free text — Any other format
- Parse directly as idea description
Structured Brief Schema
Normalize all inputs into this schema:
## Research Idea Brief
- **Problem Statement**: What gap/limitation exists?
- **Proposed Approach**: Core technical idea (1-3 sentences)
- **Key Innovation**: What's novel vs. prior work?
- **Target Domain**: e.g., multi-agent systems, NLP, CV, RL
- **Target Venue**: (from --target-venue or "General")
- **Input Type**: free-text | structured | paper-extension
- **Reference Papers**: (if provided, extracted metadata)
Completeness Rules
- Required: Problem Statement, Proposed Approach, Target Domain
- Optional: Target Venue, Reference Papers, Key Innovation
- If Key Innovation missing: infer from Proposed Approach
- If Target Venue missing: prompt user; if skipped, set to "General (all venues)"
- If Reference Papers missing: leave blank; populated from Phase 2
Workflow
- Detect input type
- If paper-extension: read paper, extract core concepts (following
paper-triggered-surveypatterns) - Normalize into structured brief schema
- If any required field is unclear, ask user for clarification
- Present brief to user for confirmation
- Create output directory; save brief as Version 0 in
idea-evolution.md
Wait for user confirmation before proceeding to Phase 2.
Phase 2: Literature Search + Multi-Dimensional Evaluation
Launch two parallel agents via the Agent tool.
Agent A: Literature Search
Agent prompt must include:
- The structured brief from Phase 1
- Instructions to use
paper_search.py
Agent A workflow:
- Generate 5-8 search queries from the brief:
- Method-focused queries (technique + domain)
- Problem-focused queries (problem statement keywords)
- Cross-domain queries (technique applied in other domains)
- For each query, run:
python "BASE_DIR/scripts/paper_search.py" \ --query "<query>" \ --max-results 20 \ --output json \ --sort relevance - Deduplicate results across queries
- Identify seminal works (5-year window) vs. recent advances (1-2 years)
- Classify papers into 3-6 thematic clusters
- Extract SOTA baselines and benchmark datasets for the target task
- For each key paper, fetch BibTeX:
python "BASE_DIR/scripts/bibtex_utils.py" \ fetch \ --title "<paper-title>" - Return structured results: paper list with themes, benchmarks, baselines, gaps
Graceful degradation:
- 0-2 papers found: Flag as "Highly Novel / Unexplored Area"
- 3-10 papers: Proceed with reduced context
- For niche ideas: identify related task benchmarks from adjacent domains
Agent B: 8-Dimension Evaluation
Agent B runs AFTER Agent A completes (needs literature context for accurate Novelty and Positioning scores).
Score the idea 1-10 on each dimension using the evaluation rubric (see references/evaluation-rubric.md):
| Dimension | Key Question |
|---|---|
| Novelty | Does prior work already solve this? How differentiated from closest work? |
| Technical Soundness | Is the method theoretically grounded? Any logical gaps? |
| Feasibility | Data/compute/time realistic? For agent-based proposals: estimate token cost (model, calls/run, input/output tokens, $/run) |
| Significance | How important is the problem? Size of potential impact? |
| Clarity | Is the idea unambiguous? Could someone implement from this description? |
| Experimental Validity | Can claims be tested? Are metrics well-defined? |
| Scalability | Does approach generalize beyond the specific setup? |
| Positioning | Fits target venue? Right timing for the community? |
Output format:
## Evaluation Round 1
| Dimension | Score | Justification |
|-----------|-------|---------------|
| Novelty | X/10 | [2-3 sentence justification citing specific papers] |
| Technical Soundness | X/10 | [justification] |
| Feasibility | X/10 | [justification; token cost if agent-based] |
| Significance | X/10 | [justification] |
| Clarity | X/10 | [justification] |
| Experimental Validity | X/10 | [justification] |
| Scalability | X/10 | [justification] |
| Positioning | X/10 | [justification] |
**Overall: X.X/10**
**Weakest dimensions:** [list dimensions below threshold]
**Refinement targets:**
- [Dimension]: [specific suggestion for improvement]
- [Dimension]: [specific suggestion for improvement]
Save evaluation to evaluation-report.md.
Phase 3: Autonomous Refinement Loop
Goal: Improve the idea until ALL dimensions score ≥ threshold (default 7/10).
Loop Logic
for round in 1..max_rounds:
1. Identify dimensions scoring < threshold
2. For each weak dimension, generate specific refinement actions:
- Novelty low → Differentiate from closest prior work, add unique component
- Tech Soundness low → Add theoretical justification, fix logical gaps
- Feasibility low → Simplify architecture, reduce data/compute needs
- Significance low → Strengthen problem motivation, broaden impact scope
- Clarity low → Rewrite ambiguous parts, add concrete examples
- Exp Validity low → Add metrics, design stronger evaluation plan
- Scalability low → Generalize approach, remove domain-specific assumptions
- Positioning low → Adjust framing for target venue, cite venue-relevant papers
3. Apply refinements to structured brief → produce updated version
4. Re-evaluate all 8 dimensions on updated version
5. Append to idea-evolution.md:
- Round number
- Before/after scores for each dimension
- Changes made with reasoning
6. If ALL dimensions ≥ threshold → break loop
Refinement Rules
- Conflict resolution: If refinements for different dimensions conflict, prioritize the dimension with the largest gap from threshold
- Additive only: Never contradict a refinement the user previously approved
- Structural limitations: If a dimension is stubbornly low after 2 rounds, flag it as a structural limitation rather than over-engineering a fix
Literature Context Update Policy
- If refinement modifies < 30% of technical approach: reuse Phase 2 literature context
- If refinement substantially pivots (≥ 30% change): trigger 1-2 supplementary search queries on new components only
- Log which policy was applied each round
Phase 4: Human Review Gate
Present the following to the user and wait for their response:
## Idea Refinement Complete — Review Required
### Final Scores (Round N)
| Dimension | Score | Status |
|-----------|-------|--------|
| Novelty | X/10 | ✓/✗ |
| Technical Soundness | X/10 | ✓/✗ |
| Feasibility | X/10 | ✓/✗ |
| Significance | X/10 | ✓/✗ |
| Clarity | X/10 | ✓/✗ |
| Experimental Validity | X/10 | ✓/✗ |
| Scalability | X/10 | ✓/✗ |
| Positioning | X/10 | ✓/✗ |
| **Overall** | **X.X/10** | **Ready / Not Ready** |
### Evolution Summary
- Round 0 → 1: [changes and score deltas]
- Round 1 → 2: [changes and score deltas]
- Round 2 → 3: [changes and score deltas]
### Structural Limitations (if any)
- [Dimension]: Capped at X/10 because [reason]
### Current Idea (Refined Version)
[Full structured brief — latest version]
### Options
- **proceed** — Generate full proposal
- **refine [dimension]** — Further refine specific dimension(s)
- **modify** — Manually edit the idea, then re-evaluate
- **pivot** — Substantially change direction, restart from Phase 1
- **abort** — Stop here, keep all artifacts
Status Determination
- Ready: ALL dimensions ≥ threshold
- Not Ready: Any dimension < threshold after max rounds
Response Handling
proceed→ Phase 5 (works even if "Not Ready" — user's choice)refine X→ Additional targeted refinement round on dimension X, then re-presentmodify→ User provides edited brief, run 1 round of full re-evaluationpivot→ Return to Phase 1 with new/revised ideaabort→ Save all artifacts, end skill
Phase 5: Proposal Generation
Launch two parallel agents via Agent tool. Both receive:
- Refined idea (structured brief, latest version)
- Literature context (all papers from Phase 2 + any Phase 3 supplements)
- Evaluation history (all rounds, scores, refinements, structural limitations)
Agent C: Method Design Writer
Agent C generates the following sections for proposal.md:
1. Title & Abstract
- Concise, venue-appropriate title
- 150-250 word abstract covering problem, approach, key innovation, expected results
2. Motivation & Problem Statement
- Gap identification with real-world relevance
- Formal problem definition (mathematical where appropriate)
- Why existing approaches are insufficient (cite Phase 2 literature)
3. Related Work
- Organized by themes from Phase 2 literature search
- 3-6 thematic subsections
- Positioning statements: "Unlike [X] which..., our approach..."
- Citations as
[Author et al., Year]
4. Method Design
- Architecture overview: Mermaid diagram showing system components and data flow
graph TD A[Input] --> B[Component 1] B --> C[Component 2] C --> D[Output] - Component descriptions: Each component with:
- Purpose and intuition
- Mathematical formulation (LaTeX equations:
$\mathcal{L} = ...$) - Input/output specification
- Algorithm pseudocode:
Algorithm 1: [Name] Input: ... Output: ... 1: for each ... do 2: compute ... 3: end for 4: return ... - Complexity analysis: Time and space complexity
- Token cost estimation (for agent-based proposals):
Component Model Calls/Run Input Tokens Output Tokens Cost/Run Mark as [ESTIMATED]. Include sensitivity note: "Cost is 2-3x if errors require re-runs."
5. Limitations & Risks
- Reference structural limitations from evaluation
- Acknowledge known weaknesses transparently
- Discuss failure modes and mitigation strategies
Agent D: Experiment Design Writer
Agent D generates the experiment sections for proposal.md and a separate experiment-benchmarks.md:
6. Task Definition
- Formal problem setup
- Input/output specification
- Evaluation criteria
7. Benchmark Survey
Search literature for benchmarks on this task:
- Temporal scope: last 5 years for recent, 10-year window for foundational
- Venues: top-tier (NeurIPS, ICML, CVPR, ACL) + domain-specific
- If niche: identify related task benchmarks; note "proposed new benchmark" as contribution
python "BASE_DIR/scripts/paper_search.py" \
--query "<task> benchmark dataset" \
--max-results 15 \
--sort citations
Output table in experiment-benchmarks.md:
| Benchmark | Size | Task | Metrics | Used By (Papers) |
|---|
8. Baseline Survey
Identify SOTA methods:
| Method | Year | Venue | Key Result | Code Available? |
|---|
9. Main Experiment Settings
- Datasets chosen with justification (reference benchmark survey)
- Evaluation metrics (primary + secondary)
- Hyperparameter ranges
- Hardware requirements (GPU type, training time estimate)
- Number of runs / random seeds for statistical validity
10. Ablation Studies
One per key design choice:
| Ablation | Component Removed/Replaced | Hypothesis | Metric |
|---|---|---|---|
| w/o Component A | Remove A, keep rest | Performance drops by ~X% | Main metric |
| Replace B with baseline | Swap B for standard approach | Our B adds ~Y% improvement | Main metric |
11. Supplementary Experiments
- Efficiency analysis: Latency, memory, token cost vs. baselines
- Scaling behavior: Vary data size / model size / agent count
- Robustness tests: Noisy input, distribution shift, adversarial examples
12. Qualitative Analysis Plan
- Case studies: 2-3 success cases + 1-2 failure cases with analysis
- Visualization plan: attention maps, agent traces, t-SNE embeddings, decision trees (as appropriate)
13. Quantitative Bonus Analysis
- Statistical significance: paired t-test or bootstrap confidence intervals
- Cross-domain transfer evaluation (if applicable)
- Error analysis: categorize failure types, quantify each category
Assembly
After both agents complete:
- Merge Agent C and Agent D outputs into single
proposal.md - Ensure consistent notation (variable names, acronyms) across all sections
- Add cross-references between method and experiment sections
- Compile all citations into
references.bib:python "BASE_DIR/scripts/bibtex_utils.py" \ merge \ --output "<output-dir>/references.bib" - Verify every
[Author et al., Year]in proposal has a matching BibTeX entry - For non-academic sources (blog posts, preprints): auto-generate minimal BibTeX
- Save all files to output directory
Error Handling
Agent Failures
- Agent A (Literature) fails: Retry with 3 queries. If still fails, proceed with empty context; flag evaluation as "Preliminary (Literature Search Failed)"
- Agent B (Evaluation) fails: Halt and inform user; suggest re-invocation
- Agent C (Method Writer) fails: Fill available sections, mark missing as [TODO]
- Agent D (Experiment Writer) fails: Same — partial output with [TODO] markers
- On partial failure: flag proposal as "Incomplete — manual review required"
Checkpointing
- Each phase saves outputs to disk immediately upon completion
- If session is interrupted, user can re-invoke and reference existing output directory
idea-evolution.mdserves as the checkpoint log
Multi-Idea Input
If Phase 1 detects multiple distinct ideas:
- Present options: evaluate all (parallel), select one, or merge
- Default: prompt user for clarification
Usage Examples
Free text idea:
/idea-to-proposal Use graph attention networks to model inter-agent communication in cooperative MARL, where attention weights represent communication bandwidth allocation --target-venue NeurIPS
Paper extension:
/idea-to-proposal https://arxiv.org/abs/2305.12345 --target-venue ICML
(User describes extension in follow-up message after Phase 1 structuring)
From Obsidian note:
/idea-to-proposal ~/Library/Mobile Documents/iCloud~md~obsidian/Documents/My_note/00_Inbox/my-research-idea.md
With custom threshold:
/idea-to-proposal "Diffusion-based program synthesis with formal verification feedback" --threshold 8 --max-rounds 5
Dependencies
paper_search.py— Unified academic paper search (arXiv + Semantic Scholar + DBLP)bibtex_utils.py— BibTeX reference management (fetch, merge, validate)- Claude Agent tool — For launching parallel sub-agents in Phases 2 and 5
- Claude Read tool — PDF/file extraction
- Claude WebFetch tool — URL content extraction
Version: 1.0 Last Updated: 2026-03-23