Imported from waoui/WeType-Swipe (
AGENTS.md). Install upstream withnpx skills add waoui/WeType-Swipe. Copyright stays with the author.
AGENTS.md
项目定位
本仓库是安卓版微信输入法下滑快捷键 LSPosed 模块。目标是保证功能稳定、兼容清晰、发布流程可重复,不为追求新功能破坏既有用户配置和已验证环境。
开发原则
- 优先修复兼容性、崩溃、配置丢失和交互问题,再考虑新增功能。
- 不修改现有功能语义、默认键位和配置存储格式,除非任务明确要求;涉及迁移时必须提供向后兼容逻辑。
- 微信输入法内部类名、资源名和 View 层级可能随版本变化。新增 Hook 必须:
- 先使用稳定特征匹配;
- 保留失败日志;
- 避免单点硬编码;
- 不得因匹配失败导致微信输入法崩溃。
- 模块不得联网,不得采集或上传用户实际输入内容。用户主动配置的固定文本只能保存在本地配置中。
- 不提交签名文件、密钥、账号、Token、真实设备日志中的隐私信息或本地绝对路径。
- 修改 UI 时必须同时检查:状态栏遮挡、26 键布局、九宫格布局、横屏、悬浮键盘和小屏设备;内置设置与独立设置应尽量保持一致。
- 修改手势逻辑时必须避免影响正常点击、长按、滑行输入和原生手势。
- 新增动作 ID 只能向后追加,禁止重排已发布动作编号;当前已使用 0–20。
兼容基线
- Android:8.0 及以上
- 当前重点测试:Android 16
- 构建:JDK 17、Android SDK 35、Gradle 8.9
- 运行环境:LSPosed
- 当前重点兼容的微信输入法版本以 README 和 CHANGELOG 为准
必须执行的验证
提交前执行:
./gradlew clean testDebugUnitTest lintDebug assembleDebug
Windows:
gradlew.bat clean testDebugUnitTest lintDebug assembleDebug
如任务修改 Hook、反射、资源匹配、配置序列化、内置设置入口或发布流程,还必须补充对应单元测试或明确记录无法自动化验证的原因,并给出真机验收步骤。
版本与发布
- 版本号只在
gradle.properties的VERSION_CODE、VERSION_NAME中维护。 - 正式发布前必须同步更新:
CHANGELOG.md- 当前版本
RELEASE_NOTES_v版本号.md README.md中的稳定版本、功能与兼容信息
- 正式发布完成后,旧版本说明以 GitHub Release、Tag 和
CHANGELOG.md为准;无需在main长期累计全部历史RELEASE_NOTES_v*.md。 - 不在本地提交正式签名产物。正式 Release 使用 GitHub Actions 和仓库 Secrets。
- 不跳过 CI,不直接修改已发布 Tag。
分支与提交
- 日常任务从
main创建codex/<任务名>或chore/<任务名>分支。 - 每个分支只处理一个明确任务,避免把无关重构混入修复。
- 提交信息使用中文或清晰英文,说明实际变化。
- 完成后创建 PR,写明问题、修改、测试结果、真机验收项和回滚方式。
禁止事项
- 禁止为通过测试而删除有效测试或弱化断言。
- 禁止无依据升级 Gradle、AGP、Kotlin、Xposed API 或最低 Android 版本。
- 禁止大范围重写已稳定 Hook,除非现有实现无法维护且任务明确要求。
- 禁止把调试日志默认长期保持在高频输出状态。
- 禁止把测试期补丁脚本、临时状态文件或一次性发布触发文件合并进
main。