Reflect improvise-8zh: `persistence/` and `import/` now live in the
`improvise-io` sub-crate under `crates/`.
- Sub-crate list expanded to describe improvise-io's scope, its
dependencies (improvise-core, improvise-formula), and the
standalone-build guarantee.
- File Inventory reorganized: "Import layer" + persistence entries
collapsed into a single "I/O crate layers" block with paths rooted at
`crates/improvise-io/src/`.
- Updated line/test counts to current contents.
- Top-level block trimmed (persistence/format no longer live there) and
lib.rs annotated as a re-export facade.
No consumer-facing path changes; `crate::persistence::*` and
`crate::import::*` still resolve via the main crate's re-exports.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reflect Phase B of improvise-36h: `model/`, `view/`, `workbook.rs`, and
`format.rs` now live in the `improvise-core` sub-crate under `crates/`.
- Sub-crate list expanded to describe improvise-core's scope, its
dependency on improvise-formula, and the standalone-build guarantee.
- File Inventory reorganized into a single "Core crate layers" block
covering model/view/workbook/format, with paths rooted at
`crates/improvise-core/src/`.
- Updated line/test counts to match current contents (Phase A + merge
with main brought in records mode, IndexMap-backed DataStore, etc).
No architectural change; the main crate's re-exports keep every
`crate::model`/`crate::view`/`crate::workbook`/`crate::format` path
resolving unchanged, so no "How to Find Things" table edits are needed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extract the formula AST and parser into a dedicated `improvise-formula`
crate and convert the project into a Cargo workspace.
The root crate now re-exports `improvise-formula` as `crate::formula` to
maintain backward compatibility for internal callers. The repository map is
updated to reflect the new crate structure.
Co-Authored-By: fiddlerwoaroof/git-smart-commit (gemma-4-31B-it-UD-Q4_K_XL.gguf)
Add a new design principle encouraging decomposition of functions instead
of relying on early returns, as early returns often signal mixed
responsibilities.
Co-Authored-By: fiddlerwoaroof/git-smart-commit (gemma-4-31B-it-UD-Q4_K_XL.gguf)
Update the repository map with the latest project metadata, including
version bumps, updated dependency versions, and technical notes on formula
drilling, formula recomputation, and minibuffer clearing.
Co-Authored-By: fiddlerwoaroof/git-smart-commit (gemma-4-31B-it-UD-Q4_K_XL.gguf)
- Document PEG grammar as single source of truth for .improv format
- Update file format section with v2025-04-09 syntax: version line,
Initial View, pipe quoting, Views→Formulas→Categories→Data order
- Add pipe quoting convention and grammar-driven testing principles
- Update file inventory (persistence: 124+2291 lines, 83 tests)
- Add pest/pest_meta to dependency table
- Update persistence testing guidance for grammar-walking generator
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Executed-By: spot
Add VirtualMeasure to CategoryKind description, document _Measure as
third always-present virtual category, add section on fixed-point
formula evaluation strategy.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Audited SPEC.md against code — mostly accurate but redundant with
repo-map.md and design-principles.md. Minor drift in storage internals,
wizard step count, and mode representation. Salvaged product vision and
non-goals into docs/design-notes.md with staleness disclaimer.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add virtual category boundary rule: use regular_category_names() for
user-facing logic, never expose _Index/_Dim
- Document formula tokenizer keyword-aware identifier breaking
- Update repo-map test counts (356 → 510) and add regular_category_names
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add new context files to assist with repository navigation and design
consistency:
- context/repo-map.md: A roadmap for the repository.
- context/design-principles.md: Guidelines for maintaining repository
consistency.
Update CLAUDE.md to include instructions on using the new context files.
Co-Authored-By: fiddlerwoaroof/git-smart-commit (unsloth/gemma-4-26B-A4B-it-GGUF:UD-Q5_K_XL)
- Welcome overlay shown when model has no categories, listing common
commands and navigation hints to orient new users
- Vim-style keybindings:
- i / a → Insert mode (edit cell); Esc → Normal
- x → clear cell; yy / p → yank / paste
- G / gg → last / first row; 0 / $ → first / last col
- Ctrl+D / Ctrl+U → half-page scroll
- n / N → next / prev search match
- T → tile-select mode (single key, no Ctrl needed)
- ZZ → save + quit
- F / C / V → toggle panels (no Ctrl needed)
- ? → help (in addition to F1)
- Command mode (:) for vim-style commands:
:q :q! :w [path] :wq ZZ
:import <file.json> :export [path]
:add-cat <name> :add-item <cat> <item>
:formula <cat> <Name=expr> :add-view [name] :help
- Status bar now context-sensitive: shows mode-specific hint text
instead of always showing the same generic shortcuts
- Mode label changed: "Editing" → "INSERT" to match vim convention
- Title bar shows filename in parentheses when model is backed by a file
- Help widget updated with full key reference in two-column layout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>