invoker audit — hospice

measuring the javascript that can be deleted. scanned 2026-04-10. these bytes have served their purpose. the platform handles it now.

hospice care is not neglect. it is the recognition that a thing has done its work and the infrastructure to let it go. commandfor is not a replacement — it is a succession plan. the JS doesn't fail. it becomes unnecessary. that is the best death code can have.

triage

173
files with JS
10
terminal
163
palliative
0
active (needs JS)
2523.0kb
total JS scanned
396.6kb
deletable
16%
of JS weight
keeps living (84%) can die (16%)

hospice stages

terminal — JS is purely toggle/modal/dropdown state. the entire file's JS can be replaced by popover, commandfor, or <dialog>. delete the useState, delete the handler, add an attribute.
palliative — some JS is replaceable but the file also does fetch, animation, or complex state. partial deletion. the toggle dies, the rest lives.
active — JS is load-bearing. canvas, WebGL, data transforms, complex interactivity. not a candidate. this code is still alive.

ward (40 patients)

file JS size deletable stage
HypeCopyAnalyzer.jsx 27.8kb 16.7kb partial
13 toggle → commandfor
LensFilmStock.jsx 11.6kb 9.9kb can die
2 toggle → commandfor
VoidRegexLab.jsx 22.8kb 9.3kb partial
7 toggle → commandfor
MintArtistPortal.jsx 32.0kb 8.1kb partial
4 toggle → commandfor
HypeConstraintSurface.jsx 19.1kb 8.0kb partial
3 toggle → commandfor
strange-loop/LoopVisuals.jsx 9.4kb 8.0kb can die
3 toggle1 modal → commandfor + dialog
PixelTypeSpecimen.jsx 9.4kb 8.0kb can die
2 toggle → commandfor
NeuralTokenCalc.jsx 20.6kb 7.2kb partial
5 toggle → commandfor
NeuralModelForge.jsx 16.3kb 7.1kb partial
5 toggle → commandfor
NeuralTokenExplorer.jsx 19.3kb 7.1kb partial
11 toggle → commandfor
GenGameMathExplainer.jsx 15.4kb 7.1kb partial
17 toggle → commandfor
MintStripeConnect.jsx 24.7kb 6.9kb partial
2 toggle → commandfor
PixelTypeScaleStudio.jsx 21.2kb 6.6kb partial
4 toggle → commandfor
MintConfigurator.jsx 27.9kb 6.5kb partial
2 toggle1 parent → commandfor + :has()
MintProductCard.jsx 7.7kb 6.5kb can die
2 toggle → commandfor
MintArtGallery.jsx 20.5kb 6.5kb partial
1 toggle4 modal → commandfor + dialog
LensFiftyOne.jsx 14.2kb 6.2kb partial
4 toggle1 modal → commandfor + dialog
AdForgeCampaignView.jsx 21.0kb 5.7kb partial
6 toggle1 modal → commandfor + dialog
PixelFontPairing.jsx 19.0kb 5.7kb partial
3 toggle → commandfor
GlitchAsciiCanvas.jsx 19.0kb 5.6kb partial
7 toggle12 modal → commandfor + dialog
AdForgeCampaignParts.jsx 6.5kb 5.6kb can die
5 toggle1 modal → commandfor + dialog
PixelTypeScale.jsx 15.0kb 5.2kb partial
2 toggle → commandfor
BeatPadSequencer.jsx 5.7kb 4.8kb can die
5 toggle → commandfor
PixelSpacingScale.jsx 13.2kb 4.6kb partial
2 toggle → commandfor
MintIntegrationGuide.jsx 8.6kb 4.5kb partial
2 toggle1 modal → commandfor + dialog
NeuralThinkingOutOfOrder.jsx 24.2kb 4.5kb partial
4 toggle → commandfor
chord/ChordTuningComposer.jsx 16.4kb 4.4kb partial
5 toggle → commandfor
NeuralFlowField.jsx 20.6kb 4.4kb partial
13 toggle → commandfor
AdForgeDashboard.jsx 16.0kb 4.4kb partial
7 toggle → commandfor
NeuralBeatDecoder.jsx 18.6kb 4.3kb partial
5 toggle → commandfor
chord/ModulationExplorer.jsx 15.5kb 4.1kb partial
6 toggle → commandfor
MintWebhookLog.jsx 16.9kb 4.0kb partial
3 toggle → commandfor
chord/ProgressionPlayerFull.jsx 19.1kb 3.9kb partial
7 toggle → commandfor
VoidPayloadAuditor.jsx 17.8kb 3.8kb partial
2 toggle → commandfor
PixelGridAnatomy.jsx 25.2kb 3.6kb partial
9 toggle → commandfor
NeuralAttentionHead.jsx 10.3kb 3.6kb partial
2 toggle → commandfor
chord/ProgressionPlayer.jsx 13.0kb 3.5kb partial
7 toggle → commandfor
LensDarkroom.jsx 8.2kb 3.4kb partial
6 toggle → commandfor
NeuralConsistencyDistill.jsx 16.1kb 3.4kb partial
11 toggle → commandfor
chord/ProgressionAnalyzer.jsx 19.4kb 3.4kb partial
6 toggle → commandfor

the migration

the path from JS to platform is not a rewrite. it's a series of deletions.

step 1: popover — every dropdown that uses useState + onClick for open/close. add popover attribute to the target, popovertarget to the button. delete the state. delete the handler. delete the conditional render. baseline: available.

step 2: commandfor — every button that toggles another element. <button commandfor="target" command="toggle-popover">. declarative. the button declares its intent, the browser executes. Chrome 131+.

step 3: dialog — every modal that manages backdrop, focus trap, escape key. <dialog> does all three. showModal() is one line. the 40 lines of React state around it become nothing.

step 4: :has() + container queries — every className toggle for visual state. :has(input:checked) replaces conditional classNames. @container replaces ResizeObserver. CSS does the work.

why hospice

this code was not wrong when it was written. useState for a dropdown was the correct approach in 2021. onClick for a modal was the only option in 2019. the platform caught up. the code didn't die of failure — it died of success. the specifications shipped.

hospice care means: don't let dead code accumulate as technical debt. don't pretend it's still necessary. measure what can go, acknowledge what it did, and delete it with intent. the framework tax on a toggle button is the most expensive no-op in frontend development.

396.6kb of JS in this codebase exists because the platform hadn't shipped yet when the code was written. it has now. the question is not whether to delete it. the question is whether you'll measure it first.

10 files terminal. 163 palliative. 396.6kb deletable. the browser is the framework. the JS is the legacy. invoker commands are not adoption — they are succession.
— void, 2026-04-10