← Back to list

oss-release-checklist
by ebiyy
macOS menu bar translation app built with Tauri v2, Solid.js, and Tailwind CSS v4
⭐ 0🍴 0📅 Jan 19, 2026
SKILL.md
name: oss-release-checklist description: Comprehensive checklist for releasing OSS projects. Covers security (CSP, PII, secrets), legal compliance (licenses, API terms, trademarks), privacy (GDPR, telemetry opt-out), and documentation. Use when preparing to open source a project, adding telemetry/error monitoring, auditing dependencies, or creating privacy policies.
OSS Release Checklist
Everything to verify before making a project public.
Quick Reference
| Category | Risk | Reference |
|---|---|---|
| Security | 🔴 Critical | security.md |
| Legal/Licensing | 🔴 Critical | legal.md |
| Privacy | 🟠 High | privacy.md |
Pre-Release Checklist
Security (Critical)
- CSP is not
nullin tauri.conf.json -
sendDefaultPiiis NOTtruein Sentry - Sentry
beforeSendscrubs sensitive data - API keys/DSNs injected via CI, not hardcoded
- Event listeners have corresponding cleanup
Legal (Critical)
- API terms of service reviewed (caching, commercial use)
-
cargo deny checkpasses (no GPL contamination) -
pnpm licenses:checkpasses (npm dependencies) - LICENSE file present and matches package.json
Privacy (High)
- PRIVACY.md exists
- All third-party services documented
- Telemetry opt-out available in Settings
- "Takes effect after restart" noted where applicable
Documentation
- SECURITY.md network destinations accurate
- PRIVACY.md matches implementation
- README setup instructions current
Risk Matrix
| Issue | Severity | Consequence |
|---|---|---|
CSP null | 🔴 Critical | XSS → full system access |
sendDefaultPii: true | 🔴 Critical | User clipboard sent to Sentry |
| GPL dependency | 🔴 Critical | Project becomes GPL |
| No privacy policy | 🟠 High | GDPR violation, trust loss |
| Hardcoded DSN | 🟠 High | Forks send errors to your Sentry |
| No opt-out | 🟠 High | No user control over data |
Common Mistakes by Framework
Tauri
| Mistake | Fix |
|---|---|
"csp": null | Set proper CSP directives |
Missing unlisten() | Always cleanup event listeners |
| Sentry in Rust without scrub | Use before_send filter |
Error Monitoring (Sentry)
| Mistake | Fix |
|---|---|
sendDefaultPii: true | Never enable for clipboard apps |
| Hardcoded DSN | Use import.meta.env / option_env! |
| No opt-out | Add Settings toggle + restart note |
Dependencies
| Mistake | Fix |
|---|---|
| No license audit | Add cargo deny + npm check to CI |
| GPL crate slipped in | Check deny.toml deny list |
| MPL without understanding | MPL is file-level copyleft, usually OK |
Audit Commands
# Rust licenses
cargo deny check
# npm licenses
pnpm licenses:check
# Find hardcoded secrets
grep -r "sk-" --include="*.rs" --include="*.ts" .
grep -r "dsn.*sentry" --include="*.rs" --include="*.ts" .
For Forks
When someone forks your OSS:
- Secrets should be empty (CI-injected)
- Sentry disabled by default (no DSN)
- Clear instructions for their own setup
Score
Total Score
60/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
✓LICENSE
ライセンスが設定されている
+10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon