diff options
| -rw-r--r-- | todo.org | 33 |
1 files changed, 12 insertions, 21 deletions
@@ -815,10 +815,10 @@ Each item below is a one-line summary of a sub-TODO further down. Tick the box w **** Global rules - [ ] [#B] =commits.md=: split DeepSat/Linear/Slack-specific from global rules - [ ] [#A] =commits.md= + publish flows: =humanizer=-unavailable fallback -- [ ] [#B] =verification.md=: explicit "unable to verify" reporting standard -- [ ] [#B] =testing.md=: property-based + mutation testing as escalation paths -- [ ] [#B] =testing.md=: soften absolute TDD with explicit spike protocol -- [ ] [#B] =subagents.md=: capability/availability + cost checks +- [X] [#B] =verification.md=: explicit "unable to verify" reporting standard +- [X] [#B] =testing.md=: property-based + mutation testing as escalation paths +- [X] [#B] =testing.md=: soften absolute TDD with explicit spike protocol +- [X] [#B] =subagents.md=: capability/availability + cost checks **** Languages - [X] [#A] =python-testing.md=: revisit in-memory SQLite guidance @@ -1022,30 +1022,21 @@ Several workflows make =humanizer= mandatory, but no =humanizer= skill exists in this repo. Either add the skill, install instructions, or a fallback plain-English pass that satisfies the same checks without an external skill. -*** TODO [#A] =verification.md=: add explicit "unable to verify" reporting standard +*** 2026-05-22 Fri @ 15:10:35 -0500 Added "When You Cannot Verify" standard to verification.md -The rule says run tests/lint/typecheck/build before claiming done. Add the -required final wording when a command cannot be run: command attempted, reason -it could not run, risk left unverified, and the smallest next command for the -user to run. +Added a section requiring, when a verification command can't run, a four-part report: command attempted, why it couldn't run, risk left unverified, and the smallest next command for the user. States the principle that a check that didn't run is never reported as a pass — "unable to verify" is a required honest outcome, not silence. Placed after Red Flags. -*** TODO [#A] =testing.md=: add property-based and mutation testing as escalation paths +*** 2026-05-22 Fri @ 15:10:35 -0500 Added property-based + mutation testing escalation to testing.md -The testing rules cover categories and pairwise matrices. Add guidance for -property-based testing when invariants matter across broad input domains, and -mutation testing when test quality is suspect despite high coverage. +Added an "Escalation Beyond Category and Pairwise" section: property-based testing for invariants over a broad input domain (round-trips, idempotence, ordering — Hypothesis/fast-check/proptest) and mutation testing for when high line coverage hides thin assertions (mutmut/cosmic-ray/Stryker). Both framed as escalation paths to reach for on a gap, not gates on every unit. -*** TODO [#A] =testing.md=: soften absolute TDD with an explicit spike protocol +*** 2026-05-22 Fri @ 15:10:35 -0500 Added a disciplined spike protocol to testing.md -The rule currently treats TDD as non-negotiable. Keep TDD as the default, but -define a disciplined spike exception: timebox, do not commit spike code, write -the first failing test before productionizing the discovered approach. +Formalized the existing "I need to spike first" excuse-table row into a "Spike Exception (Disciplined)" subsection under TDD Discipline: TDD stays the default, but a spike is sanctioned when all three hold — timeboxed, spike code not committed, and the first failing test written before productionizing the discovered approach. Built on the existing row rather than contradicting it. -*** TODO [#A] =subagents.md=: add capability/availability and cost checks +*** 2026-05-22 Fri @ 15:10:35 -0500 Added pre-dispatch availability + cost checks to subagents.md -The rule assumes subagents exist and should handle failures. Add "if the -environment lacks subagents, continue locally and preserve the same scope -boundaries" plus a cost check for tasks where context handoff exceeds the work. +Added a "Pre-Dispatch Checks" section with two gates: Availability (no Agent capability → do the work in the main thread under the same scope/constraints/output discipline the contract would enforce) and Cost (when writing the full contract costs more than the task, do it inline). Cross-references the existing "Don't Subagent At All" section and "Subagenting trivial work" anti-pattern rather than duplicating. *** 2026-05-22 Fri @ 15:06:04 -0500 Revised python-testing SQLite guidance toward production-like DBs |
