Repository navigation
docs: charter complexity phase 8 and record the two gates disagreeing - #404
Merged
Merged
Conversation
make check fails its complexity step on two functions the 4b-3 ladder never cleared -- git.guessDirName 27 (pkg/op/provider/git/helpers.go:182) and cli.runSelfInstall 22 (internal/cli/selfinstall.go:211). Both predate the #373 Windows campaign and neither was touched by it. They join the plan as phase 8; the total moves 61 -> 63 and the plan returns to in-progress. The more useful finding is that the repository's two complexity gates disagree. make complexity (standalone fzipp/gocyclo, threshold 20) fails on both. make lint-all reports 0 issues on all three GOOS values even though .golangci.yaml enables gocyclo at min-complexity 15. runSelfInstall is explained -- it carries a //nolint:gocognit,gocyclo that golangci honors and standalone gocyclo ignores. guessDirName is not: no suppression anywhere in the file, no path exclusion covering it, and running golangci-lint with only gocyclo enabled against that package still returns 0 issues. The hypothesis is that min-complexity is not reaching the linter -- golangci's own default is 30, which would explain silence at 27 and 22 alike -- but that was not confirmed, so it is recorded as an open question rather than a diagnosis. Resolving it belongs to the phase: a threshold that silently does not apply is a gate passing on nothing, so the phase ends by confirming zero findings under both tools rather than one. Issue #312 is closed; the phase needs a reopen or its own tracking issue before its PR. Noted in the plan as undecided rather than settled here. Assisted-by: Claude Signed-off-by: David Noble <[email protected]>
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.
Summary
make checkfails itscomplexitystep on two functions the 4b-3 ladder never cleared. Bothpredate the #373 Windows campaign and neither was touched by it:
They join
docs/plans/complexity-refactors.mdas phase 8 (total 61 → 63); the plan returns toin-progress.The finding worth more than the two entries
The repository's two complexity gates disagree:
make complexity(standalone fzipp/gocyclo, threshold 20) fails on both — somake checkis not a clean local signal today.
make lint-allreports 0 issues on linux, darwin, and windows, even though.golangci.yamlenablesgocycloatmin-complexity: 15.runSelfInstallis explained: it carries//nolint:gocognit,gocyclo, which golangci honors andstandalone gocyclo ignores.
guessDirNameis not — no suppression anywhere in the file, nopath exclusion covering it, and
golangci-lint run --enable-only gocyclo ./pkg/op/provider/git/...still returns 0 issues.
Hypothesis:
min-complexityis not reaching the linter (golangci's default is 30, which wouldexplain silence at 27 and 22 alike). Not confirmed, so the plan records it as an open question
rather than a diagnosis. Resolving it is part of the phase — a threshold that silently does not
apply is a gate passing on nothing — and the phase ends by confirming zero findings under both
tools.
Open question for the reviewer
Issue #312 is closed (2026-08-04). Phase 8 needs either a reopen or its own tracking issue
before its implementation PR. Recorded as undecided rather than settled unilaterally.
Docs only; no code paths touched.
Assisted-by: Claude