Repository navigation
Settle writ reconcile's surface, and stop teaching writ status - #773
Merged
Merged
Conversation
Closes #772 Two plans described the same command differently. One recorded flags it will not have, and both still taught `writ status` -- a command being retired, not modernized. THE SETTLED SURFACE. `writ reconcile` produces a report. It has NO command flags. It takes the globals -- --output/-o, --filter, --jq, --store, --dry-run -- and must utilize all of them faithfully. The selector between fix, diff and summary behaviors is deferred to the reconciliation epic and is not designed here. THE FLAGS GO. 762 recorded `writ reconcile [--drift] [--fix] [--json] [<project>...]` as the shape. None of the three survives: --json is replaced by the shared -o, and the other two are the deferred selector under earlier names. 762 and 5.1 both said 5.1's "there is no --fix" was retired as a stale claim, which overstates it -- reconcile will repair, but there is no --fix today and the surface is undecided. A CAUTION IS RECORDED WHERE THE SELECTOR WILL BE DESIGNED. Two of the three candidate views are already projections of the one document the report produces: the diff is --jq '.entries', the history is --jq '.packages'. Those are stage 2 of the pipeline #740 landed, and --jq and --filter are already reserved. Adding --diff and --history would create a second way to select a subset of the same document, and the two will drift. Only the repair half is genuinely new, because it is a mutation rather than a projection -- and --dry-run already owns the mutation axis, so anything added there must say how the two compose. TERMINOLOGY CORRECTED WHEREVER IT APPEARS. Eight sites in 740. Six are the command's name and change outright. Two are not terminology: :212 is a path, recorded now as `cmd/writ/writ/status/report.go` (`reconcile/` under #762) so it is findable before and after the rename; :27 was a false claim about ordering, and is rewritten rather than renamed -- the work lands AS `writ reconcile`, so this epic's writ phase and #762's phase 2 are one piece of work, not two adjacent ones. The measurements keep their date, not their vocabulary. Lines 231-242 record what was found on 2026-08-30. The finding survives the rename; the name does not. One dated note says the measurement predates the rename, rather than seven caveats scattered through the text. Claude-Session: https://claude.ai/code/session_01SqQVFZz7AdiLZkGoAcUqRW
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.
Closes #772
Two plans described the same command differently. One recorded flags it will not have, and both still
taught
writ status— a command being retired, not modernized. Documents only.The settled surface
writ reconcileproduces a report. It has no command flags. It takes the globals —--output/-o,--filter,--jq,--store,--dry-run— and must utilize all of them faithfully. The selectorbetween fix, diff and summary behaviors is deferred to the reconciliation epic and is not designed
here.
The flags go
762:51recorded the shape aswrit reconcile [--drift] [--fix] [--json] [<project>...]. None of thethree survives:
--jsonis replaced by the shared-o, and the other two are the deferred selectorunder earlier names.
762:96and5.1:12both said 5.1's "there is no--fix" was retired as a stale claim. Thatoverstates it — reconcile will repair, but there is no
--fixtoday and the surface is undecided. Bothare corrected.
A caution, recorded where the selector will be designed
Two of the three candidate views are already projections of the one document:
--jq '.entries'--jq '.packages'Those are stage 2 of the pipeline #740 landed, and
--jqand--filterare already reserved. Adding--diffand--historyflags would create a second way to select a subset of the same document, and thetwo will drift. Only the repair half is genuinely new, because it is a mutation rather than a projection
— and
--dry-runalready owns the mutation axis.Terminology corrected wherever it appears
Eight sites in 740. Six are the command's name and change outright. Two are not terminology:
:212is a path. Recorded now ascmd/writ/writ/status/report.go(reconcile/under The writ lifecycle surface: reconcile, scopes, and the vocabulary settlement #762), so itis findable before and after the rename.
:27was a false claim about ordering, rewritten rather than renamed. The work lands aswrit reconcile, so this epic's writ phase and The writ lifecycle surface: reconcile, scopes, and the vocabulary settlement #762's phase 2 are one piece of work, not two adjacentones.
The measurements keep their date, not their vocabulary: lines 231–242 record what was found on
2026-08-30, and one dated note says so, rather than seven caveats through the text.
Test plan
./scripts/Test-GuideFrontmatter.sh— greenwrit reconcilewill not have; the surviving--drift/--fix/--jsonmentions are historical quotation or the explanation that they do not survive
writ statusleft in 740 is line 231's dated note saying that is what it was called whenmeasured
:212names both the path today and where The writ lifecycle surface: reconcile, scopes, and the vocabulary settlement #762 moves itOpen question, carried in the plan
Does the repair half become a mode of
reconcile, or stay as the named commands eachEntryalreadypoints at in its
Repairfield?writ-deploy-family.md:136chose the latter deliberately — "no--fix: the repair for each finding is named instead" — and that is what the tree implements today.Bigger than flag syntax; belongs to the reconciliation epic.
https://claude.ai/code/session_01SqQVFZz7AdiLZkGoAcUqRW