backlog: eight Steps-view items from the Windmill/Kestra evaluation - #80
Merged
Conversation
wshallwshall
enabled auto-merge (squash)
July 30, 2026 19:36
Filed #232-#239. Five are gaps the evaluation surfaced in our own surface rather than anything the vendors would have fixed; three are ideas worth borrowing from Windmill without adopting it. #232 routers get no Steps view at all (ADR 0076 §3 scoped them out; a router returns handler names, so the row contract has no kind that fits -- ADR-first, it widens the grammar) #233 blockExtent/walkMove/resolveDrop each exist TWICE, in stepsModel.ts and again in the CSP-isolated stepsWebview.js; only the model side is tested, so a drift shows up as a mis-landed drop with green tests #234 projection refreshes on save only -- filed as REVISIT, not a bug: it is ADR 0076 §5's deliberate InterSystems guardrail, and the live-value skip is #225's correctness fix for disk-vs-buffer line misalignment. Any change amends the ADR. #235 parameter forms from Python type hints (widens what is editable WITHOUT widening the recognition grammar) #236 test-this-step / test-up-to-step with pinned upstream values #237 per-argument input modes -- a presentation of the value-expression classes ADR 0089 §5 already computes #238 OpenFlow attributes as a completeness CHECKLIST; explicitly not a compatibility target, and not a declarative artifact (#26, 0076 §7) #239 re-measure estate coverage On #239, correcting the evaluation's own error: it claimed nobody had measured the opaque-row fraction. Wrong. ADR 0089 scanned 87 files / 486 functions / 3,852 statements and found ~66% opaque, ~42% editable after Phase A, and says in §5 the scan is repeatable by design. What is unknown is the number TODAY, after the palette, fan-out and picker landed -- so this is a re-measure, and the item says so. The first attempt at this commit was blocked by the forbidden-content gate: the estate note named the corpus by its customer token. The gate was right and the name is gone -- #239 now says to confirm the path with the owner. Numbers allocated via scripts/coord/alloc.ps1 (ledger gate). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
wshallwshall
force-pushed
the
steps-view-backlog
branch
from
July 30, 2026 19:36
f68478d to
6c01cc0
Compare
This was referenced Jul 30, 2026
wshallwshall
added a commit
that referenced
this pull request
Jul 30, 2026
PR #80 appended eight Steps-view items to docs/BACKLOG.md without the status banner every numbered item must carry, so tests/test_backlog_status_check.py::test_the_real_backlog_satisfies_the_invariant began failing on main itself (8 errors, first at line 6905). Because GitHub tests each PR merged into main, every open PR inherited the failure: #81, #74, #71, #66 and #60 were all blocked, three of them with auto-merge armed and unable to fire. Adds exactly one leading banner per item. Seven use the open/prioritized form; #239 uses the partial form, because its measurement ran and is recorded on PR #81 while the re-runnable scripts/quality/lens_coverage.py is still unmerged -- the number is not yet reproducible from main. The banners are deliberately minimal and do not re-litigate any item's verdict. #234 in particular is left explicitly unsettled rather than entrenched: it was filed as "revisit, not a bug" after the owner asked for a fix, and that framing is still open. Verified: scripts/docs/backlog_status_check.py exits 0 (237 items) and tests/test_backlog_status_check.py is 15 passed, was 14 passed 1 failed. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Files #232–#239 in
docs/BACKLOG.md. Numbers allocated throughscripts/coord/alloc.ps1, so the ledger gate passes.Context: an evaluation of Windmill and Kestra as alternatives to the Steps view. The verdict was adopt neither — but the evaluation surfaced five real gaps in our own surface, and three ideas worth borrowing from Windmill without adopting it.
Gaps in our surface
Send(...)to an outbound, and a barereturn []already means filter in a Handler — so no existing row kind fits. ADR-first: this widens the grammar.blockExtent,walkMove,resolveDropeach exist instepsModel.tsand again in the CSP-isolatedstepsWebview.js. Only the model side is tested, so a drift presents as "the drop landed somewhere other than the indicator said" — with green tests.Borrowed ideas
One correction worth reading
The evaluation asserted that nobody had measured what fraction of the handler corpus degrades to opaque
coderows. That was wrong, and the owner caught it. ADR 0089 scanned 87 files / 486msg-manipulating functions / 3,852 statements, found ~66% opaque with 100% of handlers rendering zero editable action rows, and records ~42% editable after Phase A — and §5 states the scan is repeatable by design.What is genuinely unknown is the number today, after ADR 0106's palette, ADR 0108's fan-out and ADR 0104's picker landed. So #239 is filed as a re-measure, marked P1, and carries the correction in its own Source line so the error doesn't get re-imported later.
Note on the gates
The first commit attempt was blocked by the forbidden-content gate — the estate note named the corpus by its customer token. The gate was right; the name is out, and #239 now says to confirm the path with the owner.
🤖 Generated with Claude Code