From 87f74b1cd5533a3977fec32dfe47ac52ef85995b Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Wed, 8 Apr 2026 13:21:20 -0400 Subject: [PATCH] docs: add specialized note type editors implementation plan --- .../plans/2026-04-08-note-type-editors.md | 786 ++++++++++++++++++ 1 file changed, 786 insertions(+) create mode 100644 docs/superpowers/plans/2026-04-08-note-type-editors.md diff --git a/docs/superpowers/plans/2026-04-08-note-type-editors.md b/docs/superpowers/plans/2026-04-08-note-type-editors.md new file mode 100644 index 0000000..303e709 --- /dev/null +++ b/docs/superpowers/plans/2026-04-08-note-type-editors.md @@ -0,0 +1,786 @@ +# Specialized Note Type Editors — Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Replace the generic note editor with type-specialized form-first views for Person, Place, and List, and fix tab navigation so focus flows logically from title through content fields, skipping the formatting toolbar. + +**Architecture:** `NoteEditorView.vue` gains type-conditional template sections. When `noteType` is `person` or `place`, the main editor area renders a structured form with the TipTap editor in a secondary "Notes" section. When `noteType` is `list`, a dedicated list builder replaces TipTap as the primary interface. `MarkdownToolbar.vue` gets `tabindex="-1"` on buttons. Backend `_note_to_item` gains new person/place fields. + +**Tech Stack:** Vue 3 Composition API, TipTap editor, TypeScript, scoped CSS. + +--- + +## File Map + +| Action | Path | +|--------|------| +| Modify | `frontend/src/views/NoteEditorView.vue` | +| Modify | `frontend/src/components/MarkdownToolbar.vue` | +| Modify | `frontend/src/views/KnowledgeView.vue` | +| Modify | `src/fabledassistant/services/knowledge.py` | + +--- + +### Task 1: Tab navigation fix — toolbar tabindex + auto-focus + +**Files:** +- Modify: `frontend/src/components/MarkdownToolbar.vue` +- Modify: `frontend/src/views/NoteEditorView.vue` + +**Context:** The MarkdownToolbar renders buttons via `v-for` in a single `