publish-to-github

publish-to-github

别名:发布到 GitHub、发布整合包、整合包发布技能、publish to github

把整合包从本机送上 GitHub、被 dsh-pack-market 自动收录的一套可执行技能:建 public 仓库、打 dsh-pack 话题、发正式 Release(.dspack 加同名 .sha256 侧车)、逐项校验。它在本机不是文件系统技能,而是由 dsh-pack-plugin 以插件提供方注册的。

它到底做什么

一句话:把「本机的一个整合包」变成「市场采集器能扫到的一行索引」。它不管包怎么打(那是 tool/1 的活),只管发布侧的硬约束与顺序——因为市场是按 GitHub 上的事实扫描的,任何一处不齐,结果都不是报错,而是「什么都不会发生」。

这也决定了它的形状:不是一段代码,而是一份可执行清单,加一张坑表。

六个步骤,和三处「缺一不可」

步骤动作校验点
1收集 <owner> / <name> / <version> / <tag>name 与 version 跟根 manifest.json 逐字一致,tag = v<version>
2出产物:路径 A dspack pack --repo,路径 B 手工摆 manifest.json 加 overrides/release/ 里 .dspack 与 .dspack.sha256 两个文件都在
3gh repo create <owner>/<name> --public --source . --push,再 gh repo edit … --add-topic dsh-packpublic、有 dsh-pack 话题、未 archived
4gh release create <tag> …dspack …dspack.sha256 --title …非 draft、非 prerelease,资产恰好两个
5逐项过六条校验清单侧车必须是 64 位小写 hex
6告知「收录是异步的」等一轮采集后再查市场索引

三件硬事(缺一即静默失败):public 仓库、dsh-pack 话题、默认分支根的 manifest.json。一条限制:同一 Release 只放一个打包资产——采集器按 .dspack > .tgz > .zip 取第一个,混放会装到旧包。

五个坑,都是「不报错」的那种

  • 仓库私有 / 漏打话题 / 已 archived → 市场扫不到,任何界面都不会提示。
  • Release 是 draft 或 prerelease → 索引里有条目,下载却取不到(releases/latest 拿不到)。
  • 同一 Release 混放多个资产 → 装到旧包。
  • 侧车写了大写 hex 或夹带文件名 → sha256 校验失败。
  • tag 与 manifest.version 不一致 → 索引键错位。

这张表和上游 README 的区别在于:它把「失败时的现象」写出来了,而现象全是沉默。

本机实测:它是插件形态,不在技能目录里

本站要提醒的一点:publish-to-github 在本机并不住在 $DSH_HOME/skills 下。按技能发现根契约(见 concept/3 里 skills/ 那一行与 @deepseek-ai/dsh-skill-filesystem 的 rank 表),用户级根是 <dshHome>/skills,但实测那份目录的 20 个条目里没有它;它由 plugin/2 @dsh-packforge/dsh-pack-plugin 以插件技能提供方注册(技能目录里 provider 记为 dspack),包内路径是 lib/publish-to-github/SKILL.md。

仓库侧另有一份同名文件 skills/publish-to-github/SKILL.md。两份不是同一份(5344 / 5476 字节,sha256 不同)。要改这条技能,先确认改的是哪一份——这是本站目前能给出的最实用的一句提醒。

与站内其它条目的关系

关系对象说明
产物由谁打tool/1 dspack CLI路径 A 的 dspack pack --repo 就是它
收录方source/2 dsh-pack-market采集器扫 GitHub Release 生成索引
宿主插件plugin/2 dsh-pack-plugin技能随它进 profile
上游契约[[spec/2manifest v5]]「逐字一致」这条约束的来源
实例pack/1 丝滑的DSH本机正在用的包,也正是这套技能要产出的那种东西

未核实 / 未声明

  • 安装命令:未声明。插件形态随 plugin/2 分发;仓库侧那份没有安装说明,本轮也没有实测「拷进 $DSH_HOME/skills 后是否被扫到」。
  • 两份副本的具体差异:未核实。只比了大小与 sha256,没有逐行对比谁多写了什么。
  • specs/publishing/v1.md 与 docs/publishing-tutorial.md:技能正文把它们称作权威契约与分步教程,但本轮没有读取这两个文件去核对是否有冲突,所以「冲突时以 spec 为准」在本站只是转述。
  • 采集周期:未核实。技能只说「异步、等一轮扫描」,分钟级还是小时级没有出处。
  • 许可证:未核实(见 front-matter 的 licenseRefs)。

谁引用了这一条

信息表

authors
DSH-PackForge(开发团队)
category
capability.skill
files
SKILL.md
install
未声明——它没有独立的安装动作:插件形态随 @dsh-packforge/dsh-pack-plugin 一起进 profile,由插件的技能提供方(provider dspack)注册;仓库侧那份也没写安装命令,本轮未实测把它拷进 $DSH_HOME/skills
licenseRefs
技能文件的许可未核实 · id: unreviewed-skill-license · note: SKILL.md 只写 name / description / whenToUse / invocation,没有 license 字段;托管它的 DSH-PackForge 仓库根 LICENSE 本轮未读取。
provides
发布前必须问清的四个变量 <owner> / <name> / <version> / <tag>,并强制 name 与 version 跟仓库根 manifest.json 逐字一致、两条产物路径,dspack pack --repo(源仓库加 release/ 成品区)或手工摆 manifest.json 加 overrides/ 加 README.md 再自算 sha256 侧车、GitHub 侧三件硬事,public 仓库、dsh-pack 话题、默认分支根 manifest.json、Release 形态约束,tag 必须是 v<version>,必须正式发布(不加 --draft / --prerelease),同一 Release 只放一个打包资产、收尾六项校验清单,以及五类常见坑速查(扫不到 / 下载失败 / 装到旧包 / sha256 对不上 / tag 与版本不一致)
repo
DSH-PackForge/DSH-PackForge
roots
plugin-provided、user、project
skillKind
skill
titleEn
publish-to-github
updatedAt
2026-10-02

被 6 条词条引用

属性

分类 capability.skill 技能类型 skill 上游 DSH-PackForge/DSH-PackForge 最后更新 2026-10-02 文件 SKILL.md 根目录 plugin-provided、user、project

开发者 / 团队(1)

DSH-PackForge 开发团队

支持的 DSH 版本

本站尚未收录它的 DSH 版本声明。