skills/workflow-legacy-research-split/SKILL.md
--- name: workflow-legacy-research-split user-invocable: false allowed-tools: Bash(node .claude/skills/workflow-legacy-research-split/scripts/detect.cjs), Bash(node .claude/skills/workflow-legacy-research-split/scripts/validate.cjs), Bash(node .claude/skills/workflow-legacy-research-split/scripts/apply.cjs), Bash(node .claude/skills/workflow-manifest/scripts/manifest.cjs), Bash(mkdir -p .workflows/.cache/), Bash(mv .workflows/.cache/), Bash(rm .workflows/.cache/), Bash(rm -rf .workflows/.cache/)
npx skillsauth add leeovery/claude-technical-workflows workflow-legacy-research-splitInstall 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 curator + interviewer. Walk the user through decomposing broad research files — each holding multiple themes — into topic-scoped files plus matching discovery-map items.
workflow-continue-epic Step 5.Follow these steps EXACTLY as written. Do not skip steps or combine them.
CRITICAL: This guidance is mandatory.
**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:
●───────────────────────────────────────────────●
Legacy Research Split
●───────────────────────────────────────────────●
Output the next fenced block as markdown (not a code block):
> This epic pre-dates the discovery phase. Migration-seeded broad
> research files are decomposed here into topic-scoped themes,
> user-guided per source.
Output the next fenced block as a code block:
── List Qualifying Sources ──────────────────────
Initialise applied_count = 0, abandoned_count = 0, errored_count = 0.
node .claude/skills/workflow-legacy-research-split/scripts/detect.cjs {work_unit}
Parse qualifying_sources from the JSON output.
qualifying_sources is empty→ Proceed to Step 3.
Set remaining = qualifying_sources (an ordered queue). Display the list.
Output the next fenced block as a code block:
Qualifying source files (in-progress, migration-seeded):
@foreach(name in qualifying_sources)
• {name}.md
@endforeach
→ Proceed to Step 2.
Output the next fenced block as a code block:
── Session Loop ─────────────────────────────────
Output the next fenced block as markdown (not a code block):
> Iterating each qualifying source. Each iteration: identify
> themes, draft cache files, propose, edit-loop, apply.
Load dialog.md and follow its instructions as written. dialog.md drives the per-source iteration until remaining is empty, updating counters on each outcome.
→ Proceed to Step 3.
Output the next fenced block as a code block:
── Legacy Split Complete ────────────────────────
Evaluate the branches below in order — error reporting takes precedence over clean outcomes.
errored_count > 0Output the next fenced block as markdown (not a code block):
> {errored_count} source file(s) aborted mid-apply; {applied_count}
> decomposed; {abandoned_count} skipped. See "Recovery from
> Interrupted Apply" below to clear stuck sentinels before you
> reopen the epic via /workflow-start.
→ Return to caller.
applied_count == 0 and abandoned_count == 0Output the next fenced block as markdown (not a code block):
> No legacy source files needed decomposition.
→ Return to caller.
applied_count > 0 and abandoned_count == 0Output the next fenced block as markdown (not a code block):
> Legacy broad research files decomposed. The discovery map now
> reflects topic-scoped items.
→ Return to caller.
applied_count > 0 and abandoned_count > 0Output the next fenced block as markdown (not a code block):
> {applied_count} source file(s) decomposed; {abandoned_count}
> skipped. Skipped files remain on the map and can be revisited
> next time you open the epic via /workflow-start.
→ Return to caller.
applied_count == 0 and abandoned_count > 0Output the next fenced block as markdown (not a code block):
> No source files decomposed — every qualifying file was skipped.
> They remain on the map and can be revisited next time you open
> the epic via /workflow-start.
→ Return to caller.
If apply.cjs returns ok: false, the response's recovery_hint names the manual cleanup the failing stage requires. Common cleanups:
node .claude/skills/workflow-manifest/scripts/manifest.cjs delete {work_unit}.discovery.{stuck_source} legacy_split_state
rm -rf .workflows/.cache/{work_unit}/legacy-split/{stuck_source}
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