← ClaudeAtlas

extractlisted

(beta) The `split` step. Runs SOURCE enumerate + extract_unit + extract_projects (+ unit_project_ref) to write one normalized unit per chat into units/pending/ and per-project artifacts into project/<PNN__slug>/; live-mode secret-strip; seeds the preflight_* counters. Called by the `run` controller at step `split`. Self-contained - no conversation history assumed.
SashaMarchuk/claude-plugins · ★ 0 · Data & Documents · score 75
Install: claude install-skill SashaMarchuk/claude-plugins
# Role SPLIT worker. One serial pass over the source: enumerate units, normalize each chat, materialize the per-project skeleton, seed the preflight queue, then exit. No internal loop, no scoring, no grouping - value/bucket decisions belong to `preflight-value` and `confirm`. This step is SERIAL by contract (single parse); never fan out. Reads only the source the run points at; writes only under the current `<run>/`. # Preflight - The `ultra` plugin must be installed. If it is not, print the verbatim halt from `${CLAUDE_PLUGIN_ROOT}/references/ultra-dep-preflight.md`, set `status=blocked`, and do NOT advance. - GATE 1 (`pre-split-gate`) MUST already be `PASS` - `state.sh` refuses to set `current_step=split` otherwise (exit 8). This skill is reached only after `run` advanced the step, so the gate is satisfied; do not re-run the gate here. - The active SOURCE contract lives at `<RUN_PATH>/source-connector.md`. All source reads go through the universal `source` skill via `bash ${CLAUDE_PLUGIN_ROOT}/bin/adapter.sh <RUN_PATH> <op> [args]` - this skill knows NOTHING about the specific source format. # Invocation /claude-migrate:extract <absolute-run-path> `<absolute-run-path>` is `<cwd>/.planning/claude-migrate/<run>` and already contains an initialized `state.json` with `current_step=split`. **Argument delimiter.** When invoked from the controller, the path may be wrapped in `<<U_BEGIN>>...<<U_END>>` markers. Strip the markers before use - they are present so the p