Restructure the README to the portfolio standard - #18
Merged
Conversation
Reorders the README into the shared product layout (hero, badges,
disclosure, overview, what it does, get it, docs, contributing, licence)
and removes claims that could not be verified against the repo.
Removed two dead relative links:
* `ARCHITECTURE.md` — linked from "How it works" as `architecture.md`.
No such file at the repo root; the real one is `.github/ARCHITECTURE.md`,
which is now linked from the Docs section.
* `docs/RELEASES.md` — linked from the Updates section. The file does not
exist. The release pipeline lives in privacykey/gh-workflows, reached via
`.github/workflows/release.yml`; CONTRIBUTING.md now says so.
Corrected one wrong fact:
* Sparkle was documented as "Up to Next Major from 2.9.0". The Xcode
project pins minimumVersion 2.9.1. CONTRIBUTING.md now states 2.9.1.
Badge row rebuilt to the standard set, keeping only badges that resolve:
status, release (v0.1.5), licence, and CI. The CI badge points at
app-ci.yml, which runs on pushes to main; a badge for ci.yml would render
"no status" because that workflow only triggers on pull_request. The
downloads, Homebrew and "macOS 13+" badges are dropped — the macOS
requirement is now stated in prose under "Get it".
The beta warning is replaced by the standard disclosure block. The tier
name is not written as prose; it comes from the status badge.
Content moved rather than deleted:
* Build-from-source steps, the auditctl command-line reference and the
contribution checklist -> CONTRIBUTING.md (new).
* The privacy and telemetry posture -> docs/PRIVACY.md (new), corrected
while moving: the app also holds an Apple Events entitlement for VM
front-end enumeration, which the old text did not mention.
* The "How it works" layer table -> dropped in favour of a link to
`.github/ARCHITECTURE.md`, which already carries the same table plus
the diagram and the data-flow narrative.
Also dropped a stale placeholder note under Screenshots saying screenshots
would arrive once the brand site is up, and a "Related products" list whose
only entry was this repo. The existing screenshot is kept.
No version claim above 0.1.5 anywhere: the pbxproj carries a stray
MARKETING_VERSION = 1.0 alongside 0.1.5 and the latest release is v0.1.5.
README 11630 -> 7146 bytes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Collaborator
Author
|
Merge-order note: this and #19 both rewrite No regression either way — this branch doesn't reintroduce the stale paths #19 removes. But it also doesn't carry the additions, so if this lands second the following are lost:
Simplest resolution is to merge #19 first and rebase this on top; the structural changes here don't touch those lines. |
adamXbot
added a commit
that referenced
this pull request
Aug 10, 2026
README.md conflicted: PR #18 restructured it to the portfolio standard, which supersedes every README edit this branch made. Took main's version wholesale — the helper-path table, the Updates section and the Related products list that this branch was correcting no longer exist there, and the ARCHITECTURE.md link it fixed is already correct on main. Two corrections to keep the merged tree self-consistent: - ARCHITECTURE.md claimed user-facing docs live at docs-privacycommand. That repo is private and docs.privacycommand.privacykey.org does not resolve, so main's "there is no docs site yet" is the accurate line. Pointed the scale note at README.md instead. - Swift file count 229 -> 225. Counted before this branch's own second commit deleted the four stale helper sources.
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.
Brings this README into the shared portfolio layout: hero, badge row, disclosure block,
---, overview, What it does, Get it, Docs, Contributing, Licence.Dead links removed
Both were relative links to files that do not exist. Checked with
test -e.ARCHITECTURE.md[`architecture.md`](ARCHITECTURE.md).github/ARCHITECTURE.md, now linked from the Docs section.docs/RELEASES.mddocs/RELEASES.mdfor the release flow"privacykey/gh-workflows;.github/workflows/release.ymlis the caller and documents the secrets. CONTRIBUTING.md points there instead.Every other link in the old README was checked and does resolve, and has been kept:
brand/icon.svg,LICENSE, the homebrew-tap repo,https://privacykey.github.io/privacycommand/appcast.xml, sparkle-project.org, the releases pages, and the user-attachments screenshot.There is no docs site —
docs.privacykey.orgdoes not resolve (DNS failure, not a 404) — so the Docs section links in-repo files only and says plainly that no site exists yet.Wrong facts corrected
2.9.0".project.pbxprojpinsminimumVersion = 2.9.1. CONTRIBUTING.md now says 2.9.1.com.apple.security.network.clientwas completed: the app also holdscom.apple.security.automation.apple-events, used to enumerate VM front-ends over AppleScript.docs/PRIVACY.mdnow states both, and confirms the hardened-runtime escapes (allow-jit,allow-dyld-environment-variables,disable-library-validation) are deliberately absent.project.pbxprojcarries a strayMARKETING_VERSION = 1.0alongside0.1.5. The latest non-draft, non-prerelease release isv0.1.5, so the README uses the pre-1.0 disclosure and claims no 1.0 anywhere. Worth fixing that stray value separately.Badges
Rebuilt to the standard four, each verified to render a real value rather than "no status":
status: Active. Note this one already resolves; the status hub JSON atprivacykey/.github/badges/privacycommand.jsonis live.release: v0.1.5.licence: MIT(LICENSE exists).app-ci.yml, which triggers onpush: branches: [main]and has successful runs on main, so it rendersci: passing. A badge forci.ymlwas not added: that workflow ispull_request-only by design, and its badge renders "no status" on?branch=main.Dropped: the downloads badge, the Homebrew badge and the "macOS 13+" badge. They resolved, but they are not in the standard set. The macOS 13 requirement is now stated in prose under "Get it" (verified against
MACOSX_DEPLOYMENT_TARGET = 13.0and.macOS(.v13)inPackage.swift).The hand-written beta warning is replaced by the standard disclosure block. The tier name is not written as prose anywhere — it comes from the badge.
Content moved, not deleted
auditctlreference, what CI runs, and the pull-request checklist. Every CLI flag in it was checked againstAuditCommand.swiftandPreviewCommand.swift; the exit codes againstmain.swift..github/ARCHITECTURE.md— the README's "How it works" layer table is dropped in favour of a link, because that file already contains the same table plus the diagram and the data-flow narrative. Nothing is lost.Two small removals worth naming: a placeholder note under Screenshots saying screenshots would arrive "once the brand site is up", and a "Related products" list whose single entry was this repo. The screenshot itself is kept.
The remaining feature bullets are condensed but no capability was dropped, and each one was checked against source — kill switch (
PfctlKillSwitch.swift,HelperToolProtocol.installNetworkKillSwitch, wired throughAnalysisCoordinator), Ghidra decompilation, VM guest agent, batch scan, report diffing, and the JSON/HTML/PDF exporters.Size
README 11630 → 7146 bytes. Plus
CONTRIBUTING.md(5323) anddocs/PRIVACY.md(2589) receiving the moved content.Slightly above the ~6 KB target; the remainder is the capability list, and trimming further would mean dropping verified claims rather than prose.
Note on the status badge
Elsewhere in this rollout the status badge renders "resource not found" until the status hub PR merges. That is not the case here —
badges/privacycommand.jsonis already onmaininprivacykey/.github, and the badge rendersstatus: Activetoday.