Skip to content

E14 · F11 — A code base ready for curves ​

Benefit hypothesis: the debt E01 left — repeated test helpers, two path writers, a folder of 50 model files, functions without a property test — is paid before curves add a second kind of point, so that E14 builds on one structure instead of two.

Written at RET-001 (2026-10-13), at the Product Owner's request: plan the clean-up and the folder structure before the next epic. Its stories are drafts; the Product Owner sets them ready.

Acceptance criteria ​

  1. The test helpers repeated across files (typing in a field, reading a text, mounting the playground, building a rectangle, the shoelace area) live once, in shared test modules.
  2. The library has one writer of path data; contourToPathData and its separators are gone or are the writer's oracle only, declared once.
  3. A rounded contour computes each corner's triple and turning angle once.
  4. The folders of src/ and playground/ follow the layout chosen by SP-010, written in docs/conventions/files.md; no folder holds more than the limit it sets.
  5. Every function of src/math/ and src/geometry/ has a property test: the list of tests/fitness.test.ts is empty.
  6. Behavior is unchanged: every existing test passes, with the same values.

Stories ​

In delivery order.

IDTypeTitleStatus
SP-010SpikeResearch for F11: folder layouts and test placementdraft
EN-020EnablerProperty tests for the nine functions without onedraft
EN-021EnablerShared test helpers, one path writer, one pass per cornerdraft
CHK-010CheckpointCheckpoint in the middle of F11draft
EN-022EnablerFolders of the library and the playgrounddraft
AUD-010AuditAudit F11draft
VAL-010ValidationValidate F11draft

Feature plan ​

Acceptance criterionRealized byVerified by
F11.AC1EN-021AUD-010
F11.AC2EN-021AUD-010
F11.AC3EN-021AUD-010
F11.AC4SP-010, EN-022AUD-010
F11.AC5EN-020tests/fitness.test.ts
F11.AC6every storynpm run check:all