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 deploy with no project refuses, though common is implicit and the config path handles zero projects #843
common is implicit: cmd/writ/writ/config.go:37-40 prepends it to every project list, and docs/guides/writ/platform-awareness.md says "users don't need to specify common". Both are right,
and writ deploy noblefactor proves it — the plan carries every common file.
But writ deploy with no project at all refuses:
$ writ deploy
Error: requires at least 1 arg(s), only received 0
while the code it never reaches handles exactly that case:
The command's arity check contradicts its own configuration logic. The effect on 2026-09-06: the
first base-layer deploy — six files, all under common — had to be typed as writ deploy common,
which the guide says nobody should need to type.
Fix
Drop the minimum-args check; with no projects, deploy common alone, and say so in the banner: Deploying common (implicit) [home]. writ upgrade should behave the same if it shares the check.
The argument requirement goes. Bare writ deploy deploys the implicit project set (common, and one project per
configured layer repository once #850 lands) on every scope defined on this platform (#926): everything implicit,
everywhere defined. The owner, 2026-09-21: "common should always deploy."
Ruled 2026-09-06 on #463 and carried by #850: the implicit set is common plus one project per configured layer repository, and a bare writ deploy converges it — #850's first acceptance item. This issue is the bug that ruling closes; the MinimumNArgs(1) it names is the one line between them. Restated 2026-09-07 by the user against build 155067ae: "it should be true that i can say writ deploy --allow-dirty." Still refuses today with requires at least 1 arg(s), only received 0.
noblefactor-ops's README states the ruled form, writ deploy, and names this issue as the interim; when this lands that sentence goes.
The layer-journey scenario (#855, cmd/writ/scenario_layer_journey_test.go, landed in #859) is this issue's acceptance test: step 2.1 (the shim in deploy() names the implicit set until then) 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
David-Noble-at-work commentedon Sep 7, 2026
Ruled 2026-09-06 on #463 and carried by #850: the implicit set is
commonplus one project per configured layer repository, and a barewrit deployconverges it — #850's first acceptance item. This issue is the bug that ruling closes; theMinimumNArgs(1)it names is the one line between them. Restated 2026-09-07 by the user against build155067ae: "it should be true that i can saywrit deploy --allow-dirty." Still refuses today withrequires at least 1 arg(s), only received 0.noblefactor-ops's README states the ruled form,
writ deploy, and names this issue as the interim; when this lands that sentence goes.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: step 2.1 (the shim in deploy() names the implicit set until then) 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.feat(writ): bare writ deploy deploys the implicit set -- common, one …
Reconcile's three exit codes, and a bare writ deploy that deploys the…