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 两个文件都在 |
| 3 | gh repo create <owner>/<name> --public --source . --push,再 gh repo edit … --add-topic dsh-pack | public、有 dsh-pack 话题、未 archived |
| 4 | gh 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/2 | manifest v5]] | 「逐字一致」这条约束的来源 |
| 实例 | pack/1 丝滑的DSH | 本机正在用的包,也正是这套技能要产出的那种东西 |
未核实 / 未声明
- 安装命令:未声明。插件形态随 plugin/2 分发;仓库侧那份没有安装说明,本轮也没有实测「拷进
$DSH_HOME/skills后是否被扫到」。 - 两份副本的具体差异:未核实。只比了大小与 sha256,没有逐行对比谁多写了什么。
specs/publishing/v1.md与docs/publishing-tutorial.md:技能正文把它们称作权威契约与分步教程,但本轮没有读取这两个文件去核对是否有冲突,所以「冲突时以 spec 为准」在本站只是转述。- 采集周期:未核实。技能只说「异步、等一轮扫描」,分钟级还是小时级没有出处。
- 许可证:未核实(见 front-matter 的
licenseRefs)。
谁引用了这一条
- $DSH_HOME
- 丝滑的DSH(smoother-deepseek-harness)
- dsh-pack-plugin
- dsh-pack-market
- DSH-PackForge 规范仓库
- dspack CLI
信息表
- 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 版本
本站尚未收录它的 DSH 版本声明。