Project storage runtime: ADR-0015 + ADR-0004/0007 amendments
Designs track-2 lifecycle and persistence end-to-end: per-command write-through to db+yaml+csv+history.log gated by the combined db persistence logic with commit-db-last ordering; existence-only load with explicit rebuild command; --resume CLI flag backed by <data-root>/last_project; in-TUI list-with-browse picker; lock file for single-instance enforcement; fatal-banner-then-quit failure model (with --resume making restart cheap); fatal CSV row-load errors with full diagnosis; YYYYMMDD-word-word-word temp naming with display-name prettifier; collision-checked names for both temp and user-supplied projects. Project name lives only on the filesystem (not duplicated in YAML). ADR-0004 and ADR-0007 amended in place. requirements.md and CLAUDE.md updated; OOS-6 (global rolling history) tracked as deferred.
This commit is contained in:
+31
-6
@@ -100,11 +100,12 @@ against it.
|
||||
|
||||
- [ ] **A1** All canonical app-level commands implemented and
|
||||
available in both modes: `save`, `save as`, `load`, `new`,
|
||||
`export`, `import`, `seed`, `replay`, `undo`, `redo`, `mode`,
|
||||
`help`, `hint`, `quit`.
|
||||
`rebuild`, `export`, `import`, `seed`, `replay`, `undo`,
|
||||
`redo`, `mode`, `help`, `hint`, `quit`.
|
||||
*(Progress: `quit`/`q` and `mode simple|advanced` implemented;
|
||||
the rest land alongside the features they belong to — `save`
|
||||
and friends in track 2, `seed` in the seeding iteration, etc.)*
|
||||
the rest land alongside the features they belong to — `save`,
|
||||
`load`, `new`, `rebuild`, `export`, `import` in track 2
|
||||
(ADR-0015), `seed` in the seeding iteration, etc.)*
|
||||
|
||||
## DSL data commands
|
||||
|
||||
@@ -242,8 +243,23 @@ against it.
|
||||
- [ ] **P4** `load` opens a picker listing temp projects with
|
||||
timestamps, with the option to browse to an arbitrary location.
|
||||
- [ ] **P5** `playground.db` is a derived artifact: rebuilt
|
||||
silently when missing, rebuilt with confirmation and a change
|
||||
summary when present (per ADR-0004).
|
||||
silently when missing; rebuilt explicitly via the new
|
||||
`rebuild` app-level command, which prompts with a change
|
||||
summary before reconstructing from `project.yaml` + `data/`
|
||||
(per ADR-0004 amendment 2 and ADR-0015 §7).
|
||||
- [ ] **P-NAME-1** Temp project directory naming pattern:
|
||||
`<YYYYMMDD>-<word>-<word>-<word>` from a built-in wordlist
|
||||
(ADR-0015 §2). Date-sortable; collisions checked against
|
||||
existing folders and the slug is regenerated on the rare
|
||||
collision. User-supplied save names that already exist as
|
||||
folders are refused with a friendly error.
|
||||
- [ ] **P-NAME-2** Display-name prettifier converts a project
|
||||
directory name to a human-readable display name: strip a
|
||||
leading `YYYYMMDD-` for temp projects; split kebab / snake /
|
||||
camel; title-case each word (ADR-0015 §2).
|
||||
- [ ] **P-NAME-3** The current project's display name is shown
|
||||
in the UI status bar at all times, prefixed with `Project:`
|
||||
(ADR-0015 §2).
|
||||
|
||||
## Project file format (per ADR-0004)
|
||||
|
||||
@@ -318,6 +334,11 @@ against it.
|
||||
## CLI
|
||||
|
||||
- [ ] **L1** Load a project via a positional CLI argument.
|
||||
- [ ] **L1a** `--resume` CLI flag opens the most recently used
|
||||
project (path tracked in `<data-root>/last_project`). Errors
|
||||
cleanly if no previous project exists or the recorded path is
|
||||
gone; mutually exclusive with a positional path argument
|
||||
(ADR-0015 §7).
|
||||
- [~] **L2** Submit a command alongside project load — deferred,
|
||||
not v1.
|
||||
|
||||
@@ -408,6 +429,10 @@ necessarily qualitative, the criterion is named and the bar is
|
||||
- [-] **N3** Cross-emulator visual regression coverage — per
|
||||
ADR-0008. Crossterm abstracts terminals adequately; we revisit
|
||||
only if a real regression surfaces.
|
||||
- [~] **N4** Global rolling input history (cross-session,
|
||||
cross-project). Mentioned in I2's wording; deferred per
|
||||
ADR-0015 §12 — project-scoped history (via `history.log`) is
|
||||
the v1 surface. Revisit if real demand emerges.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user