Initial Commit
This commit is contained in:
79
.audit/status-audit-2026-05-25.md
Normal file
79
.audit/status-audit-2026-05-25.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# STATUS Audit — 2026-05-25
|
||||
|
||||
## Summary
|
||||
|
||||
- Reviewed: 35 rows marked `–` in STATUS.md (scope: non-api, non-react, non-r3f, non-games, non-python)
|
||||
- **Actually shipped (flip `–` → `✅`): 7**
|
||||
- `audio-engine-server`, `contacts`, `macos-contacts`, `audience-rules`, `streams-chunk-queue`, `streams-metadata`, `workflow`
|
||||
- **Genuinely pending (no genesis src on disk): 28**
|
||||
- `dmx`, `docs`, `pdf`, `email-templates`, `form-builder`, `caddy-imgproxy`, `emblem-solver`, `ports`, `imessage-adapter`, `sms`, `sms-providers`, `analytics-browser`, `pwa`, `electrobun`, `linter`, `overview`, `sandbox`, `test-vite`, `wip`, `clipboard`, `mcp`, `media`, `spatial-hash`, `storage-browser`, `storybook-test-utils`, `video`, `video-thumbnails`, `web-workers`
|
||||
- **Partial / drift: 0** — every found row passes all 4 hard gates (package.json + non-stub index.ts + tests + substantive README); no half-built folders detected in scope.
|
||||
|
||||
## Detail — flips needed (`–` → `✅`)
|
||||
|
||||
| Package | Folder | OpenSpec change-id | Src state |
|
||||
|---|---|---|---|
|
||||
| `@suaveplan/audio-engine-server` | `/home/paul/web/genesis/packages/media/audio/audio-engine-server` | `openspec/archive/2026-05-23-enterprise-audio-engine-server` | 7 feature dirs (adapter, error-codes, fx, internal, sink, source) + 8 `*.test.ts`; `src/index.ts` 60 lines of real named exports (`BusOrchestrator`, `ServerTimelineAdapter`, schemas, types); README 56 lines; v0.1.0. |
|
||||
| `@suaveplan/contacts` | `/home/paul/web/genesis/packages/commerce/contacts/contacts` | `openspec/archive/2026-05-20-migrate-contacts` | 8 feature dirs (core, error-codes, import-export, otel, schemas, stores, tree, types) + 15 `*.test.ts` + spec-conformance file; `src/index.ts` 121 lines real barrel; README 86 lines; v0.1.0. |
|
||||
| `@suaveplan/macos-contacts` | `/home/paul/web/genesis/packages/commerce/contacts/macos-contacts` | `openspec/archive/2026-05-20-migrate-macos-contacts` | 8 feature dirs (applescript, bridge, error-codes, executor, otel, parser, schemas, types) + 8 `*.test.ts` + spec-conformance; `src/index.ts` 55 lines real barrel; README 41 lines; v0.1.0. |
|
||||
| `@suaveplan/audience-rules` | `/home/paul/web/genesis/packages/commerce/contacts/audience-rules` | `openspec/archive/2026-05-23-enterprise-audience-rules` | 7 feature dirs (predicates, schemas, segment-evaluator, segment-refresher, store, types, error-codes) + 6 `*.test.ts` + spec-conformance; `src/index.ts` 67 lines real barrel with full docblock; README 93 lines; v0.1.0. |
|
||||
| `@suaveplan/streams-chunk-queue` | `/home/paul/web/genesis/packages/foundation/flow/streams-chunk-queue` | `openspec/archive/2026-05-23-enterprise-streams-chunk-queue` | 11 feature dirs (binary-protocol, decryptor, errors, events, hooks, queue, rate-limiter, storage-adapter, telemetry, types, validator) + 13 `*.test.ts`; `src/index.ts` 82 lines real barrel; README 70 lines; v0.1.0. |
|
||||
| `@suaveplan/streams-metadata` | `/home/paul/web/genesis/packages/foundation/flow/streams-metadata` | `openspec/archive/2026-05-23-enterprise-streams-metadata` | 6 feature dirs (errors, events, exif, metadata, mime, types) + 4 `*.test.ts`; `src/index.ts` 23 lines but with substantive named exports incl. `STREAMS_METADATA_CODES`, error classes, factories; README 70 lines; v0.1.0. (Smallest of the shipped set — verify next consumer agrees with surface, but it satisfies all 4 gates.) |
|
||||
| `@suaveplan/workflow` | `/home/paul/web/genesis/packages/foundation/flow/workflow` | `openspec/archive/2026-05-24-enterprise-workflow` | 9 feature dirs (compensation, constants, core, errors, middleware, otel, steps, types, utils) + 14 `*.test.ts`; `src/index.ts` 118 lines real barrel; README 127 lines; v0.1.0. |
|
||||
|
||||
## Detail — partials
|
||||
|
||||
None. Every directory matching the scoped names that exists on disk fully passes gates (1)–(4). The remaining 28 rows have **zero** package directory under `packages/<cat>/<plugin>/<pkg>/` matching the package name (verified via `find packages/ -type d -name <pkg>`).
|
||||
|
||||
## Detail — true leaves (no `@suaveplan/*` runtime deps, ready to migrate)
|
||||
|
||||
Ranked smallest/cleanest leaf first. LOC = `wc -l` over all `*.ts` under main-branch `src/`. "ext deps" = non-`tslib` runtime deps in `package.json`. All listed packages have **zero** `@suaveplan/*` runtime dependencies in main — they can be migrated without any prior-package gating.
|
||||
|
||||
### Tier 1 — trivial leaves (≤ 1k LOC, 0–1 external dep)
|
||||
|
||||
1. **`wip`** — main src 18 LOC, ext deps: 0 (tslib only). Spec `enterprise/wip.md` 116 lines. The smallest possible leaf; effectively a placeholder package per spec — verify scope before swarming.
|
||||
2. **`test-vite`** — main src 20 LOC, ext deps: `vite`, `vitest` (catalog). Spec `enterprise/test-vite.md` 101 lines. Tiny build-helper; pure tooling glue.
|
||||
3. **`caddy-imgproxy`** — main src 49 LOC, ext deps: 0. Spec `enterprise/caddy-imgproxy.md` 118 lines. Server-tier image-proxy Caddy config emitter; very small.
|
||||
4. **`overview`** — main src not in `src/` (skill loader package), 1 `@suaveplan/*` dep is install-time only per package.json structure (`deps: {}`). Spec `enterprise/overview.md` 116 lines. Already named in CLAUDE.md foundation; safe leaf.
|
||||
5. **`storybook-test-utils`** — main src 392 LOC, ext deps: `@storybook/testing-library`, `@testing-library/react`, `react`. Browser-tier. Spec `enterprise/storybook-test-utils.md` 101 lines. Pure adapter shims.
|
||||
6. **`spatial-hash`** — main src 663 LOC, ext deps: 0. Spec `enterprise/spatial-hash.md` 116 lines. Pure-algo gaming-adjacent broad-phase; trivial leaf despite categorisation note (CLAUDE.md says non-games scope here, but this is a generic data structure, not gameplay logic).
|
||||
7. **`linter`** — main src 856 LOC, ext deps: `@biomejs/biome`, `glob`, `remark*`, `unified`, `unist-util-visit`. Spec 118 lines. Server-tier markdown/biome wrapper; many ext deps but all leaf-stable.
|
||||
|
||||
### Tier 2 — small leaves (~1–2k LOC, 0 `@suaveplan/*` runtime deps)
|
||||
|
||||
8. **`clipboard`** — main src 900 LOC, ext deps: 0. Browser-tier. Spec 104 lines.
|
||||
9. **`mcp`** — main src 1024 LOC, ext deps: `zod`. Spec 119 lines. MCP server/client foundation; promising fresh-build candidate.
|
||||
10. **`sandbox`** — main src 3432 LOC, ext deps: 0. Server-tier. Spec 118 lines. Larger but zero @suaveplan deps.
|
||||
11. **`pdf`** — main src 9436 LOC, ext deps: 0. Server-tier. Spec 118 lines. Big but a clean leaf (likely consumes only pdfkit/puppeteer-style deps inlined as devDeps in main); inspect before swarming.
|
||||
12. **`pwa`** — main src 2336 LOC, ext deps: 0. Browser-tier. Spec 115 lines.
|
||||
13. **`emblem-solver`** — main src 2003 LOC, ext deps: 0. Spec 116 lines.
|
||||
|
||||
### Tier 3 — leaves with one `@suaveplan/*` runtime dep (gate one already-shipped pkg)
|
||||
|
||||
14. **`analytics-browser`** — 1037 LOC, depends on `@suaveplan/events` (shipped ✅).
|
||||
15. **`web-workers`** — 961 LOC, depends on `@suaveplan/events` (shipped ✅).
|
||||
16. **`storage-browser`** — 1724 LOC, depends on `@suaveplan/storage` (shipped ✅).
|
||||
17. **`imessage-adapter`** — 718 LOC, depends on `@suaveplan/events` (shipped ✅).
|
||||
18. **`video-thumbnails`** — 1067 LOC, depends on `@suaveplan/error` (shipped ✅).
|
||||
19. **`sms-providers`** — 1755 LOC, depends on `@suaveplan/error` (shipped ✅).
|
||||
|
||||
### Tier 4 — multi-dep but all deps already shipped
|
||||
|
||||
20. **`media`** — 400 LOC; depends on `@suaveplan/mime` (shipped). Smallest of the multi-dep group. **Naming note:** the genesis category dir is also called `media/`, so the package will live at `packages/media/<plugin>/media/` — confirm plugin assignment in `scripts/folder-reorg/assignment.yml` before migration.
|
||||
21. **`email-templates`** — 1953 LOC; React-tier (peer deps on `react`/`react-dom`). No @suaveplan runtime deps.
|
||||
22. **`form-builder`** — 1355 LOC; `@suaveplan/error` + `@suaveplan/events` (both shipped).
|
||||
23. **`ports`** — 2921 LOC; `@suaveplan/geo` (verify shipped; CLAUDE.md lists `geo` as shipped).
|
||||
24. **`sms`** — 1389 LOC; `@suaveplan/error` + `@suaveplan/events` (both shipped).
|
||||
25. **`docs`** — 1136 LOC; zero `@suaveplan/*` runtime deps (only `glob`/`remark*`/`unified`/`gray-matter`). Surprisingly a true leaf despite being listed mid-tier — could move to Tier 2 if confirmed.
|
||||
26. **`video`** — 1517 LOC; `@suaveplan/error` + `@suaveplan/events` (both shipped).
|
||||
27. **`dmx`** — 14012 LOC; `@suaveplan/events` + `@suaveplan/timing` (both shipped). **Largest pending** in scope.
|
||||
28. **`electrobun`** — 2169 LOC; `@suaveplan/cli` + `@suaveplan/config` + `@suaveplan/templates` (all shipped) + external `iconz`.
|
||||
|
||||
### Noteworthy constraints
|
||||
|
||||
- **`docs` is misclassified in main as having deps** — the actual `dependencies` block is purely external (markdown toolchain). It's a true leaf.
|
||||
- **`mcp`** at 1024 LOC + only `zod` is the highest-value/lowest-risk net-new build candidate; consider promoting in priority.
|
||||
- **`overview`** is already listed under genesis foundation in CLAUDE.md as `overview` (machine-readable monorepo manifest). The `–` row in STATUS.md may be stale — **double-check disk** before swarming; if a sibling `overview` package exists outside the audited categories it may already be `✅` and just missing from this row's status. (My `find` against `packages/` for `overview` returned MISSING, so as of audit time the row is correct, but the spec sketches a richer surface than the CLAUDE.md description — reconcile before migration.)
|
||||
- **`pdf` at 9.4k LOC and `dmx` at 14k LOC** are large enough that a single agent migration is risky — plan as multi-chunk OpenSpec changes (similar to recent api-plugin-campaigns chunks A/B/C).
|
||||
- **`spatial-hash`** is technically gaming-category in CLAUDE.md taxonomy; user's scope filter excludes "games" but a generic spatial hash is a foundation data-structure — confirm whether it belongs in scope before migrating.
|
||||
- **`storage-browser`** in main is superseded — the `2026-05-12-enterprise-browser-storage-browser-superseded-by-split` archive plus shipped `storage-browser-{indexeddb,localstorage,opfs}` rows in STATUS.md (lines 654/659 confirmed) means this row should likely be **retired**, not migrated. STATUS.md row at line 740 is stale; the package was split.
|
||||
Reference in New Issue
Block a user