这是 EasyCode 技能商城当前已发布技能的源码备份仓库。仓库中的内容可审查、可回滚,并保留技能的说明、媒体资源和商城元数据。
当前仓库只放生产商城范围内的技能(当前 30 个);个人、实验中、未上架和仅保存在本地的技能不放入这里。
每个技能位于 skills/<技能名>/:
SKILL.md:技能正文和 YAML frontmatter;marketplace.json:版本、上下架状态、使用示例、对象存储键等商城元数据;assets/:图标、详情预览图、缩略图和示例产出文件;- 其他脚本和参考资料:技能运行时需要的资源。
运行缓存、依赖目录、环境文件和密钥不会提交到仓库。
21 个技能在 SKILL.md 中声明了上游仓库、源码路径和已审核提交号。GitHub Actions 每天北京时间 10:00 检查上游,也可以手动运行 Sync upstream skills。发现更新后,Action 会在独立分支创建或更新 PR,供人工审核。
同步使用已审核提交号做三方合并:新增文件自动带入,未被本地修改的删除会同步,本地和上游同时修改的文本会保留冲突标记并等待处理。同步不会直接修改 EasyCode 后台,也不会直接写入 GCS。没有上游元数据的内部上传技能(当前 9 个)仍由普通 PR 手工维护。
上游元数据示例:
---
name: docx
description: "..."
upstream: anthropics/skills
upstreamPath: skills/docx
upstreamSha: 53048666b05b4799081517d00e09e0a2dd688678
author: anthropics
---每个 Pull Request 和推送到 main 都会运行 Skill Gate。门禁会用真实 YAML 解析器检查 SKILL.md,并校验 marketplace.json、媒体文件路径和数量、技能目录命名、上游提交号、常见凭据/私钥以及合并冲突标记。未加引号的 description 冒号等问题会在合并前失败。
管理员应在 main 的分支保护或 Ruleset 中要求通过 Validate skills 后才能合并,并禁止绕过规则。组织迁移后请重新确认这项设置。具体维护规则见 docs/skill-sync.md。
SKILL.md 的 category 是 Git 同步技能的分类事实源,必须使用下面的规范名称:
文档办公演示与设计视频创作社媒运营开发工具浏览器与测试阅读与知识
分类按用户目标划分,不按实现技术划分。例如 Remotion、演讲视频工坊和涂鸦动画都属于 视频创作;抖音发布属于 社媒运营。
目前 GitHub 仓库没有单独的 tag 发布 workflow。普通提交、上游同步 PR 和生产发布是三件事:
- 合并通过门禁的技能源码到
main; - 生产环境的 EasyCode 服务按小时自动同步本仓库
main,打包技能 ZIP、更新 GCS 制品与商城元数据——合入后通常一小时内生效,不需要任何标签; - 只有服务端代码变更才需要在 EasyCodeServer 仓库打
release-online-*tag 触发镜像构建与部署,与本仓库无关。
因此本仓库不需要为发布打 tag;未来若需要 GitHub tag 直接生成发布包或通知服务端,再单独增加发布 workflow。
ruby scripts/validate_skills.rb --self-test
ruby scripts/sync_upstreams.rb --self-test
ruby scripts/validate_skills.rb
ruby scripts/sync_upstreams.rbscripts/sync_upstreams.rb 只会修改当前工作树,适合在 PR 分支或 CI 临时分支运行;它不会上传对象存储。更多同步、冲突处理和分支保护说明见 docs/skill-sync.md。