Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Guides the user through an interactive conversation to define their research project, then generates research_brief.json and tasks.json. Use when starting a new project, when no research_brief.json exists, when the user wants to start from a specific pipeline stage, or when the user wants to redefine their research pipeline.
.claude/skills/inno-pipeline-planner/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-13 | ✗→✓ | ▲ Improved | — | — |
| case-19 | ✗→✓ | ▲ Improved | — | — |
| case-06 | ✗→✓ | ▲ Improved | — | — |
| case-07 | ✗→✓ | ▲ Improved | — | — |
| case-11 | ✗→✓ | ▲ Improved | — | — |
Run an interactive planning flow that turns user conversation into:
.pipeline/docs/research_brief.json.pipeline/tasks/tasks.jsonKeep this file short. Load full schemas and field-level rules from:
references/pipeline-contract.md (index)Read only what you need:
references/generation-rules.md: generation logic, ordering, dependencies, nextActionPromptreferences/brief-schema.md: .pipeline/docs/research_brief.json contractreferences/tasks-schema.md: .pipeline/tasks/tasks.json contractCheck:
.pipeline/docs/research_brief.json.pipeline/tasks/tasks.jsoninstance.json (legacy source)Survey/, Ideation/, Experiment/, Publication/, and Promotion/ directories (to detect pre-existing artifacts)If brief exists, summarize title, goal, current startStage, and completion status, then ask:
Capture at least:
Determine the starting stage early in the conversation:
startStage = "survey"startStage = "experiment"startStage = "publication"startStage = "promotion"startStage = "survey" (default)Typical question buckets:
Adapt to context:
startStage: If starting from experiment, do not ask survey or ideation questions in detail — just capture a brief summary of the existing context in those sections.pipeline.mode = "plan"; otherwise use "idea".Create if missing:
.pipeline/config.json.pipeline/docs/research_brief.json.pipeline/tasks/tasks.jsonUse the exact JSON contracts and generation rules in:
references/pipeline-contract.md and linked reference filesRules:
pipeline.startStage to the determined starting stage (default: "survey").startStage in the stage order (survey < ideation < experiment < publication < promotion).sections.* fields in the brief with whatever context the user provided, but do not create task blueprints or tasks for them..agents/skills/ or skills/), optionally using stage-skill-map.json if present.After writing files, present:
If user asks for updates:
tasks.json when pipeline structure/blueprints/stages change.pipeline.startStage in the brief, then regenerate tasks.json to include only the active stages.id instead of full regeneration.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | 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 16 counted toward the lift figure. The other 6 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 +41 percentage points is the difference between those two pass rates over the 16 comparable cases. 6 cases got worse with the skill loaded, and they are 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.