SPlayer Agent Skills & AI Rules

GitHub

A cross-platform music player with Jellyfin / Navidrome / Emby media server support, word-by-word lyrics, desktop & taskbar lyrics, cloud music drive, local...

RAW Rules
4 Discovered Rules • ~4,776 Estimated Tokens
Quick:
Loading skill content...

AI Agent Protocol & Instructions

AGENTS.md root-instruction ~1,242 tokens
Raw
# AI 开发助手行为准则

## 项目技术栈与环境

- **核心框架**: Vue 3 + Electron
- **UI 组件库**: **Naive UI** (严禁混用其他 UI 库)
- **包管理器**: **严格使用 `pnpm`** (严禁使用 npm/yarn)
- **开发命令**: `pnpm dev` (预览代码)
- **代码质量**: 每次任务结束前,必须自动运行 `pnpm lint` 并修复所有问题,确保 0 错误、0 警告后方可交付。
- **提交之前**: 必须运行 `pnpm build` 和 `pnpm format` 并修复所有问题,确保 0 错误、0 警告后方可提交。

## 代码风格与规范

### 1. 注释规范

- **语言**: 必须使用**中文**。
- **格式**: 保持简洁,禁止长句、英文长文或带序号的注释。
  - 正确: `// 监听主进程消息`
  - 错误: `// 1. listen to main process`, `// this function handles ipc...`

### 2. UI 组件使用 Naive UI

- **原则**: 严禁重复造轮子。所有通用交互必须优先使用 Naive UI 组件。
- **处理方式**: 如果未找到合适组件,必须先询问用户,禁止擅自手写原生 CSS/HTML 组件。
  - 正确: 使用 `<n-button type="primary">`, `<n-modal>`, `<n-message-provider>`
  - 错误: 手写 `<div class="my-btn">` 或引入 Element Plus 等其他库。

### 3. 图标

- **原则**: 优先复用项目 `src/assets/icons` 或现有图标方案。
- **具体实现**: 严格遵循项目现有的图标组件用法。
  - 正确: `<SvgIcon :name="isLikeAlbum ? 'Favorite' : 'FavoriteBorder'" />`
  - 错误: 擅自引入 `xicons` (除非用户明确允许) 或手写 SVG 代码。

### 4. Electron 特性规范

- **进程安全**: 明确代码运行环境(Main vs Renderer)。不要在渲染进程中直接调用不安全的 Node.js API,应优先使用 IPC 通信或 Preload 脚本暴露的 API。
- **通信规范**: 涉及 IPC 通信时,保持频道命名清晰且常量化。

### 5. 测试与清理

- **临时文件**: 任务过程中生成的临时测试文件(如 `test_lrc.ts`),必须在任务结束前自动删除,严禁推送到代码库。

## 交互与思维链

### 1. 遇到困难多确认

- **原则**: 禁止假设。当遇到不理解的概念(特别是 Electron 的通信逻辑或原生能力调用)时,**必须**暂停并向用户提问。
  - 禁止: “我猜用户是想在渲染进程直接读文件...” -> 导致安全报错。
  - 建议: “此处涉及文件系统操作,请确认是通过 IPC 调用主进程处理,还是使用现有的工具函数?”

### 2. 复杂任务先规划

- **文档驱动开发**: 遇到复杂功能(如窗口管理、系统托盘、复杂逻辑重构)时,**必须**先创建一个临时的 Markdown 文档(如 `name_of_task.md`)。
- **流程**: 在文档中梳理思路 -> 展示给用户 -> 用户同意 -> 开始写代码。

### 3. 复用优先DRY原则

- **原则**: 在编写新功能前,强制检索项目现存代码。
- **自检**: “项目中是否已经有类似的 IPC 封装或 UI 组件?”如果是,直接复用。

### 4. 聊天方式

- **原则**: 与用户保持中文对话,禁止使用英文或其他语言。
- **具体实现**: 所有与用户的交互(包括问题、指令、代码展示等)都必须用中文进行。

## 严格合规声明

- **指令等级**: Critical。
- **违规后果**: 违反以上任何一条规则将被定义为**任务失败**,代码将被直接拒绝。请务必严格执行上述标准。