Initial Commit
This commit is contained in:
141
openspec/archive/2026-05-03-barrel-explicit-exports/tasks.md
Normal file
141
openspec/archive/2026-05-03-barrel-explicit-exports/tasks.md
Normal file
@@ -0,0 +1,141 @@
|
||||
# Tasks — barrel-explicit-exports
|
||||
|
||||
Per-package gate (§13): `bunx turbo lint typecheck test --filter=@suaveplan/<pkg>` + `bunx turbo test:coverage --filter=@suaveplan/<pkg>` must be green before ticking the package.
|
||||
|
||||
Foundation packages additionally require `bunx turbo test --filter=...@suaveplan/<pkg>` (dependent sweep, §13 step 10).
|
||||
|
||||
## Foundation layer (dep sweep required)
|
||||
|
||||
- [x] `@suaveplan/error` — convert feature barrels; gate; dep sweep (202/204 pass; 2 unrelated to barrel — pre-existing `third-party-elevenlabs` missing `src/index.ts` scaffold)
|
||||
- [x] `@suaveplan/events` — convert feature barrels; gate; dep sweep (131/133 pass; same 2 pre-existing `third-party-elevenlabs`)
|
||||
- [x] `@suaveplan/logger` — convert feature barrels; gate; dep sweep (50/50 pass)
|
||||
- [x] `@suaveplan/validation` — convert feature barrels; gate; dep sweep (14/14 pass)
|
||||
- [x] `@suaveplan/crypto-utils` — convert; gate; dep sweep (53/57 pass; 4 pre-existing: third-party-elevenlabs, crypto-bin)
|
||||
|
||||
## Crypto layer
|
||||
|
||||
- [x] `@suaveplan/crypto-hash` — gate green; pre-existing coverage gap at argon2id-password.ts:37 unrelated to barrel
|
||||
- [x] `@suaveplan/crypto-curve` — gate green
|
||||
- [x] `@suaveplan/crypto-cipher` — gate green
|
||||
- [x] `@suaveplan/crypto-core` — gate green
|
||||
- [x] `@suaveplan/crypto` — lint+typecheck+test green; pre-existing dep-graph drift in `tests/dep-graph.test.ts` (asserts no `@suaveplan/bitpacker-crypto` but it is in deps) — unrelated to barrel
|
||||
- [x] `@suaveplan/crypto-sodium` — gate green
|
||||
- [x] `@suaveplan/crypto-browser` — gate green
|
||||
|
||||
## Primitives layer
|
||||
|
||||
- [x] `@suaveplan/datetime` — gate green
|
||||
- [x] `@suaveplan/timing` — gate green
|
||||
- [x] `@suaveplan/diff` — gate green
|
||||
- [x] `@suaveplan/mime` — gate green
|
||||
- [x] `@suaveplan/serialize` — gate green
|
||||
- [x] `@suaveplan/templates` — gate green
|
||||
- [x] `@suaveplan/utils` — gate green (no feature-barrel violations; only root)
|
||||
|
||||
## Config / control flow
|
||||
|
||||
- [x] `@suaveplan/env` — gate green
|
||||
- [x] `@suaveplan/feature-flags` — gate green
|
||||
- [x] `@suaveplan/fsm` — gate green
|
||||
- [x] `@suaveplan/idempotency` — gate green
|
||||
- [x] `@suaveplan/retry` — gate green
|
||||
|
||||
## Data / pagination / dedup
|
||||
|
||||
- [x] `@suaveplan/dedup` — gate green
|
||||
- [x] `@suaveplan/domain-normalizer` — gate green
|
||||
- [x] `@suaveplan/pagination` — gate green
|
||||
- [x] `@suaveplan/schema-registry` — gate green
|
||||
|
||||
## Streams / queue
|
||||
|
||||
- [x] `@suaveplan/streams` — gate green (53 test files, 617 tests)
|
||||
- [x] `@suaveplan/queue` — gate green
|
||||
|
||||
## i18n / locale
|
||||
|
||||
- [x] `@suaveplan/i18n` — gate green (340 tests)
|
||||
- [x] `@suaveplan/locale-data` — gate green
|
||||
|
||||
## API / auth / messaging
|
||||
|
||||
- [x] `@suaveplan/api-schemas` — gate green
|
||||
- [x] `@suaveplan/oauth-client` — gate green
|
||||
- [x] `@suaveplan/webhook-client` — gate green
|
||||
- [x] `@suaveplan/sitemap` — gate green
|
||||
- [x] `@suaveplan/network-websockets` — gate green
|
||||
|
||||
## Codes / barcodes / qr
|
||||
|
||||
- [x] `@suaveplan/barcode` — gate green
|
||||
- [x] `@suaveplan/qrcode` — gate green
|
||||
|
||||
## Database / storage
|
||||
|
||||
- [x] `@suaveplan/db-sqlite` — gate green (119 tests)
|
||||
- [x] `@suaveplan/storage` — gate green
|
||||
|
||||
## Email / suppression
|
||||
|
||||
- [x] `@suaveplan/dmarc` — gate green
|
||||
- [x] `@suaveplan/suppression` — gate green
|
||||
|
||||
## Image / media / svg / fonts
|
||||
|
||||
- [x] `@suaveplan/exif` — gate green
|
||||
- [x] `@suaveplan/audio-metadata` — gate green
|
||||
- [x] `@suaveplan/compress-image` — gate green
|
||||
- [x] `@suaveplan/compress-svg` — gate green
|
||||
|
||||
## Observability / platform
|
||||
|
||||
- [x] `@suaveplan/opentelemetry` — gate green
|
||||
- [x] `@suaveplan/readline` — gate green
|
||||
|
||||
## Random
|
||||
|
||||
- [x] `@suaveplan/random` — gate green (108 tests)
|
||||
- [x] `@suaveplan/pseudo-random` — gate green
|
||||
- [x] `@suaveplan/noise` — gate green
|
||||
|
||||
## Security
|
||||
|
||||
- [x] `@suaveplan/data-masking` — gate green
|
||||
- [x] `@suaveplan/password-formats` — gate green
|
||||
- [x] `@suaveplan/security-codes` — gate green
|
||||
- [x] `@suaveplan/slsa` — gate green (186 tests)
|
||||
|
||||
## Bitpacker family
|
||||
|
||||
- [x] `@suaveplan/bitpacker` — gate green
|
||||
- [x] `@suaveplan/bitpacker-schema` — gate green
|
||||
- [x] `@suaveplan/bitpacker-streaming` — gate green
|
||||
- [x] `@suaveplan/bitpacker-validation` — gate green
|
||||
|
||||
## Testing infra
|
||||
|
||||
- [x] `@suaveplan/testing` — gate green
|
||||
- [x] `@suaveplan/testing-dom` — gate green (matchers/setup converted to side-effect imports since the targets export nothing)
|
||||
- [x] `@suaveplan/testing-e2e` — gate green
|
||||
- [x] `@suaveplan/testing-integration-garage-s3` — gate green
|
||||
- [x] `@suaveplan/testing-integration-mailpit` — gate green
|
||||
- [x] `@suaveplan/testing-integration-postgres` — gate green
|
||||
- [x] `@suaveplan/testing-integration-redis` — gate green
|
||||
- [x] `@suaveplan/testing-integration-step-ca` — gate green
|
||||
- [x] `@suaveplan/testing-integration-surrealdb` — gate green
|
||||
- [x] `@suaveplan/testing-integration-typesense` — gate green
|
||||
|
||||
## Wrap-up
|
||||
|
||||
- [x] Re-run global `grep -rn "^export \* from" packages/ --include="*.ts" | grep -v /dist/ | grep -v "/src/index.ts:" | grep -v "/.select/" | grep -v "export \* as"` — zero feature-barrel `<feature>/index.ts` matches remain. Remaining lines are 21 package-root `src/index.ts` files (deferred per scope) plus 5 non-index impl files (`types.ts`, `transform.ts`, `pack-iterator.ts`, `ed25519.ts`, third-party `.d.ts` stub) which are out of scope per this change.
|
||||
- [ ] Fold `specs/monorepo-structure/spec.md` delta into `openspec/specs/monorepo-structure/spec.md`.
|
||||
- [ ] Move `openspec/changes/barrel-explicit-exports/` → `openspec/archive/2026-05-03-barrel-explicit-exports/`.
|
||||
|
||||
## Pre-existing failures observed (none caused by this change)
|
||||
|
||||
These regressions existed on `genesis` before this change and persist after; flagged here so the next agent does not attribute them to barrel-explicit-exports:
|
||||
|
||||
1. `@suaveplan/third-party-elevenlabs` — package has no `src/index.ts`; `vite build` fails with `Could not resolve entry module "src/index.ts"`. Scaffolded incompletely in the prior session.
|
||||
2. `@suaveplan/crypto-bin` — package's `build` script invokes `vite` but `vite` is not installed in the package's deps, so it falls through to `/usr/bin/bash: line 1: vite: command not found` (exit 127).
|
||||
3. `@suaveplan/crypto-hash` — `src/mac/argon2id-password/argon2id-password.ts:37` has a `pad === 0 ? s : s + …` ternary whose `pad === 0` branch is not exercised by tests; coverage drops to 99.19% (threshold is 100%). Test gap, not a barrel issue.
|
||||
4. `@suaveplan/crypto` — `tests/dep-graph.test.ts` asserts the runtime dep set is exactly `[…, "@suaveplan/events", …]` without `@suaveplan/bitpacker-crypto`, but `package.json` includes `@suaveplan/bitpacker-crypto`. Either the assertion needs to be updated to include the new dep or the dep needs to be removed; out of scope here.
|
||||
Reference in New Issue
Block a user