aboutsummaryrefslogtreecommitdiff
path: root/docs/local-and-linear-views-spec.org
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-06-01 17:53:53 -0500
committerCraig Jennings <c@cjennings.net>2026-06-01 17:53:53 -0500
commitad1e0b8c33f909814b69458eb34cc792f032e844 (patch)
tree0db98b0d5ef8f50eb71b132d2928f0583b270176 /docs/local-and-linear-views-spec.org
parent6206fde5acfd48f9eba2ab231c1fe1d32717c98e (diff)
downloadpearl-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.org8
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=).