| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix: 兼容Windows安装默认skills (#194) Co-authored-by: hamburgerbobo<1295829121@qq.com> # message auto-generated for no-merge-commit merge: !1369 merge fix/install-default-skills-windows-compat into develop fix: 兼容Windows安装默认skills (#194) Created-by: hamburgerbobo Commit-by: hamburgerbobo Merged-by: cann-robot Description: ## 描述 .opencode/plugins/install-default-skills.ts 在 opencode 启动时自动安装四个默认 skill(gitcode-pr、gitcode-issue、api-doc-generator、gitcode-pipeline)。原实现委托给 bash 脚本 .claude/skills/default-skills/scripts/install-default-skills.sh,在 Windows 上存在两层阻断: 1. **TS 层短路**:插件检测 bash --version,原生 Windows 无 bash 时直接 return,不执行任何安装。 2. **Shell 脚本依赖**:install-default-skills.sh 使用 ln -sfn(Windows 普通用户无符号链接权限)、/tmp、mktemp、timeout 等 Unix 专有依赖。 本 PR 用 Node.js 原生 API(fs/path/os/child_process)重写安装逻辑,移除 bash 硬依赖,使插件在 Linux 与 Windows 上均能自动安装默认 skills,且不破坏现有 Linux 行为。.sh 脚本保留不动,供 Claude Code 手动场景(Linux)使用。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue #194 ## 如何测试 **前提条件**:系统已安装 git 并在 PATH 中(Linux/Windows 均默认随 Git for Windows 提供)。 **Linux 验证(等价性)**: 1. 删除 .claude/skills/_remote/ 与四个 skill 一级目录链接 2. 启动 opencode,观察安装提示 3. 验证 _remote/<skill>/ 真实目录存在,一级目录为相对路径符号链接 -> _remote/<skill> 4. 二次启动,hash 无变化时不打印重启提示(幂等) 5. 断网启动,验证 .opencode_skills_error marker 与提示打印 **Windows 验证(新增能力)**: 1. 原生 Windows(无 bash)启动 opencode 2. 验证四个 skill 自动安装,一级目录为 junction(无需管理员权限) 3. 验证 _remote/<skill>/SKILL.md 可访问 **已执行验证**(Linux 环境): - TypeScript strict 模式类型检查通过 - fresh install:4 个 skill 以相对路径符号链接安装,SKILL.md 可访问 - 幂等性:二次运行无变更提示、无错误 marker - 错误路径:模拟 git clone 失败,正确写 .opencode_skills_error 并打印清晰提示 - .gitignore 幂等更新,无重复条目,保留尾换行 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 **设计要点**: - 跨平台链接:Windows 用 junction(无需管理员权限,目录专用,target 用绝对路径);Unix 保持相对路径 symlink(与 .sh ln -sfn _remote/$skill 等价,仓库内可移植) - 临时目录:os.tmpdir() + fs.mkdtempSync 替代硬编码 /tmp,try/finally + fs.rmSync force:true 清理 - 网络探测合并到 git clone --depth 1(带 CLONE_TIMEOUT_MS 超时),去除 curl/wget 预检测,减少平台分支 - DEFAULT_SKILLS、REPO_URL、CLONE_TIMEOUT_MS 集中在文件顶部常量,与 .sh 保持一致 - 错误处理保留原有 .opencode_skills_error marker + 延迟打印逻辑,catch 块按 strict 模式类型安全处理 unknown error **红线自查**:不硬编码敏感信息(REPO_URL 为公开仓库地址);资源释放覆盖异常分支;仅改 TS 插件,不扩大修改范围。 **安全提示**:issue 创建过程中误建了测试 issue #193(已加评论标注,GitCode API 关闭端点有兼容问题未能关闭,请社区协助关闭)。 See merge request: cann/graph-autofusion!1369 | 1 个月前 | |
feat: add opencode skill management and 5 project-specific skills - Establish three-layer skill architecture (local + remote + plugin) - Add 5 local skills: cann-toolkit-installer, default-skills, af-build-runner, af-test-developer, af-code-reviewer - Add skill management documentation (docs/zh/opencode-skill-management.md) - Add .claude/skills/.gitignore with whitelist mode to prevent accidental skill commits - Add open-source contributor skill contribution guide - Optimize skills based on test results (3204 tests passed) Closes cann/graph-autofusion#59 | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 3 个月前 |