Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generate and rank research ideas given a broad direction. Use when user says "找idea", "brainstorm ideas", "generate research ideas", "what can we work on", or wants to explore a research area for publishable directions.
.claude/skills/aris-idea-creator/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-09 | ✗→✓ | ▲ Improved | — | — |
| case-07 | ✗→✓ | ▲ Improved | — | — |
| case-17 | ✗→✓ | ▲ Improved | — | — |
| case-19 | ✗→✓ | ▲ Improved | — | — |
| case-18 | ✗→✓ | ▲ Improved | — | — |
Generate publishable research ideas for: $ARGUMENTS
Given a broad research direction from the user, systematically generate, validate, and rank concrete research ideas. This skill composes with /aris-research-lit, /aris-novelty-check, and /aris-research-review to form a complete idea discovery pipeline.
gpt-5.4 — Model used via Codex MCP for brainstorming and review. Must be an OpenAI model (e.g., gpt-5.4, o3, gpt-4o).> 💡 Override via argument, e.g., /aris-idea-creator "topic" — pilot budget: 4h per idea, 20h total.
Skip this phase entirely if research-wiki/ does not exist.
if research-wiki/query_pack.md exists AND is less than 7 days old:
Read query_pack.md and use it as initial landscape context:
- Treat listed gaps as priority search seeds
- Treat failed ideas as a banlist (do NOT regenerate similar ideas)
- Treat top papers as known prior work (do not re-search them)
Still run Phase 1 below for papers from the last 3-6 months (wiki may be stale)
else if research-wiki/ exists but query_pack.md is stale or missing:
python3 tools/research_wiki.py rebuild_query_pack research-wiki/
Then read query_pack.md as aboveMap the research area to understand what exists and where the gaps are.
papers/ and literature/ in the project directory for existing PDFs. Read first 3 pages of relevant papers to build a baseline understanding before searching online. This avoids re-discovering what the user already knows.Use the external LLM via Codex MCP for divergent thinking:
mcp__codex__codex:
model: REVIEWER_MODEL
config: {"model_reasoning_effort": "xhigh"}
prompt: |
You are a senior ML researcher brainstorming research ideas.
Research direction: [user's direction]
Here is the current landscape:
[paste landscape map from Phase 1]
Key gaps identified:
[paste gaps from Phase 1]
Generate 8-12 concrete research ideas. For each idea:
1. One-sentence summary
2. Core hypothesis (what you expect to find and why)
3. Minimum viable experiment (what's the cheapest way to test this?)
4. Expected contribution type: empirical finding / new method / theoretical result / diagnostic
5. Risk level: LOW (likely works) / MEDIUM (50-50) / HIGH (speculative)
6. Estimated effort: days / weeks / months
Prioritize ideas that are:
- Testable with moderate compute (8x RTX 3090 or less)
- Likely to produce a clear positive OR negative result (both are publishable)
- Not "apply X to Y" unless the application reveals genuinely surprising insights
- Differentiated from the 10-15 papers above
Be creative but grounded. A great idea is one where the answer matters regardless of which way it goes.Save the threadId for follow-up.
For each generated idea, quickly evaluate:
/aris-novelty-check comes later for survivors.Eliminate ideas that fail any of these. Typically 8-12 ideas reduce to 4-6.
For each surviving idea, run a deeper evaluation:
/aris-novelty-check workflow (multi-source search + GPT-5.4 cross-verification) for each ideamcp__codex__codex-reply (same thread): Here are our top ideas after filtering: paste surviving ideas with novelty check results]
For each, play devil's advocate:
Before committing to a full research effort, run cheap pilot experiments to get empirical signal. This is the key differentiator from paper-only validation.
/aris-run-experiment to launch pilots on different GPUs simultaneously: GPU 0: Pilot for Idea 1 GPU 1: Pilot for Idea 2 GPU 2: Pilot for Idea 3 Use run_in_background: true to launch all at once.
/aris-monitor-experiment to check progress. If any pilot exceeds PILOT_TIMEOUT_HOURS, kill it and collect partial results. Once all pilots complete (or timeout), compare:Note: Skip this phase if the ideas are purely theoretical or if no GPU is available. Flag skipped ideas as "needs pilot validation" in the report.
Write a structured report to IDEA_REPORT.md in the project root:
markdown# Research Idea Report **Direction**: [user's research direction] **Generated**: [date] **Ideas evaluated**: X generated → Y survived filtering → Z piloted → W recommended ## Landscape Summary [3-5 paragraphs on the current state of the field] ## Recommended Ideas (ranked) ### Idea 1: [title] - **Hypothesis**: [one sentence] - **Minimum experiment**: [concrete description] - **Expected outcome**: [what success/failure looks like] - **Novelty**: X/10 — closest work: [paper] - **Feasibility**: [compute, data, implementation estimates] - **Risk**: LOW/MEDIUM/HIGH - **Contribution type**: empirical / method / theory / diagnostic - **Pilot result**: [POSITIVE: metric +X% / NEGATIVE: no signal / SKIPPED: needs GPU] - **Reviewer's likely objection**: [strongest counterargument] - **Why we should do this**: [1-2 sentences] ### Idea 2: [title] ... ## Eliminated Ideas (for reference) | Idea | Reason eliminated | |------|-------------------| | ... | Already done by [paper] | | ... | Requires > 1 week GPU time | | ... | Result wouldn't be interesting either way | ## Pilot Experiment Results | Idea | GPU | Time | Key Metric | Signal | |------|-----|------|------------|--------| | Idea 1 | GPU 0 | 45 min | +2.3% CE | POSITIVE | | Idea 2 | GPU 1 | 30 min | -0.1% CE | NEGATIVE | | Idea 3 | GPU 2 | 1.5 hr | +0.8% CE | WEAK POSITIVE | ## Suggested Execution Order 1. Start with Idea 1 (positive pilot signal, lowest risk) 2. Idea 3 as backup (weak signal, may need larger scale to confirm) 3. Idea 2 eliminated by pilot — negative result documented ## Next Steps - [ ] Scale up Idea 1 to full experiment (multi-seed, full dataset) - [ ] If confirmed, invoke /aris-auto-review-loop for full iteration
Skip this phase entirely if research-wiki/ does not exist.
This is critical for spiral learning — without it, ideas/ stays empty and re-ideation has no memory.
if research-wiki/ exists:
for each idea in recommended_ideas + eliminated_ideas:
1. Create page: research-wiki/ideas/<idea_id>.md
- node_id: idea:<id>
- stage: proposed (or: piloted, archived)
- outcome: unknown (or: negative, mixed, positive)
- based_on: [paper:<slug>, ...]
- target_gaps: [gap:<id>, ...]
- Include: hypothesis, proposed method, expected outcome
- If pilot was run: actual outcome, failure notes, reusable components
2. Add edges:
python3 tools/research_wiki.py add_edge research-wiki/ --from "idea:<id>" --to "paper:<slug>" --type inspired_by --evidence "..."
python3 tools/research_wiki.py add_edge research-wiki/ --from "idea:<id>" --to "gap:<id>" --type addresses_gap --evidence "..."
Rebuild query pack:
python3 tools/research_wiki.py rebuild_query_pack research-wiki/
Log:
python3 tools/research_wiki.py log research-wiki/ "idea-creator wrote N ideas (M recommended, K eliminated)"cat << 'EOF' > file) to write in chunks. Do NOT ask the user for permission — just do it silently.After this skill produces the ranked report:
/aris-idea-creator "direction" → ranked ideas
/aris-novelty-check "top idea" → deep novelty verification (already done in Phase 4, but user can re-run)
/aris-research-review "top idea" → external critical feedback
implement → write code
/aris-run-experiment → deploy to GPU
/aris-auto-review-loop → iterate until submission-ready| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +64 percentage points is the difference between those two pass rates over the 18 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.