mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
Format entire codebase with Prettier (mechanical, no behavior change)
This commit is contained in:
@@ -46,7 +46,7 @@ Review all changes in scope. If changes span multiple patterns below, apply all
|
||||
fix whitespace/formatting (trailing newlines etc.) — Prettier owns that.
|
||||
|
||||
6. **Code Comments**: Comments should not duplicate what the code already says. Remove
|
||||
parroting comments. Ensure comments capture non-obvious *why* — design decisions,
|
||||
parroting comments. Ensure comments capture non-obvious _why_ — design decisions,
|
||||
constraints, gotchas. Flag missing comments where a reader would reasonably ask "why is this
|
||||
done this way?"
|
||||
|
||||
@@ -58,7 +58,7 @@ Review all changes in scope. If changes span multiple patterns below, apply all
|
||||
8. **Pre-existing & out-of-scope issues — leave a breadcrumb.** For anything you notice but
|
||||
don't fix (pre-existing patterns the new code follows; observations the change exposes but
|
||||
that are out of scope), mark it with a `// TODO:` at the relevant code site explaining
|
||||
*what* could be improved and *why* (1–3 lines). **If an observation is important enough to
|
||||
_what_ could be improved and _why_ (1–3 lines). **If an observation is important enough to
|
||||
mention in the summary, it is important enough to deserve a `// TODO:` at the code location**
|
||||
— otherwise the next reader has no way to recover the context.
|
||||
|
||||
@@ -104,25 +104,31 @@ Review all changes in scope. If changes span multiple patterns below, apply all
|
||||
## Pattern A: New Functionality
|
||||
|
||||
### Testing
|
||||
|
||||
- Unit tests for new `src/core/` logic (test the core hardest).
|
||||
- Lighter component/interaction tests for new UI.
|
||||
- Tests pass before proceeding.
|
||||
|
||||
### Documentation
|
||||
|
||||
Update relevant docs if the feature is significant:
|
||||
|
||||
- **`docs/spec/`** — if product behavior changed (this is a contract; change deliberately).
|
||||
- **`docs/architecture/`** — if a new pattern, navigation map, or decision rule emerged.
|
||||
- **`docs/IMPLEMENTATION-PLAN.md`** — mark milestone progress.
|
||||
Use the `/doc-update` skill for session-discovered gaps. The list is not exclusive.
|
||||
Use the `/doc-update` skill for session-discovered gaps. The list is not exclusive.
|
||||
|
||||
### Dependencies
|
||||
|
||||
If `package.json` changed:
|
||||
|
||||
- Flag each new dependency; explain what it does and why it's needed.
|
||||
- Could a small custom implementation avoid it? Note the trade-off.
|
||||
- Prefer dependencies that solve genuinely hard problems (parsing, rendering) over those that
|
||||
save boilerplate.
|
||||
|
||||
### Alignment Check
|
||||
|
||||
- **SOUL.md** — philosophy (must not violate without good reason).
|
||||
- **`docs/spec/`** — behavioral contract.
|
||||
- **`docs/architecture/`** — the relevant pattern doc.
|
||||
@@ -132,14 +138,17 @@ If `package.json` changed:
|
||||
## Pattern B: Bug Fixes
|
||||
|
||||
### Testing
|
||||
|
||||
- Add a regression test that reproduces the bug and verifies the fix.
|
||||
- Interaction test if the bug affected UI behavior.
|
||||
|
||||
### Documentation
|
||||
|
||||
Usually not required unless the bug revealed incorrect docs, or the fix changes documented
|
||||
(spec) behavior.
|
||||
|
||||
### Alignment Check
|
||||
|
||||
- **SOUL.md** philosophy; **`docs/spec/`** behavioral contract; **`docs/architecture/`** patterns.
|
||||
|
||||
---
|
||||
@@ -147,24 +156,29 @@ Usually not required unless the bug revealed incorrect docs, or the fix changes
|
||||
## Pattern C: Refactoring
|
||||
|
||||
### Impact Analysis
|
||||
|
||||
1. **Search for usages** of modified functions/types across the codebase (Grep).
|
||||
2. **Identify call sites** (components, stores, services, infrastructure, tests).
|
||||
3. **Check exports** used by other modules.
|
||||
4. **Review dependencies** — what the code depends on and what depends on it.
|
||||
|
||||
### Testing
|
||||
|
||||
- Update existing tests to the new structure; verify all call sites.
|
||||
- Run `npm test` and `npm run typecheck`.
|
||||
|
||||
### Documentation
|
||||
|
||||
Update `docs/architecture/` if a pattern, module responsibility, or navigation map changed.
|
||||
Update JSDoc/inline comments if signatures or behavior changed.
|
||||
|
||||
### Alignment Check
|
||||
|
||||
- **SOUL.md** (simplicity, no parallel systems); **`docs/architecture/`** (consistent with the
|
||||
documented patterns); **`docs/spec/`** (behavior unchanged unless intended).
|
||||
|
||||
### Common Refactoring Checks
|
||||
|
||||
- Function signatures → all call sites updated.
|
||||
- Type definitions → search type usages.
|
||||
- Imports → correct after file moves.
|
||||
@@ -176,10 +190,10 @@ Update JSDoc/inline comments if signatures or behavior changed.
|
||||
|
||||
## Reference Documents
|
||||
|
||||
| Document | Purpose |
|
||||
| --- | --- |
|
||||
| [SOUL.md](../../../SOUL.md) | Project philosophy and core values |
|
||||
| [AGENTS.md](../../../AGENTS.md) | AI onboarding and project context |
|
||||
| [docs/spec/](../../../docs/spec/) | Behavioral contract — *what* the app does |
|
||||
| [docs/architecture/](../../../docs/architecture/00-overview.md) | Architecture playbook — *how* it's built |
|
||||
| [docs/IMPLEMENTATION-PLAN.md](../../../docs/IMPLEMENTATION-PLAN.md) | Milestone sequence and scope |
|
||||
| Document | Purpose |
|
||||
| ------------------------------------------------------------------- | ----------------------------------------- |
|
||||
| [SOUL.md](../../../SOUL.md) | Project philosophy and core values |
|
||||
| [AGENTS.md](../../../AGENTS.md) | AI onboarding and project context |
|
||||
| [docs/spec/](../../../docs/spec/) | Behavioral contract — _what_ the app does |
|
||||
| [docs/architecture/](../../../docs/architecture/00-overview.md) | Architecture playbook — _how_ it's built |
|
||||
| [docs/IMPLEMENTATION-PLAN.md](../../../docs/IMPLEMENTATION-PLAN.md) | Milestone sequence and scope |
|
||||
|
||||
@@ -18,7 +18,7 @@ Documentation serves two purposes — know **where to look** and know **what to
|
||||
are valuable, but at different levels of detail:
|
||||
|
||||
- **Navigation map** (good): "Preview flow: `LivePreview.tsx` → `prepareSpecForRender()` (core) → `vega-embed`" — lists the files and their roles so you don't read a dozen files to find the right four.
|
||||
- **Decision rule** (good): "The fit-mode/reference-resolution transform runs on a *copy* of the spec — never mutate the stored spec" — captures a non-obvious convention.
|
||||
- **Decision rule** (good): "The fit-mode/reference-resolution transform runs on a _copy_ of the spec — never mutate the stored spec" — captures a non-obvious convention.
|
||||
- **Code walkthrough** (bad): "SnippetStore.updateDraft sets draftSpec, which a startup subscriber watches, debounces, then calls snippetStore.put… " — restates the code, goes stale on any rename.
|
||||
|
||||
**Navigation maps** use file/module names (stable) to show flow direction. **Decision
|
||||
@@ -30,13 +30,13 @@ For documentation organization, see **[CLAUDE.md](../../../CLAUDE.md)** and the
|
||||
|
||||
## The three documentation layers (know which one a gap belongs to)
|
||||
|
||||
- **`docs/spec/`** — the *what*: behavioral contract (what the app does, acceptance points).
|
||||
- **`docs/spec/`** — the _what_: behavioral contract (what the app does, acceptance points).
|
||||
This is a **contract**. Only change it when product behavior genuinely changes, and do so
|
||||
deliberately — never as a casual "fill a doc gap" edit. A how-detail does NOT belong here.
|
||||
- **`docs/architecture/`** — the *how*: the patterns behind each layer (state, persistence,
|
||||
- **`docs/architecture/`** — the _how_: the patterns behind each layer (state, persistence,
|
||||
modals, routing, rendering, inference, relationships). Most navigation maps and decision
|
||||
rules land here.
|
||||
- **`docs/IMPLEMENTATION-PLAN.md`** — the *when*: milestone sequence and scope.
|
||||
- **`docs/IMPLEMENTATION-PLAN.md`** — the _when_: milestone sequence and scope.
|
||||
|
||||
## Process
|
||||
|
||||
@@ -59,19 +59,19 @@ not do Y"). If you can't state it concisely, it may be too implementation-specif
|
||||
|
||||
Map each gap to the right document:
|
||||
|
||||
| Gap type | Target document |
|
||||
| --- | --- |
|
||||
| Gap type | Target document |
|
||||
| ------------------------------------------------- | ----------------------------------------------------------------------------- |
|
||||
| Product behavior, capabilities, acceptance points | `docs/spec/` (the relevant 00–10 section) — **contract; change deliberately** |
|
||||
| State / Zustand stores | `docs/architecture/01-state-and-stores.md` |
|
||||
| Persistence, IndexedDB, localStorage, migrations | `docs/architecture/02-persistence.md` |
|
||||
| Modals, dialog lifecycle | `docs/architecture/03-modal-system.md` |
|
||||
| URL routing, keyboard/events | `docs/architecture/04-routing-and-events.md` |
|
||||
| Rendering, theming, vega-embed, preview | `docs/architecture/05-rendering-theming-preview.md` |
|
||||
| Type inference, dataset profiling | `docs/architecture/06-type-inference.md` |
|
||||
| Names, snippet↔dataset links, rename propagation | `docs/architecture/07-naming-and-relationships.md` |
|
||||
| Milestone scope, build order | `docs/IMPLEMENTATION-PLAN.md` |
|
||||
| Project philosophy / identity | `SOUL.md` |
|
||||
| Onboarding, conventions, stack | `AGENTS.md` / `CLAUDE.md` |
|
||||
| State / Zustand stores | `docs/architecture/01-state-and-stores.md` |
|
||||
| Persistence, IndexedDB, localStorage, migrations | `docs/architecture/02-persistence.md` |
|
||||
| Modals, dialog lifecycle | `docs/architecture/03-modal-system.md` |
|
||||
| URL routing, keyboard/events | `docs/architecture/04-routing-and-events.md` |
|
||||
| Rendering, theming, vega-embed, preview | `docs/architecture/05-rendering-theming-preview.md` |
|
||||
| Type inference, dataset profiling | `docs/architecture/06-type-inference.md` |
|
||||
| Names, snippet↔dataset links, rename propagation | `docs/architecture/07-naming-and-relationships.md` |
|
||||
| Milestone scope, build order | `docs/IMPLEMENTATION-PLAN.md` |
|
||||
| Project philosophy / identity | `SOUL.md` |
|
||||
| Onboarding, conventions, stack | `AGENTS.md` / `CLAUDE.md` |
|
||||
|
||||
If a gap fits no existing document, consider a new section in the closest one; prefer
|
||||
extending over creating. A brand-new architecture topic can become `docs/architecture/08-*.md`
|
||||
|
||||
@@ -25,11 +25,11 @@ changes. Categorize:
|
||||
Read the current version from `package.json`. The project uses **simplified semver during
|
||||
pre-1.0**:
|
||||
|
||||
| Bump | When | Example |
|
||||
| --- | --- | --- |
|
||||
| **Minor** (`0.x.0`) | New features, UI changes, behavior changes | `0.1.0` → `0.2.0` |
|
||||
| **Patch** (`0.x.y`) | Bug fixes, polish, performance, internal | `0.1.0` → `0.1.1` |
|
||||
| **Major** (`1.0.0`) | Only when declaring public stability (user decision) | — |
|
||||
| Bump | When | Example |
|
||||
| ------------------- | ---------------------------------------------------- | ----------------- |
|
||||
| **Minor** (`0.x.0`) | New features, UI changes, behavior changes | `0.1.0` → `0.2.0` |
|
||||
| **Patch** (`0.x.y`) | Bug fixes, polish, performance, internal | `0.1.0` → `0.1.1` |
|
||||
| **Major** (`1.0.0`) | Only when declaring public stability (user decision) | — |
|
||||
|
||||
Present the categorized changes and your recommended bump type to the user **for confirmation
|
||||
before proceeding**.
|
||||
|
||||
Reference in New Issue
Block a user