已开启
feat: add my-first-plugin #1
feat: add my-first-plugin #1
已开启
thgertaba创建于 6月28日
thgertaba
thgertaba
6月28日

添加一个简单的示例插件

likedislike
合并受阻
atomgit-bot
atomgit-bot成员
6月28日 评论:

AtomGit AI 助手使用指南

在 PR 评论中使用命令即可触发。支持在普通评论和代码行评论中使用。

功能 命令 说明
代码审查 /ai review 检查代码质量、潜在问题、安全风险
PR 摘要 /ai summary 生成 PR 变更内容的结构化摘要
代码解释 /ai explain 解释代码变更的逻辑和意图
自由提问 @atomgit-bot <问题> 询问关于本 PR 的任何问题
帮助 /ai help 显示此帮助信息

免责声明

AI 助手可能存在误判,请结合自身判断。可以对评论点 👍 或 👎 帮助我们改进。

likedislike
不准确?
atomgit-bot
atomgit-bot成员
6月28日 评论:

变更摘要

此 PR 新增了一个名为 my-first-plugin 的示例插件,用于演示 AtomCode 插件的基本结构。该插件包含插件元数据配置和一项简单的 hello 技能。

主要改动

  • 新增插件配置文件 plugin.json: 在 my-first-plugin/.atomcode-plugin/plugin.json 中定义了插件的基本元数据,包括 name(my-first-plugin)、version(1.0.0)、description("我的第一个 AtomCode 插件")、asset_dir("..")以及 verified(false)字段。
  • 新增技能定义 SKILL.md: 在 my-first-plugin/skills/hello/SKILL.md 中定义了一个名为 hello 的技能,其描述为"一个简单的打招呼技能",行为是当被调用时用中文回复"你好!"。
  • 新增插件说明文件 README.md: 在 my-first-plugin/README.md 中添加了简短的插件介绍文档。
likedislike
不准确?
atomgit-bot
atomgit-bot成员
6月28日 评论:

代码审查

审查总结

文件 审查结果
my-first-plugin/.atomcode-plugin/plugin.json 发现 1 个问题 (P2):使用了非标准字段 asset_dir 并带路径穿越值 ..,应改为 skills
my-first-plugin/README.md 无问题
my-first-plugin/skills/hello/SKILL.md 无问题

发现问题数(按优先级): P2 × 1

整体风险评估: 低风险。该变更为新增一个示例插件,本质上是模板性质的。主要问题是 plugin.json 中的清单格式与项目规范不符——字段名 asset_dir 应为 skills,且值 .. 存在路径穿越模式。由于该插件未注册在 market 目录中(不在 marketplace.json 的 plugins 列表内),因此不会影响生产环境,但作为"my-first-plugin"示例,会向新贡献者示范错误的清单格式。修复简单,将第5行替换为 "skills": "skills" 即可。

类型 数量
🔴 阻塞 0
🟡 建议 1

💬 仅评论

likedislike
不准确?
atomgit-bot
atomgit-bot成员6月28日进行代码检视1
my-first-plugin/.atomcode-plugin/plugin.json
@@ -0,0 +2,4 @@
2+ "name": "my-first-plugin",
3+ "version": "1.0.0",
4+ "description": "我的第一个 AtomCode 插件",
5+ "asset_dir": "..",
atomgit-bot
atomgit-bot6月28日评论:

🟡 Medium Priority

变更行:my-first-plugin/.atomcode-plugin/plugin.json 第5行 "asset_dir": ".."。

问题: 该插件清单使用了非标准字段 asset_dir,而非 AtomCode 插件规范中定义的 skills 字段。且其值 ".." 是路径穿越模式,指向插件目录的父目录。

证据链:

  1. 项目模板 templates/plugin-template/.atomcode-plugin/plugin.json 使用 "skills": "skills"。
  2. 所有已有插件(plugins/atomcode-workflows、plugins/commit-craft、plugins/git-worktree)均使用 "skills": "skills"。
  3. CONTRIBUTING.md 的插件目录结构明确展示 skills/<skill>/SKILL.md 模式。
  4. 验证脚本 scripts/validate.py 仅识别 LOADABLE_ASSET_KEYS = {"skills", "commands"},asset_dir 不在其中,会被静默忽略。
  5. 值 ".." 是一个目录穿越路径,若任何下游系统读取该字段并按路径解析,将逃逸出插件目录。

影响:

  • 若 AtomCode 引擎依赖 manifest 中的 skills 键来发现技能,则该插件的技能将不会被加载。
  • 作为名为"my-first-plugin"的示例插件,它向新插件作者示范了错误的 manifest 格式。
  • .. 路径值存在被误用的安全风险。

建议:将 "asset_dir": ".." 替换为 "skills": "skills",与模板和所有已有插件保持一致。同时删除第6行的 "verified": false(该字段属于 market 目录层级,不属于 plugin 清单)。

likedislike
不准确?