From 8bd689aca28bee00bd71e1e7a3149e803fe1049a Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 25 May 2026 07:33:28 -0500 Subject: docs: record the WorkflowState.position verification in the TODO-keywords spec I ran the live check the spec named as its one prerequisite: WorkflowState.position exists and returns a float (Dev Review 947.14, In Progress 2, Planning 0), so the per-team position ordering works as designed and the no-position fallback is unnecessary. Recorded it in the status and prerequisites and folded in the round-5 review (the only finding was that status/rubric hygiene). The spec is now cleanly READY with no open prerequisites. --- docs/todo-keywords-from-workflow-states-spec.org | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'docs/todo-keywords-from-workflow-states-spec.org') diff --git a/docs/todo-keywords-from-workflow-states-spec.org b/docs/todo-keywords-from-workflow-states-spec.org index fc0a51c..45cbc9c 100644 --- a/docs/todo-keywords-from-workflow-states-spec.org +++ b/docs/todo-keywords-from-workflow-states-spec.org @@ -5,7 +5,7 @@ * Status -READY — implementation-ready, awaiting Craig's final go. Reviews incorporated (2026-05-24, rounds 1–4); round 4 returned a Ready verdict with no blocking findings. Implements the =todo.org= task "Derive the org TODO keywords from the Linear workflow states". One implementation prerequisite remains (verify =WorkflowState.position=; see prerequisites). +READY — implementation-ready, awaiting Craig's final go. Reviews incorporated (2026-05-24, rounds 1–4; 2026-05-25, round 5). Implements the =todo.org= task "Derive the org TODO keywords from the Linear workflow states". The one remaining prerequisite is now resolved: =WorkflowState.position= was verified against the live API (2026-05-25) — it exists and returns a float (e.g. 947.14), so the per-team =position= ordering works as designed and the no-position fallback is not needed. * Problem @@ -136,7 +136,7 @@ None of these fail silently: an unknown heading keyword on sync-back (=user-erro * Implementation prerequisites -- *Verify =WorkflowState.position=* against the current Linear schema or a live query before implementation. Issue queries fetch state =type= today but not workflow-state =position=. If =position= is unavailable, fall back to the order the API returns states in (still deterministic per fetch) and note it. +- *=WorkflowState.position= — VERIFIED (2026-05-25).* A live =workflowStates { nodes { name type position } }= query returned a float =position= per state (e.g. Dev Review 947.14, In Progress 2, Planning 0), so the per-team ordering works as designed. The no-position fallback is therefore unnecessary; phase 2 can add =position= to the team-states query without an open API question. (Issue queries still fetch only =type=, not =position= — only =pearl--team-states= gains it.) - Confirm the Linear state =type= enum is =triage/backlog/unstarted/started/completed/canceled/duplicate= (already verified in =docs/issue-query-spec.org=). - Only =pearl--team-states= gains the =type=/=position= fields. =pearl-get-states-async= / =pearl-get-states= (used by creation flows) fetch =id name color= and are intentionally left unchanged — this feature doesn't depend on them. The two query shapes diverging is acceptable for v1; aligning them is optional follow-up cleanup. @@ -179,6 +179,10 @@ Removing =pearl-state-to-todo-mapping= is a breaking change for anyone who set i Only modified or rejected recommendations, and decisions worth recording, are listed; everything else from the reviews (2026-05-24, rounds 1–4) was accepted as written and woven into the body above. +** Round 5 (2026-05-25) + +Rubric =Ready with caveats=; the only finding (MP1) was status/rubric hygiene — the spec said READY while still naming the =WorkflowState.position= prerequisite. Resolved the right way: ran the live check (=position= exists, returns a float), recorded it in Status and Implementation prerequisites, and dropped the no-position fallback as unneeded. No spec-design changes. Rubric -> READY. + ** Round 4 (2026-05-24) Ready verdict — no blocking findings. The round-3 classification blocker is confirmed resolved (=:LINEAR-STATE-TYPE:= drawer + legacy fallback). The sole caveat, verifying =WorkflowState.position=, was already recorded as an implementation prerequisite. Tidied the one org-lint nit (a literal double-star =DEV-REVIEW= example in the test plan) the reviewer flagged as harmless. -- cgit v1.2.3