Skip to content

Architecture Decision Records ​

Format: Status, Context, Decision, Consequences, References. An accepted ADR is never rewritten: it is superseded by a new ADR (Superseded by ADR-XXXX). All ADRs were translated from French to English on 2026-10-08 (project rule: English everywhere); on 2026-10-13 their Context sections were reworded so that they state the Product Owner's decisions without quoting them. The decisions are unchanged. Number 0036 is not used: it was taken on the F10 feature branch and never accepted (ADR-0037).

ADRTitleStatus
0001Geometric scope: segments and circular arcsAccepted
0002Everything is a path, except textAccepted
0003Integer model, derived geometryAccepted, partly superseded by 0031, 0034 and 0035
0004Orthogonal pipes onlyAccepted
0005Parametric pipeline: numbers → maths → SVGAccepted
0006Non-destructive boolean operationsAccepted
0007Corner radius clamping: local proportional reductionAccepted
0008Instance rotation by quarter turnsAccepted
0009Toolchain: TypeScript 6, Vite, Vitest, ESLint, Prettier, VitePressAccepted
0010Strictness carried by ESLint first, TypeScript secondAccepted
0011Function kinds: @kind tag and per-kind limitsAccepted
0012One index.ts per folder, canonical import pathsAccepted
0013Prettier next to ESLint, not inside itAccepted
0014Functional core, imperative shellAccepted
0015One export per file, named like the fileSuperseded by ADR-0019
0016Explicit inputs: no default nor optional parameter in the libraryAccepted
0017Agile backlog kept in the repositoryAccepted
0018Bézier curves allowed in static drawings onlyAccepted
0019Kebab-case file names, one export per fileAccepted
0020Every feature starts with a research spike and ends with an auditAccepted
0021Agent working environment: skills, rules, hooks and an independent auditorAccepted, partly superseded by 0038 and 0040
0022Property-based tests, weekly link check, mutation tool deferredAccepted
0023Inspection cadence: demo at each feature, review and retrospective at each epicAccepted
0024Session journal and transcript search instead of a databaseAccepted, partly superseded by 0039
0025A portable core: any JavaScript engine, transcribable to another languageAccepted
0026Contributions through issues only; the agent writes every changeAccepted
0027Acceptance criteria as requirements, tests traced to them, a test report per releaseAccepted
0028Feature branches and autonomous runs: stories merge into their feature, the Product Owner merges the featureAccepted, partly superseded by 0038
0029One requested corner radius per vertex in the modelAccepted, superseded by 0033 for free shapes
0030A finished free V1, then new features in a paid editionAccepted
0031A free shape keeps the fractional vertices of a converted polygonAccepted, partly superseded by 0034
0032The rectangle is a free shape, stretched by its width and heightAccepted, partly superseded by 0033 and 0035
0033A free shape of corners, fractions until edited, points typed in the SVG's coordinatesAccepted, partly superseded by 0035
0034Only the coordinate typed is an integer; edits keep the fractionsAccepted, partly superseded by 0035
0035An angle and a position for every shapeAccepted
0037A stretched option for the regular polygonAccepted
0038A develop branch, checks run locally, one CI on the pull request into mainAccepted
0039A local library of the sources read: SQLite full-text search behind an MCP serverAccepted
0040AGENTS.md holds the rules for any coding agentAccepted