| name | researcher |
| description | Generates or refreshes research artifacts and RLM evidence for a ticket. Use when research stage should produce or update canonical RLM outputs. Do not use when the request is initial ticket bootstrap in `idea-new` or implementation planning in `plan-new`. |
| argument-hint | $1 [note...] [--paths path1,path2] [--keywords kw1,kw2] [--note text] |
| lang | en |
| prompt_version | 1.2.35 |
| source_version | 1.2.35 |
| allowed-tools | ["Read","Edit","Write","Glob","Bash(rg *)","Bash(sed *)","Bash(python3 ${CLAUDE_PLUGIN_ROOT}/skills/researcher/runtime/research.py *)","Bash(python3 ${CLAUDE_PLUGIN_ROOT}/skills/aidd-flow-state/runtime/set_active_feature.py *)","Bash(python3 ${CLAUDE_PLUGIN_ROOT}/skills/aidd-flow-state/runtime/set_active_stage.py *)","Bash(python3 ${CLAUDE_PLUGIN_ROOT}/skills/aidd-flow-state/runtime/tasks_derive.py *)"] |
| model | inherit |
| disable-model-invocation | true |
| user-invocable | true |
Follow feature-dev-aidd:aidd-core.
Steps
- Set active feature and stage
research.
- Run
python3 ${CLAUDE_PLUGIN_ROOT}/skills/researcher/runtime/research.py --ticket <ticket> --auto.
- Re-run the same entrypoint with optional overrides (
--paths, --keywords, --note) when targeted refresh is needed.
- Validate RLM outputs (
*-rlm-targets.json, *-rlm-manifest.json, *-rlm.worklist.pack.json, optional *-rlm.pack.json).
- Run subagent
feature-dev-aidd:researcher. First action: read RLM pack/worklist.
- In
--auto mode run bounded canonical finalize recovery once (rlm_finalize --bootstrap-if-missing) from stage runtime.
- If RLM is still pending after auto recovery, return deterministic pending reason + explicit next action (
python3 ${CLAUDE_PLUGIN_ROOT}/skills/aidd-rlm/runtime/rlm_finalize.py --ticket <ticket>) and append research handoff via python3 ${CLAUDE_PLUGIN_ROOT}/skills/aidd-flow-state/runtime/tasks_derive.py --source research --append.
- Ready path: return
/feature-dev-aidd:plan-new <ticket> only when RLM readiness is ready and the research document is synchronized with the current evidence.
- Pending or blocked path: if readiness is not
ready, return the deterministic blocker or pending output instead of guessing a downstream handoff.
- Runtime-path safety: execute only canonical runtime commands from this contract (
python3 ${CLAUDE_PLUGIN_ROOT}/skills/.../runtime/...).
- Root-relative
/skills/... runtime paths are forbidden; use only ${CLAUDE_PLUGIN_ROOT}/skills/.../runtime/....
Command contracts
python3 ${CLAUDE_PLUGIN_ROOT}/skills/researcher/runtime/research.py
- When to run: always as canonical researcher pipeline entrypoint.
- Inputs:
--ticket <ticket> with optional path/keyword/note overrides.
- Outputs: research artifacts, stage status, and RLM readiness/handoff markers (
rlm_status, rlm_pack_status).
- Failure mode: non-zero exit when required inputs/artifacts are missing or RLM artifact generation fails.
- Next action: fix missing inputs/paths, rerun this entrypoint; in auto mode finalize/bridge runs once, then pending outcomes include deterministic
reason_code + next_action.
Notes
- Planning stage:
AIDD:ACTIONS_LOG: n/a.
Migration policy
- Legacy pre-RLM research context/targets artifacts are ignored by runtime/gates.
- For old workspace state, rerun:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/researcher/runtime/research.py --ticket <ticket> --auto.
- If
rlm_status remains pending after bounded auto recovery, hand off to shared owner:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/aidd-rlm/runtime/rlm_finalize.py --ticket <ticket>.
Additional resources
- Research template source: templates/research.template.md (when: drafting or reviewing
aidd/docs/research/<ticket>.md; why: keep artifact shape aligned with canonical workspace template).
- Shared RLM owner skill: ../aidd-rlm/SKILL.md (when:
rlm_status is not ready or RLM pack is missing; why: run canonical shared RLM API outside stage-local orchestration).