aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-22 15:13:05 -0500
committerCraig Jennings <c@cjennings.net>2026-05-22 15:13:05 -0500
commit57eb6843e054c73c8241bbcf7ef082f5566db7da (patch)
tree4a0a0692885a44fd877e9d30ca92fa6b983e587a
parent52202bb182dddd036b82d8863527dde4ff265967 (diff)
downloadrulesets-57eb6843e054c73c8241bbcf7ef082f5566db7da.tar.gz
rulesets-57eb6843e054c73c8241bbcf7ef082f5566db7da.zip
chore(todo): close verification/testing/subagents audit items
-rw-r--r--todo.org33
1 files changed, 12 insertions, 21 deletions
diff --git a/todo.org b/todo.org
index 4eee848..2d6ef04 100644
--- a/todo.org
+++ b/todo.org
@@ -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