已开启
feat: add my-first-plugin #1
thgertaba创建于 6月28日
feat: add my-first-plugin #1
已开启
合并受阻
atomgit-bot
6月28日 评论:
6月28日 评论:
atomgit-bot
6月28日 评论:
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中添加了简短的插件介绍文档。


不准确?
atomgit-bot
6月28日 评论:
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 |
💬 仅评论


不准确?
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": "..",
🟡 Medium Priority
变更行:my-first-plugin/.atomcode-plugin/plugin.json 第5行 "asset_dir": ".."。
问题: 该插件清单使用了非标准字段 asset_dir,而非 AtomCode 插件规范中定义的 skills 字段。且其值 ".." 是路径穿越模式,指向插件目录的父目录。
证据链:
- 项目模板
templates/plugin-template/.atomcode-plugin/plugin.json使用"skills": "skills"。 - 所有已有插件(
plugins/atomcode-workflows、plugins/commit-craft、plugins/git-worktree)均使用"skills": "skills"。 CONTRIBUTING.md的插件目录结构明确展示skills/<skill>/SKILL.md模式。- 验证脚本
scripts/validate.py仅识别LOADABLE_ASSET_KEYS = {"skills", "commands"},asset_dir不在其中,会被静默忽略。 - 值
".."是一个目录穿越路径,若任何下游系统读取该字段并按路径解析,将逃逸出插件目录。
影响:
- 若 AtomCode 引擎依赖 manifest 中的
skills键来发现技能,则该插件的技能将不会被加载。 - 作为名为"my-first-plugin"的示例插件,它向新插件作者示范了错误的 manifest 格式。
..路径值存在被误用的安全风险。
建议:将 "asset_dir": ".." 替换为 "skills": "skills",与模板和所有已有插件保持一致。同时删除第6行的 "verified": false(该字段属于 market 目录层级,不属于 plugin 清单)。


不准确?
添加一个简单的示例插件