You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Establish a public core API, route the note experience through it as the first feature pack, and guard the boundary so it can't rot. After this epic, "PKM" is concretely note-workbench feature pack + the seed node pack (trigger.note.saved, action.note.create, action.tag.add), not a vague "core app."
Stays core
Graph store + entity types (note, link, tag, user) + node model/catalog/IR/interpreter/event bus + capability enforcement + the seed node pack. The engine is defined in terms of notes; that concreteness is load-bearing.
Becomes a feature pack
Markdown editor, [[link]] parser/autocomplete, the graph view (not the graph store), and the Notes/Graph routes.
Goal
Establish a public core API, route the note experience through it as the first feature pack, and guard the boundary so it can't rot. After this epic, "PKM" is concretely note-workbench feature pack + the seed node pack (
trigger.note.saved,action.note.create,action.tag.add), not a vague "core app."Stays core
Graph store + entity types (note, link, tag, user) + node model/catalog/IR/interpreter/event bus + capability enforcement + the seed node pack. The engine is defined in terms of notes; that concreteness is load-bearing.
Becomes a feature pack
Markdown editor,
[[link]]parser/autocomplete, the graph view (not the graph store), and the Notes/Graph routes.Non-goals (explicit)
note/link/tag/userstay first-class core types. The core is not generalized into a typeless property graph with note-as-plugin-type. (Tracked as B8 B8 — Decision record: core keeps first-class note types (non-goal guard) #301.)Children
Dependency graph