OSS readiness: community health files, project status, scheduled settings audit - #140
Conversation
…tings audit Fills the gaps a first-time visitor or contributor hits: - CONTRIBUTING.md — prerequisites, the command table, what CI enforces, and the conventions that are easy to miss (the a11y gate is blocking and its allowlist must stay empty; copy goes through i18n; Renovate owns dependency bumps; the Playwright :3000 port trap). - CODE_OF_CONDUCT.md — Contributor Covenant 2.1. Reports route through GitHub's private channels rather than an email address, since the project doesn't publish one. - SUPPORT.md — where to ask what, what information actually helps, and an honest note on what we can't help with (a lost local DB has no cloud copy) and on response times. - .github/PULL_REQUEST_TEMPLATE.md — verification-focused, with the a11y-allowlist and i18n items as explicit checkboxes. - .github/CODEOWNERS — @AdamXweb, documenting that main is admin-protected, with expensive-to-get-wrong paths called out. - CHANGELOG.md — published for the first time (there never was one). v0.1.0–v0.1.2 written retrospectively from the release notes; the Unreleased section covers this branch's work so far. - README — project status (beta, per-platform support table, release and versioning policy) and a Contributing section. Also wires scripts/audit-github-settings.mjs into a weekly workflow. It writes to the job summary and is ADVISORY on cron (a job that goes red every week gets ignored); use the manual run with strict: true for a hard pass/fail. Without a REPO_AUDIT_TOKEN the branch-protection half reports as unreadable rather than passing — GITHUB_TOKEN lacks repo-admin scope for that endpoint — which the header documents. AGENTS.md gains a section on both, and its stale "all six workflows" line is corrected (there are ten; six install dependencies). Verified: workflow YAML parses, the audit script runs green against the live repo, every relative markdown link resolves, typecheck + 441 unit tests pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Pushed The README's screenshots section has been a TODO comment since the repo opened. It now carries four real captures (apps grid as the hero, an app detail page mid-diff, the dashboard's risk sections, the privacy map) plus a phone-width shot behind a disclosure. Committed alongside them: Two capture quirks are now comments in the script rather than lore: Verified by deleting every PNG and regenerating the committed set from scratch with the committed script. 🤖 Generated with Claude Code |
`pnpm screenshots` (scripts/capture-screenshots.mjs) captures a consistent set of UI shots — apps grid, app detail mid-diff, the dashboard's risk sections, the privacy map, and a phone-width view. The images themselves are gitignored: they're for docs, issues, and release notes rather than repo weight, and a checked-in set would be stale by the next UI change anyway. The script is what's worth keeping. It seeds the canned demo fixture (never real data), applies the Strict privacy profile so the mismatch badges mean something, and disables the coachmark tour — without that last step the dashboard shot is just a dimmed spotlight overlay. Two capture quirks are comments rather than lore: scrollIntoViewIfNeeded() no-ops when the target is already partly visible (hence the dashboard's explicit scroll past the first-run checklist), and the phone shot is taken at the top of the page because mid-scroll the sort pills bleed through the translucent nav. README keeps its new quick-links row; its screenshots section stays a placeholder, now pointing at the script. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
56f9f24 to
ce258a0
Compare
|
Screenshots pulled from this PR ( The branch was rewritten rather than given a delete-commit, so the PNGs aren't in its history at all — nothing to carry into What changed from the previous push:
🤖 Generated with Claude Code |
The new PostCSS advisory (path traversal via sourceMappingURL auto-loading, disclosing arbitrary .map files; fixed in 8.5.18) fails `pnpm audit --prod`, which gates the `quality` job on every branch AND main's Docker publish — so main and all four open PRs went red at once without anyone changing code. The existing override was already `^8.5.12`, but a caret is not a floor that moves: the committed lockfile had resolved 8.5.17, which is vulnerable. Raising the override to `^8.5.18` and regenerating pulls 8.5.23. Same pattern, and same file, as the sharp and @babel/core entries — the header comment now records why the caret alone wasn't enough, since this will recur. Verified: `pnpm audit --prod` reports no known vulnerabilities, typecheck clean, 441 unit tests pass, and a full production build emits CSS correctly (postcss is the stylesheet pipeline, so the build is the real canary here, not the audit). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
Cherry-picked the postcss advisory fix onto this branch so it goes green independently of merge order — see #141 for the full diagnosis. Short version: a new PostCSS advisory (GHSA-r28c-9q8g-f849, fixed in 8.5.18) turned the If #141 merges first, this commit drops out cleanly on rebase (identical patch). 🤖 Generated with Claude Code |
Summary
Fills the gaps a first-time visitor or contributor currently hits. None of these files existed before.
CONTRIBUTING.mdCODE_OF_CONDUCT.mdSUPPORT.md.github/PULL_REQUEST_TEMPLATE.md.github/CODEOWNERSCHANGELOG.mdPlus README gains Project status (beta, per-platform support table, release/versioning policy) and a Contributing section.
Notable choices
locales/en.json; Renovate owns dependency bumps; and the Playwright-reuses-:3000 trap that has cost real debugging time.Unreleasedsection already covers this branch's accessibility, security, and first-run work.mainis admin-protected, so @AdamXweb is the only account that can merge anyway.Scheduled settings audit
scripts/audit-github-settings.mjsexisted but nothing ever ran it..github/workflows/repo-settings-audit.ymlnow runs it weekly and writes the report to the job summary.Two deliberate design points, both documented in the workflow header:
strict: truefor a hard pass/fail.REPO_AUDIT_TOKEN.GITHUB_TOKENcannot readbranches/main/protection(needs repo-admin), so without a fine-grained PAT (administration:read) that half of the report reads as unreadable rather than passing. The workflow emits a::notice::when the secret is absent so it's never silently misleading. Same class of problem asRENOVATE_TOKEN.Screenshot capture script
scripts/capture-screenshots.mjs(pnpm screenshots) captures a consistent set of UI shots — apps grid, app detail mid-diff, dashboard risk sections, privacy map, and a phone-width view — against the canned demo fixture.docs/screenshots/is gitignored: the images are for docs, issues, and release notes rather than repo weight, and a checked-in set would be stale by the next UI change. The script is the durable part. It applies the Strict privacy profile so the mismatch badges mean something, and disables the coachmark tour — without that the dashboard shot is a dimmed spotlight overlay.Verification
pnpm typecheckclean, 441 unit tests pass; the capture script lints clean and was exercised end-to-end.AGENTS.mdgains a section on both topics, and its stale "all six GitHub workflows" line is corrected — there are ten; six install dependencies.🤖 Generated with Claude Code