chore: drop the unproduced coverage badge, ignore .DS_Store - #324
Open
OmarAlJarrah wants to merge 1 commit into
Open
chore: drop the unproduced coverage badge, ignore .DS_Store#324OmarAlJarrah wants to merge 1 commit into
OmarAlJarrah wants to merge 1 commit into
Conversation
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
Two README/
.gitignorehygiene problems, both cases of the shared files carrying a claim or anentry that nothing in this project backs.
The coverage badge is removed rather than generated.
README.md:16was a literalimg.shields.io/badge/coverage-100%25-success.svgwith the value baked into the URL path. Nothingcomputes it:
.github/contains exactly one file,workflows/gate.yml, and it has no coverageupload, gist write, or badge action — its
coveragestep runsscripts/check-coverage.sh, whichprints and exits. So the badge asserted 100% unconditionally and could not go red, which is the
worst property a badge can have.
Of the two honest options — publish the number from CI, or drop it — dropping it is the better
trade here:
README.md:13) already carries the signal.coverageis a required step of the singlegatejob, so a coverage regression fails the joband turns that badge red. A generated shields badge would report the same one bit through extra
machinery (a gist plus a token, or a third-party action) that the repo does not have today.
trend line —
check-coverage.shfails the build on one uncovered statement. A badge reading"100%" is only ever restating "the build passed".
about code must be written down, name the revision it was true at. A hardcoded badge is a
maintained count with no revision attached.
The MIT and Go-version badges stay. MIT is immutable; the
go-1.26badge is a version claim thatfloats with the toolchain pin and is being handled under #61, so it is deliberately untouched here.
.gitignorenow lists only what this project produces. Removed four per-contributor toolingpaths —
.superpowers/,docs/superpowers/,.claude/,.crush/. None has ever appeared in acommit (
git log --all -- <path>is empty for all four), anddocs/superpowers/was explicitlyuntracked in
0b69247 chore: stop tracking local SDD planning docsprecisely because those filesare local, which is the argument for keeping the rule per-clone rather than shared. Contributors
who run any of that tooling should put these in
.git/info/excludeor a globalcore.excludesFile:Added
.DS_Store, which was untracked and unmatched by any rule in a repo developed on macOS —it sits in the working copy right now and would be committed by accident before any of the entries
above caused trouble.
.idea/and.vscode/were already ignored, so the omission was aninconsistency rather than a policy. Nothing else is missing:
cover.outis covered by*.out, theCLI binary by
/morphic,verify-atomic-output.shworks inmktemp -doutside the tree, andgo build ./...leaves no binaries behind (verified). No speculative entries were added forplatforms or tools this repo shows no evidence of.
/out.json,/logs.txtand/pets.jsonare kept. They are repo-root scratch outputs of real CLIruns and #11 settled that they belong in the shared file.
Ordering.
README.mdis also being rewritten by #315, which reworks the Building and Testingsections. This change touches only the badge block at the top, which #315 does not, so the two
merge cleanly in either order. The related "overall and per package" coverage claim further down
the README is already corrected by #315 and is left alone here to avoid a conflict.
gate.ymlisuntouched for the same reason — that file has other changes in flight, and dropping the badge needs
nothing from CI.
Test plan
git check-ignore -v .DS_Storeexits 0 (.gitignore:36) where it exited 1 before, andgit status --porcelainno longer lists?? .DS_Store. Deleting just that one line restoresboth failures, confirming the rule is what does the work.
git check-ignoreon the four removed paths reports not-ignored from the tracked file, andresolves from
.git/info/excludeonce migrated there.grep -rn 'badge\|shields' README.md docs/returns only the gate, MIT and Go badges — noremaining reference to the coverage badge anywhere in the docs.
gofmt,go vet,golangci-lint run,go build ./...,scripts/check-coverage.sh(all 4942 statements covered). No Go code changed.Closes #91