news 2026/7/24 22:08:10

社区扩展管理_add-community-extension

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
社区扩展管理_add-community-extension

以下为本文档的中文说明

该技能用于处理GitHub Issue提交的社区扩展(Extension),将其添加到Spec Kit目录中。主要功能是解析扩展提交Issue、验证目录条目、更新catalog.community.json和docs/community/extensions.md文档,并创建PR。使用场景包括:新的扩展提交Issue被提交;现有扩展提交更新Issue(新版本、元数据变更);需要添加或更新社区扩展到扩展目录中。核心工作流程包括:获取提交Issue——读取GitHub Issue提取元数据(扩展ID、名称、版本、描述、作者、仓库URL、下载URL、主页、文档、变更日志、许可证、依赖的spec-kit版本、命令和钩子数量、标签等);验证发布规则——检查发布规则中的所有要求;更新目录文件——修改catalog.community.json和文档;创建PR——将变更提交为PR。该技能确保了社区贡献的扩展能够以标准化的流程被纳入官方目录,降低了社区贡献的门槛,同时保证了扩展的质量和一致性。


Add Community Extension

Process an extension submission issue and add or update it in the community catalog.

When to Use

  • A new[Extension]submission issue is filed
  • An existing extension submits an update issue (new version, changed metadata)
  • You need to add or update a community extension inextensions/catalog.community.jsonanddocs/community/extensions.md

Procedure

1. Fetch the submission issue

Read the GitHub issue to extract all metadata:

  • Extension ID, name, version, description, author
  • Repository URL, download URL, homepage, documentation, changelog
  • License, required spec-kit version, optional tool dependencies
  • Number of commands and hooks
  • Tags

2. Validate against publishing rules

Checkallof the following (perextensions/EXTENSION-PUBLISHING-GUIDE.md):

CheckHow
Repository exists and is publicFetch the repository URL
extension.ymlmanifest presentConfirm in repo file listing
README.md presentConfirm in repo file listing
LICENSE file presentConfirm in repo file listing
GitHub release exists matching versionCheck releases on the repo page
Download URL is accessibleVerify it followsarchive/refs/tags/vX.Y.Z.zippattern and release exists
Extension ID is lowercase-with-hyphens onlyRegex:^[a-z][a-z0-9-]*$
Version follows semverFormat:X.Y.Z
Submission checklists are all checkedConfirm in issue body

3. Determine if this is an add or update

Searchextensions/catalog.community.jsonfor the extension ID.

  • Not found→ this is anew addition. Proceed to step 4.
  • Found→ this is anupdate. Proceed to step 4 but replace the existing entry in-place instead of inserting.

4. Add or updateextensions/catalog.community.json

New extension:Insert the entry inalphabetical orderby extension ID.

Update:Replace the existing entry in-place. Update only the fields that changed (typicallyversion,download_url,description,provides,requires,tags,updated_at). Preservecreated_atanddownloads/starsfrom the existing entry.

Use the existing entries as the format template. Required fields:

{"<id>":{"name":"<name>","id":"<id>","description":"<description>","author":"<author>","version":"<version>","download_url":"<download_url>","repository":"<repository>","homepage":"<homepage>","documentation":"<documentation>","changelog":"<changelog>","license":"<license>","requires":{"speckit_version":"<speckit_version>"},"provides":{"commands":<N>,"hooks":<N>},"tags":["<tag1>","<tag2>"],"verified":false,"downloads":0,"stars":0,"created_at":"<today>T00:00:00Z","updated_at":"<today>T00:00:00Z"}}

If the extension has optional tool dependencies, add a"tools"array inside"requires":

"tools":[{"name":"<tool>","required":false}]

Also update the top-level"updated_at"timestamp in the catalog.

After editing,validate the JSONby running:

python3-c"import json; json.load(open('extensions/catalog.community.json')); print('Valid JSON')"

5. Add or updatedocs/community/extensions.mdcommunity extensions table

New extension:Insert a new row into the# Community Extensionstable inalphabetical orderby extension name.

Update:Find the existing row and update the description or other changed fields in-place.

Determine the category and effect from the extension’s behavior:

| <Name> | <Description> | `<category>` | <Effect> | [<repo-name>](<repository-url>) |

Category— one of:docs,code,process,integration,visibility
EffectRead-only(produces reports only) orRead+Write(modifies project files)

6. Commit, push, and open PR

Useadd-for new extensions,update-for updates:

# New extensiongitcheckout-badd-<extension-id>-extension# Updategi t checkout-bupdate-<extension-id>-extension
gitaddextensions/catalog.community.json docs/community/extensions.md# New extensiongitcommit-m"Add <Name> extension to community catalog Add <id> extension submitted by @<issue-author> to: - extensions/catalog.community.json (alphabetical order) - docs/community/extensions.md community extensions table Closes #<issue-number>"# Updategitcommit-m"Update <Name> extension to v<version> Update <id> extension submitted by @<issue-author>: - extensions/catalog.community.json (version, download_url, etc.) - docs/community/extensions.md community extensions table Closes #<issue-number>"gitpush origin<branch-name>

Then create a PR toupstream(github/spec-kit) with:

  • Title:Add <Name> extension to community catalog(orUpdate <Name> extension to v<version>)
  • Body:Include validation summary,Closes #<issue-number>, andcc @<issue-author>
  • Head:<fork-owner>:<branch-name>
  • Base:main

Common Pitfalls

  • Alphabetical order matters— entries must be sorted by ID in the JSON and by name in the docs table.
  • Don’t forget the catalogupdated_at— the top-level timestamp incatalog.community.jsonmust be refreshed.
  • Validate JSON after editing— a trailing comma or missing brace will break the catalog.
  • UseClosesnotFixesCloses #Nis the correct keyword for submission issues.
  • Match the proposed entry but verify— the issue may include a proposed JSON block, but always validate field values against the actual repository state.
  • Preservecreated_aton updates— keep the originalcreated_atvalue; only changeupdated_at.
  • Preservedownloadsandstarson updates— these reflect usage metrics and must not be reset.
    3e:[“","","","L41”,null,{“content”:“$42”,“frontMatter”:{“name”:“add-community-extension”,“description”:“Add a community extension to the Spec Kit catalog from a GitHub issue submission. USE FOR: processing extension submission issues, validating catalog entries, updating catalog.community.json and docs/community/extensions.md, creating PRs. DO NOT USE FOR: creating new extensions from scratch, or first-party extension work.”,“argument-hint”:“GitHub issue URL or number for the extension submission”}}]

3f:null

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/24 22:06:33

5分钟掌握本地图片搜索神器:告别海量图片管理烦恼的终极指南

5分钟掌握本地图片搜索神器&#xff1a;告别海量图片管理烦恼的终极指南 【免费下载链接】ImageSearch 基于.NET10的本地硬盘千万级图库以图搜图案例Demo和图片exif信息移除小工具分享 项目地址: https://gitcode.com/gh_mirrors/im/ImageSearch 还在为在数万张照片中寻…

作者头像 李华
网站建设 2026/7/24 22:05:36

3分钟掌握网页视频下载:猫抓视频嗅探工具完全指南

3分钟掌握网页视频下载&#xff1a;猫抓视频嗅探工具完全指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经遇到过这样的困扰&#xf…

作者头像 李华
网站建设 2026/7/24 22:03:33

Steam创意工坊模组下载终极指南:如何免费获取1000+游戏模组

Steam创意工坊模组下载终极指南&#xff1a;如何免费获取1000游戏模组 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 想要在GOG或Epic平台畅玩Steam创意工坊的精彩模组吗&…

作者头像 李华
网站建设 2026/7/24 21:59:20

文档下载神器kill-doc:终极免费解决方案,告别文档网站限制

文档下载神器kill-doc&#xff1a;终极免费解决方案&#xff0c;告别文档网站限制 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档&#xff0c;但是相关网站浏览体验不好各种广告&#xff0c;各种登录验证&#xff0c;需要很多步骤才能下载文档&#xff0c;…

作者头像 李华
网站建设 2026/7/24 21:56:36

如何解决ChatGPT到word的格式问题——AI 导出鸭技术深度拆解

如何解决ChatGPT到word的格式问题&#xff1f;AI 导出鸭打通转换全链路如何解决ChatGPT到word的格式问题——AI 导出鸭技术深度拆解如何解决ChatGPT到word的格式问题&#xff1f;AI 导出鸭一键终结排版崩坏如何解决ChatGPT到Word的格式问题&#xff1f;技术深度拆解 根本原因&a…

作者头像 李华