SPEC: record post-launch roadmap (v0.2.0 repeating todos, v0.3.0 kanban, v0.4.0 drag-and-drop)
This commit is contained in:
parent
3b9e799e86
commit
5d1173c78e
37
SPEC.md
37
SPEC.md
@ -177,4 +177,39 @@ Upstream is a single synchronous markdown-it content script with no data API acc
|
|||||||
|
|
||||||
## 8. Licensing & Attribution
|
## 8. Licensing & Attribution
|
||||||
|
|
||||||
Upstream is MIT (© Franco Speziali / WeMakeMachines). The fork retains the MIT license, preserves the original copyright notice, and credits upstream in the README per standard practice.
|
Upstream is MIT (© Franco Speziali / WeMakeMachines). The fork retains the MIT license, preserves the original copyright notice, and credits upstream in the README per standard practice.
|
||||||
|
---
|
||||||
|
|
||||||
|
## 9. Roadmap (post-1.0 / post-launch)
|
||||||
|
|
||||||
|
Recorded direction, not commitments. Each gets a focused design pass before work begins; real-world use of the shipped plugin may reorder this.
|
||||||
|
|
||||||
|
### v0.2.0 — Repeating to-dos (visualisation) + configurable strip horizon
|
||||||
|
|
||||||
|
Recurrence itself is delegated to an existing community plugin (open-environment approach; we don't reimplement it). Candidates evaluated: BeatLink's original *Repeating To-Dos* (unmaintained), the *[Revived]* fork (maintained, GitHub issues only), and *Repeating To-dos v2* by TheScriptingGuy (`com.github.TheScriptingGuy.joplin-plugin-repeating-todos`, best-documented). All share the same mechanic: on completion the to-do's alarm date is reset to the next occurrence and the to-do is unmarked — so at any moment a recurring to-do is a **single** to-do at its next due date, with the recurrence rule stored in the note body.
|
||||||
|
|
||||||
|
- **Option A (chosen for 0.2.0):** detect the recurrence marker in the body and tag those events with a ↻ glyph. No series projection — the to-do shows at its next due date like any dated to-do. Minimal, robust, no hard coupling to another plugin's body format.
|
||||||
|
- **Option B (in pocket):** parse the recurrence rule and project all future occurrences across the visible window. Deferred because the body format has proven to be a moving target across forks; promote to a 0.2.x only if Option A's single-occurrence view proves insufficient, and target a specific fork's format at that time.
|
||||||
|
- **README:** recommend the maintained fork (v2 first, Revived as fallback); warn about the known "recurrence block injected into all notes" failure mode; note coexistence (their plugin moves the anchor, ours draws the marker).
|
||||||
|
|
||||||
|
**Configurable strip horizon.** `day`/`week`/`month` strip views currently span first-event to last-event (plus today). Add a horizon option to `gtd-calendar` (working name `weeks:` or `horizon:`, default ~8 weeks forward) controlling how far ahead the strip extends — relevant both generally and for how many future occurrences Option B would draw. **`month-grid` is explicitly excluded**: it always shows the entire current calendar month, by design, and that is not configurable.
|
||||||
|
|
||||||
|
*Note: multiple `gtd-calendar` blocks in one note already work as of 0.1.0 (each fence renders independently) — e.g. a "week ahead" strip plus a "month grid" in a single dashboard note. No work required; document as a recommended pattern.*
|
||||||
|
|
||||||
|
### v0.3.0 — Kanban beneath the calendar (read-only)
|
||||||
|
|
||||||
|
- **To-dos only** (notes excluded).
|
||||||
|
- **Three columns, tag-driven:** an `in-progress` tag → *In Progress*; `todo_completed > 0` → *Done*; neither → *Backlog*.
|
||||||
|
- Same architecture as the calendar: plugin queries to-dos + tags, buckets them, webview renders columns, chips drill down to notes.
|
||||||
|
- Read-only: reflects state, does not change it. Cheap way to prove the columns and bucketing before adding write-back.
|
||||||
|
|
||||||
|
### v0.4.0 — Drag-and-drop kanban (write-back)
|
||||||
|
|
||||||
|
The first feature that makes the plugin a **controller** of data rather than a viewer — warrants its own design pass.
|
||||||
|
|
||||||
|
- Dragging a card writes back to Joplin via the existing webview→plugin channel:
|
||||||
|
- → *In Progress*: add the `in-progress` tag (create the tag if absent; resolve its id; associate).
|
||||||
|
- → *Done*: set `todo_completed`.
|
||||||
|
- → *Backlog*: remove the tag / clear completion.
|
||||||
|
- **Open design questions for that pass:** optimistic UI vs. wait-for-confirmation; behaviour on write failure; whether drops need undo; re-query/refresh of kanban and any affected calendars after a successful write; the trust implications of a rendered view mutating other notes.
|
||||||
|
- Feasibility: confirmed possible (we already execute `openNote` from the webview; data writes use the same channel with more responsibility). Complexity lives in tag management and the write/refresh cycle, not the dragging.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user