|
1 | 1 | # GeneralUpdate Skill CodeGen |
2 | 2 |
|
3 | | -**Claude Code 技能套件** — 帮助 .NET 开发者在 5 分钟内将 [GeneralUpdate](https://github.com/GeneralLibrary/GeneralUpdate) 自动更新系统集成到任意 .NET 应用中。 |
| 3 | +**Claude Code Skill Suite** — helps .NET developers integrate the [GeneralUpdate](https://github.com/GeneralLibrary/GeneralUpdate) auto-update system into any .NET application in under 5 minutes. |
4 | 4 |
|
5 | | -覆盖 50+ 真实 Issue 发现的已知问题,提供即用型代码生成 + 深度故障排查。 |
| 5 | +Covers 50+ known issues discovered from real GitHub/Gitee feedback, providing production-ready code generation and deep troubleshooting. |
6 | 6 |
|
7 | | -> **当前版本:v1.0.0** — 针对 NuGet `GeneralUpdate.Core ≥ 10.4.6` 稳定版 |
8 | | -> 兼容性:`v10.4.6`(NuGet 最新稳定版) |
9 | | -> 所有 32 个模板文件已通过 `dotnet build` 编译验证(0 errors)。 |
| 7 | +> **Current Version: v1.0.0** — targets NuGet `GeneralUpdate.Core ≥ 10.4.6` stable release |
| 8 | +> Compatibility: `v10.4.6` (NuGet latest stable) |
| 9 | +> All 32 template files verified via `dotnet build` (0 errors). |
10 | 10 |
|
11 | | -## 技能总览 |
| 11 | +--- |
12 | 12 |
|
13 | | -| 技能 | 命令 | 一句话功能 | 覆盖量 | |
14 | | -|------|------|-----------|--------| |
15 | | -| 🚀 `generalupdate-init` | `/generalupdate-init` | 双项目脚手架 + Bootstrap 配置(4 种方式) | 4 大场景 + 4 种配置方式 + 完整 API | |
16 | | -| 🎨 `generalupdate-ui` | `/generalupdate-ui` | 自动识别 UI 框架,生成全状态更新窗口(11 种状态) | 6 UI 框架 + 全状态机 + 桥接代码 | |
17 | | -| ⚙️ `generalupdate-strategy` | `/generalupdate-strategy` | 6 种策略决策树 + 混合组合 + 平台差异 | 6 策略 + 4 组合 + 平台对照 | |
18 | | -| 🔧 `generalupdate-advanced` | `/generalupdate-advanced` | 10+ 扩展点 + 4 种 IPC + Bowl + AOT | 10+ 扩展点 + 完整架构图 | |
19 | | -| 🩺 `generalupdate-troubleshoot` | `/generalupdate-troubleshoot` | 50+ 已知问题诊断 + 6 步通用排查 | 8 致命 + 11 高 + 20 中 + 12 低 | |
| 13 | +## Skills Overview |
20 | 14 |
|
21 | | -## 快速开始 |
| 15 | +| Skill | Command | One-Liner | Coverage | |
| 16 | +|-------|---------|-----------|----------| |
| 17 | +| 🚀 `generalupdate-init` | `/generalupdate-init` | Dual-project scaffold + Bootstrap config (4 methods) | 4 scenes + 4 config methods + full API | |
| 18 | +| 🎨 `generalupdate-ui` | `/generalupdate-ui` | Auto-detect UI framework, generate full-state update window (11 states) | 6 UI frameworks + full state machine + bridge code | |
| 19 | +| ⚙️ `generalupdate-strategy` | `/generalupdate-strategy` | 6-strategy decision tree + mixed combinations + platform diff | 6 strategies + 4 combos + platform matrix | |
| 20 | +| 🔧 `generalupdate-advanced` | `/generalupdate-advanced` | 10+ extension points + 4 IPC + Bowl + AOT | 10+ ext points + full architecture diagram | |
| 21 | +| 🩺 `generalupdate-troubleshoot` | `/generalupdate-troubleshoot` | 50+ known issues diagnosis + 6-step universal check | 8 critical + 11 high + 20 medium + 12 low | |
22 | 22 |
|
23 | | -在 Claude Code 中,只需描述你的需求: |
| 23 | +--- |
| 24 | + |
| 25 | +## Quick Start |
| 26 | + |
| 27 | +In Claude Code, simply describe your needs: |
24 | 28 |
|
25 | 29 | ``` |
26 | | -"给我的 WPF 应用添加自动更新" |
27 | | -→ 自动激活 generalupdate-init + generalupdate-ui |
| 30 | +"Add auto-update to my WPF app" |
| 31 | +→ Automatically activates generalupdate-init + generalupdate-ui |
28 | 32 |
|
29 | | -"更新成功了但启动报错" |
30 | | -→ 自动激活 generalupdate-troubleshoot |
| 33 | +"Update succeeded but the app crashes on startup" |
| 34 | +→ Automatically activates generalupdate-troubleshoot |
31 | 35 |
|
32 | | -"配置 OSS 静默更新" |
33 | | -→ 自动激活 generalupdate-strategy |
| 36 | +"Configure OSS silent update" |
| 37 | +→ Automatically activates generalupdate-strategy |
34 | 38 |
|
35 | | -"添加 Bowl 崩溃守护 + 自定义 Hooks" |
36 | | -→ 自动激活 generalupdate-advanced |
| 39 | +"Add Bowl crash daemon + custom Hooks" |
| 40 | +→ Automatically activates generalupdate-advanced |
37 | 41 | ``` |
38 | 42 |
|
39 | | -### 使用前提 |
| 43 | +### Prerequisites |
| 44 | + |
| 45 | +1. **Claude Code**: requires [Claude Code CLI](https://claude.com/claude-code) installed and configured |
| 46 | +2. **.NET SDK**: target project must target .NET 8+ (.NET 10 recommended) |
| 47 | +3. **GeneralUpdate Server**: for standard strategies, deploy [GeneralSpacestation](https://github.com/JusterZhu/GeneralSpacestation) or a compatible backend |
| 48 | +4. **Dual-Process Architecture**: basic understanding of the Client + Upgrade dual-process model |
40 | 49 |
|
41 | | -1. **Claude Code**:需要安装并配置 [Claude Code CLI](https://claude.com/claude-code) |
42 | | -2. **.NET SDK**:目标项目需基于 .NET 8+(推荐 .NET 10) |
43 | | -3. **GeneralUpdate 服务端**:对于标准策略,需要部署 [GeneralSpacestation](https://github.com/JusterZhu/GeneralSpacestation) 或兼容的后端服务 |
44 | | -4. **双进程架构**:需要理解 Client + Upgrade 双进程的核心理念 |
| 50 | +--- |
45 | 51 |
|
46 | | -## 数据来源 |
| 52 | +## Data Sources |
47 | 53 |
|
48 | | -所有技能的内容基于以下真实数据: |
| 54 | +All skill content is derived from real-world sources: |
49 | 55 |
|
50 | | -- **GitHub Issues**: #308–#517(重构、Bug、功能、测试) |
51 | | -- **Gitee Issues**: 30 个真实用户反馈(中文社区痛点) |
52 | | -- **全面代码审计**: 17 CRITICAL/HIGH + 14 MEDIUM + 10 INFO 发现 |
53 | | -- **Samples 源码**: CompleteUpdateSample、SilentUpdateSample、OssSample、DifferentialSample、PushSample、BowlSample、ExtensionSample、CompressSample、ImDiskQuickInstallSample |
54 | | -- **UI Samples**: SemiUrsa、LayUI、AntdUI、WPFDevelopers、MauiUpdate、AndroidUpdate |
| 56 | +- **GitHub Issues**: #308–#517 (refactoring, bugs, features, tests) |
| 57 | +- **Gitee Issues**: 30 real user reports (Chinese community pain points) |
| 58 | +- **Full Code Audit**: 17 CRITICAL/HIGH + 14 MEDIUM + 10 INFO findings |
| 59 | +- **Samples Source**: CompleteUpdateSample, SilentUpdateSample, OssSample, DifferentialSample, PushSample, BowlSample, ExtensionSample, CompressSample, ImDiskQuickInstallSample |
| 60 | +- **UI Samples**: SemiUrsa, LayUI, AntdUI, WPFDevelopers, MauiUpdate, AndroidUpdate |
55 | 61 |
|
56 | | -## 技能文件结构 |
| 62 | +--- |
| 63 | + |
| 64 | +## Skill File Structure |
57 | 65 |
|
58 | 66 | ``` |
59 | 67 | .claude/skills/ |
60 | 68 | ├── generalupdate-init/ (7 files) |
61 | | -│ ├── SKILL.md ← 4大场景 + 4种配置 + API详解 |
62 | | -│ ├── reference.md ← NuGet/API/协议/框架兼容性 |
| 69 | +│ ├── SKILL.md ← 4 scenes + 3 config methods + API deep-dive |
| 70 | +│ ├── reference.md ← NuGet/API/protocol/framework compatibility |
63 | 71 | │ └── templates/ |
64 | | -│ ├── MinimalIntegration.cs ← 3行代码 + 注释说明 |
65 | | -│ ├── FullIntegration.cs ← 完整配置 + Upgrade进程 + appsettings |
| 72 | +│ ├── MinimalIntegration.cs ← 3 lines + annotations |
| 73 | +│ ├── FullIntegration.cs ← Full config + Upgrade process + appsettings |
66 | 74 | │ ├── generalupdate.manifest.json |
67 | 75 | │ └── project-scaffold/ |
68 | 76 | │ ├── ClientApp.csproj / ClientProgram.cs |
69 | 77 | │ └── UpgradeApp.csproj / UpgradeProgram.cs |
70 | 78 | │ |
71 | 79 | ├── generalupdate-ui/ (10 files) |
72 | | -│ ├── SKILL.md ← 11状态UI状态机 + 框架检测逻辑 |
| 80 | +│ ├── SKILL.md ← 11-state UI state machine + framework detection |
73 | 81 | │ └── templates/ |
74 | | -│ ├── RealDownloadService.cs ← ★ 核心桥接 Mock→GeneralUpdate |
75 | | -│ ├── DownloadViewModels.cs ← 全状态MVVM ViewModel |
76 | | -│ ├── SemiUrsaClientView.axaml ← Avalonia全状态窗口 |
| 82 | +│ ├── RealDownloadService.cs ← ★ Core bridge: Mock→GeneralUpdate |
| 83 | +│ ├── DownloadViewModels.cs ← Full-state MVVM ViewModel |
| 84 | +│ ├── SemiUrsaClientView.axaml ← Avalonia full-state window |
77 | 85 | │ ├── SemiUrsaUpgradeView.axaml |
78 | 86 | │ ├── LayUIStyle.xaml ← WPF+LayUI |
79 | 87 | │ ├── WPFDevelopersStyle.xaml ← WPF+WPFDevelopers |
80 | 88 | │ ├── AntdUIStyle.cs ← WinForms+AntdUI |
81 | 89 | │ └── MauiUpdatePage.xaml/.cs ← MAUI |
82 | 90 | │ |
83 | 91 | ├── generalupdate-strategy/ (7 files) |
84 | | -│ ├── SKILL.md ← 决策树 + 6策略详解 + 混合 + 平台对照 |
| 92 | +│ ├── SKILL.md ← Decision tree + 6 strategies + mixing + platform |
85 | 93 | │ └── examples/ |
86 | | -│ ├── ClientServerStrategy.cs ← 标准服务端模式 |
87 | | -│ ├── OssStrategy.cs ← 对象存储模式 |
88 | | -│ ├── SilentStrategy.cs ← 静默轮询模式 |
89 | | -│ ├── DifferentialStrategy.cs ← 差分更新模式 |
90 | | -│ ├── CrossVersionStrategy.cs ← 跨版本CVP模式 |
91 | | -│ └── PushStrategy.cs ← SignalR推送模式 |
| 94 | +│ ├── ClientServerStrategy.cs ← Standard server mode |
| 95 | +│ ├── OssStrategy.cs ← Object storage mode |
| 96 | +│ ├── SilentStrategy.cs ← Silent polling mode |
| 97 | +│ ├── DifferentialStrategy.cs ← Delta update mode |
| 98 | +│ ├── CrossVersionStrategy.cs ← Cross-version CVP mode |
| 99 | +│ └── PushStrategy.cs ← SignalR push mode |
92 | 100 | │ |
93 | 101 | ├── generalupdate-advanced/ (6 files) |
94 | | -│ ├── SKILL.md ← 10+扩展点 + IPC + Bowl + 事件系统 |
95 | | -│ ├── reference.md ← 扩展点速查 + Bowl选项 |
| 102 | +│ ├── SKILL.md ← 10+ ext points + 4 IPC + Bowl + event system |
| 103 | +│ ├── reference.md ← Extension API quick ref + Bowl options |
96 | 104 | │ └── templates/ |
97 | | -│ ├── CustomHooks.cs ← 完整IUpdateHooks + Unix权限 |
98 | | -│ ├── CustomStrategy.cs ← 自定义平台策略 |
99 | | -│ ├── BowlIntegration.cs ← 崩溃守护配置 |
100 | | -│ └── NamedPipeIPC.cs ← 命名管道IPC替换 |
| 105 | +│ ├── CustomHooks.cs ← Full IUpdateHooks + Unix permissions |
| 106 | +│ ├── CustomStrategy.cs ← Custom platform strategy |
| 107 | +│ ├── BowlIntegration.cs ← Crash daemon config |
| 108 | +│ └── NamedPipeIPC.cs ← Named pipe IPC replacement |
101 | 109 | │ |
102 | 110 | └── generalupdate-troubleshoot/ (2 files) |
103 | | - ├── SKILL.md ← 诊断工作流 |
104 | | - └── reference.md ← ★ 50+症状清单(C/H/M/L四级) |
| 111 | + ├── SKILL.md ← Diagnostic workflow |
| 112 | + └── reference.md ← ★ 50+ symptom catalog (C/H/M/L levels) |
105 | 113 | ``` |
106 | 114 |
|
107 | | -## 版本历史 |
| 115 | +--- |
| 116 | + |
| 117 | +## Known Limitations |
| 118 | + |
| 119 | +> ⚠️ **NuGet Reference Rules**: |
| 120 | +> - Core only: `dotnet add package GeneralUpdate.Core` |
| 121 | +> - With Bowl: reference **only** `GeneralUpdate.Bowl` (it transitively includes Core — the two cannot coexist) |
| 122 | +> - Differential types are already embedded in Core, **no need** for `GeneralUpdate.Differential` |
| 123 | +
|
| 124 | +> ⚠️ **API Surface**: The NuGet stable release (v10.4.6) has a simpler API than the development branch (v10.5.0-beta.2). The following are **not available** in the current stable release: |
| 125 | +> - No programmable `Option` config system (only `Configinfo` properties) |
| 126 | +> - No `IUpdateHooks` lifecycle hooks |
| 127 | +> - No `IStrategy` replaceable strategy interface |
| 128 | +> - No `SilentPollOrchestrator` |
| 129 | +> - No `ProcessContract`/IPC replacement interface |
| 130 | +> |
| 131 | +> These features may ship in a future version. All templates target the **stable v10.4.6** API. |
| 132 | +
|
| 133 | +See [BUGS.md](BUGS.md) for the full audit trail. |
| 134 | + |
| 135 | +--- |
| 136 | + |
| 137 | +## Version History |
108 | 138 |
|
109 | 139 | ### v1.0.0 — 2026-06-16 |
110 | 140 |
|
111 | | -**相比开发分支(v10.5.0-beta.2),稳定版 NuGet v10.4.6 的 API 有根本性差异。** |
112 | | -所有模板已根据 **稳定版 API** 重写并通过编译验证。 |
| 141 | +**The NuGet stable release (v10.4.6) API is fundamentally different from the development branch (v10.5.0-beta.2).** |
| 142 | +All templates have been rewritten for the **stable API** and verified to compile. |
| 143 | + |
| 144 | +**Key API Differences**: |
| 145 | +- ❌ No `SetSource()`, `SetOption()`, `Hooks<T>()`, `Strategy<T>()`, `SilentOrchestrator` |
| 146 | +- ❌ No `IUpdateHooks`, `IStrategy` extension point interfaces |
| 147 | +- ✅ `Configinfo` + `SetConfig()` + `LaunchAsync()` is the core API |
| 148 | +- ✅ `AppType` is a class (not enum), `ClientApp = 1`, `UpgradeApp = 2` |
| 149 | +- ✅ `LaunchAsync()` returns `Task<GeneralUpdateBootstrap>` (not `Task<bool>`) |
| 150 | +- ⚠️ NuGet reference rule: when using Bowl, reference **only** `GeneralUpdate.Bowl`, do not reference Core separately |
113 | 151 |
|
114 | | -**核心 API 差异**: |
115 | | -- ❌ 无 `SetSource()`、`SetOption()`、`Hooks<T>()`、`Strategy<T>()`、`SilentOrchestrator` |
116 | | -- ❌ 无 `IUpdateHooks`、`IStrategy` 扩展点接口 |
117 | | -- ✅ `Configinfo` + `SetConfig()` + `LaunchAsync()` 为核心 API |
118 | | -- ✅ `AppType` 是 class(非 enum),`ClientApp = 1`、`UpgradeApp = 2` |
119 | | -- ✅ `LaunchAsync()` 返回 `Task<GeneralUpdateBootstrap>`(非 `Task<bool>`) |
120 | | -- ⚠️ NuGet 包引用规则:使用 Bowl 时只引用 `GeneralUpdate.Bowl`,不额外引用 Core |
| 152 | +**Changelog**: |
| 153 | +- **Rewritten**: All 12 template/example files to use the `Configinfo` API |
| 154 | +- **Rewritten**: All 5 strategy examples (adapted for v10.4.6 stable) |
| 155 | +- **Rewritten**: UI bridge templates (`RealDownloadService.cs`) |
| 156 | +- **Fixed**: Code uses `using GeneralUpdate.Common.Shared.Object` namespace |
| 157 | +- **Removed**: Nonexistent `SetOption`, extension points, `IUpdateHooks`, `IProcessInfoProvider` references |
| 158 | +- **Added**: English README (`README.en.md`) |
| 159 | +- **Added**: Simplified Chinese README (`README.zh-Hans.md`) |
| 160 | +- **Added**: `BUGS.md` (audit report with fixes) |
121 | 161 |
|
122 | | -**变更清单**: |
123 | | -- **重写**:全部 12 个模板/示例文件,使用 `Configinfo` API |
124 | | -- **重写**:全部 5 个策略示例(适配 v10.4.6 稳定版) |
125 | | -- **重写**:UI 桥接模板(`RealDownloadService.cs`) |
126 | | -- **修复**:代码使用 `using GeneralUpdate.Common.Shared.Object` 命名空间 |
127 | | -- **删除**:不存在的 `SetOption`、扩展点、`IUpdateHooks`、`IProcessInfoProvider` 等引用 |
128 | | -- **新增**:英文版 README(README.en.md) |
129 | | -- **新增**:中文版 README(README.zh-Hans.md) |
130 | | -- **新增**:BUGS.md(审计报告与修复方案) |
| 162 | +See [BUGS.md](BUGS.md) for details. |
131 | 163 |
|
132 | | -详见 [BUGS.md](BUGS.md)。 |
| 164 | +--- |
133 | 165 |
|
134 | | -## 如何贡献 |
| 166 | +## Contributing |
135 | 167 |
|
136 | | -1. 提交 Issue 报告 Bug 或功能请求 |
137 | | -2. Fork 本仓库,在 `.claude/skills/` 下添加或修改技能 |
138 | | -3. 确保模板代码与 GeneralUpdate 最新版 API 一致 |
139 | | -4. 提交 PR |
| 168 | +1. File an Issue to report bugs or request features |
| 169 | +2. Fork this repo, add/modify skills under `.claude/skills/` |
| 170 | +3. Ensure template code aligns with the latest GeneralUpdate API |
| 171 | +4. Submit a PR |
140 | 172 |
|
141 | | -### 开发指南 |
| 173 | +### Development Guide |
142 | 174 |
|
143 | 175 | ```bash |
144 | | -# 本地测试技能 |
| 176 | +# Test skills locally in Claude Code |
145 | 177 | claude-code --load-skills .claude/skills/ |
146 | 178 |
|
147 | | -# 验证模板代码可编译 |
| 179 | +# Verify template code compiles |
148 | 180 | dotnet build your-test-project/ |
149 | 181 | ``` |
150 | 182 |
|
151 | | -## 许可证 |
| 183 | +--- |
| 184 | + |
| 185 | +## License |
152 | 186 |
|
153 | | -Apache 2.0 — 与 GeneralUpdate 主项目一致 |
| 187 | +Apache 2.0 — consistent with the GeneralUpdate main project. |
154 | 188 |
|
155 | | -## 相关项目 |
| 189 | +## Related Projects |
156 | 190 |
|
157 | | -- [GeneralUpdate](https://github.com/GeneralLibrary/GeneralUpdate) — .NET 自动更新核心库 |
158 | | -- [GeneralSpacestation](https://github.com/JusterZhu/GeneralSpacestation) — 更新服务端 |
159 | | -- [GeneralUpdate-Samples](https://github.com/GeneralLibrary/GeneralUpdate-Samples) — 示例项目合集 |
| 191 | +- [GeneralUpdate](https://github.com/GeneralLibrary/GeneralUpdate) — .NET auto-update core library |
| 192 | +- [GeneralSpacestation](https://github.com/JusterZhu/GeneralSpacestation) — Update server backend |
| 193 | +- [GeneralUpdate-Samples](https://github.com/GeneralLibrary/GeneralUpdate-Samples) — Sample projects collection |
0 commit comments