# Unit Planner

> Instantiate or update a workspace `UNITS.csv` from a selected pipeline and units template (deps/checkpoints/acceptance).

- Skill: `willoscar/unit-planner` (Agent Skill)
- Install (CLI): `npx skillmds add willoscar/unit-planner`
- Raw SKILL.md: https://api.skillmd.com/api/skills/willoscar/unit-planner/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- Author: WILLOSCAR (https://skillmd.com/u/willoscar)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/willoscar/unit-planner

---


# Skill: unit-planner

## Triggers & routing

- **Trigger**: unit planner, generate UNITS.csv, execution contract, units template, 生成工作单元.
- **Use when**: 初始化/更新执行合同：从 pipeline 选择生成 `UNITS.csv`，或 scope 扩展需要新增 units/依赖。
- **Skip if**: `UNITS.csv` 已正确反映当前 scope（无需重写）。
- **Network**: none.
- **Guardrail**: 保持 CSV 合法；scope 增长时新增 units；只在满足验收后标 `DONE`。


## Goal

- Turn a pipeline (`pipelines/*.pipeline.md`) into a concrete `UNITS.csv` contract for a specific workspace.

## Inputs

- `PIPELINE.lock.md` (preferred) or a chosen `pipelines/*.pipeline.md`
- `templates/UNITS.*.csv` referenced by the pipeline front matter
- Existing workspace artifacts (to adjust scope if needed)

## Outputs

- `UNITS.csv` (in the workspace root)
- Optional: `STATUS.md` updated with next runnable units

## Procedure (MUST FOLLOW)
Uses: `templates/UNITS.*.csv`.


1. Read `PIPELINE.lock.md` (or ask to create it via `pipeline-router`).
2. Copy the pipeline’s `units_template` into the workspace as `UNITS.csv` if missing.
3. If `UNITS.csv` exists, only edit it to reflect:
   - new scope (add rows)
   - corrected dependencies
   - clarified acceptance criteria
4. Ensure every unit has: `unit_id`, `skill`, `outputs`, `acceptance`, `checkpoint`, `status`, `owner`.
5. Keep checkpoints consistent with `CHECKPOINTS.md`; add missing checkpoints if the pipeline uses custom checkpoints.

## Acceptance criteria (MUST CHECK)

- [ ] `UNITS.csv` parses as CSV and includes all required columns.
- [ ] Every `depends_on` references an existing `U###`.

## Side effects

- Allowed: edit `UNITS.csv`, `STATUS.md`, `CHECKPOINTS.md` (for adding custom checkpoints).
- Not allowed: change pipeline files in `pipelines/` unless requested.

## Troubleshooting

### Issue: `PIPELINE.lock.md` is missing

**Fix**:
- Run `pipeline-router` (Mode A) or `uv run python scripts/pipeline.py kickoff|init` to create `PIPELINE.lock.md` before generating units.

### Issue: `UNITS.csv` becomes invalid CSV after edits

**Fix**:
- Keep semicolon-delimited `inputs/outputs` and avoid unescaped commas inside fields; validate with `uv run python scripts/validate_repo.py`.

