sync-skills-lock
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesesync-skills-lock
sync-skills-lock
ルート直下の の を、upstream リポジトリの現状と照合して更新します。
skills-lock.jsoncomputedHash将根目录下中的与上游(upstream)仓库的当前状态进行比对并更新。
skills-lock.jsoncomputedHash対象ファイル
目标文件
- ルート: 呼び出し元リポジトリ直下の — このスキルが唯一編集するファイル
skills-lock.json - 除外: submodule 配下の — submodule 境界を跨がないため 絶対に触らない
skills-lock.json
- 根目录:调用方仓库根目录下的— 本技能唯一会编辑的文件
skills-lock.json - 排除项:子模块(submodule)下的— 为不跨越子模块边界,绝对不会修改
skills-lock.json
前提条件
前提条件
- CLI がインストールされ、認証済みであること
gh - ルート直下の が存在すること
skills-lock.json
- 已安装CLI并完成认证
gh - 根目录下存在
skills-lock.json
フロー
流程
Step 1: 引数を確認する
Step 1: 确认参数
bash
TARGET="$ARGUMENTS" # 空なら全スキル対象引数ありの場合は該当スキルのみ処理、なしの場合は の全エントリを対象にします。
skills-lock.jsonbash
TARGET="$ARGUMENTS" # 为空则处理所有技能若有参数则仅处理对应技能,若无参数则处理中的所有条目。
skills-lock.jsonStep 2: upstream 一覧を集計する
Step 2: 汇总上游仓库列表
skills-lock.jsonsourceFandhe-AI/agent-cli-skills:
- create-commit
- create-issue
- ...读取,按字段对技能进行分组(为了将同一仓库的fetch操作合并为一次)。
skills-lock.jsonsourceFandhe-AI/agent-cli-skills:
- create-commit
- create-issue
- ...Step 3: upstream を取得する
Step 3: 获取上游仓库
安全弁: clone 前に必ず フィールドが信頼された prefix で始まっていることを確認します。本スキルは で始まる source のみを許可します( と同じポリシー)。想定外の source は skip してユーザーに警告します。 の改ざん・誤設定によって untrusted リポジトリから clone することを防ぐためです。
sourceFandhe-AI/contribute-skillskills-lock.jsonbash
undefined安全机制:克隆前必须确认字段以可信前缀开头。本技能仅允许以开头的source(与contribute-skill采用相同策略)。对于非预期的source将跳过并向用户发出警告。这是为了防止因被篡改或配置错误而从不信任的仓库克隆内容。
sourceFandhe-AI/skills-lock.jsonbash
undefinedsource の検証(Fandhe-AI/ で始まらないエントリは skip)
source验证(不以Fandhe-AI/开头的条目将被跳过)
case "$SOURCE" in
Fandhe-AI/*)
;; # OK
*)
echo "警告: 想定外の source: $SOURCE — このスキルは skip します"
continue
;;
esac
リポジトリごとに以下を実行:
```bash
UID_VAL=$(id -u)
TS=$(date +%Y%m%d-%H%M%S)
WORKDIR="/tmp/claude-${UID_VAL}/sync-skills-${TS}"
mkdir -p "$WORKDIR"case "$SOURCE" in
Fandhe-AI/*)
;; # 验证通过
*)
echo "警告: 非预期的source: $SOURCE — 本技能将跳过该条目"
continue
;;
esac
针对每个仓库执行以下操作:
```bash
UID_VAL=$(id -u)
TS=$(date +%Y%m%d-%H%M%S)
WORKDIR="/tmp/claude-${UID_VAL}/sync-skills-${TS}"
mkdir -p "$WORKDIR"sandbox 環境では各コマンドに GIT_SSL_NO_VERIFY=1 を前置する(詳細: docs/sandbox-tls.md)
在sandbox环境中,需在各命令前添加GIT_SSL_NO_VERIFY=1(详情: docs/sandbox-tls.md)
gh repo clone Fandhe-AI/<repo> "$WORKDIR/<repo>"
undefinedgh repo clone Fandhe-AI/<repo> "$WORKDIR/<repo>"
undefinedStep 4: 各スキルの SHA256 を計算する
Step 4: 计算各技能的SHA256哈希值
upstream 側のスキルパスを特定し( もしくは )、配下の全ファイルから安定した順で SHA256 を計算します。
skills/<name>/.agents/skills/<name>/ハッシュの対象は 単体か配下全体かを upstream の規約に合わせます(初期実装では のみを対象とし、今後 等を含める場合は方針を明記してからアップデートします)。
SKILL.mdSKILL.mdreferences/bash
undefined确定上游仓库中的技能路径(或),并按稳定顺序计算该路径下所有文件的SHA256哈希值。
skills/<name>/.agents/skills/<name>/哈希计算的对象需符合上游仓库的规范(初期实现仅以为计算对象,未来若需包含等目录,需明确方针后再进行更新)。
SKILL.mdreferences/bash
undefinedSKILL.md 単体の例
仅计算SKILL.md哈希值的示例
sha256sum "$WORKDIR/<repo>/skills/<name>/SKILL.md" | awk '{print $1}'
undefinedsha256sum "$WORKDIR/<repo>/skills/<name>/SKILL.md" | awk '{print $1}'
undefinedStep 5: 差分を表示する
Step 5: 显示差异
計算した新しい と現在の を比較し、テーブルで表示します。
computedHashcomputedHash| スキル名 | 現在の hash (頭10字) | 新しい hash (頭10字) | 差分 |
|--------------------|---------------------|---------------------|------|
| create-commit | 80e2dd2232 | 80e2dd2232 | なし |
| contribute-skill | (未登録) | xxxxxxxxxx | 新規 |将计算得到的新与当前的进行比较,并以表格形式展示。
computedHashcomputedHash| 技能名 | 当前哈希值(前10位) | 新哈希值(前10位) | 差异 |
|--------------------|---------------------|---------------------|------|
| create-commit | 80e2dd2232 | 80e2dd2232 | 无 |
| contribute-skill | (未注册) | xxxxxxxxxx | 新增 |Step 6: ユーザーに承認を求める
Step 6: 请求用户确认
差分がある場合のみ、ユーザーに「この更新を適用してよいか」を確認します。承認がなければ中止します。
仅当存在差异时,向用户确认是否应用该更新。若无确认则中止操作。
Step 7: skills-lock.json
を更新する
skills-lock.jsonStep 7: 更新skills-lock.json
skills-lock.json呼び出し元リポジトリ直下の のみを更新します。submodule 配下の は 絶対に触りません(submodule 境界を跨がない)。
skills-lock.jsonskills-lock.jsonbash
undefined仅更新调用方仓库根目录下的。绝对不会修改子模块下的(不跨越子模块边界)。
skills-lock.jsonskills-lock.jsonbash
undefinedjq を使う例
使用jq的示例
jq '.skills."create-commit".computedHash = "<new-hash>"'
skills-lock.json > skills-lock.json.tmp && mv skills-lock.json.tmp skills-lock.json
skills-lock.json > skills-lock.json.tmp && mv skills-lock.json.tmp skills-lock.json
JSON のフォーマット(インデント、キー順)は既存形式を維持します。jq '.skills."create-commit".computedHash = "<new-hash>"'
skills-lock.json > skills-lock.json.tmp && mv skills-lock.json.tmp skills-lock.json
skills-lock.json > skills-lock.json.tmp && mv skills-lock.json.tmp skills-lock.json
JSON的格式(缩进、键顺序)将保持原有格式。Step 8: コミット提案
Step 8: 提交建议
bash
git add skills-lock.json
git commit -m "$(cat <<'EOF'
chore(skills-lock): upstream の最新ハッシュと同期
<変更内容の要約>
EOF
)"ユーザーに commit してよいか確認します。差分がなかった場合はコミットせずその旨を伝えます。
bash
git add skills-lock.json
git commit -m "$(cat <<'EOF'
chore(skills-lock): 与上游最新哈希值同步
<变更内容摘要>
EOF
)"向用户确认是否进行提交。若无差异则不提交并告知用户。
注意事項
注意事项
- ルートの のみを編集:submodule 配下は手を付けない
skills-lock.json - source prefix 検証 (必須):が
sourceで始まらないエントリは clone せず skip する(Fandhe-AI/と同じ安全弁)。contribute-skillの改ざんや誤設定から防御するためskills-lock.json - upstream の path 構造を事前確認:か
skills/<name>/か.agents/skills/<name>/ - ハッシュ算出対象の一貫性:上流側との合意が必要。初期は のみを推奨
SKILL.md - sandbox 環境での 併用:詳細は後述の「sandbox 環境での実行」節を参照
GIT_SSL_NO_VERIFY=1 - 新スキルの取扱い:ローカルに存在するが upstream に未登録のスキル(,
contribute-skill自身など)は、upstream マージ後に登録する。マージ前にsync-skills-lockを勝手に書き込まないcomputedHash
- 仅编辑根目录的:不修改子模块下的文件
skills-lock.json - source前缀验证(必须):不以
source开头的条目将跳过不克隆(与contribute-skill采用相同的安全机制)。用于防御Fandhe-AI/被篡改或配置错误的情况skills-lock.json - 提前确认上游路径结构:确认是还是
skills/<name>/.agents/skills/<name>/ - 哈希计算对象的一致性:需与上游达成共识。初期推荐仅以为计算对象
SKILL.md - sandbox环境需配合使用:详情请参考后文的「sandbox环境执行」章节
GIT_SSL_NO_VERIFY=1 - 新技能的处理:本地存在但上游未注册的技能(如contribute-skill、sync-skills-lock自身等),需在上游合并后再进行注册。不会擅自写入
computedHash
sandbox 環境での実行
sandbox环境执行
sandbox で本スキルを実行する場合、ネットワーク越しの GitHub 操作には の併用を検討してください。本スキルの主なリモート操作は で、「リモート書き込み」判定は 要(本スキルは read-only) です。コマンド分類の詳細と TLS 検証無効化の注意事項は を参照してください。
GIT_SSL_NO_VERIFY=1gh repo clonedocs/sandbox-tls.md在sandbox环境中执行本技能时,对于跨网络的GitHub操作,建议配合使用。本技能的主要远程操作为,「远程写入」判定为否(本技能为只读操作)。命令分类详情及TLS验证禁用的注意事项请参考。
GIT_SSL_NO_VERIFY=1gh repo clonedocs/sandbox-tls.md既存スキルとの関係
与现有技能的关系
- でスキル改修が upstream にマージされた後に本スキルを実行する運用を推奨
contribute-skill - の Conventional Commits を踏襲(Step 8)
create-commit
- 推荐在contribute-skill的技能修改合并到上游仓库后,再执行本技能
- 遵循的Conventional Commits规范(Step 8)
create-commit