# Granit feature catalog

This document is the exhaustive, user-facing inventory of the actively
maintained Granit terminal application and its companion CLI. It answers two
questions for every capability:

1. What does Granit provide?
2. When would someone use it?

For a shorter guided tour, see [FEATURES.md](FEATURES.md). For implementation
boundaries, see [ARCHITECTURE.md](ARCHITECTURE.md). The former browser
application is deprecated and is deliberately not included here.

## Product scope

Granit is a local-first terminal workspace over a plain Markdown directory. It
connects six activities without making a hosted service or proprietary database
the source of truth:

```text
Capture -> Understand -> Plan -> Execute -> Review -> Preserve or publish
```

The core vault, editor, textual search, tasks, calendar, projects, and daily
workflow work without an account or AI provider. Features marked **optional**
need a configured local executable, network service, or trusted plugin.

## Representative workflows

### Developer or project builder

Capture implementation notes, relate them to a project and repository, plan
tasks, schedule a focus block, keep the Daybook pinned while working, and
generate a stand-up or weekly review from local activity.

### Researcher or writer

Collect source notes, create links and typed objects, inspect connections,
synthesize several notes, write in a focused workspace, and export or publish
the result.

### Daily operator

Run a morning check-in, capture incoming work, choose the next action, arrange
tasks and events, track focused work, and close the day in one connected
Daybook entry.

### Student

Keep course notes, generate flashcards and quizzes, practise vocabulary, track
mastery and habits, and review progress without moving learning data to a
hosted platform.

### Solo founder

Connect projects, goals, tasks, repositories, time records, daily planning,
stand-ups, publishing, and reviews in one local workspace.

## Vault and navigation

| Capability | Use case |
|---|---|
| Plain Markdown vaults | Keep files portable, Git-friendly, and editable by other tools. |
| Vault initialization | Create a usable folder structure and safe Granit defaults. |
| Direct vault opening | Use an existing Markdown directory without importing it first. |
| Vault selector and registry | Switch between known personal, work, or research vaults. |
| File-tree and flat-list Explorer | Navigate by hierarchy or scan all files as one list. |
| Typed-object Explorer view | Browse people, books, projects, and other objects independently of folders. |
| Persistent folder folding | Keep large trees compact across sessions. |
| Fuzzy Explorer filter | Narrow a large vault without leaving the current workspace. |
| Name, modified, and created sorting | Find alphabetical, recent, or newly created material. |
| Optional hidden-file display | Inspect dotfiles when maintaining a technical vault. |
| Explorer pins | Keep frequently used notes above the normal tree. |
| Quick Open | Open any note by fuzzy filename search. |
| Quick Switch | Return to recently used notes quickly. |
| Back and forward navigation | Follow links and return through note history like a browser. |
| Manual vault refresh | Rebuild the visible snapshot after external operations. |
| File watcher | Refresh changes made in Vim, an IDE, or another process. |
| Responsive panels | Preserve essential controls in narrow terminals. |
| Note, pin, and Git markers | See local state without opening another panel. |

## Tabs and workspace composition

| Capability | Use case |
|---|---|
| Note tabs | Keep several documents open while writing or researching. |
| Feature tabs | Treat Tasks, Calendar, Projects, Graph, Habits, Objects, Saved Views, Repositories, and Command Center like first-class workspaces. |
| Tab position shortcuts | Move directly to one of the first nine tabs. |
| Previous and next tab actions | Navigate when the terminal reserves common Ctrl chords. |
| Tab reordering | Arrange the working set in a meaningful order. |
| Close current, all, others, or right-side tabs | Clean up a long session without restarting. |
| Reopen closed tab | Recover from an accidental close. |
| Protected tabs | Keep an important tab out of normal close operations. |
| Session restoration | Reopen the previous tab set on the next launch. |
| Named workspaces | Save and restore open notes, active note, layout, focus, and read mode. |
| Persistent right companion | Pin any rendered note beside the editable note. |
| Temporary split view | Compare two notes without changing the persistent companion. |

## Notes and file lifecycle

| Capability | Use case |
|---|---|
| Blank note creation | Start writing immediately. |
| Note templates | Create consistent meetings, projects, reviews, books, people, journals, research, and sermon notes. |
| Vault-local templates | Adapt note creation to a personal workflow. |
| Zettelkasten note creation | Give an atomic note a unique timestamp-based identity. |
| Folder creation | Organize material without leaving the TUI. |
| Rename and move | Refactor a vault interactively. |
| Recoverable trash | Remove notes without immediate permanent deletion. |
| Trash restore | Recover an accidentally removed note. |
| Extract selection to note | Turn part of a document into a linked atomic note. |
| Atomic note writes | Avoid partially written files after interruption or failure. |
| Optional autosave | Persist changes on focus transitions. |

## Editor and writing

| Capability | Use case |
|---|---|
| Terminal Markdown editor | Write without leaving a shell-oriented environment. |
| Undo and redo | Safely revise text. |
| Multiple cursors | Edit repeated structures efficiently. |
| Automatic indentation and brackets | Reduce routine typing. |
| Configurable tabs | Match a preferred writing or code style. |
| Line numbers and current-line highlighting | Keep orientation in long technical notes. |
| Word wrapping | Choose between prose-friendly and source-like display. |
| Find and replace | Edit within the active note. |
| Regex search mode | Locate structured text patterns. |
| Global search and replace | Apply a reviewed change across the vault. |
| Vim modes and operators | Use familiar modal editing. |
| Vim macro recording and playback | Repeat a complex edit. |
| Heading folding | Collapse long sections. |
| Structured frontmatter editor | Change metadata without manually balancing YAML syntax. |
| Visual Markdown table editor | Edit rows and columns without hand-aligning pipes. |
| Spell checking | Check a note through aspell or hunspell when installed. |
| Smart URL paste | Wrap selected text in a Markdown link. |
| Clipboard history | Reuse recent copied text. |
| Persistent scratchpad | Hold temporary text outside the current note. |
| Journal prompts | Start a guided reflection. |
| Focus mode | Remove surrounding workspace chrome for concentrated writing. |

## Markdown reading and rendering

| Capability | Use case |
|---|---|
| Rendered read mode | Read a note as a document instead of source text. |
| Headings, lists, tasks, quotes, links, and horizontal rules | Render standard Markdown structures. |
| Syntax-highlighted fenced code | Read technical notes comfortably. |
| Box-drawn tables with alignment | Read tabular Markdown in a terminal. |
| Callouts | Render note, tip, warning, danger, todo, bug, success, and related blocks. |
| Footnotes | Keep references readable without cluttering paragraphs. |
| Inline and block math | Display formula source in a distinct readable form. |
| Wikilinks and heading links | Navigate between local knowledge units. |
| Note and section embeds | Read transcluded material in context. |
| Image embeds | Show supported terminal images or an informative fallback. |
| Mermaid rendering | Render flowcharts, sequence diagrams, pie charts, class diagrams, and Gantt charts as terminal graphics. |
| Granit diagram blocks | Render tree, timeline, movement, flow, and comparison diagrams. |
| Heading outline | Jump through a long note. |
| Note preview | Inspect an Explorer item without fully switching context. |
| Reading progress | Retain orientation in long documents. |

## Writing assistance and insertion

| Capability | Use case |
|---|---|
| Wikilink completion | Link notes without remembering exact filenames. |
| Typed-object mentions | Insert a person, book, project, or other object as a link. |
| Snippet engine | Expand reusable text fragments. |
| Slash menu | Insert headings, lists, tasks, quotes, code, callouts, tables, links, media, dates, frontmatter, and common templates. |
| Write Flow | Act on selected text or the current line: create a linked note with folder/tags, link existing knowledge, add a task, search, ask AI, research the web/Wikipedia, or import a source. |
| Connected note extraction | Replace selected prose with a wikilink, add an origin backlink to the new note, and optionally continue writing with the source pinned on the right. |
| Optional AI slash actions | Rewrite, expand, summarize, improve, shorten, or correct selected text. |

## Capture and inbox

| Capability | Use case |
|---|---|
| Quick Capture | Send one thought to Inbox, Daybook, Tasks, or a new note. |
| Inline capture dates and priorities | Add scheduling metadata while typing a task. |
| Daily Jot | Append a timestamped log without leaving the current workflow. |
| Knowledge Source Import | Review and save Wikipedia, a public web page, or RSS/Atom entries to a chosen vault folder as a searchable Markdown source note. |
| Source provenance | Keep source kind, canonical URL, title, and retrieval time beside imported content. |
| Safe source refresh | Update a stable CLI import explicitly without accidental overwrite. |
| Reading List | Keep URLs and articles to process later. |
| CLI capture | Add material from a shell command or script. |
| CLI stdin clip | Pipe output or selected text into the vault. |

## Daybook and daily lifecycle

| Capability | Use case |
|---|---|
| Date-based Daybook | Keep the portable source of truth for one day. |
| Fixed Today entry | Reach the Daybook even when its folder is collapsed. |
| Previous and next Daybook navigation | Review adjacent days. |
| Weekly notes | Maintain a portable week-level record. |
| Configurable daily and weekly templates | Adapt the ritual without changing Granit code. |
| Live activity section | See linked work without copying source content into the daily file. |
| Metadata-only Activity Ledger | Preserve note creation and edit time without storing bodies or prompts. |
| Morning check-in | Choose focus, tasks, habits, and opening thoughts. |
| Today overview and Daily Hub | See current tasks, overdue work, captures, habits, projects, blocks, and recent notes. |
| Command Center | Act on the next task, project, habit, or focus session. |
| Manual Daily Planner | Arrange work into time blocks directly. |
| Plan My Day | Convert a free-form brief into a reviewed agenda, tasks, events, and blocks. |
| Evening Review | Celebrate, reschedule, and reflect at the end of the day. |
| Weekly Review | Review wins, lessons, priorities, habits, and unfinished work. |
| Stand-up generator | Summarize recent tasks, notes, sessions, and Git activity. |
| Activity digest | Prepare a portable review of recent vault activity. |
| Copy Daily Plan | Share the current schedule as text. |
| Writing statistics and streaks | Track writing consistency and volume. |

## Tasks and execution

Tasks remain Markdown checkbox lines in their source notes. Stable IDs and
metadata live in a vault-local sidecar so views can refer to a task after text
edits or line movement.

| Capability | Use case |
|---|---|
| Plan, Upcoming, All, Done, Calendar, Kanban, Inbox, Stale, Project, Quick, Tag, and Review views | Inspect the same tasks from different workflow perspectives. |
| Create, edit, complete, reopen, archive, and delete | Manage the full task lifecycle. |
| Stable task IDs | Preserve metadata when Markdown moves or changes. |
| Shared list, Kanban, and Calendar identity | Complete, reprioritize, or delete the intended task even after its source line moves. |
| Subtasks | Represent a hierarchy while keeping readable Markdown. |
| Due dates and deadlines | Track time-sensitive commitments. |
| Priorities and tags | Filter and rank work. |
| Estimates and actual time | Compare planned and observed effort. |
| Recurrence | Generate the next daily, weekly, or monthly occurrence. |
| Dependencies and blockers | Avoid presenting unavailable work as actionable. |
| Project and goal links | Roll task progress into larger outcomes. |
| Notes and source navigation | Preserve context and return to the canonical line. |
| Inbox, triaged, scheduled, done, dropped, and snoozed states | Move work through a deliberate planning loop. |
| Time blocking and batch rescheduling | Arrange several tasks on the calendar. |
| Bulk selection and actions | Process a large queue efficiently. |
| Saved filters and sorting | Reopen a recurring working view. |
| Task templates | Create consistent repeated work. |
| Optional AI breakdown and prioritization | Propose subtasks or an order for explicit review. |

## Calendar and planning

| Capability | Use case |
|---|---|
| Month, week, three-day, day, agenda, and year views | Choose overview or scheduling detail. |
| Events, tasks, and planner layers | See or hide different scheduling sources. |
| Event creation, editing, and deletion | Manage appointments locally. |
| Timed and all-day events | Represent meetings and date-only commitments. |
| Recurring events | Repeat daily, weekly, monthly, or yearly items. |
| Working hours | Constrain the visible scheduling window. |
| Agenda search | Locate an event without scanning dates. |
| Next free slot | Find usable time for a task. |
| Task scheduling and movement | Keep calendar placement attached to the source task. |
| Local ICS parsing | Overlay existing calendar data without requiring a hosted account. |
| Current-block Pomodoro | Start focused work for what is scheduled now. |

## Projects, goals, and ideas

| Capability | Use case |
|---|---|
| Project lifecycle, category, tags, priority, and due date | Maintain a portfolio of active and paused initiatives. |
| Stable project IDs | Rename and reorder projects without breaking task counts or bulk selection. |
| Project notes, tasks, goals, milestones, repositories, time, blockers, and next action | Connect execution and knowledge around one outcome. |
| Project dashboard | Review one project in detail. |
| Cross-project dashboard | Compare health, progress, deadlines, and blockers. |
| Optional AI project planner and insights | Propose phases, milestones, tasks, risks, and next actions. |
| Standalone and project-linked goals | Track outcomes above individual tasks. |
| Goal categories, status, dates, progress, milestones, and review history | Review long-term direction. |
| Optional AI goal coach | Propose priorities and alignment for confirmation. |
| Ideas Board | Move concepts through capture, exploration, and validation. |
| Idea conversion | Promote a validated idea into a task or goal. |

## Focus and time

| Capability | Use case |
|---|---|
| Pomodoro timer | Work in bounded intervals with breaks. |
| Guided Focus Session | Combine a task, explicit goal, timer, scratchpad, break, and review. |
| Clock in and out | Track an open-ended work session. |
| Per-note and per-task time tracker | Attribute time to the material being worked on. |
| Daily and weekly totals | Review effort distribution. |
| Active timer status | Keep remaining or elapsed time visible in shared chrome. |
| Daybook session references | Preserve focused work in the daily record. |

## Search and knowledge discovery

| Capability | Use case |
|---|---|
| Filename quick open | Find a known note fast. |
| Current-note find and replace | Edit a single document. |
| Full-text content search | Locate exact text across the vault. |
| Universal search | Search notes, tasks, goals, and habits together. |
| Regex search | Find structural patterns. |
| Metadata query and Dataview-style queries | Filter frontmatter-defined collections. |
| TF-IDF similar notes | Discover local textual similarity without a model. |
| Smart Connections | Rank potentially related notes. |
| Optional semantic search | Find meaning-based matches through a configured provider. |
| Optional natural-language search | Express a search as a question or description. |
| Backlinks and outgoing links | Understand explicit note relationships. |
| Unlinked mentions and Link Assistant | Turn matching text into reviewed links. |
| Tags, bookmarks, and recents | Revisit curated or recent material. |
| Local and global graph | Explore the link network. |
| Canvas | Arrange cards and links spatially. |
| Mind map | Derive a visual hierarchy from headings and links. |
| Timeline | Browse notes chronologically. |
| Knowledge gaps | Find orphans, stale notes, weak clusters, and unresolved TODOs. |
| Vault statistics | Inspect size, links, tags, and writing activity. |

## Typed objects and saved views

Built-in types are person, book, project, meeting, idea, article, podcast,
video, quote, highlight, place, and recipe.

| Capability | Use case |
|---|---|
| Frontmatter `type` association | Add structure while retaining a normal Markdown file. |
| Object Browser | Browse one type as a filterable property grid. |
| Types Explorer | Navigate objects without opening the browser. |
| Object creation and deletion | Manage structured notes inside the TUI. |
| Custom JSON type schemas | Add domain-specific object kinds without recompiling. |
| Built-in schema overrides | Adapt standard types to a vault. |
| Text, number, date, URL, tag, checkbox, link, and select properties | Describe different fields consistently. |
| Saved Views | Reuse filters, clauses, sorting, and columns. |
| Typed mentions | Insert an object link at the editor cursor. |
| Agent object tools | Query or create typed objects through an approved agent run. |

## Learning, habits, and reading

| Capability | Use case |
|---|---|
| Habit Today and List views | Check in now or manage the complete habit set. |
| Historical check-ins, categories, filters, notes, archive, and bulk creation | Maintain habits beyond a simple streak counter. |
| Flashcards and spaced repetition | Review facts extracted from notes. |
| Quiz mode | Test understanding with generated questions. |
| Learning dashboard | Track progress, streaks, and mastery. |
| Vocabulary and practice sessions | Learn a language from a local Markdown collection. |
| Grammar notes | Keep reusable language explanations. |
| Reading List | Track articles and URLs to process. |
| Scripture reading, bookmarks, and devotional workflow | Support an optional personal reflection practice. |

## Spreadsheets and media

| Capability | Use case |
|---|---|
| CSV, TSV, XLSX, and XLSM opening | Inspect common table files in the same tab system. |
| CSV/XLSX editing and saving | Make lightweight table changes without a separate application. |
| Multi-sheet navigation | Browse workbook sheets. |
| Built-in sheet templates | Start common trackers with useful structure. |
| Cell, row, and column operations | Maintain table content from the keyboard. |
| Rectangular copy and paste | Exchange TSV data with spreadsheet applications. |
| Undo and redo | Recover table edits. |
| Sorting and auto-fit | Explore and improve readability. |
| Numeric, currency, percentage, date, US, and EU parsing | Interpret common data forms. |
| Sum, average, minimum, maximum, and count | Inspect a numeric column quickly. |
| ASCII charts | Visualize a numeric column in the terminal. |
| Image Manager and image embeds | Browse and render vault media with terminal fallbacks. |

## Optional AI and agents

Granit can use deterministic local fallbacks, Ollama, a configured OpenAI
provider, a trusted external `plugin:<id>` provider, and Claude Code for the
explicit research workflows that require it. Provider absence never blocks the
core vault.

| Capability | Use case |
|---|---|
| Nineteen focused bots | Summarize, explain, title, revise tone, expand, challenge, compare, extract actions, tag, link, outline, generate flashcards or terms, create a MOC, or produce a local digest. |
| Vault chat and note chat | Ask questions across the vault or about one document. |
| Composer and AI templates | Draft a new note from a topic and structure. |
| Ghost Writer | Receive optional inline continuation suggestions. |
| Writing Coach and Note Enhancer | Review clarity, structure, links, and depth. |
| Thread Weaver | Synthesize several notes into a new essay. |
| Blog Draft | Run a staged long-form writing workflow. |
| Deep Dive Research and follow-up | Create or extend a researched note through Claude Code. |
| Knowledge graph and gap analysis | Inspect clusters, hubs, orphans, stale notes, and missing topics. |
| Vault refactor and analyzer | Propose organization changes without applying them silently. |
| Task triage, project planning, scheduling, and review assistance | Turn existing local context into reviewable execution proposals. |
| Agent Runner | Execute bounded multi-step research or organization presets with a visible trace. |
| Read/write tool separation | Keep read-only agents incapable of mutating the vault. |
| Approval callback for write tools | Confirm note, task, or object creation. |
| Optional web search and URL fetch | Add live research only when explicitly enabled. |
| Ollama model discovery and explicit pull | Use installed local models without surprise downloads. |
| Cancellation, retries, deadlines, and context budgets | Keep model failures from freezing the TUI. |

## Git and repositories

| Capability | Use case |
|---|---|
| Status, diff, log, commit, pull, and push | Version and synchronize a vault. |
| Explorer Git markers | See modified, untracked, and conflicted notes. |
| Per-note Git history and diff | Review how one document changed. |
| Optional automatic Git synchronization | Pull on open and commit/push configured changes. |
| Repository tracker | Scan a configured project root for Git repositories. |
| Branch, dirty, ahead/behind, and activity-age display | Review local development state. |
| Repository-to-project import | Create a typed project note linked to a repository. |
| Open folder and copy path actions | Move from overview to development tools. |

## Backup, encryption, sync, import, and export

| Capability | Use case |
|---|---|
| Manual, daily, and throttled on-save snapshots | Recover from editing mistakes or bad operations. |
| Configurable retention and pruning | Bound local backup growth. |
| Attachment and sidecar coverage | Restore the whole usable vault rather than Markdown alone. |
| ZIP and checksum validation | Reject corrupt archives before restore. |
| Path and file-type validation | Prevent a crafted archive from escaping the vault. |
| Automatic pre-restore safety snapshot | Return to the pre-restore state. |
| Atomic overlay restore | Replace included files without deleting unrelated files. |
| Per-note AES-256-GCM encryption with Argon2id | Protect selected sensitive notes before synchronization. |
| Session-only passphrase cache | Avoid writing an encryption secret to vault state. |
| Locked-note isolation | Keep ciphertext out of plaintext search, backlinks, spell check, and AI snapshots. |
| Git sync | Use an existing Git remote as an optional transport. |
| Nextcloud WebDAV sync | Synchronize vault files through a configured Nextcloud account. |
| Obsidian, Logseq, Org-mode, and Notion import | Migrate existing knowledge into portable Markdown. |
| HTML, text, JSON, and optional Pandoc PDF export | Move notes into common interchange formats. |

## Publishing

| Capability | Use case |
|---|---|
| Current-note and bulk export | Share selected material without publishing a vault. |
| Static-site build and preview | Publish a selected folder as a standalone website. |
| Wikilinks, tags, search, and graph | Preserve knowledge navigation in the generated site. |
| Responsive output, SEO, sitemap, robots, Open Graph, and RSS | Ship a practical public site. |
| Images, KaTeX, Mermaid, reading time, 404, and hero layouts | Publish rich technical or editorial content. |
| Impressum, privacy page, and cookie notice support | Meet common public-site requirements. |
| GitHub Pages and generic static-host output | Deploy without a Granit cloud service. |
| Optional Medium and GitHub blog publishing | Send one note to an external publishing workflow. |

## Customization and extension

| Capability | Use case |
|---|---|
| Seventeen curated themes and historical-name compatibility | Choose a maintained palette without breaking old config. |
| Theme Gallery with live preview and WCAG diagnostics | Evaluate a theme before saving it. |
| Custom JSON themes and Theme Editor | Build a vault-specific visual identity. |
| Unicode, Nerd Font, emoji, and ASCII icon modes | Match terminal capability and accessibility needs. |
| Fifteen layouts and four promoted workflow presets | Adapt the same data to writing, planning, research, review, presentation, and narrow screens. |
| Seven workflow profiles | Enable an appropriate module set, layout, and dashboard for Classic, Daily Operator, Researcher, Builder, Student, Writer, or Founder work. |
| Sixteen toggleable built-in modules | Hide optional surfaces without deleting their code or data. |
| Trusted executable plugins | Add local commands, lifecycle hooks, or an AI provider outside public core. |
| Global and vault-local Lua scripts | Automate trusted local transformations. |
| Plugin scaffold and CLI management | Create, install, inspect, enable, disable, and remove extensions. |

## Notifications, help, and maintenance

| Capability | Use case |
|---|---|
| Notification Center | Revisit update notices, release notes, reminders, app events, and Git/AI/task status. |
| Transient toasts and shared status line | See immediate feedback without blocking work. |
| Contextual action line | Discover the useful keys for the current surface. |
| Command palette and history | Find every named action and prioritize recent commands. |
| In-app guide and shortcut reference | Learn the TUI without leaving it. |
| Interactive tutorial | Onboard a new user. |
| Update check and verified self-update | Install official releases from the CLI or Notification Center after checksum and archive validation. |
| Shell completion and generated man page | Integrate the CLI with normal terminal tooling. |

## Companion CLI

| Command | Use case |
|---|---|
| `open`, direct path, `init`, `daily` | Open, create, or jump into a vault and today's note. |
| `today`, `review` | Produce daily or weekly summaries for a shell workflow. |
| `scan`, `list`, `search`, `query` | Inspect vault structure, notes, tags, text, and metadata. |
| `todo`, `capture`, `clip` | Add work or notes from scripts and stdin. |
| `clock`, `remind` | Track work sessions and maintain local reminders. |
| `backup`, `sync` | Snapshot or synchronize a vault. |
| `export`, `import`, `publish` | Move data in or out and build a static site. |
| `plugin` | Create and manage trusted extensions. |
| `config` | Show active paths and a redacted diagnostic configuration. |
| `update`, `version`, `help`, `completion`, `man` | Maintain and discover the installed binary. |
| `source add` | Import Wikipedia, RSS/Atom, or a public web page for search, linking, and optional AI use. |

## Graceful degradation

- Without AI, writing, search, tasks, calendar, projects, and Daybook remain
  usable.
- Without Git or Nextcloud, the vault remains a normal local directory.
- Without Pandoc, non-PDF exports still work.
- Without aspell or hunspell, only spell checking is unavailable.
- Without a system clipboard helper, Granit's internal clipboard remains.
- Without an external connector, local search and knowledge features remain.
- Without update opt-in, Granit makes no automatic release request.

## Current consolidation work

Granit intentionally preserves its implemented feature set while simplifying
how it is presented and maintained. The first consolidation layer is now in
place:

- shared validated references cover the public entity vocabulary and are used
  by Universal Search;
- Quick Capture routes Inbox, Daybook, Task, and Note intents through one core,
  including stable TaskStore IDs and a compatibility fallback;
- entity ranking, Unicode-aware fuzzy matching, and content snippets live in
  one reusable search engine;
- Task Manager, Kanban, and Calendar consume one canonical task projection;
  view actions and persisted Kanban placement use stable task IDs;
- project state has additive stable IDs, and task projections retain stable
  project links alongside editable display names;
- plugin API v2 declares data grants and routes write output through validated,
  user-confirmed automation plans.

Next consolidation stages migrate remaining specialized task writers, harden
event identity, project more entity kinds into shared search, extend the
metadata activity stream, and add durable audit and undo records for applied
plans. See [Shared data model](DATA-MODEL.md).

No connector-specific endpoint, credential, or private product code belongs in
the public core. Such integrations must remain in separately distributed,
trusted plugins.
