diff --git a/.agents/skills/release-lithe/SKILL.md b/.agents/skills/release-lithe/SKILL.md index cc7183ce..8cc09d3d 100644 --- a/.agents/skills/release-lithe/SKILL.md +++ b/.agents/skills/release-lithe/SKILL.md @@ -17,8 +17,26 @@ keep their existing workflow unless the task explicitly includes them. Do not invent features, compatibility claims, download assets, or fixes. - Treat the release notes as a required release artifact. A missing or empty file blocks the release; never fall back to GitHub-generated notes. -- Keep user-facing language focused on outcomes. Do not publish a raw commit or - pull-request list as the release description. +- Keep the release description short, plain-language, and focused on what users + can do or notice after updating. Write from the user's point of view: explain + the problem solved or workflow improved before naming the implementation. +- Include all meaningful user-facing changes, grouping related changes when that + makes the release easier to scan. Do not impose a fixed number of highlights. + Each highlight should answer “What does this change mean for me?” in one + sentence. Avoid internal names and jargon such as + implementation class names, protocol phases, rendering backends, or test + terminology. Mention a technical name only when a user must recognize it in + the UI or follow a setup step, and explain it in plain language. +- Do not publish a raw commit or pull-request list as the release description. +- Every stable release description must include the macOS Gatekeeper recovery + note below in both languages. Keep the command exactly as written and remind + users to use it only for an app downloaded from a source they trust: + + Chinese: + `xattr -dr com.apple.quarantine /Applications/Lithe.app` + + English: + `xattr -dr com.apple.quarantine /Applications/Lithe.app` ## Use the bilingual structure @@ -34,17 +52,58 @@ this order: 6. English counterparts for any optional product-area groupings. 7. `### Upgrade instructions` and `### Compatibility and known issues`. 8. The equivalent English comparison link. +9. At the very bottom, `### 贡献者` followed by `### Contributors`, with + equivalent contributor names or GitHub profile links in both languages. The download sections cover the project page, both macOS architectures, Windows x64, and the complete Release Assets page. Use versioned asset URLs that match the packaging workflows. Upgrade instructions cover macOS DMG, -Homebrew, and Windows. Compatibility sections include platform preview or -signing limitations only when they actually apply to that version. +Homebrew, and Windows. The compatibility section must include the Gatekeeper +note, plus platform preview or signing limitations only when they actually +apply to that version. + +## User-facing writing checklist + +- Lead with the result: “启动项目更快”“终端输出更流畅”“打开文件不再反复报错”. +- Replace implementation descriptions with the visible effect on editing, + running, debugging, Git, databases, or updates. +- Keep each bullet to one idea and one sentence; combine related fixes when the + user impact is the same. +- Use everyday words. If a technical term is unavoidable, add a short + explanation the first time it appears. +- Do not claim performance numbers, compatibility, security, or fixes unless + the target commit and release checks verify them. +- Include the Gatekeeper recovery instructions as a small, actionable note: + + Chinese: “如果 macOS 提示无法打开 Lithe.app,请在‘应用程序’中按住 Control + 点按应用并选择‘打开’;如果仍被阻止,可在终端执行 + `xattr -dr com.apple.quarantine /Applications/Lithe.app`。仅对可信来源的应用使用。” + + English: “If macOS says it cannot open Lithe.app, Control-click it in + Applications and choose Open. If it is still blocked, run + `xattr -dr com.apple.quarantine /Applications/Lithe.app` in Terminal. Use + this only for an app from a source you trust.” Use the most recent stable file under `docs/releases/` as the formatting reference, but verify every statement and URL for the new version instead of copying stale details. +## Contributors + +- Add a contributor list at the bottom of every stable release description, + after the English comparison link. +- Build the list from the commits and merged pull requests between the + previous stable tag and the new tag. Verify names and profile links against + GitHub before publishing; do not infer identities from an email address. +- Include human contributors who made code, documentation, design, testing, or + release work relevant to the version. Exclude automation accounts such as + `github-actions[bot]` unless the release explicitly needs to credit them. +- Keep the list short and readable. Do not include a raw commit log or every + incidental merge author. +- Use the same people and links in the Chinese and English sections. If no + human contribution can be verified for a release, write a brief equivalent + sentence instead of leaving the section empty. + ## Validate before publishing - Confirm the version uses `MAJOR.MINOR.PATCH`, the filename is exactly diff --git a/README.md b/README.md index 1b894b76..41b0bf52 100644 --- a/README.md +++ b/README.md @@ -128,6 +128,20 @@ brew install --cask 1lck/lithe/lithe brew upgrade --cask lithe ``` +### If macOS says it cannot open `Lithe.app` + +If macOS says that Apple cannot verify whether `Lithe.app` contains malware, the manually downloaded package may not yet be notarized by Apple. First confirm that the app came from the trusted [GitHub Releases](https://github.com/1lck/Lithe-IDEA/releases/latest), then use one of these methods: + +1. In **Applications**, Control-click `Lithe.app`, choose **Open**, and choose **Open** again in the confirmation dialog. +2. If macOS still blocks it, open **System Settings > Privacy & Security**, click **Open Anyway** next to the security warning, and launch the app again. +3. You can also remove the quarantine attribute in Terminal: + + ```bash + xattr -dr com.apple.quarantine /Applications/Lithe.app + ``` + +Only use these steps for an app whose source you trust. Homebrew installations usually do not require manual quarantine removal. + Java features require JDK 17 or newer. Release packages include Eclipse JDT Language Server, so JDTLS does not need to be installed separately. ## Architecture Overview diff --git a/README.zh-CN.md b/README.zh-CN.md index 273e290f..052c5176 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -128,6 +128,20 @@ brew install --cask 1lck/lithe/lithe brew upgrade --cask lithe ``` +### macOS 提示“无法打开 Lithe.app” + +如果 macOS 提示“Apple 无法验证 Lithe.app 是否包含可能危害 Mac 安全或泄漏隐私的恶意软件”,通常是因为手动下载的安装包尚未经过 Apple 公证。请先确认应用来自可信的 [GitHub Releases](https://github.com/1lck/Lithe-IDEA/releases/latest),然后选择以下任一方式: + +1. 在“应用程序”中按住 Control 键点按 `Lithe.app`,选择“打开”,再在确认对话框中选择“打开”。 +2. 如果仍被阻止,打开“系统设置 > 隐私与安全性”,在安全性提示旁点按“仍要打开”,然后再次启动应用。 +3. 也可以在终端中移除下载文件的隔离标记: + + ```bash + xattr -dr com.apple.quarantine /Applications/Lithe.app + ``` + +上述命令只应对你确认来源可靠的应用使用;通过 Homebrew 安装通常不需要手动执行这些步骤。 + Java 功能需要 JDK 17 或更高版本。正式安装包已包含 Eclipse JDT Language Server,无需单独安装 JDTLS。 ## 架构概览