You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
writ decommission: --all removes everything writ deployed, a named removal re-converges the rest, and an implicit project is refused by name #851
Feature:#463 — writ command surface: layers, segments, adoption. Ruled 2026-09-06 (recorded on #463) alongside
the selection model in #850.
Today
writ decommission <project>... requires at least one name, reads the store's inventory, removes exactly what those
projects' runs put into effect (links unlinked, copies archived, a user-replaced target refused), and stops. It does
not re-converge the remaining projects, so a target the removed project overlaid is gone until the next deploy. Its
examples still show all as a project name from the Tuckr era.
The rulings
--all decommissions everything writ deployed on this machine. The bare form stays refused; destruction is
explicit.
A named removal re-converges. After the named projects' entries are removed, the remaining selection is
converged, so a target that both common and the removed project claimed reverts to common's version. apt remove re-resolves; so does this.
An implicit project is refused by name — common and the repository-named projects would return on the next
bare deploy. The refusal names the verb that retires what a layer contributes: writ repo unset <layer>.
No --from <layer>. A per-layer exclusion would be a fourth kind of persistent state that no repository
records. Remove the files from the repository, or unset the layer.
The all example goes.
Acceptance
writ decommission --all removes every entry in the store; writ decommission with neither names nor --all
is refused
after writ decommission noblefamily, a target both common and noblefamily claimed holds common's version,
asserted end to end
writ decommission common and writ decommission <repository-name> are refused, naming writ repo unset
a following writ upgrade regenerates nothing of the removed project
the command's help and docs/guides/writ/manage-environments.md state all of the above; the all example is gone
Related
#850 (the selection model), #849 (the design record), #792 (writ repo remove leaves the clone; the unset verb this
issue points at), #762 (the lifecycle surface).
The layer-journey scenario (#855, cmd/writ/scenario_layer_journey_test.go, landed in #859) is this issue's acceptance test: steps 2.7–2.8 runs the ruled interface and skips by this issue's number until the binary has it, on all six legs of the scenario job. When this lands, that skip turns into a pass without the scenario changing — and if it does not, the failure message names the step.
Activity
test(writ): the layer-journey scenario -- self install, repo set, dep…
David-Noble-at-work commentedon Sep 8, 2026
The layer-journey scenario (#855,
cmd/writ/scenario_layer_journey_test.go, landed in #859) is this issue's acceptance test: steps 2.7–2.8 runs the ruled interface and skips by this issue's number until the binary has it, on all six legs of thescenariojob. When this lands, that skip turns into a pass without the scenario changing — and if it does not, the failure message names the step.