Step 2: Add manifest package with YAML data model and persistence.

Implements Manifest and Entry structs with YAML tags, New() constructor,
Load(path) for reading, and Save(path) with atomic write (temp file +
rename). Tests cover round-trip serialization, atomic save cleanup,
entry type invariants, nonexistent file error, and empty manifest.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-23 21:24:56 -07:00
parent 6cadda01a8
commit 7a3d78d741
4 changed files with 328 additions and 6 deletions

View File

@@ -7,7 +7,7 @@ ARCHITECTURE.md for design details.
## Current Status
**Phase:** Step 1 complete. Ready for Steps 2 & 3 (can be parallel).
**Phase:** Step 2 complete. Ready for Step 3 (Store Package) and then Step 4.
**Last updated:** 2026-03-23
@@ -16,6 +16,9 @@ ARCHITECTURE.md for design details.
- **Step 1: Project Scaffolding** — removed old C++ files and `.trunk/` config,
initialized Go module, added cobra + yaml.v3 deps, created package dirs,
set up cobra root command with `--repo` flag.
- **Step 2: Manifest Package** — `Manifest` and `Entry` structs with YAML tags,
`New()`, `Load(path)`, and `Save(path)` with atomic write. Tests cover
round-trip, atomic save, entry types, nonexistent file, and empty manifest.
## In Progress
@@ -23,8 +26,7 @@ ARCHITECTURE.md for design details.
## Up Next
Step 2 (Manifest Package) and Step 3 (Store Package) these can be done
in parallel.
Step 3 (Store Package), then Step 4 (Garden Core).
## Known Issues / Decisions Deferred
@@ -39,3 +41,4 @@ in parallel.
|---|---|---|
| 2026-03-23 | — | Design phase complete. ARCHITECTURE.md and PROJECT_PLAN.md written. |
| 2026-03-23 | 1 | Scaffolding complete. Old C++ removed, Go module initialized, cobra root command. |
| 2026-03-23 | 2 | Manifest package complete. Structs, Load/Save with atomic write, full test suite. |