diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-06 17:35:25 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-06 17:35:25 -0500 |
| commit | 0eafcf90e0f671c6e05e3fd5a3b7aad9bd42d4bc (patch) | |
| tree | 11bd7cfa617626ab02968c6f838568772eea7640 /docs/issue-conflict-handling-spec.org | |
| parent | d8f60b1f86732b12e419d483a091634c31eb66c6 (diff) | |
| download | pearl-0eafcf90e0f671c6e05e3fd5a3b7aad9bd42d4bc.tar.gz pearl-0eafcf90e0f671c6e05e3fd5a3b7aad9bd42d4bc.zip | |
fix(scripts): reconcile the seed against Linear's default columns
The first cut of the seed assumed an empty team and created all six columns. Run live, it died on "Cannot create a duplicate workflow state": teamCreate seeds Linear's own default columns and Linear dedups state names case-insensitively, so creating "backlog" collided with the default "Backlog". The additive model is wrong whenever the team already has states, which after teamCreate it always does.
The rewrite reconciles instead. It renames Linear's defaults into the six Agile columns, keeping Backlog / In Progress / Done / Canceled and repurposing the unstarted Todo as Triage Queue, and creates only the genuinely-new Icebox. It never archives, which sidesteps two limits I hit live: a team must keep an unstarted state (so Todo can't be removed, only repurposed), and the Duplicate state is reserved. Positions are set in a second update pass with distinct nonzero values, because Linear ignores a 0.0 position and appends a new state at a high one. Leftover columns the script doesn't claim (Duplicate) are reported, not touched.
The planner (reconcile_state_plan, leftover_state_names) is pure and unit-tested, including the case-insensitive match that recovers a half-seeded board. The client and seed() get fake-transport tests. 13 tests, and the dry-run ran live against the seeded workspace and came back all-update, no-create, so the model matches what Linear does. The personal key stays in the gitignored apikey.txt.
Diffstat (limited to 'docs/issue-conflict-handling-spec.org')
0 files changed, 0 insertions, 0 deletions
