mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
Implement M1 authoring loop: library, editor, live preview, persistence
M1 MVP from docs/IMPLEMENTATION-PLAN.md, with the /alignment pass applied. - core: Snippet model + factory; prepareSpecForRender (copy-not-mutate); per-theme Vega chart config - state/orchestration: SnippetStore with debounced auto-save; IndexedDB adapter + read-time migration; startup hydration + write-through persistence - ui: SnippetLibrary, SpecEditor (Monaco edcore.main — full editor features, JSON-only languages), LivePreview - build: Monaco/Vega manual chunks; raised PWA precache ceiling - alignment: flush a valid draft on snippet switch (+regression tests); TODO breadcrumbs for the preview render race and the window.confirm delete - housekeeping: gitignore .claude/projects/
This commit is contained in:
@@ -79,7 +79,16 @@ npm run format # Prettier
|
||||
### AI Developer Protocol
|
||||
|
||||
- **No git on your own initiative** — don't `add`/`commit`/`push` unless explicitly invited.
|
||||
- **Verify** — run `npm run typecheck` and `npm test` after changes.
|
||||
- **Verify** — run `npm run typecheck` and `npm test` after changes. A green build and a
|
||||
smaller bundle prove nothing about behavior: when a change touches what the user sees or
|
||||
does, confirm it by exercising the feature, not by the compiler alone.
|
||||
- **Trim content, not capability** — when narrowing a third-party import or build to cut
|
||||
size, remove optional _content_ (languages, locales, themes, icon sets), never the
|
||||
library's _features_. The smallest/lowest-level entry point is seldom the right one — it
|
||||
often drops capabilities you meant to keep. Prefer the entry that excludes the unwanted
|
||||
content while retaining behavior, and validate the behavior survived. (This bit us once:
|
||||
importing Monaco's `editor.api` to drop unused languages also stripped every editor
|
||||
feature — see `docs/architecture/08`.)
|
||||
- **Spec is the contract** — when in doubt, read `docs/spec/`. If the spec is wrong or
|
||||
silent, raise it; change the spec deliberately rather than drifting from it.
|
||||
- **Core-first** — for each feature, build the pure `src/core/` logic with tests before UI.
|
||||
|
||||
Reference in New Issue
Block a user