9.9 KiB
9.9 KiB
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
–→✅): 7audio-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)
wip— main src 18 LOC, ext deps: 0 (tslib only). Specenterprise/wip.md116 lines. The smallest possible leaf; effectively a placeholder package per spec — verify scope before swarming.test-vite— main src 20 LOC, ext deps:vite,vitest(catalog). Specenterprise/test-vite.md101 lines. Tiny build-helper; pure tooling glue.caddy-imgproxy— main src 49 LOC, ext deps: 0. Specenterprise/caddy-imgproxy.md118 lines. Server-tier image-proxy Caddy config emitter; very small.overview— main src not insrc/(skill loader package), 1@suaveplan/*dep is install-time only per package.json structure (deps: {}). Specenterprise/overview.md116 lines. Already named in CLAUDE.md foundation; safe leaf.storybook-test-utils— main src 392 LOC, ext deps:@storybook/testing-library,@testing-library/react,react. Browser-tier. Specenterprise/storybook-test-utils.md101 lines. Pure adapter shims.spatial-hash— main src 663 LOC, ext deps: 0. Specenterprise/spatial-hash.md116 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).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)
clipboard— main src 900 LOC, ext deps: 0. Browser-tier. Spec 104 lines.mcp— main src 1024 LOC, ext deps:zod. Spec 119 lines. MCP server/client foundation; promising fresh-build candidate.sandbox— main src 3432 LOC, ext deps: 0. Server-tier. Spec 118 lines. Larger but zero @suaveplan deps.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.pwa— main src 2336 LOC, ext deps: 0. Browser-tier. Spec 115 lines.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)
analytics-browser— 1037 LOC, depends on@suaveplan/events(shipped ✅).web-workers— 961 LOC, depends on@suaveplan/events(shipped ✅).storage-browser— 1724 LOC, depends on@suaveplan/storage(shipped ✅).imessage-adapter— 718 LOC, depends on@suaveplan/events(shipped ✅).video-thumbnails— 1067 LOC, depends on@suaveplan/error(shipped ✅).sms-providers— 1755 LOC, depends on@suaveplan/error(shipped ✅).
Tier 4 — multi-dep but all deps already shipped
media— 400 LOC; depends on@suaveplan/mime(shipped). Smallest of the multi-dep group. Naming note: the genesis category dir is also calledmedia/, so the package will live atpackages/media/<plugin>/media/— confirm plugin assignment inscripts/folder-reorg/assignment.ymlbefore migration.email-templates— 1953 LOC; React-tier (peer deps onreact/react-dom). No @suaveplan runtime deps.form-builder— 1355 LOC;@suaveplan/error+@suaveplan/events(both shipped).ports— 2921 LOC;@suaveplan/geo(verify shipped; CLAUDE.md listsgeoas shipped).sms— 1389 LOC;@suaveplan/error+@suaveplan/events(both shipped).docs— 1136 LOC; zero@suaveplan/*runtime deps (onlyglob/remark*/unified/gray-matter). Surprisingly a true leaf despite being listed mid-tier — could move to Tier 2 if confirmed.video— 1517 LOC;@suaveplan/error+@suaveplan/events(both shipped).dmx— 14012 LOC;@suaveplan/events+@suaveplan/timing(both shipped). Largest pending in scope.electrobun— 2169 LOC;@suaveplan/cli+@suaveplan/config+@suaveplan/templates(all shipped) + externaliconz.
Noteworthy constraints
docsis misclassified in main as having deps — the actualdependenciesblock is purely external (markdown toolchain). It's a true leaf.mcpat 1024 LOC + onlyzodis the highest-value/lowest-risk net-new build candidate; consider promoting in priority.overviewis already listed under genesis foundation in CLAUDE.md asoverview(machine-readable monorepo manifest). The–row in STATUS.md may be stale — double-check disk before swarming; if a siblingoverviewpackage exists outside the audited categories it may already be✅and just missing from this row's status. (Myfindagainstpackages/foroverviewreturned 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.)pdfat 9.4k LOC anddmxat 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-hashis 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-browserin main is superseded — the2026-05-12-enterprise-browser-storage-browser-superseded-by-splitarchive plus shippedstorage-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.