Make the repository readable by someone who did not build it - #5
Merged
Conversation
Owner
Author
|
Added GitHub's "main is not protected" warning can't be acted on while the repo is private — both the rulesets API and classic branch protection answer It requires the three CI checks, blocks force-push and deletion of |
Everything a visitor lands on was missing. There was no README, no LICENSE and no SECURITY.md, so the first file in the listing was AUDIT-CSHARP.md - notes written to whoever was next at this keyboard, addressed to the operator by name. - README.md, with a real screenshot of the client connected to a rig rather than a placeholder: what it is, the download table, how host and client divide responsibility, and an explicit "what is actually tested" section. A remote transmitter is a bad place for optimism, so the untested parts are named. - LICENSE: MIT, already settled in CLAUDE.md, plus the third-party notices that matter - Qt is LGPL-3.0 and linked DYNAMICALLY, which is what lets an MIT project distribute it at all. - SECURITY.md: what is authenticated, what must never be exposed, and the safety properties that should not be removed. Not boilerplate - this software keys a transmitter, and an earlier .NET version bound its Wavelog bridge to the whole LAN unauthenticated where a bare GET retuned the radio. - The engineering notes move to docs/internal/ with a README saying what they are. They stay public deliberately: the reason a fix worked, and the measurement that proved it, is worth more than a tidy summary. Every reference to them across ten files was repointed rather than left dangling.⚠️ WIP.md opened with "THIS REPO IS PUBLIC" while the repo was private. The rule was right and the fact was wrong, which is how a rule stops being taken seriously right before it starts mattering. Corrected to "TREAT THIS REPO AS PUBLIC", with a note about why the wording changed. Also scrubbed the two remaining station hostnames, both in a Windows carryover note describing a tunnel that file already says is dead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EqubrbjLXwz1GrVgmTcrf9
GitHub warns that main is unprotected, and the API answers 403 "Upgrade to GitHub Pro or make this repository public" to both rulesets and classic branch protection. So the warning is not actionable while the repo is private - it becomes free the instant it goes public, which is a bad thing to leave as something somebody is supposed to remember afterwards. The ruleset requires the three CI checks, blocks force-push and deletion of main, and requires a pull request with ZERO required approvals - a solo maintainer cannot approve their own PR, so requiring one would lock the repository against its only committer while buying nothing. The repository admin can bypass, so a broken CI config can never leave you unable to fix your own repo. Run .github/apply-main-ruleset.sh at the moment of flipping to public. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EqubrbjLXwz1GrVgmTcrf9
jwussler
force-pushed
the
public-readme
branch
from
September 2, 2026 16:19
2156adb to
27a00b9
Compare
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.
Everything a visitor lands on was missing. No README, no LICENSE, no SECURITY.md — so the first file in the repo listing was
AUDIT-CSHARP.md, notes written to whoever was next at this keyboard and addressing the operator by name.What's here
README.mdwith a real screenshot of the client connected to a rig, rendered from this build rather than mocked up. What it is, the download table, how host and client divide responsibility, and an explicit "what is actually tested" section — a remote transmitter is a bad place for optimism, so the untested parts are named.LICENSE— MIT, already settled inCLAUDE.md, plus the third-party notices that matter. Qt is LGPL-3.0 and linked dynamically, which is what lets an MIT project distribute it at all.SECURITY.md— what's authenticated, what must never be exposed, and the safety properties that shouldn't be removed. Not boilerplate: this software keys a transmitter, and an earlier .NET version bound its Wavelog bridge tohttp://+:54321/unauthenticated, where a bareGET /14074000retuned the radio.docs/internal/with a README saying what they are. They stay public deliberately — the reason a fix worked, and the measurement that proved it, is worth more than a tidy summary. All references across ten files repointed rather than left dangling.One correction worth calling out
WIP.mdopened with "THIS REPO IS PUBLIC" while the repo was private. The rule was right and the fact was wrong — which is exactly how a rule stops being taken seriously right before it starts mattering. Now reads "TREAT THIS REPO AS PUBLIC", with a note about why.Also
The two remaining station hostnames are gone, both in a Windows carryover note describing a tunnel that file already says is dead. Scan of tracked files now shows 0 private IPs, 0
/home/ubuntupaths, 0 credential-shaped strings, 0 hostnames.🤖 Generated with Claude Code
https://claude.ai/code/session_01EqubrbjLXwz1GrVgmTcrf9