diff options
| author | Danilo M. <danix@danix.xyz> | 2026-08-13 10:54:07 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-08-13 10:54:07 +0200 |
| commit | df6461fa9136f2110c8a24567a3e4a32432a9476 (patch) | |
| tree | 20b78ada80d95da16a7ec0ce21c0a04e1c14f97f /docs/superpowers/specs | |
| parent | 2d451e35e95a580d0e81c2e1bf7220d879490864 (diff) | |
| download | qtmaildir-df6461fa9136f2110c8a24567a3e4a32432a9476.tar.gz qtmaildir-df6461fa9136f2110c8a24567a3e4a32432a9476.zip | |
docs: implementation plan for the rule builder
Twelve tasks against the design approved today, TDD throughout: RuleQuery
comes first as a value type with no widget dependency, tested on exact
strings, and the dialog is wired to it only once parsing and compiling
round-trip.
Two tasks carry the guarantees the design was shaped around rather than
merely testing behaviour. Task 7 round-trips every query shape present in
the live rules file and pins it with a mutation check, since a compile
that differs by one paren would rewrite a file a second tool reads. Task
6 pins whole-query rejection, because a parser that salvages the part it
understands is how a not clause goes missing and a live mail filter
silently widens.
Queries in the tests are generic placeholders. The shapes are what is
under test and they survive substitution intact.
Diffstat (limited to 'docs/superpowers/specs')
0 files changed, 0 insertions, 0 deletions
