diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-01 17:53:53 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-01 17:53:53 -0500 |
| commit | ad1e0b8c33f909814b69458eb34cc792f032e844 (patch) | |
| tree | 0db98b0d5ef8f50eb71b132d2928f0583b270176 /docs/local-and-linear-views-spec.org | |
| parent | 6206fde5acfd48f9eba2ab231c1fe1d32717c98e (diff) | |
| download | pearl-ad1e0b8c33f909814b69458eb34cc792f032e844.tar.gz pearl-ad1e0b8c33f909814b69458eb34cc792f032e844.zip | |
feat(views): reshape the keymap and transient around the view noun
I put the view operations under the verb a user would reach for. Create, edit, and delete local views are c v, e v, and k v. The fetch group gains run-local-view at f l and keeps run-linear-view at f v, with publish at f u and save-locally reserved at f d. Since f p already runs issues by project, publish and save-locally take u and d, which read as up and down and mirror the copy-up and copy-down lifecycle.
The transient now has a Views column grouping create, edit, run-local, run-linear, publish, and delete, separate from the source-fetching commands. I updated the spec's keymap to the implemented letters so the two stay in sync.
Phase 3 of the views spec. Keymap tests assert the new bindings. Suite, compile, and lint are green.
Diffstat (limited to 'docs/local-and-linear-views-spec.org')
| -rw-r--r-- | docs/local-and-linear-views-spec.org | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/docs/local-and-linear-views-spec.org b/docs/local-and-linear-views-spec.org index 721908f..4ff9035 100644 --- a/docs/local-and-linear-views-spec.org +++ b/docs/local-and-linear-views-spec.org @@ -140,9 +140,11 @@ The =view= noun is reachable under the verb a user would look for. The view-move | =C-; L f s= | =pearl-pick-source= (run any view) | | =C-; L f l= | =pearl-run-local-view= | | =C-; L f v= | =pearl-run-linear-view= | -| =C-; L f p= | =pearl-publish-local-view= (copy up) | +| =C-; L f u= | =pearl-publish-local-view= (copy up; =u= = up) | | =C-; L f P= | =pearl-publish-current-view= | -| =C-; L f d= | =pearl-save-linear-view-locally= (copy down) | +| =C-; L f d= | =pearl-save-linear-view-locally= (copy down; =d= = down) | + +(=f p= stays "by project", so publish/save-locally take =u=/=d= = up/down, which also reads as the copy-up/copy-down lifecycle. The transient groups the view commands under a "Views" column.) The old =q= (saved query) bindings are removed outright in the same change, not deprecated — there are no users to ease through a transition, and Craig's own config is updated alongside the rename. @@ -291,7 +293,7 @@ All settled with Craig on 2026-06-01, across the first open-question pass and th 4. *Intent-first command names.* Copy-up's command is =pearl-publish-local-view= (publish is the discoverable word, not "copy to Linear"). Copy-down's command is =pearl-save-linear-view-locally=. "Copy up / copy down" stays as lifecycle prose only. 5. *Unified runner stays =pearl-pick-source=* — it runs favorites, local views, by-dimension filters, and browser-only favorites, so "source" is accurate and it's the word =issue-sources-spec= already established. Not renamed to a view-only word. 6. *Ad-hoc builder* — =pearl-list-issues-filtered= keeps its inline save offer, reworded to "save this local view?". A dedicated =pearl-create-local-view= is the other door. -7. *Keymap* — view-movement commands (run / publish / save-locally) sit in the fetch group (=f l= / =f v= / =f p= / =f d=); create/edit/delete under =c v= / =e v= / =k v=. The copy prefix =C-; L y= keeps its clipboard meaning only. +7. *Keymap* — view-movement commands (run / publish / save-locally) sit in the fetch group (=f l= run local, =f v= run Linear, =f u= publish, =f d= save-locally; =f p= stays "by project"); create/edit/delete under =c v= / =e v= / =k v=. The copy prefix =C-; L y= keeps its clipboard meaning only. 8. *Copy-down representability* — refuse with a structured, named reason; never a lossy or opaque copy. 9. *Copy-down tracking* — fork: no =:linear-view-id=, only optional =:copied-from-view-id= provenance. 10. *Edit semantics* — pre-seeded builder re-run that preserves all non-edited metadata (via =pearl--save-local-view=). |
