{"owner":"babalae","repo":"better-genshin-impact","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"本项目使用了 WPF-UI、 CommunityToolkit.Mvvm、Microsoft.Xaml.Behaviors.Wpf 来实现 MVVM 架构。在编写代码的时候请注意：\n\n### 主要依赖框架\n#### UI 框架\n- **WPF-UI (4.0.2)** - 现代化 WPF UI 框架\n- **gong-wpf-dragdrop(3.2.1)** - 拖拽框架\n\n#### MVVM 框架\n- **CommunityToolkit.Mvvm (8.2.2)** - 微软官方 MVVM 工具包\n  - 所有 ViewModel 必须继承自 `ObservableObject`\n  - 使用 `[ObservableProperty]` 特性自动生成属性\n  - 使用 `[RelayCommand]` 特性自动生成命令\n- **Microsoft.Xaml.Behaviors.Wpf(1.1.122)** - WPF 行为扩展库\n  - 请尽量使用 Behaviors 库来实现交互，避免不符合 MVVM 规范的交互事件触发方式。\n\n### 其他框架使用要求\n1. 请优先使用 Newtonsoft.Json 作为json序列化工具，但是如果这个模型已经被System.Text.Json序列化过了，那么就直接使用System.Text.Json反序列化。\n2. 所有简单的对话框弹出需求优先使用 ThemedMessageBox 弹出。而不是 WPF 自带的 MessageBox。\n\n## MVVM 架构规则\n\n### 基础架构\n\n### ViewModel 编写规范\n\n1. **继承规则**\n   ```csharp\n   public partial class ExampleViewModel : ViewModel\n   {\n       [ObservableProperty]\n       private string _title = \"\";\n       \n       [RelayCommand]\n       private void DoSomething()\n       {\n           // 实现逻辑\n       }\n   }\n   ```\n\n2. **属性命名**\n   - 私有字段使用下划线前缀: `_fieldName`\n   - 公共属性使用 PascalCase: `PropertyName`\n   - 使用 `[ObservableProperty]` 自动生成属性\n\n3. **命令实现**\n   - 使用 `[RelayCommand]` 特性\n   - 异步命令使用 `[RelayCommand]` + `async Task`\n\n### View 编写规范\n\n1. **代码后置**\n   ```csharp\n   public partial class ExamplePage : UserControl\n   {\n       public ExampleViewModel ViewModel { get; }\n       \n       public ExamplePage(ExampleViewModel viewModel)\n       {\n           ViewModel = viewModel;\n           DataContext = this;\n           InitializeComponent();\n       }\n   }\n   ```\n\n2. **XAML 绑定**\n   - 使用 `{Binding}` 语法绑定 ViewModel 属性\n   - 命令绑定: `Command=\"{Binding ExampleCommand}\"`\n   - 避免在 XAML 中编写复杂逻辑\n\n### 依赖注入规范\n\n1. **服务注册**\n   ```csharp\n   // 在 App.xaml.cs 中注册\n   services.AddView<ExamplePage, ExampleViewModel>();\n   services.AddSingleton<IExampleService, ExampleService>();\n   ```\n\n最后，程序能够编译就认为成功，无需实际运行程序。\n\n编译指令参考，如果出现程序占用场景，直接放弃编译验证即可\n```\ndotnet build BetterGenshinImpact.sln -c Debug\n```\n\n## Code Review Rules\n\n### Output language\n\n- 必须使用简体中文输出代码审查结果。\n- 问题标题、问题描述、影响分析和修复建议必须使用中文。\n- 类名、方法名、变量名、文件路径、代码片段和错误消息保持原文。\n- 专业术语第一次出现时可以采用“中文（English）”格式。\n\n### Review priorities\n\n- 优先检查可能造成崩溃、死锁、资源泄漏和数据竞争的问题。\n- 重点检查异步任务、CancellationToken、线程切换和 STA UI 线程使用。\n- 重点检查 Mat、Bitmap、Stream、CancellationTokenSource 等 IDisposable 对象是否正确释放。\n- 检查游戏输入、截图和多实例场景是否存在共享状态冲突。\n- 不要只提出风格问题，除非它会影响正确性、可维护性或性能。\n\n### Finding format\n\n每个问题按以下结构输出：\n\n1. 严重程度\n2. 问题位置\n3. 问题原因\n4. 可能造成的影响\n5. 推荐修复方案\n"},"files":{"AGENTS.md":"本项目使用了 WPF-UI、 CommunityToolkit.Mvvm、Microsoft.Xaml.Behaviors.Wpf 来实现 MVVM 架构。在编写代码的时候请注意：\n\n### 主要依赖框架\n#### UI 框架\n- **WPF-UI (4.0.2)** - 现代化 WPF UI 框架\n- **gong-wpf-dragdrop(3.2.1)** - 拖拽框架\n\n#### MVVM 框架\n- **CommunityToolkit.Mvvm (8.2.2)** - 微软官方 MVVM 工具包\n  - 所有 ViewModel 必须继承自 `ObservableObject`\n  - 使用 `[ObservableProperty]` 特性自动生成属性\n  - 使用 `[RelayCommand]` 特性自动生成命令\n- **Microsoft.Xaml.Behaviors.Wpf(1.1.122)** - WPF 行为扩展库\n  - 请尽量使用 Behaviors 库来实现交互，避免不符合 MVVM 规范的交互事件触发方式。\n\n### 其他框架使用要求\n1. 请优先使用 Newtonsoft.Json 作为json序列化工具，但是如果这个模型已经被System.Text.Json序列化过了，那么就直接使用System.Text.Json反序列化。\n2. 所有简单的对话框弹出需求优先使用 ThemedMessageBox 弹出。而不是 WPF 自带的 MessageBox。\n\n## MVVM 架构规则\n\n### 基础架构\n\n### ViewModel 编写规范\n\n1. **继承规则**\n   ```csharp\n   public partial class ExampleViewModel : ViewModel\n   {\n       [ObservableProperty]\n       private string _title = \"\";\n       \n       [RelayCommand]\n       private void DoSomething()\n       {\n           // 实现逻辑\n       }\n   }\n   ```\n\n2. **属性命名**\n   - 私有字段使用下划线前缀: `_fieldName`\n   - 公共属性使用 PascalCase: `PropertyName`\n   - 使用 `[ObservableProperty]` 自动生成属性\n\n3. **命令实现**\n   - 使用 `[RelayCommand]` 特性\n   - 异步命令使用 `[RelayCommand]` + `async Task`\n\n### View 编写规范\n\n1. **代码后置**\n   ```csharp\n   public partial class ExamplePage : UserControl\n   {\n       public ExampleViewModel ViewModel { get; }\n       \n       public ExamplePage(ExampleViewModel viewModel)\n       {\n           ViewModel = viewModel;\n           DataContext = this;\n           InitializeComponent();\n       }\n   }\n   ```\n\n2. **XAML 绑定**\n   - 使用 `{Binding}` 语法绑定 ViewModel 属性\n   - 命令绑定: `Command=\"{Binding ExampleCommand}\"`\n   - 避免在 XAML 中编写复杂逻辑\n\n### 依赖注入规范\n\n1. **服务注册**\n   ```csharp\n   // 在 App.xaml.cs 中注册\n   services.AddView<ExamplePage, ExampleViewModel>();\n   services.AddSingleton<IExampleService, ExampleService>();\n   ```\n\n最后，程序能够编译就认为成功，无需实际运行程序。\n\n编译指令参考，如果出现程序占用场景，直接放弃编译验证即可\n```\ndotnet build BetterGenshinImpact.sln -c Debug\n```\n\n## Code Review Rules\n\n### Output language\n\n- 必须使用简体中文输出代码审查结果。\n- 问题标题、问题描述、影响分析和修复建议必须使用中文。\n- 类名、方法名、变量名、文件路径、代码片段和错误消息保持原文。\n- 专业术语第一次出现时可以采用“中文（English）”格式。\n\n### Review priorities\n\n- 优先检查可能造成崩溃、死锁、资源泄漏和数据竞争的问题。\n- 重点检查异步任务、CancellationToken、线程切换和 STA UI 线程使用。\n- 重点检查 Mat、Bitmap、Stream、CancellationTokenSource 等 IDisposable 对象是否正确释放。\n- 检查游戏输入、截图和多实例场景是否存在共享状态冲突。\n- 不要只提出风格问题，除非它会影响正确性、可维护性或性能。\n\n### Finding format\n\n每个问题按以下结构输出：\n\n1. 严重程度\n2. 问题位置\n3. 问题原因\n4. 可能造成的影响\n5. 推荐修复方案\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"本项目使用了 WPF-UI、 CommunityToolkit.Mvvm、Microsoft.Xaml.Behaviors.Wpf 来实现 MVVM 架构。在编写代码的时候请注意：\n\n### 主要依赖框架\n#### UI 框架\n- **WPF-UI (4.0.2)** - 现代化 WPF UI 框架\n- **gong-wpf-dragdrop(3.2.1)** - 拖拽框架\n\n#### MVVM 框架\n- **CommunityToolkit.Mvvm (8.2.2)** - 微软官方 MVVM 工具包\n  - 所有 ViewModel 必须继承自 `ObservableObject`\n  - 使用 `[ObservableProperty]` 特性自动生成属性\n  - 使用 `[RelayCommand]` 特性自动生成命令\n- **Microsoft.Xaml.Behaviors.Wpf(1.1.122)** - WPF 行为扩展库\n  - 请尽量使用 Behaviors 库来实现交互，避免不符合 MVVM 规范的交互事件触发方式。\n\n### 其他框架使用要求\n1. 请优先使用 Newtonsoft.Json 作为json序列化工具，但是如果这个模型已经被System.Text.Json序列化过了，那么就直接使用System.Text.Json反序列化。\n2. 所有简单的对话框弹出需求优先使用 ThemedMessageBox 弹出。而不是 WPF 自带的 MessageBox。\n\n## MVVM 架构规则\n\n### 基础架构\n\n### ViewModel 编写规范\n\n1. **继承规则**\n   ```csharp\n   public partial class ExampleViewModel : ViewModel\n   {\n       [ObservableProperty]\n       private string _title = \"\";\n       \n       [RelayCommand]\n       private void DoSomething()\n       {\n           // 实现逻辑\n       }\n   }\n   ```\n\n2. **属性命名**\n   - 私有字段使用下划线前缀: `_fieldName`\n   - 公共属性使用 PascalCase: `PropertyName`\n   - 使用 `[ObservableProperty]` 自动生成属性\n\n3. **命令实现**\n   - 使用 `[RelayCommand]` 特性\n   - 异步命令使用 `[RelayCommand]` + `async Task`\n\n### View 编写规范\n\n1. **代码后置**\n   ```csharp\n   public partial class ExamplePage : UserControl\n   {\n       public ExampleViewModel ViewModel { get; }\n       \n       public ExamplePage(ExampleViewModel viewModel)\n       {\n           ViewModel = viewModel;\n           DataContext = this;\n           InitializeComponent();\n       }\n   }\n   ```\n\n2. **XAML 绑定**\n   - 使用 `{Binding}` 语法绑定 ViewModel 属性\n   - 命令绑定: `Command=\"{Binding ExampleCommand}\"`\n   - 避免在 XAML 中编写复杂逻辑\n\n### 依赖注入规范\n\n1. **服务注册**\n   ```csharp\n   // 在 App.xaml.cs 中注册\n   services.AddView<ExamplePage, ExampleViewModel>();\n   services.AddSingleton<IExampleService, ExampleService>();\n   ```\n\n最后，程序能够编译就认为成功，无需实际运行程序。\n\n编译指令参考，如果出现程序占用场景，直接放弃编译验证即可\n```\ndotnet build BetterGenshinImpact.sln -c Debug\n```\n\n## Code Review Rules\n\n### Output language\n\n- 必须使用简体中文输出代码审查结果。\n- 问题标题、问题描述、影响分析和修复建议必须使用中文。\n- 类名、方法名、变量名、文件路径、代码片段和错误消息保持原文。\n- 专业术语第一次出现时可以采用“中文（English）”格式。\n\n### Review priorities\n\n- 优先检查可能造成崩溃、死锁、资源泄漏和数据竞争的问题。\n- 重点检查异步任务、CancellationToken、线程切换和 STA UI 线程使用。\n- 重点检查 Mat、Bitmap、Stream、CancellationTokenSource 等 IDisposable 对象是否正确释放。\n- 检查游戏输入、截图和多实例场景是否存在共享状态冲突。\n- 不要只提出风格问题，除非它会影响正确性、可维护性或性能。\n\n### Finding format\n\n每个问题按以下结构输出：\n\n1. 严重程度\n2. 问题位置\n3. 问题原因\n4. 可能造成的影响\n5. 推荐修复方案\n","category":"root","tokens":598}]}