Skip to content

E01 — Retrospective ​

Dates: 2026-10-12 to 2026-10-13. Story: RET-001. Participants: Product Owner, Claude Code.

E01 delivered shapes drawn from numbers in eight features, in six days. The retrospective changed how the project works more than any feature did: no more waiting for servers, measures of every command, a local library of sources, expert reviewing agents, a cleaner repository and a playground that is easier to use.

1. Facts ​

MeasureE01
Features delivered8 (F01, F02, F07, F03, F09, F08, F04, F06); F10 moved to E14, F05 to E15
Stories70, among them 9 spikes, 9 checkpoints, 9 audits, 9 validations, a review and this retrospective
Commits544 before the history restart
ADRs39 (two written at this retrospective)
Library121 modules — model 50, geometry 41, math 18, io 7, render 5; 88 exported functions
Tests744, in 13.6 s; 100 % coverage of src/; check:all in about 50 s locally
CIabout 2 min per run; at least 40 min spent waiting for it in explicit loops
Active time, by featureF01 4 h 28, F08 3 h 29, F04 3 h 25, F06 2 h 24, F03 2 h 22, F02 2 h 20, F07 1 h 59, F09 1 h 17 (npm run metrics)
Most frequent commandscat, python3, grep, sed (reading and editing files); git push 46 s median, the pre-push check

The durations before the metrics hooks are estimates from the transcripts: they include the time spent writing each command.

2. Logged items, decided ​

The improvement log held 88 rows and the feedback log 17; the retrospective opened with one table of them all, decided row by row by the Product Owner.

ThemeItemDecisionWhere it went
Branches and CIa develop branch; no CI on work branches; checks run twice; releases for every doc pushdoneADR-0038
Branches and CIfaster CIdone through ADR-0038: one run per release; jobs mergedci.yml
Dependenciesread release notes before upgrading; a cooldown on fresh versionsdone: 7 daysdocs/tooling/versions-and-security.md, .ncurc.cjs
DependenciesDependabot version updatesdropped; security updates keptADR-0038
Metricslog every command with its time; time and tokens per story and task; reportsdonedocs/tooling/metrics.md
Metricsan exact token counter; a session timer; the call runningdone: the status linedocs/tooling/metrics.md
Metricsa report of time and tokens at the end of each turndonenpm run metrics:session
Metricsa watchdog relaunching a stalled runlater: the status line shows a silent session; no reliable relaunch existsimprovement log
Sourcesa local library of the pages read, searched before going onlinedone: SQLite full-text search behind an MCP serverADR-0039
Agentsexpert agents with their own documents, in the backgrounddone: math, verification, functional analysis, documentationdocs/tooling/agent.md
Agentsa domain-modelling expertpart of the functional-analyst.claude/agents/functional-analyst.md
Agentsa setup portable to other toolsdone: AGENTS.md; documentation bundled offline comes with the libraryAGENTS.md
Agentsseveral passes on the configurationdone in this retrospective; again every four to five epicsdocs/process/agile.md
Agentsa quiet terminal during runsdone: commits and status line only/run
Agentsthe bash guard denying quoted commandsfixed: here-document bodies are skipped.claude/hooks/guard-bash.ts
Agentsa Stop hook to keep runs goingnot now: runs did not stop early in E01—
Repositorythe Product Owner's words removed from every pagedonedocs/conventions/writing.md
Repositorythe old history replaced by one commitdone, with a summary keptdocs/process/history.md
Repositorystricter commit messagesnot needed: no subject starts with a capital; ids inside are allowed—
Repositorypackage.json and configuration files tidieddone; overrides checked, still neededdocs/tooling/dependencies.md
Documentationmodern writing rules; diagrams as code; every page reworkeddone: scanning rules, Mermaid, every folder rereaddocs/conventions/writing.md
Processthe agile method on one clear pagedonedocs/process/agile.md
Processa start-of-project interview, the agent as functional analystdonedocs/playbook/analysis.md
Processa complete experience report and a starter kitdonethis record, docs/playbook/setup.md
Processask early which things are kinds of one thing; read rules in their natural sensedonedocs/playbook/analysis.md
Processa rules review every four to five epics and at the end, harden by defaultadopteddocs/process/agile.md
Processthe epics' order on the backlog's front pagedonedocs/backlog/README.md
Processparallel threads; several projects at oncelater, after several epicsimprovement log
Processthinking sessions on what stays public with a paid editionlater, before the pro editionimprovement log
Playgrounda simpler interface: a floating toolbar, grouped panels, a pipeline column, a resetdoneplayground/index.html
Playgrounda short guided test per feature, the full recheck at the epic reviewdone: ?guide=epic/review, /run
Playgroundthe playground asking its own questions, answered by voicelater: E12 or the editor applicationsimprovement log
Playgroundstep 72: the shape seemed to leave the canvasfixed: a margin of 40playground/show-shape.ts
Playground"press Enter" in the steps while the drawing follows the typingkept: a point's X and Y apply on Enter, so that a minus sign moves nothing yetdocs/guide/e01-draw-shapes.md
Playgroundfields red after choosing a rectangle or a polygon from a free shapefixedplayground/write-whole-shape-fields.ts
Toolsknipdoneknip.json
Toolsa property test for every math and geometry functiondone as a fitness function; nine functions listed until EN-020tests/fitness.test.ts
Toolsa coverage floor for the playgrounddonevite.config.ts
ToolsStrykerJSlater: stryker-js issue 6210 still open on 2026-10-12docs/tooling/dependencies.md
Toolsa dev containernot now: one machine, Node.js pinned—
Toolspublished previews of feature branchesnot now: local previews suffice—
Toolsgenerated pages: board, traceability, commits per story; tests in a real browserlater: E12E12
Codeshared test helpers, one path writer, one pass per corner, folders of model/planned: F11, first feature of E14docs/backlog/features/E14-F11-code-base-ready-for-curves.md
Codeseparate tests from code, folders that make senseresearched by SP-010 before any moveF11
Codea state module for the playground, radii per shape kind, boundingBox on large lists, concave free shapes, old files without an anchorlater, with the features that need themimprovement log
Codereferences verified without a datedated when their features comedocs/references.md
Productideas for later epics: fill the parent box, a shape menu, imports of large SVG, a design system, memory of removed radiikept in the domain and the epicsdocs/domain/, docs/backlog/epics/
Productan agile workspace application for working with agentsa separate private project, after this one—

The feedback log's 17 critiques became the habits sheet of Working with the agent.

3. What helped, what hurt ​

SideHelpedHurt
Product Ownerto be filled with the Product Owner (RET-001.T2)to be filled with the Product Owner (RET-001.T2)
Agentspikes before code: no story blocked on a missing source; the auditor found real bugs (signed zeros, a spike consumed by its fillet); the guided test in the playground; questionnaires with numeric exampleswaiting for the CI; questions asked twice; reading the same pages again; a long guided test that grew with every feature; no measure of time

4. Evolvability review ​

QuestionAnswer
1. Sizemodel/ holds 50 modules, playground/ 80: folders planned in F11 (SP-010, EN-022). Tests 13.6 s, check:all about 50 s.
2. Toolsknip's trigger was reached: adopted. StrykerJS still blocked (issue 6210). Mermaid adopted for diagrams.
3. Fitness functionsa property test for every math and geometry function, now tested; the layer imports were already a lint rule.
4. Patternsrepeated test helpers and two path writers: F11 (EN-021).
5. Agent configurationAGENTS.md and CLAUDE.md rewritten; five expert agents; skills updated; the guard's false positive fixed.
6. Processcadences kept; the guided test shortened per feature; a rules review every four to five epics; Markdown backlog still fit.

5. Changes adopted ​

  • ADR-0038: develop, local checks, one CI into main, merge commits for features and releases, a 7-day cooldown.
  • ADR-0039: the local source library behind an MCP server.
  • Metrics hooks, the status line, the session report, npm run metrics read at each retrospective.
  • AGENTS.md; expert agents math-expert, verifier, functional-analyst, doc-editor.
  • Writing rules for scanning readers and for the Product Owner's decisions; Mermaid diagrams.
  • The playground's toolbar, panels, pipeline column, reset and short guided tests.
  • knip, the property fitness function, the playground's coverage floor; package.json tidied; repository-wide tests in tests/.
  • F11 in E14 for the code debt; the history restarted at 0.1.0.

6. Playbook updates ​

7. Best practices read for agent-built projects ​

SourceWhat it says that we use
REF-CC-MEMORYshort instruction files; AGENTS.md shared with other tools through an import
REF-CC-HOOKShooks for what must always happen; duration_ms on every tool call
REF-CC-SUBAGENTSreviewers in a fresh context, with their own tools and documents
REF-CC-STATUSLINEthe session's facts on a status line refreshed every second
REF-MCP-TOOLSa small tool server over stdio
REF-NNG-SCANNINGreaders scan: concise, scannable, objective text