Skip to content

Restructure the README to the portfolio standard - #18

Merged
AdamXweb merged 1 commit into
mainfrom
docs/readme-standard
Aug 10, 2026
Merged

Restructure the README to the portfolio standard#18
AdamXweb merged 1 commit into
mainfrom
docs/readme-standard

Conversation

@adamXbot

@adamXbot adamXbot commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

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.

Link Where it was Reality
ARCHITECTURE.md "How it works" — rendered as [`architecture.md`](ARCHITECTURE.md) No file at the repo root. The real document is .github/ARCHITECTURE.md, now linked from the Docs section.
docs/RELEASES.md Updates section — "see docs/RELEASES.md for the release flow" Does not exist. The release pipeline lives in privacykey/gh-workflows; .github/workflows/release.yml is 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.org does 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

  • Sparkle version. The README told first-time contributors to add Sparkle "Up to Next Major from 2.9.0". project.pbxproj pins minimumVersion = 2.9.1. CONTRIBUTING.md now says 2.9.1.
  • Entitlements. While moving the privacy posture out, the claim that outbound access is limited to com.apple.security.network.client was completed: the app also holds com.apple.security.automation.apple-events, used to enumerate VM front-ends over AppleScript. docs/PRIVACY.md now states both, and confirms the hardened-runtime escapes (allow-jit, allow-dyld-environment-variables, disable-library-validation) are deliberately absent.
  • No 1.0 claim. project.pbxproj carries a stray MARKETING_VERSION = 1.0 alongside 0.1.5. The latest non-draft, non-prerelease release is v0.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":

  • Statusstatus: Active. Note this one already resolves; the status hub JSON at privacykey/.github/badges/privacycommand.json is live.
  • Releaserelease: v0.1.5.
  • Licencelicence: MIT (LICENSE exists).
  • CI — points at app-ci.yml, which triggers on push: branches: [main] and has successful runs on main, so it renders ci: passing. A badge for ci.yml was not added: that workflow is pull_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.0 and .macOS(.v13) in Package.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

  • CONTRIBUTING.md (new) — build-from-source steps for both the SPM and Xcode paths, the full auditctl reference, what CI runs, and the pull-request checklist. Every CLI flag in it was checked against AuditCommand.swift and PreviewCommand.swift; the exit codes against main.swift.
  • docs/PRIVACY.md (new) — the network and telemetry posture in full.
  • .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 through AnalysisCoordinator), Ghidra decompilation, VM guest agent, batch scan, report diffing, and the JSON/HTML/PDF exporters.

Size

README 11630 → 7146 bytes. Plus CONTRIBUTING.md (5323) and docs/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.json is already on main in privacykey/.github, and the badge renders status: Active today.

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>
@adamXbot

adamXbot commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator Author

Merge-order note: this and #19 both rewrite README.md, so they'll conflict.

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:

  • The Documentation section pointing at https://docs.privacycommand.privacykey.org — that docs site was created today and this README predates it.
  • The corrected ARCHITECTURE.md link. The old one pointed at ARCHITECTURE.md in the repo root; the file is at .github/ARCHITECTURE.md, so it was a broken link.
  • The Related products fix — the section previously listed only privacycommand itself.
  • The privileged-helper path, which pointed at Sources/privacycommandHelper/ — a stale duplicate tree that docs: correct ARCHITECTURE.md and BUILDING.md against the current tree #19 deletes.

Simplest resolution is to merge #19 first and rebase this on top; the structural changes here don't touch those lines.

@AdamXweb
AdamXweb merged commit b7759dd into main Aug 10, 2026
3 checks passed
@AdamXweb
AdamXweb deleted the docs/readme-standard branch August 10, 2026 13:37
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants