基础工具与工作流 · lijigang/ljg-skills

ljg-push

把 ~/.agents/skills/ljg-* 里所有更新过的 skills 同步到 github repo (ljg-skills),先推 master 分支(org-mode 输出风格),再切 md 分支(markdown 输出风格)做基础 markdown 化后推。Use when user says '/ljg-push', 'push skills', '推送 skills', '同步 skills', 'sync ljg', or whenever ljg-* skills get updated and need shipping. NOT FOR pushing non-ljg skills or arbitrary git repos.

风险提醒:黄色 · 留意使用AI 侦查报告
作者 lijigangGitHub lijigang/ljg-skills ↗许可 MIT(仓库根 LICENSE)commit 9e75497a95
agent 宿主通常会约束 skill 执行权限;风险提醒为 AI 侦查观点,不构成质量或安全保证。第三方 skill 仅作拆解与展示,安装使用风险自负,版权归原作者。

1实现原理 · 为什么它能做到

核心动作是把本地 ~/.agents/skills/ljg-* 的更新一键同步到 github repo,覆盖 master(org 风格)与 md(markdown 风格)两条分支。

skills/ljg-push/SKILL.md
把本地 `~/.agents/skills/ljg-*` 里改过的 skills,一键同步到 github repo,覆盖 master 和 md 两个分支。
注:这里在做什么:定义 skill 的唯一职责——把本地 skill 源推成双格式远端仓库。

仓库路径硬编码;$SKILLS_REPO 不存在会自动 git clone,存在但 origin 不是 ljg-skills 则报错退出,不破坏现有目录。

skills/ljg-push/SKILL.md
如果 `$SKILLS_REPO` 不存在,脚本会自动 clone。如果它存在但不是 ljg-skills 的 git repo,脚本会报错退出(不破坏现有目录)。
注:这里在做什么:给出安全前提——宁可退出也不覆盖错误目录。

变更检测与同步共用同一文件边界:按校验和比较,纯时间戳/目录元数据/空目录不触发,忽略清单只含 .git/、node_modules/、.DS_Store。

skills/ljg-push/SKILL.md
检测与同步共用同一文件边界:按校验和比较内容,可靠识别文件新增、删除、内容和可执行位变化;纯时间戳、目录元数据、空目录不会单独触发发布
注:这里在做什么:保证「检测到什么就同步什么」,避免 mtime 抖动或杂物导致误发布。

README 一致性是硬 gate:push 前列出 local skill 名并 grep README,发现 local 有而 README 没有的即中止;确认无需更新时用 --skip-readme-check 绕过。

skills/ljg-push/SKILL.md
找出 local 有但 README 没有的——*几乎肯定意味着 README 漏更新*
注:这里在做什么:用机械检查替代「记得更新 README」的自觉,漂移直接阻断发布。

md 分支发布前做自动转换:org 文件本体转同名 .md 并删原件、内嵌 org 示例转 markdown/YAML、扩展引用与关键词改写、evals/*.json 输出契约切到 Markdown。

skills/ljg-push/SKILL.md
md 分支同步时自动转换(2026-06-12 起含 org 文件本体):
注:这里在做什么:把「org ↔ markdown 双格式」的差异交给转换器,减少手工补差。

推送顺序被强制为 master 先、md 后、再切回 master,因为 md 的 markdown 化基于 master 的 org 版本。

skills/ljg-push/SKILL.md
*master 必须先推*——md 分支的 markdown 化基于 master 的 org 版本做转换。反过来推会破坏顺序
注:这里在做什么:把分支依赖写成硬顺序,防止转换基于过期内容。

脚本自动 bump patch version(plugin.json + marketplace.json);要 minor/major 得先手动改,脚本只追加 patch。

skills/ljg-push/SKILL.md
*脚本会自动 bump patch version 在 plugin.json + marketplace.json*
注:这里在做什么:把版本号维护纳入发布流程,同时限定自动化范围。

md 远端比本地新时先 pull --rebase,失败则尝试一次 reset --hard origin/md 并重新应用——会丢弃本地未推的 md commit,脚本前会提示。

skills/ljg-push/SKILL.md
脚本会 `pull --rebase` 失败时尝试一次 `reset --hard origin/md` 重新应用——这会丢弃本地未推的 md 分支 commit。脚本前会提示
注:这里在做什么:多机协作下的恢复路径,同时暴露一个破坏性回退点。

支持 --dry-run(只列会同步的 skills 与转换,不执行 rsync/commit/push)与 --force(跳过检测同步全部),并带本地语音通知 curl。

skills/ljg-push/SKILL.md
不执行 rsync / commit / push
注:这里在做什么:提供预演与强制两种模式,语音通知在脚本外由宿主 curl 本地服务触发。

2核心能力

01一键双分支同步(master=org 输出 / md=markdown 输出,推完切回 master)
02变更检测:按校验和 + 文件边界 + 忽略清单(.git/、node_modules/、.DS_Store)
03README 一致性硬 gate(可 --skip-readme-check 绕过)
04org→markdown 自动转换:org 文件本体、内嵌 org 模板、denote 扩展引用、关键词与格式指令
05输出契约覆盖:evals/*.json 的格式期望与运行时代码里的默认值一起改写
06提交前残留审计(扫描输出指令、Org 标记与残留 .org 文件)
07版本自动 bump patch(plugin.json + marketplace.json)
08--dry-run / --force 两种运行模式(预演与跳过检测)
09多机协作恢复:pull --rebase 失败时一次 reset --hard origin/md 重新应用

3外部依赖

类型依赖
cligit(clone / commit / push / pull --rebase / reset --hard,凭据由用户预先配置的 ssh key 或 PAT 提供)
clirsync(按校验和同步 skill 目录,含 --delete)
clibun(运行 mdize 转换器与测试)
networkGitHub 远端仓库(硬编码,作为 push 目标)
network本地语音通知服务(宿主/工作流用 curl 触发,非脚本内)

4风险提醒 风险提醒:黄色 · 留意使用

风险提醒:黄色 · 留意使用
  • 破坏性回退会丢本地 commit — md 远端比本地新时,pull --rebase 失败会尝试一次 reset --hard origin/md 重新应用,直接丢弃本地未推的 md 分支 commit;虽在脚本前提示,误确认即不可逆。
  • 出站并改写远端状态 — git push 到硬编码的 github 远端,且 rsync --delete + md 分支删 .org 会镜像式改写;若本地出错(如误删 skill、误改 .gitignore),一次 push 会同步错误到远端两分支。
  • 认证失败不处理、路径硬编码 — skill 不处理认证,ssh key/PAT 未配好会直接报错;仓库路径固定在 ~/.agents/skills 与 ~/code/ljg-skills,换机器/换目录需改脚本或建软链。
  • 本地语音通知依赖外部服务 — Voice Notification 用 curl POST http://localhost:31337/notify,未监听时静默失败(重定向到 /dev/null 并后台化),不影响推送但通知可能丢失。
  • 转换器的边界靠大量补丁维持 — org→md 的入点很多(内嵌模板、互斥格式句、单星加粗、运行时代码引用、evals 契约),正文用一长串 Gotchas 覆盖;新增复杂构件时有漏转风险,正文要求先 --dry-run 或沙盒跑 mdize。
黄色,留意使用。判级对象仅本 skill 目录:自带 Push.sh 真正执行 rsync/git/sed/awk 并出站(git push 到硬编码 github 远端),Workflows/中还有 curl 打本地 31337 通知,故不是纯本地 blue。对照 github-ops 先例:不落橙是因为没有任何凭证读取代码——§3 的 52 条「憑證/環境變數」命中经核实全是 $HOME/$SKILLS_REPO 等路径变量与「git credentials 已配好…ljg-push 不处理认证」的说明,认证完全交给外部 ssh key/PAT;不落绿是因为确实经网络改变远端状态,且写面较硬(rsync --delete/md 分支删 .org)。黄色的真实理由:可预期网络调用(固定 github 远端 + localhost 通知)+ 高危不可逆写面(远端 master/md 分支与版本号)+ 一个破坏性回退点(pull --rebase 失败时 reset --hard origin/md,会丢弃本地未推 md commit),但无凭证读取、无第三方远端包、README gate 与 --dry-run 提供人工闸门。

5第二遍独立确认

  • [ok] URL 命中性质 — 4 条:2 条 SKILL.md/Workflows 的本地 curl http://localhost:31337/notify,2 条 MdizeEmbeddedOrg.test.ts 的 https://example.com 测试字面量;无对公网 API 的查询端点,网络面是 git 远端 + 本地通知。
  • [ok] 「凭证」命中非凭证读取 — 52 条命中均为 $HOME/$SKILLS_REPO/$SKILLS_LOCAL 变量、路径与 README/日志文案;SKILL.md 明写「脚本前提是 git credentials 已配好…ljg-push 不处理认证」,credential_reads=[] 成立。
  • [ok] 外部程序确为执行面 — 8 条:SKILL.md/Workflows 的 curl、Push.test.ts 的 Bun.spawnSync(bash) 测试驱动;Push.sh 另有 rsync/git/awk/sed 调用,scripts_executed 已列。
  • [ok] 写盘面与破坏性动作有原文 — 检测/同步边界、sed 改 plugin.json/marketplace.json、md 分支删 .org、reset --hard origin/md 均在 SKILL.md 原文;file_writes 与 risks 表述有据。
  • [ok] README gate 与 dry-run 作为人工闸门 — SKILL.md 的硬 gate 段落与 --skip-readme-check 说明、Example 2 的 --dry-run 行为(不执行 rsync/commit/push)为原文,判级理由引用成立。
  • [ok] 功能声明未夸大 — description「把本地 ~/.agents/skills/ljg-* 里改过的 skills 一键同步…覆盖 master 和 md 两个分支」与 SKILL.md 的两分支差异表、工作流一致;NOT FOR 亦与脚本硬编码范围相符。

6结论

  • 把双格式发布(org 源 + markdown 产物)做成一次 push:分支顺序、转换、版本 bump、切换回 master 全自动,减少手工补差。
  • README 漂移被机械化阻断:本地有而 README 没有的 skill 直接中止 push,而非仅提醒。
  • 检测与同步共用同一文件边界,忽略清单刻意保持最窄(只 .git/、node_modules/、.DS_Store),连 .bak 都保留可见,避免隐藏应发布内容。
  • md 化覆盖四类消费者并在提交前审计残留(输出指令/Org 标记/残留 .org),把「格式契约一致性」当作硬检查。
  • 提供 --dry-run 与 --readme gate 两道人工闸门,破坏性动作前有提示。
  • 适合:适合 lijigang 自己维护 ljg-* skill 集合、需要把本地 org 源同步成 GitHub 上 master(org)/md(markdown)双格式的发布场景;也适合作为「双格式发布 + README 一致性 + 版本 bump」的流水线参考。
    不适合:不适合推送非 ljg skill 或任意 git 仓库(description 的 NOT FOR,脚本路径与远端均硬编码);也不适合未配置 git 凭据、或不愿让脚本自动 reset --hard / 改版本号的用户。
    安装 agent 直装可复制
    ① 本站镜像 更新 2026-10-10
    方式 A · 人下载镜像包下载 ljg-push.tar.gz
    sha256: 76457b2903899638…
    方式 B · JSON 格式安装指南,复制给 agent
    安装指南
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② 上游 GitHub · 原始来源
    能访问 GitHub?直接去上游安装(实时版,可能已更新)GitHub 原始 ↗
    本页镜像锁定 commit 9e75497a95;上游为实时仓库。
    来源信息 GitHub 原始
    作者 / 仓库lijigang / lijigang/ljg-skills
    本 skill commit9e75497a95
    许可MIT(仓库根 LICENSE)
    本站信息
    收录日期2026-09-06
    分类基础工具与工作流
    侦查报告AI 侦查 · 2 遍 · 2026-09-06
    本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。
    同分类邻近