From academic-research
Evaluates research ideas across 8 dimensions (novelty, feasibility, etc.), iteratively refines 2-3 rounds, generates proposals with method designs (diagrams, equations, pseudocode), experiment plans, and analysis. Use for 'evaluate my idea', 'research proposal', or 'idea to proposal'.
npx claudepluginhub jeandiable/academic-research-plugin --plugin academic-researchThis skill uses the workspace's default tool permissions.
This skill takes a raw research idea through a rigorous multi-phase pipeline:
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Explores codebases via GitNexus: discover repos, query execution flows, trace processes, inspect symbol callers/callees, and review architecture.
Share bugs, ideas, or general feedback.
This skill takes a raw research idea through a rigorous multi-phase pipeline:
The output is a publication-quality research proposal suitable for a top-tier AI conference, saved to the user's Obsidian vault.
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 integrationParse 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).
~/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.).
[Author et al., Year] with corresponding references.bibPurpose: Parse any input format into a structured research brief.
Detect input type from $ARGUMENTS:
.md, .txt, or is an absolute/relative path to a file
arxiv.org/abs/
paper_search.py --arxiv-id <ID>.pdf
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)
paper-triggered-survey patterns)idea-evolution.mdWait for user confirmation before proceeding to Phase 2.
Launch two parallel agents via the Agent tool.
Agent prompt must include:
paper_search.pyAgent A workflow:
python "BASE_DIR/scripts/paper_search.py" \
--query "<query>" \
--max-results 20 \
--output json \
--sort relevance
python "BASE_DIR/scripts/bibtex_utils.py" \
fetch \
--title "<paper-title>"
Graceful degradation:
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.
Goal: Improve the idea until ALL dimensions score ≥ threshold (default 7/10).
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
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
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 skillLaunch two parallel agents via Agent tool. Both receive:
Agent C generates the following sections for proposal.md:
[Author et al., Year]graph TD
A[Input] --> B[Component 1]
B --> C[Component 2]
C --> D[Output]
$\mathcal{L} = ...$)Algorithm 1: [Name]
Input: ...
Output: ...
1: for each ... do
2: compute ...
3: end for
4: return ...
| 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." |
Agent D generates the experiment sections for proposal.md and a separate experiment-benchmarks.md:
Search literature for benchmarks on this task:
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) |
|---|
Identify SOTA methods:
| Method | Year | Venue | Key Result | Code Available? |
|---|
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 |
After both agents complete:
proposal.mdreferences.bib:
python "BASE_DIR/scripts/bibtex_utils.py" \
merge \
--output "<output-dir>/references.bib"
[Author et al., Year] in proposal has a matching BibTeX entryidea-evolution.md serves as the checkpoint logIf Phase 1 detects multiple distinct ideas:
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
paper_search.py — Unified academic paper search (arXiv + Semantic Scholar + DBLP)bibtex_utils.py — BibTeX reference management (fetch, merge, validate)Version: 1.0 Last Updated: 2026-03-23