Skip to main content

max / goingson

Hand the drift sweep to witchbroom, and say what the tables now owe "Nothing automates this" was true when it was written and stopped being true today. `witchbroom`'s `described-drift` check reads both tables in this header: the pairing table for what to watch, the drift table for what has been answered. That makes two rows load-bearing that were previously prose. A new described module needs a pairing row in the commit that declares it. A commit touching a counterpart without the description needs a row here saying why, and an empty Closed cell reads as a finding rather than as a note to self. Acknowledges `5e16cc1`, which added the `raised` class across six JS files and changed nothing a description can say. GoingsOn infra 2bf42978.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-17 18:21 UTC
Signed with PGP, not checked
Commit: 675e88001563617f73c2dda4e6ba15d77850962c
Parent: a4362aa
1 file changed, +17 insertions, -5 deletions
@@ -126,6 +126,7 @@
126 126 //! | [`board`] | `0df3488`, both markers on the card | [`Availability::marker`] |
127 127 //! | [`projects`] | `0df3488`, both markers on the dashboard card | [`Availability::marker`] |
128 128 //! | [`day_planning`] | `0df3488`, the unblocks marker in the pool | [`Availability::frees_marker`] |
129 + //! | [`projects`], [`tasks`] | `5e16cc1`, a CSS class rename across six files | presentational only: nothing a description can say changed |
129 130 //!
130 131 //! Clean: [`contacts`], [`settings`], [`weekly_review`], [`emails`],
131 132 //! [`monthly_review`], [`problems`]. Four of those now have a commit touching
@@ -135,11 +136,22 @@
135 136 //! marker went into `weekly-review-render.js` and into [`weekly_review::focus`]
136 137 //! together, which is the only reason it is still on this line.
137 138 //!
138 - //! **Nothing automates this.** The sweep is a person running `git log` against
139 - //! two paths, so it is only as current as the last time someone thought to.
140 - //! What would close it is a check that fails when a JS file changes without its
141 - //! described module changing, which is `witchbroom`-shaped work rather than
142 - //! anything this module can do to itself.
139 + //! **The sweep runs this now, and both tables above are its input.**
140 + //! `witchbroom`'s `described-drift` check reads the pairing table for what to
141 + //! watch and the drift table for what has been answered, then reports every
142 + //! commit since a module was added that touched one of its JS counterparts and
143 + //! left the module alone. It runs on goingson only, nightly, and never on the
144 + //! four by-decision files or the ten non-screens, because those appear in no row
145 + //! of the pairing table.
146 + //!
147 + //! Two obligations follow, and neither is optional if the check is to stay
148 + //! readable. A new described module needs a row in the pairing table in the same
149 + //! commit that declares it, or the check reports `mapping-incomplete` naming it.
150 + //! And a commit that touches a counterpart without changing the description
151 + //! needs a row here saying why: either the description is behind and this is the
152 + //! fix, or the change was presentational and nothing a description can say moved.
153 + //! An empty Closed cell is a drift written down and not answered, and reads as a
154 + //! finding.
143 155
144 156 use std::sync::Arc;
145 157