一键导入
note-taking-expert
Specialist in the Note-Taking module, handling Markdown/Delta editors, tag matching, note layouts (Masonry/List), and note lifecycle operations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Specialist in the Note-Taking module, handling Markdown/Delta editors, tag matching, note layouts (Masonry/List), and note lifecycle operations.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Handles the end-to-end release process, ensuring local builds are tested and verified by the user before pushing tags to trigger CI/CD releases. Use this whenever preparing for a public version update.
Dedicated to crafting premium, tactile, and highly responsive user interfaces. Focuses on unified layout systems (Grid, List), micro-interactions, gesture-driven actions, dynamic Material You theming, and Inter + Google Sans Text typography to ensure the app feels "alive" and modern. Use PROACTIVELY when implementing screens or user-facing interactions.
Specialist in the Financial Management module, handling transaction tracking, SMS automated logging, categories, and financial reporting.
A comprehensive testing skill that covers UI/UX consistency, codebase QA, security auditing, and verification of settings and backups.
Specialist in the Health Tracker (Period Tracker) module, handling symptom logging, cycle predictions, intensity tracking, and privacy-first health data.
Automatically extracts learnings from recent session changes to create or update agent skills robustly. Use this when instructed to save learnings, update skills based on recent fixes, or ensure the agent remembers how to handle similar tasks in the future.
| name | Note-Taking-Expert |
| description | Specialist in the Note-Taking module, handling Markdown/Delta editors, tag matching, note layouts (Masonry/List), and note lifecycle operations. |
Use this skill when modifying the note editor, home screen note feeds, note tagging, trash collection, or formats.
dateModified timestamp must only update when actual text edits are saved.note_tags junction table. Use SQL joins for queries.deletedAt is populated) must be transactionally deleted after 7 days via clearOldTrash().previewText (up to 6 lines) from the quill delta:
☐ and checked boxes with ☑ .| (Option A format), rather than displaying raw markdown or simple placeholders.OpenContainer from the animations package for card-to-editor transitions.'Archived' or 'Trash' from the home screen tags filter row. These are handled on their own screens.\bword\b) and multi-word phrase matching to prevent false prefix matches (e.g. matching "Event Summary" on "Even a movie..."). If no existing tags match the note's subject, fall back to dynamic topic detection (Movie, Work, Finance, Health, Travel) and render dismissable M3 chips with ✕ close icons.RichTextUtils.contentToDelta). Inline image embeds ({'insert': {'image': path}}) survive round-trips; templates (lib/data/note_templates.dart) are hand-built Delta JSON.saveNote() skips writing when nothing changed vs the initial note. EVERY new editor-state field (reminderAt, isLocked, folder/category, ...) MUST be added to the hasChanges comparison, or its edits silently never save.NoteFields.reminderAt + NotificationService.scheduleNoteReminder (id = 0x4E000000 | noteId.hashCode & 0xFFFFFF). NEVER call _notificationsPlugin.cancelAll() — period rescheduling once wiped note reminders; cancel specific ids. Repository delete paths cancel reminders centrally (softDeleteNote/bulkDelete).NoteFields.isLocked; the auth gate lives INSIDE NoteEditorScreen.build (single choke point covering OpenContainer, search, archive entries); cards mask preview/image when locked.NoteFields.category doubles as the folder ('All Notes' = none). Filter via readAllNotes(folder:); distinct list via getAllFolders().QuillEditorConfig(characterShortcutEvents: standardCharactersShortcutEvents, spaceShortcutEvents: standardSpaceShorcutEvents) (note the package's 'Shorcut' typo). []→checklist needs a custom SpaceShortcutEvent replicating the internal key-phrase dance (the helper/enum aren't exported). Find-in-note = QuillToolbarSearchButton.restoreNote); post-pop editor deletes use appScaffoldMessengerKey.filteredNotes.length) to display folder note counts in app bars. Always retrieve un-paginated count groupings directly from the database using queries like SELECT category, COUNT(*) and cache them in the provider on load.noteProvider.selectedFolder) to the note creator as the initial category so notes are automatically assigned to the active workspace folder.ScaffoldMessenger.of(context).clearSnackbars() beforehand to clear the queue and set a snappy, user-friendly duration (e.g. 3 seconds) to prevent visual crowding.QuillEditor, isolate cursors and handle focus dismissals cleanly:
showCursor = false when an internal cell is focused, preventing duplicate blinking cursors.TapRegion to capture clicks outside the block and clear cell focus._extractUrls(), filter out _dismissedUrls (!_dismissedUrls.contains(url)). Otherwise, subsequent text editing will re-detect the document text and re-populate dismissed link previews.controller.replaceText(offset, 1, '', null)), always use node.documentOffset (absolute document position), NOT node.offset (which returns offset relative only to the line container).receive_sharing_intent is PINNED to 1.7.0 (1.8+ is Swift-Package-Manager-only and fails flutter pub get when Xcode is incomplete). Text/URLs arrive as SharedMediaFile.path with type text/url.AppLockScreen calls getInitialMedia() (it is always mounted); it parks media in AppLockScreen.pendingSharedMedia and bumps sharedMediaTick. HomeScreen consumes the pending list and handles warm stream events itself when unlocked. Park by ASSIGNMENT (not append) so double-delivery collapses.shared_images/ before embedding — cache files get purged.PROCESS_TEXT (text-selection menu) flows through MainActivity pendingSharedText + the widget channel's getPendingSharedText./) Overlay: Detect typing / at line start to trigger a floating Slash Command card above the keyboard. Filter commands in real time (/todo, /table, /code, /h1, /quote). Tapping a command automatically strips the typed query text and applies block formatting.BackdropFilter), 90% opacity surface fill, rounded corners (AppLayout.radiusXL), and a soft elevation shadow, detached from screen edges.