skills/workflow-research-entry/SKILL.md
--- name: workflow-research-entry user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs) --- Act as **precise intake coordinator**. Follow each step literally without interpretation. Do not engage with the subject matter — your role is preparation, not processing. > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file explicitly specifies display content. No "proceeding with...", no discovery su
npx skillsauth add leeovery/claude-technical-workflows workflow-research-entryInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Act as precise intake coordinator. Follow each step literally without interpretation. Do not engage with the subject matter — your role is preparation, not processing.
⚠️ ZERO OUTPUT RULE: Do not narrate your processing. Produce no output until a step or reference file explicitly specifies display content. No "proceeding with...", no discovery summaries, no routing decisions, no transition text. Your first output must be content explicitly called for by the instructions.
You are in the Research phase — exploring ideas, feasibility, market, and viability. Where Research sits in the pipeline depends on the work type:
| Work type | Pipeline | |---|---| | Epic | Discovery → Research → Discussion → Specification → Planning → Implementation → Review | | Feature | Research (optional) → Discussion → Specification → Planning → Implementation → Review | | Cross-cutting | Research (optional) → Discussion → Specification (terminal) |
Stay in your lane: Explore freely. This is the time for broad thinking, feasibility checks, and learning. Surface options and tradeoffs — don't make decisions. When a topic converges toward a conclusion, that's a signal it's ready for discussion phase, not a cue to start deciding. Park it and move on.
Follow these steps EXACTLY as written. Do not skip steps or combine them. Present output using the EXACT format shown in examples - do not simplify or alter the formatting.
CRITICAL: This guidance is mandatory.
*_gate_mode: auto value in the manifest, set by the user's explicit a/auto choice at a prior gate.**STOP.** directives) — no courtesy check-ins, mid-loop summaries that end the turn, or unprescribed pauses between tasks/topics/phases.Output the next fenced block as a code block:
── Parse Arguments ──────────────────────────────
Output the next fenced block as markdown (not a code block):
> Reading the handoff context and determining which
> research topic to work with.
Arguments: work_type = $0, work_unit = $1, topic = $2 (optional).
Resolve topic: topic = $2, or if not provided and work_type is not epic, topic = $1.
Store work_unit for the handoff.
Resolve filename:
topic resolvedresolved_filename = {topic}.md
→ Proceed to Step 2.
topicOutput the next fenced block as a code block:
What topic would you like to research?
STOP. Wait for user response.
Kebab-case the response, store as {topic}. resolved_filename = {topic}.md.
Silently derive direct_entry_summary (one-line) and direct_entry_description (one or two paragraphs) from the user's response. Do not render anything — these are local variables passed to ensure-discovery-item in Step 2. The derivation is part of the same Claude turn that kebab-cases the response; no separate STOP gate.
→ Proceed to Step 2.
Output the next fenced block as a code block:
── Check Phase Entry ────────────────────────────
Output the next fenced block as markdown (not a code block):
> Checking if research already exists for this topic.
Load ensure-discovery-item.md with work_type = {work_type}, work_unit = {work_unit}, topic = {topic}, routing = research. On the direct-entry path (no topic supplied as $2), also pass summary = {direct_entry_summary}, description = {direct_entry_description}. When the topic was provided by the caller, omit both — the caller didn't derive them.
Check if the research phase entry exists:
node .claude/skills/workflow-manifest/scripts/manifest.cjs exists {work_unit}.research.{topic}
true)→ Proceed to Step 3.
false)→ Proceed to Step 4.
Output the next fenced block as a code block:
── Validate Phase ───────────────────────────────
Output the next fenced block as markdown (not a code block):
> Checking the status of this research — in progress
> or completed.
Load validate-phase.md and follow its instructions as written.
→ Proceed to Step 5.
Output the next fenced block as a code block:
── Gather Context ───────────────────────────────
Output the next fenced block as markdown (not a code block):
> Collecting initial context to seed the research session.
work_type is not epicSingle-phase work (feature, cross-cutting) shaped in discovery. The carrier has two halves — read both. First the manifest description:
node .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit} description
Then the discovery session log. Single-phase work has exactly one, at a fixed path — it has no resumable loop to create others. Read .workflows/{work_unit}/discovery/session-001.md. A legacy work unit may have no log, or a placeholder log whose Exploration is absent or (none).
If the log's Exploration section has content (not absent or (none)):
Seed the research session from the description and that Exploration. Do not re-ask; live conversation context, when present, supplements the carrier.
→ Proceed to Step 5.
Otherwise:
No usable carrier — the log is missing or has no Exploration. Gather context.
Load gather-context.md and follow its instructions as written.
→ Proceed to Step 5.
work_type is epicThe map item's source says whether the topic was shaped on the discovery map or started fresh from this entry. Read it:
node .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.discovery.{topic} source
If source is exactly direct-start:
The topic was started fresh, not shaped on the map — there is no curated carrier to seed from.
Load gather-context.md and follow its instructions as written.
→ Proceed to Step 5.
Otherwise:
The topic was shaped on the discovery map — its seed lives on the map item. Read the description and seed the research session from it:
node .claude/skills/workflow-manifest/scripts/manifest.cjs get {work_unit}.discovery.{topic} description
Do not re-ask; live conversation context, when present, supplements the carrier.
→ Proceed to Step 5.
Output the next fenced block as a code block:
── Invoke Research ──────────────────────────────
Output the next fenced block as markdown (not a code block):
> Handing off to the research process with all
> gathered context.
Load invoke-skill.md and follow its instructions as written.
tools
--- name: workflow-discovery user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-discovery/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs), Bash(git status), Bash(git add), Bash(git commit), Bash(cp), Bash(mkdir -p .workflows/), Bash(mv .workflows/.inbox/) --- # Discovery The universal first phase. Shape the work the user is bringing — confirm what kind of work it is,
tools
--- name: workflow-continue-quickfix user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-continue-quickfix/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs) --- Continue an in-progress quick-fix. Determines current phase and routes to the appropriate phase skill. > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file
tools
--- name: workflow-continue-feature user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-continue-feature/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs) --- Continue an in-progress feature. Determines current phase and routes to the appropriate phase skill. > **⚠️ ZERO OUTPUT RULE**: Do not narrate your processing. Produce no output until a step or reference file expl
tools
--- name: workflow-continue-epic user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-continue-epic/scripts/discovery.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(node .claude/skills/workflow-knowledge/scripts/knowledge.cjs), Bash(node .claude/skills/workflow-legacy-research-split/scripts/detect.cjs), Bash(node .claude/skills/workflow-discovery/scripts/discovery.cjs) --- Continue an in-progress epic. Shows full phase-by-phase state and routes to