Install
$ agentstack add skill-aberson-claude-skills-research-prospect ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
About
research-prospect
Scan each active project for research gaps and produce a ready-to-run /deep-research menu, grouped by project.
When to use
- You want high-token tasks to distribute across multiple windows.
- You want to understand what research would most improve each project before starting a deep-work session.
- You need a menu of specific, grounded research questions rather than a brainstorm.
When NOT to use
- You already know the topic — skip straight to
/deep-research "". - You want a deep investigation of one specific project — ask for that directly instead.
- MEMORY.md "Active projects" is known to be stale — run
/session-wrapfirst to update it.
Arguments
| Arg | Required | Default | Description | |---|---|---|---| | --projects | no | all active projects from MEMORY.md | Comma-separated project names or directory paths. Example: --projects Alpha4Gate,toybox | | --session-wrap | no | off | After rendering the menu, invoke /session-wrap with all topics listed as next-step options. |
Steps
Step 1: Resolve project list
If --projects was provided: parse it as a comma-separated list. Each item is either a project name (look up under //) or an absolute path.
If --projects was not provided: read MEMORY.md from ~/.claude/projects//memory/MEMORY.md. Locate the "Active projects" section. Extract every project name listed there. For each, derive its directory: check // (case-insensitive). Capture the one-line MEMORY.md entry for each project — this feeds the agent as background context.
Warn and skip any project whose directory cannot be resolved. Do not halt.
Emit one line before Step 2: Scanning N projects: .
Step 2: Fan out parallel Explore agents
Dispatch all agents in a single parallel message — one Explore agent per project. Do not wait for one to finish before dispatching others. Parallel dispatch is the primary throughput gain of this skill; sequential dispatch is a defect.
Each agent receives the following prompt (fill in the bracketed fields):
Investigate at to identify 2-3 specific /deep-research topics that would meaningfully improve the project.
Background from workspace memory:
Read in this order (stop when you have enough context):
1. /CLAUDE.md — stack, commands, known gotchas
2. /documentation/master_plan.md or plan.md — current phase/step status
3. git -C "" log --oneline -15 — recent work
4. Any open investigation docs under /documentation/investigations/
Focus on: algorithmic gaps, known plateaus, open architectural questions, techniques the plan defers to "future phases", quality or accuracy limitations surfaced in UAT, or infrastructure decisions where research would inform a go/no-go gate.
Return ONLY a JSON object (no prose before or after it):
{
"project": "",
"current_state": "",
"research_topics": [
{
"title": "",
"why": "",
"depth": "high|medium"
}
]
}
Rules:
- 2 topics minimum, 3 maximum.
- Titles must work as /deep-research arguments: specific, concrete, not generic phrases like "improve performance" or "better algorithms."
- "why" must cite something observed in the code, plan doc, or git log — not general best-practices reasoning.
- If the directory does not exist or has no readable files, return: {"project": "", "error": "directory not found or empty"}.
Collect all results. Projects that return "error" are logged under a Skipped line in the output but do not halt rendering.
Step 3: Render the menu
For each project with valid results, render a group:
## —
X1: /deep-research ""
Why:
X2: /deep-research ""
Why:
X3: /deep-research "" (if present)
Why:
Where X is a single-letter prefix: first letter of the first word of the project name, uppercased. If two projects share the same letter, use a two-letter prefix for the second (e.g., VO for void_furnace if VF was already used).
After all groups, emit a flat "QUICK COPY" block:
--- QUICK COPY (one per window) ---
/deep-research ""
/deep-research ""
...
The quick-copy block is mandatory regardless of topic count — it lets the user grab a single line per window without stripping the "Why" annotations.
Step 4 (only if --session-wrap flag passed)
Immediately invoke /session-wrap after Step 3 output. Pass the full topic list (all /deep-research "..." invocations, grouped by project) as the next-step options argument. One-sentence transition max before the skill call — do not emit verdict prose summarizing what was found.
Output format
- Target: 20–70 lines for the full menu.
- Do not truncate topics to hit a word count. Accuracy over brevity.
- The QUICK COPY block always appears at the end, even if only one project was scanned.
Constraints
- Parallel dispatch required. All Explore agents in one message. Sequential dispatch is a defect.
- JSON only from agents. Agents returning prose instead of JSON are treated as parse failures. Log the project as skipped with a note; do not try to extract topics from prose.
- "why" must be grounded. If an agent's "why" reads as generic best-practice advice with no codebase anchor, mark it
(unverified — no specific gap cited)rather than presenting it as a confirmed finding. - Title phrasing discipline. Reject titles that are generic. A usable title names the technique, the constraint, and the domain: "SPRT early-stopping thresholds for small-n win-rate gates in game-playing bot evolution" not "statistical testing for bot evaluation."
- No invented projects. Only scan projects listed in MEMORY.md or explicitly named via
--projects.
Limitations
- MEMORY.md must be current. Projects not listed under "Active projects" are invisible to this skill unless named via
--projects. If MEMORY.md is stale, run/session-wrapfirst. - Explore agents read excerpts, not whole files. On large plan.md files (>2000 lines), agents see early sections first. Open investigations buried deep in the plan may be missed. Use
--projectswith a more focused prompt if a specific project needs deeper coverage. - Directory name must match MEMORY.md entry exactly. If a project is listed as
b2_project_goblinbut the directory isgoblin/, resolution will fail. Fix MEMORY.md or use--projects /goblin. - Agent JSON format is best-effort. Explore agents are not constrained-output models. If an agent returns valid JSON with the right keys, use it. If it returns close-enough JSON (minor key differences), parse it gracefully. Only escalate to "skipped" if the output is unparseable.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: aberson
- Source: aberson/claude-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.