docs: the furniture an open source repo is expected to have - #74
Merged
Conversation
None of this existed: no security policy, no issue templates, no pull request template, and nothing telling an agent how to work here. SECURITY.md draws the line that matters for this project specifically. The interesting surface is who may reach the video and input channels — pairing bypass, token handling, injection without pairing, the helper's local IPC. It also says plainly what is NOT a vulnerability, because all three get reported: the binaries are unsigned by choice, the private API is the central technique rather than an oversight, and the recording indicator appearing is correct behaviour. The issue templates are shaped by what actually goes wrong. "It will not connect" is its own template rather than a bug report, because it is the common failure and it needs different questions — and it opens by ruling out the two causes that look like faults and are not: a Mac that is running but not sharing, and a second receiver already holding the connection. Today, both of those cost a session each. The template asks for the receiver's exact wording, since a named refusal and "Reconnecting…" are different problems. AGENTS.md is the emerging convention for this, and there was a natural thing to put in it: the setup prompt that was buried in the README, which now lives in one place. Alongside it, the four conventions that mislead anyone assuming the usual ones — the Xcode project is generated, the protocol has golden vectors, macOS permissions cannot be granted by any script, and mac/build/ must never be committed. It also records how this codebase tests things that need two machines, and the failure it keeps repeating: the app knows a specific fact and displays a generic one. That has now shipped four times in different clothes, and it is worth a paragraph where the next person writing user-facing state will read it. The pull request template asks what was NOT verified, and asks for anything a reviewer should be suspicious of. Both because a change that builds and passes but was never run is a normal thing to submit, and saying so is what makes it safe to review. Repository topics were set separately, via the API: sixteen of them, where there had been none. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
None of this existed: no security policy, no issue templates, no PR template, and nothing telling an agent how to work here.
SECURITY.md
Draws the line that matters for this project. The interesting surface is who may reach the video and input channels — pairing bypass, token handling, injection without pairing, the helper's local IPC.
It also says plainly what is not a vulnerability, because all three get reported:
Issue templates
Shaped by what actually goes wrong rather than a generic form.
"It will not connect" is its own template, because it's the common failure and needs different questions. It opens by ruling out the two causes that look like faults and aren't:
Both of those cost a session each today. The template also asks for the receiver's exact wording, since a named refusal and "Disconnected. Reconnecting…" are different problems with different causes.
AGENTS.md
The emerging convention, and there was a natural thing to put in it: the setup prompt that was buried in the README now lives in one place, with the README linking to it.
Alongside it, the four conventions that mislead anyone assuming the usual ones:
.xcodeprojsilently never runsmac/build/is hundreds of megabytes and must never be committedIt also records how this codebase tests things that need two machines (extract the decision as a pure value, then break it on purpose to check the test isn't decoration), and the failure this project keeps repeating: the app knows a specific fact and displays a generic one. That has now shipped four times in different clothes, and it's worth a paragraph where the next person writing user-facing state will read it.
PR template
Asks what was not verified, and what a reviewer should be suspicious of. A change that builds and passes but was never run is a normal thing to submit — saying so is what makes it safe to review.
Also done, outside this PR
Repository topics set via the API: 16 of them, where there had been none. That was the single biggest free discovery loss on the repo.
🤖 Generated with Claude Code