2.6 KiB
2.6 KiB
Tasks — Migrate @suaveplan/profiler to genesis
0. Pre-flight (non-negotiable)
- 0.1
git statusclean inside.claude/worktrees/agent-a53dffba816b6eb95 - 0.2 Account for every worktree returned by
git worktree list(this agent's worktree + main checkout) - 0.3 Confirm
MANIFEST.mdpackage count matchesfind packages -maxdepth 3 -name package.json - 0.4 §0a Sync:
git merge-base --is-ancestor 56c1fae5078a5afff119847b4b96d86c78668f02 HEADreports true aftergit fetch /home/paul/web/genesis genesis && git merge FETCH_HEAD --no-edit
1. Spec authoring
- 1.1 Read
../suaveplan/enterprise/profiler.mdend-to-end - 1.2 Read
openspec/AGENTS.mdSections 13 and 14 - 1.3 Draft
proposal.mdwith## Source mappingtable - 1.4 Draft
specs/profiler/spec.mdwith## ADDED Requirementsand**Verified by:**lines
2. Implementation
- 2.1
src/types/— shared types module - 2.2
src/error-codes/—PROFILER_CODESregistry +ProfilerError - 2.3
src/telemetry/— OTel meter, counters, histograms - 2.4
src/profiler/—Profilerclass withClock-injection - 2.5
src/sampler/—SamplerwithTimersLike+ injectable memory-probe - 2.6
src/memory/—MemoryProfilerwith injectableHeapCapture - 2.7
src/bottleneck/—BottleneckDetector - 2.8
src/comparison/—ProfileComparator - 2.9
src/flamegraph/—FlameGraphGenerator - 2.10
src/reporter/—ProfileReporter - 2.11
src/otel/—OtelExporterwith injectablefetch+ crypto-rng - 2.12
src/index.ts— explicit named re-exports
3. Tests
- 3.1 Unit tests at
src/<feature>/<feature>.test.tsfor every module - 3.2 100/100/100/100 coverage gate met (istanbul)
- 3.3 Every
it(...)carries{ timeout: 5000 } - 3.4 All tests import from
@suaveplan/testing/runner
4. Documentation
- 4.1 Sibling
.mdfor every implementation.ts(≥200 words, basic + advanced) - 4.2
README.mdat package root
5. Pre-archive verification
- 5.1
bunx turbo lint typecheck test --filter=@suaveplan/profilergreen - 5.2
bunx turbo test:coverage --filter=@suaveplan/profiler100/100/100/100 - 5.3
bunx turbo build --filter=@suaveplan/profilergreen - 5.4
bun scripts/lint/check-feature-layout.ts | grep profiler— empty (no violations) - 5.5
bun scripts/folder-reorg/generate-manifest.tsrefreshes MANIFEST.md
6. Archive (post-merge — orchestrator's job)
- 6.1 Fold spec delta into
openspec/specs/profiler/spec.md - 6.2 Move
openspec/changes/profiler/→openspec/archive/<date>-profiler/