aboutsummaryrefslogtreecommitdiff
path: root/docs/issue-representation-spec.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-06 17:11:06 -0500
committerCraig Jennings <c@cjennings.net>2026-06-06 17:11:06 -0500
commitd8f60b1f86732b12e419d483a091634c31eb66c6 (patch)
tree2d52f6675ccf775674d4a988e17246ceac999741 /docs/issue-representation-spec.org
parent7fb4cf298a4e27813ce1137acf83f5cc52fba3be (diff)
downloadpearl-d8f60b1f86732b12e419d483a091634c31eb66c6.tar.gz
pearl-d8f60b1f86732b12e419d483a091634c31eb66c6.zip
feat(scripts): add a Linear workspace seed script
scripts/seed_pearl_workspace.py stands up the Pearl dogfooding conventions in a Linear workspace: a "Pearl" team whose columns are the six Agile states (icebox, triage queue, backlog, in-progress, done, cancelled), a "Pearl" project, and three Custom Views (Pearl Open Issues, Pearl Icebox, Pearl Inbox). It's idempotent: it snapshots the workspace, plans only what's missing by name, and re-running creates nothing. Reusable for us and for end-users standing up the same setup. The six columns are typed so pearl's own grouped view reproduces the board order. icebox, triage queue, and backlog are all the backlog Linear type with ascending positions, so pearl's (state-type, position) ordering lays them out in sequence. The rest take the started, completed, and canceled types. Two limits the Linear API forced, both verified by schema introspection first. CustomViewCreateInput has no grouping field, so Pearl Open Issues is created with its filter and grouped by category later, in pearl (pearl-set-grouping) or the Linear UI. And teamCreate seeds its own default columns, so the script adds the six and reports the leftovers to tidy in the UI rather than auto-archiving, since a team's default state can't always be archived safely. The logic splits into a pure planner and a thin GraphQL client. The planner is unit-tested without mocks, the client and orchestration through a fake transport. 14 tests cover the targets, planning, idempotence, and the leftover report, and the snapshot queries ran live against a real workspace. The personal API key stays in a gitignored apikey.txt, never in the repo.
Diffstat (limited to 'docs/issue-representation-spec.org')
0 files changed, 0 insertions, 0 deletions