max / goingson
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
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 |