diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-01 17:08:36 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-01 17:08:36 -0500 |
| commit | 4eab7a048ca18eeef31e4f8d0823182fc6e2368f (patch) | |
| tree | a28bc1d5aa23f400c73083aa92cd80d45c93f53f /docs/issue-sort-order-spec.org | |
| parent | 55fa2ffe2527ab6a9d93da21b153b26bc803ffda (diff) | |
| download | pearl-4eab7a048ca18eeef31e4f8d0823182fc6e2368f.tar.gz pearl-4eab7a048ca18eeef31e4f8d0823182fc6e2368f.zip | |
docs: finalize local/Linear views spec for implementation
The spec is implementation-ready. It pins the design the earlier drafts left open, across the parts that turned out to need real contracts rather than prose.
Copy-down's reverse-compile is the load-bearing piece. A live probe verified that CustomView.filterData is readable but stored as Linear's and/or view-filter tree, not the IssueFilter shape Pearl's compiler emits, so the reverse-compile is a normalize-then-match: flatten the tree, unwrap single-branch or/and, read one-element in as a scalar, then match each conjunct to a Pearl authoring key. The per-dimension contract is explicit, including the cases where the compiled filter loses information: :state and :state-type stay distinct, :priority canonicalizes to the integer, :open t maps from the exact open-state nin while generic nin refuses, and a multi-value in on any singular key refuses rather than silently narrow the view. Anything outside the model refuses with a structured reason instead of producing a lossy local view.
The rest of the surface is settled too. A tracked local view runs the local filter, the source of truth, not its Linear mirror. Edit preserves all non-edited metadata through a dedicated writer. One account guard covers every read and mutate, with delete and publish refusing before any Linear call on a mismatch. Local and cross-store name collisions have a defined policy. Vocabulary is direct-renamed to filter / local view / Linear view, with intent-first publish and save-locally commands and no aliases. Agreed decisions, acceptance criteria, a phased plan, and the dispositions are recorded inline.
Diffstat (limited to 'docs/issue-sort-order-spec.org')
0 files changed, 0 insertions, 0 deletions
