Skip to content

EPIC B0 — Core/experience boundary refactor #293

Description

@KrasForge

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)

  • No generic entity/edge graph. note/link/tag/user stay 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.)
  • No physical npm/package extraction of the note experience until a second consumer exists. Plugin-ready, not plugin-ized.
  • Dashboard and Marketplace views are app-shell concerns, triaged separately — not folded into the note pack.

Children

Issue Title
#294 B1 — Define the public core API surface
#295 B2 — Audit & inventory boundary violations
#296 B3 — Establish the feature-pack contract
#297 B4 — Route the markdown editor through the public API
#298 B5 — Route the [[link]] parser/autocomplete through the public API
#299 B6 — Route the graph view through the public API
#300 B7 — Register the note experience as the note-workbench feature pack
#301 B8 — Decision record: core keeps first-class note types (non-goal guard)
#302 B9 — CI boundary guard

Dependency graph

B8 ──────────────────────────────────────────────────────► B9
B1 ──┬──► B2 ──┬──► B4 ──┐
     │         ├──► B5 ──┼──► B7
     │         └──► B6 ──┘
     └──► B3 ──────────────► B7

Metadata

Metadata

Assignees

No one assigned

    Labels

    architectureArchitecture decision or structural changeepicEpic-level tracking issuerefactorCode refactoring with no behavior change

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions