ワークフロー&基本ツール · lijigang/ljg-skills

ljg-push

~/.agents/skills/ljg-* 内の更新されたすべての skills を GitHub リポジトリ (ljg-skills) に同期します。まず master ブランチ(org-mode 出力形式)へプッシュし、次に md ブランチ(markdown 出力形式)へ切り替えて基本的な Markdown 化を行ってからプッシュします。ユーザーが「/ljg-push」「push skills」「推送 skills」「同步 skills」「sync ljg」と言った場合、または ljg-* skills が更新されてリリースが必要な場合に使用します。ljg 以外の skills や任意の git リポジトリのプッシュには適していません(NOT FOR)。

L4 高権限 · 段階的認可と監査V1 コミット固定コマンド実行ネットワーク通信ファイル書き込みDual-pass Audit
Author lijigangGitHub lijigang/ljg-skills ↗License MIT(仓库根 LICENSE)Commit 9e75497a95
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

コアアクションは、ローカルの ~/.agents/skills/ljg-* の更新をワンクリックで GitHub リポジトリへ同期し、master(org 形式)と md(Markdown 形式)の両ブランチに対応することです。

skills/ljg-push/SKILL.md
把本地 `~/.agents/skills/ljg-*` 里改过的 skills,一键同步到 github repo,覆盖 master 和 md 两个分支。
ここでの処理内容:ローカルの skill ソースを2種類の形式のリモートリポジトリへプッシュするという、本 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 の整合性はハードゲートです。プッシュ前にローカルの skill 名を列挙して README を grep し、ローカルにあって 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 版本做转换。反过来推会破坏顺序
ここでの処理内容:ブランチ間の依存関係を厳格な順序として定義し、古い内容に基づく変換を防ぎます。

スクリプトはパッチバージョン(plugin.json + marketplace.json)を自動で bump します。マイナー/メジャーの更新は事前に手動で変更する必要があり、スクリプトはパッチのインクリメントのみを行います。

skills/ljg-push/SKILL.md
*脚本会自动 bump patch version 在 plugin.json + marketplace.json*
ここでの処理内容:バージョン番号の保守をリリースフローに組み込みつつ、自動化のスコープを限定します。

リモートの md がローカルより新しい場合はまず pull --rebase を行い、失敗した場合は1度だけ reset --hard origin/md を試行して再適用します(ローカルの未プッシュの md コミットは破棄されますが、スクリプト実行前にプロンプトが表示されます)。

skills/ljg-push/SKILL.md
脚本会 `pull --rebase` 失败时尝试一次 `reset --hard origin/md` 重新应用——这会丢弃本地未推的 md 分支 commit。脚本前会提示
ここでの処理内容:マルチマシン開発環境でのリカバリパスを提供しつつ、破壊的なロールバックポイントを明示します。

--dry-run(rsync/commit/push を実行せず、同期対象の skills と変換内容のみを一覧表示)および --force(検出をスキップしてすべて同期)をサポートし、ローカルの curl による音声通知を備えています。

skills/ljg-push/SKILL.md
不执行 rsync / commit / push
ここでの処理内容:事前確認と強制実行の2つのモードを提供します。音声通知はスクリプト外でホスト側の curl からローカルサービスを叩いてトリガーされます。

2コア機能

01ワンクリックでの2ブランチ同期(master=org 出力 / md=markdown 出力、プッシュ後は master へ切り戻し)
02変更検出:チェックサムベース + 厳格なファイル境界 + 除外リスト(.git/、node_modules/、.DS_Store)
03README 整合性のハードゲート(--skip-readme-check でバイパス可能)
04org→markdown 自動変換:org ファイル本体、埋め込み org テンプレート、denote 拡張参照、キーワードおよびフォーマット指示
05出力コントラクトの網羅:evals/*.json の期待フォーマットとランタイムコード内のデフォルト値を一括書き換え
06コミット前の残存監査(出力指示、Org マーカー、残存 .org ファイルのスキャン)
07パッチバージョンの自動 bump(plugin.json + marketplace.json)
08--dry-run / --force の2つの実行モード(事前確認および検出スキップ)
09マルチマシン開発リカバリ:pull --rebase 失敗時の1度の reset --hard origin/md による再適用

3外部依存関係

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

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: Tools/Push.sh(bash スクリプト。rsync 同期、git clone/commit/push/pull --rebase/reset --hard)
  • 网络端点: 外部ネットワークアクセスの宣言: ハードコードされたリモート [email protected]:lijigang/ljg-skills.git への git push/clone/pull(ユーザーが事前設定した認証情報経由)
  • 本地工作目录: ファイルの読み書きおよびアーティファクト出力: $HOME/code/ljg-skills(rsync による skill ディレクトリの同期、git commit/push、md ブランチでの .org 削除および .md 生成)
監査ノート: イエロー(注意して使用)。判定対象は本 skill ディレクトリのみ:内蔵の Push.sh が実際に rsync/git/sed/awk を実行して外部へ送信(ハードコードされた GitHub リモートへの git push)し、Workflows/ 内ではローカルの 31337 ポートへ curl 通知を行うため、純粋なローカルのブルーには該当しません。github-ops の先例との比較:認証情報を読み取るコードが一切存在しないためオレンジには該当しません(§3 の52件の「認証情報/環境変数」の一致は、すべて $HOME/$SKILLS_REPO などのパス変数や「git 認証情報は設定済み…ljg-push は認証を処理しない」という注記であり、認証は完全に外部の SSH キー/PAT に委ねられています)。一方でネットワーク経由でリモートの状態を確実に変更し、書き込み範囲も広いため(rsync --delete、md ブランチでの .org 削除など)、グリーンにも該当しません。イエローの真の理由:予測可能なネットワーク呼び出し(固定の GitHub リモート + localhost 通知)+ リスクの高い不可逆な書き込み範囲(リモートの master/md ブランチおよびバージョン番号)+ 破壊的なロールバックポイント(pull --rebase 失敗時の reset --hard origin/md により、未プッシュのローカル md コミットが破棄される)が存在するものの、認証情報の搾取やサードパーティ製リモートパッケージはなく、README ゲートと --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結論

  • 2種類の形式のリリース(org ソース + markdown 生成物)を1回のプッシュに集約:ブランチ順序、変換、バージョン bump、master への切り戻しを完全自動化し、手動修正の手間を削減。
  • README の乖離を機械的に阻止:ローカルに存在して README にない skill は警告にとどまらず即座にプッシュを中断。
  • 変更検出と同期で同一のファイル境界を共有し、除外リストを意図的に最小限(.git/、node_modules/、.DS_Store のみ)に制限。.bak すら可視状態を維持し、リリースすべき内容の見落としを防止。
  • Markdown 化は4種のコンシューマに対応し、コミット前に残存監査(出力指示/Org マーカー/残存 .org)を実施して「フォーマット規約の整合性」を厳格にチェック。
  • --dry-run と README ゲートという2つの手動確認ポイントを提供し、破壊的アクションの前にはプロンプトを表示。
  • 最適な用途: lijigang 自身が ljg-* skill コレクションを保守し、ローカルの org ソースを GitHub 上の master (org) / md (markdown) の両形式に同期する必要があるリリースシナリオに最適です。また、「2形式リリース + README 整合性 + バージョン bump」のパイプラインの参考実装としても適しています。
    不向きな用途: ljg 以外の skills や任意の git リポジトリのプッシュには適していません(description の NOT FOR に該当。スクリプト内のパスとリモートはハードコードされています)。また、git 認証情報を設定していないユーザーや、スクリプトによる自動的な reset --hard / バージョン変更を望まないユーザーには適していません。
    Install Agent-Ready
    ① Verified Mirror 2026-10-10
    Option A · Direct DownloadDownload ljg-push.tar.gz
    sha256: 76457b2903899638…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 9e75497a95.