Idea spark agentic
Agentic variant of idea-spark. Generates ONE reviewer-defensible, implementable research idea from a stated direction. Phase 0 and Phase 3.1 retrieval use Claude Code native WebSearch/WebFetch sub-agents instead of API connectors - no .env file or API keys required. Reuses the same 5-phase pipeline and ideation-pattern vocabulary as idea-spark.From its SKILL.md
npx -y skills add yysxjz/idea-spark-agenticAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 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
10.2 KB, ~2.6k tokens by cl100k_base, as published. Nobody here has run it
Idea Spark - Agentic Skill
Convert an under-specified research direction into ONE reviewer-defensible Oral-level research proposal via a 5-phase workflow. This is the agentic variant: Phase 0 literature grounding and Phase 3.1 collision checking are performed by isolated Claude Code sub-agents using WebSearch/WebFetch, so no .env, OpenReview, Semantic Scholar, OpenAlex, or arXiv API credentials are needed.
Everything else (ideation patterns, sub-patterns, Phase 1-4 prompts, validators, card renderers) is contract-compatible with the original idea-spark skill.
When to use
- Same as
idea-spark: "Give me a research idea in {area}", "What's the bottleneck?", "Help me sharpen this direction into an Oral-level proposal." - Prefer this variant when you do not have connector API keys or want the retrieval agent to reason about relevance, year windows, and cross-community aliases rather than relying on BM25 query matching.
When NOT to use
- Same as
idea-spark: code review, pure summarization, cross-decade surveys, unconstrained brainstorming, engineering-integration tasks. - Do not use if you require deterministic, reproducible connector-backed retrieval (use legacy
idea-sparkinstead).
Setup (first use only)
- Copy this directory into your Claude Code skills folder —
<project>/.claude/skills/idea-spark-agenticfor one project, or~/.claude/skills/idea-spark-agenticfor all projects — and make sure theWebSearch,WebFetch, andAgenttools are permitted. - No
.envis required. - Optional: install
pymupdfandbeautifulsoup4for full-text fetch quality (otherwise fulltext falls back to abstracts):pip install pymupdf beautifulsoup4 - Optional: install
xelatexortectonicif you want PDF idea cards in addition to Markdown.
How to run: the next loop
The canonical driver is the run-state navigator:
python3 "$SKILL_DIR/scripts/run.py" next --dir "$RUN_DIR" --query "<user's research question>"
Run-dir convention (same as idea-spark): $PWD/ideaspark_run/<topic-slug>. One run = one directory. Never reuse a directory that already contains a phase0/.
The host loop is:
- Run
next. - Do what it says (
bash→ run the command;llm_subagent→ spawn an isolated sub-agent with ONLY the listed file paths). - Run
nextagain. Repeat until terminal state (DONE,do_not_generate, orphase_3_failed).
Use this checklist:
- Phase 0: deterministic setup → agentic retrieval sub-agent →
lit_results.json+lit_table.md+.lit_grounding_mode - Phase 0+: full-text fetch (
phase0_fulltext) - MANDATORY before Phase 1 - Phase 1: bottleneck identification →
proceedordo_not_generate - Phase 2: gap×pattern selection + candidate generation (ONE sub-agent, TWO outputs) → citation gate → coherence gate
- Phase 3: collision retrieval setup → agentic collision sub-agent → assemble → audit (5 checks) → revise/merge/re-audit or abandon→retry
- Phase 4: skeleton → fill → assemble → implementability audit → validate → render → return 3 cards inline
Context discipline
A full run accumulates ~180-250k tokens of intermediate state. Run every LLM-driven phase in an isolated context (sub-agent or subprocess). Write every phase artifact directly to disk; never paraphrase large JSON into chat. Compact the parent context between phases. See idea-spark design-notes for the rationale.
Phase reference
Orchestrator entry points
| Phase | Entry point |
|---|---|
| navigator | next --dir "$RUN_DIR" [--query "..."] |
| Phase 0 setup | phase0 --query "<user text>" --out $RUN_DIR/phase0/ |
| Phase 0+ full-text (mandatory) | phase0_fulltext --out $RUN_DIR/phase0/ |
| Phase 1 anchor top-up | phase1_fulltext_topup --out $RUN_DIR/phase0/ --paper-id <anchor paper_id> |
| Phase 3.1 setup | phase3_collision --idea-json <canonical candidate> --out $RUN_DIR/phase3_collision/ |
| Phase 3.1 assembly | phase3_collision_assemble --sig .sig_raw.json --alias .alias_raw.json --out $RUN_DIR/phase3_collision/ |
| Phase 3.3 merger | phase3_merge_revisions --phase2 <canonical> --revisions <p3.3-patch> --critique <p3.2-report> --out $RUN_DIR/phase3_revise/ |
| Phase 2.3 merger | phase3_merge_revisions --phase2 <p2.2-output> --revisions <p2.3-output> --out $RUN_DIR/phase2_coherence/ --out-name refined_candidate.json |
| Phase 4 skeleton | phase4_skeleton --candidate <final_candidate-or-p2.2> --phase1 ... --phase2-select ... --phase3-critique ... [--phase3-revise ...] --phase0-dir $RUN_DIR/phase0/ [--collision ...] --out $RUN_DIR/phase4/ |
| Phase 4 assemble | phase4_assemble --skeleton $RUN_DIR/phase4/phase4_skeleton.json --fill-map $RUN_DIR/phase4/fill_map.json --out $RUN_DIR/phase4/ |
| Phase 4 render | phase4_render --expansion $RUN_DIR/phase4/phase4_expansion.json --out $RUN_DIR/phase4/ |
| Validators | validate --phase2 ... [--phase3 ...] [--phase4 ...] [--phase4-impl ...] |
The LLM-driven phases (1 / 2.1 / 2.2 / 2.3 / 3.2 / 3.3 / 4.fill / 4.1.5 / falsification re-audit) have no orchestrator subcommand: read the prompt at references/system-prompts/<phase>.txt, gather the inputs listed at its top, and Write the JSON described under Output: to $RUN_DIR/<phase>/<phase>_output.json.
Phase 0 - Agentic literature grounding
Phase 0 is split into a deterministic setup step and an LLM sub-agent step.
Step 0a - setup (Bash):
python3 "$SKILL_DIR/scripts/run.py" phase0 --query "<user's research question>" --out "$RUN_DIR/phase0/"
This writes:
$RUN_DIR/phase0/query.txt- the raw user query.$RUN_DIR/phase0/user_refs.json- URL/ID references extracted from the query.
Step 0b - agentic retrieval (sub-agent):
Spawn an isolated sub-agent with references/agentic-retrieval-prompt.md as its system prompt. Pass ONLY these file paths:
$RUN_DIR/phase0/query.txt$RUN_DIR/phase0/user_refs.jsonreferences/intent-recognition.mdreferences/pattern-summary-rubric.mdreferences/schemas.mdreferences/intake-routing.md
The sub-agent:
- Checks
intake-routing.mdOOD triggers. If OOD, writes$RUN_DIR/do_not_generate.mdand stops. - Derives 4-6 search queries per
intent-recognition.mdMap mode (including one ESCAPE-MECHANISM query in solution vocabulary). - Runs
WebSearchfor each query with year filters, thenWebFetchon promising URLs. - Deduplicates to ~30-50 unique papers.
- Tags each paper with 1-3 ideation patterns per
pattern-summary-rubric.md. - Writes:
$RUN_DIR/phase0/lit_results.json- deduplicated paper records (retrieved_via: websearch,source: websearch).$RUN_DIR/phase0/lit_table.md- exact 9-column table required by Phase 1.$RUN_DIR/phase0/.lit_grounding_mode- sentinel containingagentic.
Step 0c - full-text fetch (Bash, mandatory):
python3 "$SKILL_DIR/scripts/run.py" phase0_fulltext --out "$RUN_DIR/phase0/"
Reuses scripts/fetch_sections.py (arXiv HTML first, then PDF fallbacks). No API keys. Phase 1 hard-gates on fulltext_cache.json.
Phase 1 - Bottleneck identification
One isolated LLM call. Prompt: references/system-prompts/bottleneck_identify.txt (which now accepts .lit_grounding_mode == agentic). Inputs: user query + intake, phase0/lit_table.md, phase0/fulltext_cache.json, phase0/lit_results.json. Output phase1/phase1_output.json with state ∈ {proceed, do_not_generate}.
Phase 2 - Selection + generation
Identical to idea-spark. Run 2.1 and 2.2 back-to-back in ONE isolated sub-agent, writing BOTH phase2_select_output.json and phase2_generate_output.json. Then run the deterministic citation gate (validate --phase2 ...), then the coherence gate (2.3, fresh context).
Phase 3 - Quality gauntlet
3.1 collision - agentic (setup + sub-agent + assembly):
Setup:
python3 "$SKILL_DIR/scripts/run.py" phase3_collision --idea-json "$RUN_DIR/phase2_coherence/refined_candidate.json" --out "$RUN_DIR/phase3_collision/"
This writes candidate.json and .agentic_collision_pending.
Sub-agent: spawn with references/agentic-collision-prompt.md. Inputs:
$RUN_DIR/phase3_collision/candidate.jsonreferences/intent-recognition.mdreferences/schemas.md
The sub-agent runs WebSearch for signature_terms[] (last ~10 months) and alias_terms[] (last ~48 months), WebFetch promising URLs, deduplicates per channel, and writes .sig_raw.json + .alias_raw.json.
Assembly:
python3 "$SKILL_DIR/scripts/run.py" phase3_collision_assemble --sig "$RUN_DIR/phase3_collision/.sig_raw.json" --alias "$RUN_DIR/phase3_collision/.alias_raw.json" --out "$RUN_DIR/phase3_collision/"
This scores relevance, truncates per channel to ≤120 hits, and writes collision_hits.json, collision_hits.full.json, and .lit_grounding_mode = agentic.
3.2 audit, 3.3 revise, retry, falsification re-audit: identical to idea-spark.
Phase 4 - Expansion + packaging
Identical to idea-spark: skeleton → fill → assemble → implementability audit → validate → render.
Validators
python3 "$SKILL_DIR/scripts/run.py" validate \
--phase2 <canonical candidate file> \
--phase3 <phase3_critique_output.json or phase3_revise_output.json> \
--phase4 $RUN_DIR/phase4/phase4_expansion.json \
--phase4-impl $RUN_DIR/phase4/phase4_implementability.json
Same validators as idea-spark. Retry budget cap = 2.
Configuration
IDEASPARK_DEFAULT_COMPUTE- optional standing compute profile, read from the shell environment (not.env). Precedence: user query > this env var > factory default.
Output surface policy
Same as idea-spark: no calendar projections, no experiment matrix / ablation plan / baseline table. The skill produces IDEA + falsifiability + feasibility judgment.
What ships with it: 87 files
944.5 KB alongside SKILL.md, 16 of them executable
references/
- agentic-collision-prompt.md4.4 KB
- agentic-retrieval-prompt.md7.8 KB
- anti-patterns.md5.7 KB
- design-notes.md21.3 KB
- ideation-patterns/adapt_via_conditioning.md13.1 KB
- ideation-patterns/algebraic_equivalence_unification.md12.6 KB
- ideation-patterns/architectural_operator_substitution.md13.1 KB
- ideation-patterns/assumption_audit_and_pivot.md12.7 KB
- ideation-patterns/characterize_limit_then_surpass.md11.1 KB
- ideation-patterns/companion-combos.md7.1 KB
- ideation-patterns/controlled_diagnostic_design.md11.9 KB
- ideation-patterns/decompose_and_delegate.md13.4 KB
- ideation-patterns/generative_process_redesign.md12.1 KB
- ideation-patterns/heterogeneous_decomposition.md14.2 KB
- ideation-patterns/overview.md13.0 KB
- ideation-patterns/reframe_as_solvable_object.md12.6 KB
- ideation-patterns/relax_discrete_search_to_continuous.md13.4 KB
- ideation-patterns/self_supervised_signal_engineering.md13.4 KB
- ideation-patterns/structural_prior_encoding.md14.1 KB
- ideation-patterns/targeted_self_supervised_objective.md11.0 KB
- ideation-patterns/unify_into_shared_representation.md14.4 KB
- ideation-sub-patterns/C00.md9.3 KB
- ideation-sub-patterns/C01.md8.7 KB
- ideation-sub-patterns/C02.md8.5 KB
- ideation-sub-patterns/C03.md8.4 KB
- ideation-sub-patterns/C04.md8.2 KB
- ideation-sub-patterns/C05.md9.4 KB
- ideation-sub-patterns/C06.md8.2 KB
- ideation-sub-patterns/C07.md9.4 KB
- ideation-sub-patterns/C08.md8.8 KB
- ideation-sub-patterns/C09.md8.3 KB
- ideation-sub-patterns/C10.md8.1 KB
- ideation-sub-patterns/C11.md9.5 KB
- ideation-sub-patterns/C12.md9.2 KB
- ideation-sub-patterns/C13.md8.8 KB
- CLAUDE.md6.7 KB
- .gitignore77 B
- LICENSE1.2 KB
- README.md7.8 KB
- README.zh-CN.md7.6 KB
47 more files not listed here. See all 87 in the repository.