autoresearch
Autonomous iteration loop: modify, verify, keep/discard against any metric
Research ICP challenges, discover improvements, generate PRDs
> /plugin marketplace add uditgoenka/autoresearch > /plugin install autoresearch@autoresearch
How it fires
How this command gets triggered: by you, by Claude, or both.
/improveContext preview
What this command does when you run it.
Research ICP challenges, discover improvements, generate PRDs
name: autoresearch:improve description: "Research ICP challenges, discover improvements, generate PRDs" argument-hint: "[Goal: <text>] [--icp <text>] [--discover] [--no-discover] [--seeds <categories>] [--depth shallow|standard|deep] [Iterations: N] [--evals]"
EXECUTE IMMEDIATELY.
Extract from $ARGUMENTS:
If upstream `handoff.json` exists in CWD → read it. Map source findings to default seed categories:
AskUserQuestion (single batch): Q1 (Goal): "What product area to improve?" — open text Q2 (ICP): "Who is your ideal customer?" — open text describing target buyer/user Q3 (Pain points): "Top 3 pain points your customers face?" — open text Q4 (Competitors): "Key competitors?" — open text, or "skip" Q5 (Depth): "How deep?" — shallow (5 iterations, quick scan), standard (15, recommended), deep (30+, exhaustive) If all provided inline → skip.
Resolve product context (priority chain): 1. Learn summary (`autoresearch/learn-*/summary.md`, most recent) → read it 2. README.md (≥500 chars, non-boilerplate) → extract product description 3. `package.json` / `pyproject.toml` / `Cargo.toml` description (≥10 chars) → use it 4. If ALL above absent AND NOT `--no-discover` → auto-discover: scan 10 key files (manifest, routes, models, config), cap 1500 tokens 5. If `--discover` → force scan regardless of above 6. If nothing found → warn: "No product context. Run `/autoresearch:learn --mode summarize` for better results."
Create output directory: `autoresearch/improve-{YYMMDD}-{HHMM}/` TSV header: `# metric_direction: higher_is_better` Columns: `iteration|timestamp|category|research_question|status|source|insight_problem|insight_mechanism|confidence|classification`
**5 research categories:** 1. ICP challenges — pain points, jobs-to-be-done, unmet needs 2. Competitor gaps — weaknesses, missing features, technical differentiators 3. Market trends — timing signals, emerging patterns, regulatory shifts 4. UX & experience — interaction models, onboarding, retention mechanics 5. Revenue & growth — pricing, acquisition, monetization, upsell/expansion
**Iteration protocol:**
**Insight schema:** `{problem: 10-word canonical form, affected_persona: ICP segment, proposed_mechanism: how to address, expected_outcome: what success looks like}` **Classification:** New = novel {problem, persona} pair. Extension = same pair, different mechanism. Duplicate = same pair + mechanism → skip.
If --evals: check if current_iteration % interval == 0 → run checkpoint. Print: `--- Eval Checkpoint (iterations {X}-{Y}) ---\nInsights: {total} (+{new}) | Categories: {covered}/5 | Saturation: {window}/3\n{recommendation}\n---`
1. **ICP binary gate** — filter insights not serving the stated ICP 2. **3-tier bucketing** — Must-have / Nice-to-have / Moonshot 3. **Pairwise ranking** within Must-have tier only (cap 7-10 items) 4. **2-sentence rationale** per item citing research evidence 5. **Confidence indicator** per item (HIGH / MEDIUM / LOW)
Write `improvement-plan.md` with full tiered ranking.
AskUserQuestion (multi-select): present tiered list, user selects which features become PRDs. If `--features` provided → pre-select matching items, still show for confirmation.
Per selected feature, write `prd-{feature-slug}.md`:
Write `research-findings.md` — all insights with citations + confidence. Write `summary.md` — overview, research stats, category coverage, saturation status.
Print: total iterations, insights discovered (new/extension), categories covered, saturation status, PRDs generated, output directory path.
If --evals: write `evals-summary.md` to output directory with full analysis.
Write `handoff.json`: version "2.1.0", source "improve", timestamp, status (COMPLETE|SATURATED|USER_INTERRUPT|BOUNDED|ERROR), results_tsv path, findings = improvements with tier + confidence + prd_path, config{goal, icp, depth, categories_explored, insights_total, prds_genera
Turn Claude Code, OpenCode, or OpenAI Codex into a relentless improvement engine. Based on Karpathy's autoresearch — constraint + mechanical metric + autonomous iteration = compounding gains.
Repo: uditgoenka/autoresearch
Autonomous iteration loop: modify, verify, keep/discard against any metric
Analyze iteration results: trends, plateaus, regressions, recommendations
Scout codebase and auto-generate docs — or a navigable wiki knowledge base — with validation-fix loop