ワークフロー&基本ツール · dontbesilent2025/dbskill

dbs-install-skill

単一の Skill または Skill コレクションを汎用 Agent、Claude Code、Codex、WorkBuddy、Grok、Hermes Agent、Kiro、Qwen Code、Cline などの Agent にインストールします。ユーザーが Agent をまたいだ Skill のインストール、同期、確認、重複排除、またはアンインストールを要求した際に使用します。

L4 高権限 · 段階的認可と監査V1 コミット固定コマンド実行ネットワーク通信ファイル書き込みDual-pass Audit
Author dontbesilent2025GitHub dontbesilent2025/dbskill ↗Stars 10121License CC BY-NC 4.0(仓库根 LICENSE:Attribution-NonCommercial 4.0 International (CC BY-NC 4.0);署名 + 禁止商业使用;Copyright (c) 2026 dontbesilent)Commit 8b8e33f1ec
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

SKILL.md 自体は「プロトコル説明+出力仕様」のレイヤーに過ぎず、実際のインストール処理は付属の bash スクリプトに委ねられます。ユーザーは常に同一の単一コマンドを入力するだけで、スクリプト内部でホストの種類とエントリポイントが自動判別されます。

skills/dbs-install-skill/SKILL.md
用户始终使用同一条命令。脚本自动选择公共入口或专属入口,用户无需判断宿主类型,也无需添加模式参数。
これは「ドキュメント即インターフェース」の設計思想です。SKILL.md はモデルにスクリプトの存在と呼び出し方法を認知させる役割を担い、スクリプトがすべての確定的なロジックを担当することで、モデルがその場でインストールコマンドを再生成するのを防ぎます。

ルーティング戦略は「単一の共有エントリ優先」を採用しています。すべての Skill はまず ~/.agents/skills にリンクされ、この規約を未導入のホストに対してのみ専用ディレクトリが補完されます(当該ホストのホームディレクトリが既に存在する場合に限る)。

skills/dbs-install-skill/SKILL.md
以下客户端当前仍使用专属目录。只有对应主目录已经存在时,脚本才创建链接:
インストールされていないクライアント向けに ~/.claude や ~/.kiro などのディレクトリが無意味に作成されるのを防ぎます。

スクリプトは INSTALL_HOME 変数を用いて全ホストのルートディレクトリを一元管理し、デフォルトは $HOME で、DBS_INSTALL_HOME によるオーバーライドが可能です(テストやサンドボックス環境に便利)。

skills/dbs-install-skill/scripts/install-skill.sh
INSTALL_HOME="${DBS_INSTALL_HOME:-$HOME}"
共有エントリ SHARED_TARGET_DIR="$INSTALL_HOME/.agents/skills"。専用エントリは 6 つの配列項目、冗長クリーンアップ対象ディレクトリは 24 個の配列項目で構成されます。

実際の書き込み処理はシンボリックリンク(Unix)またはディレクトリエクステンション Junction(Windows)であり、ソースファイルをコピーしないため、ソース Skill 更新時は各ホストへ即座に反映されます。

skills/dbs-install-skill/SKILL.md
Unix-like 系统使用符号链接;Windows 的 Bash/MSYS 环境使用目录 Junction,避免 `ln -s` 在部分配置下生成实体目录副本。
スクリプト側の実装対応:create_managed_link は run_windows_junction または ln -s を実行します。

Grok はリンクではなく「薄いアダプター層」を使用します。スクリプトは frontmatter に user_invocable: true を含み、本文には真のソースを指す Source of truth 行のみを持つ最小限の SKILL.md を生成します。

skills/dbs-install-skill/scripts/install-skill.sh
- Source of truth: $src/SKILL.md
Grok ディレクトリ内には長いロジックを保持せず("Treat this file as a thin Grok bridge only")、真のソースの変更が単一箇所で反映されます。

Skill 名にはディレクトリ名ではなく真のソースの SKILL.md frontmatter にある name を採用(スクリプトは awk で frontmatter 領域のみを読み込み)、ソースディレクトリに分類プレフィックスが付いていても各 Agent のトリガー名は安定して保持されます。

skills/dbs-install-skill/SKILL.md
入口名优先读取真源 `SKILL.md` frontmatter 中的 `name`;只有 `name` 缺失时才退回源目录名。这样源目录可以使用分类前缀,各 Agent 仍保持稳定的历史触发名。
awk の解析失敗時や name が欠落している場合は basename にフォールバックします。name に / が含まれる場合や . / .. の場合はパストラバーサル防止のため直ちに die します。

link 実行時に併せて冪等なクリーンアップを実施:同一の真のソースを指す冗長/過去のエイリアス/破損リンクを削除しつつ、実ディレクトリや別ソースを指すリンクは保護(競合時はレポートを出力)。

skills/dbs-install-skill/SKILL.md
删除公共入口兼容客户端专属目录中指向同一真源的冗余链接;
link_one は既存の実ディレクトリ/ファイルを検出した場合、「✗ 是真实目录或文件,已保留」と出力して 2 を返し、絶対に上書きしません。

status アクションは「冗長なエントリが存在するかどうか」を判定可能な終了コードのセマンティクスに変換します:冗長性がない場合のみ ✓ を出力し、冗長性がある場合は ✗ を報告して異常終了します。

skills/dbs-install-skill/SKILL.md
状态正常时,脚本必须输出:
スクリプト終盤:action=status かつ failed=0 の場合のみ ✓ 未发现冗余入口 を出力し、failed をそのままプロセスの終了コードとして扱います。

2コア機能

01クロスホストインストール:単一の Skill または Skill コレクション全体を、インストール済みの全ホストへ一括リンク
02コレクションディレクトリのインストール:第 1 階層のサブディレクトリ内で SKILL.md を含む各ディレクトリに対し同一のルーティングを順次適用
03インストール状態の健全性チェックと冗長性の判定(status サブコマンド)
04アンインストール時は派生物のみを削除し、ソース Skill やユーザーの実ディレクトリは絶対に削除しない
05Windows 対応:PowerShell ヘルパーを用いて Junction の create/target/remove/test/list/same/under を管理
06実ディレクトリ/実ファイル/他ソースへのリンクを上書きせず、競合時は保持して報告
07ソースディレクトリの解決優先順位:絶対パス → カレント作業ディレクトリ → リポジトリルート → リポジトリの skills/<name>。推測せず見つからない場合は即時エラー
08エントリ名の安定化:ディレクトリ名ではなく真のソースの frontmatter にある name をリンク名として採用

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

安全運用のための推奨統制措置
Agent 向け
段階的・都度認可、サンドボックス推奨
管理者向け
承認フロー、ロールバック可能、全履歴監査
判定根拠(ファイルパスと抜粋)
  • scripts/: ローカルスクリプトまたはコマンドの実行: skills/dbs-install-skill/scripts/install-skill.sh(bash、SKILL.md の指示に従いモデルから直接実行)
  • 环境变量 / API Key: ベンダーサービスキーの読み取り: 各 Agent のルートディレクトリを特定するために $HOME および $DBS_INSTALL_HOME を読み取り(INSTALL_HOME="${DBS_INSTALL_HOM)
  • 本地工作目录: ファイルの読み書きと成果物の出力: ~/.agents/skills/<name> および 6 つの専用ホストディレクトリ配下のシンボリックリンク/Junction(mkdir -p 対象ディレクトリ)
監査ノート: 評価対象はこの Skill 自身のディレクトリです。実行可能スクリプト(809 行の bash + 157 行の PowerShell ヘルパー)を内包し、bash/Windows PowerShell を通じてユーザーのホームディレクトリを直接操作(リンクや Junction の作成・削除、Grok ブリッジ SKILL.md の書き込み)するため、「ローカルスクリプト/CLI およびローカル読み書きのみ・外部送信なし」の区分に該当します。外部ネットワーク送信、認証情報の読み取り、パッケージインストール、eval 実行は含まれません。削除操作は「現在指定された真のソースを指す管理対象リンク」と「本ツールが生成した Grok ディレクトリ」に厳格に制限されており、実ディレクトリ/実ファイル/他ソースへのリンクはすべて保護されて報告されます(終了コード 2)。利用にあたっては、変更範囲が $HOME 配下に限定されていること、およびデフォルトではソースファイルが複製されない点に留意する必要があります。

5二重目の独立検証

  • [ok] 外部资源/工具:是否存在未披露的网络或第三方依赖 — skills/dbs-install-skill 整目录(SKILL.md + install-skill.sh + windows-junction.ps1 + agents/openai.yaml)token 扫描 curl/wget/https?:///api_key/token/secret/fetch 全部零命中;脚本只调用 ln/mkdir/rm/find/awk/sed/uname/dirname/basename 与(Windows 时)pwsh/powershell,均为本机命令。external_deps 记为空数组成立。
  • [ok] 安全结论:删除动作是否会危及用户既有文件 — unlink 路径只走 unlink_if_points_to(先比对链接目标是否等于本次真源)与 unlink_grok_one;Grok 分支的 rm -rf 前面有两道门:is_managed_link、或以 grep -q '^## Grok Bridge$' 判定为本工具生成的桥接文件,否则打印「✗ 是真实目录或文件,已保留」并 return 2。link 路径同理(link_one 遇 -e "$link" 即保留)。未发现无条件 rm -rf。
  • [discrepancy] SKILL.md 自检项「private/ 与 .private/ 没有被读取、复制、暂存或安装」是否由脚本兑现 — 该句仅出现在 skills/dbs-install-skill/SKILL.md:203;对整个 skill 目录 grep -rni private 只此一处,install-skill.sh 与 windows-junction.ps1 中均无任何 private/.private 过滤或跳过逻辑,仓库工具层 tools/test-dbs-install-skill*.sh 也无相关用例。真实行为是:脚本对源目录建链接/桥接,既不复制也不过滤子目录,因此源 Skill 目录内若存在 private/,它会随源目录一起被 Agent 目录侧访问到(不会产生副本)。该项属文档声明超前于实现,不构成凭空夸大宣传,但「没有被读取/安装」这一表述在脚本层面无证据。
  • [ok] 功能声明 vs 实际代码能力:SKILL.md 描述的宿主清单与脚本数组是否一致 — SKILL.md 专属入口列 6 家(Claude Code/WorkBuddy/Hermes Agent/Kiro/Qwen Code/Cline),对应 NATIVE_TARGET_DIRS 恰好 6 项;公共兼容客户端列 8 家(Codex/GitHub Copilot/Gemini CLI/Cursor/Augment/Roo Code/OpenCode/OpenHands),对应 REDUNDANT_TARGET_DIRS 前 8 项注释「前 8 项已能读取 ~/.agents/skills」,数组实际长度 24(其余为旧版目录,仅用于清理)。一致。
  • [unlocatable] 证据定位:stars/last_push/license 是否能在 pin 源码内定位 — stars=10121、last_push=2026-09-07 取自站点池 data/pool.json 的机器采集字段(GitHub API),pin 工作副本为本地镜像,源码内无此数据,无法在用 read 可及的仓库文件内逐字命中;license 可在仓库根 LICENSE 逐字命中(CC BY-NC 4.0)。

6結論

  • 「複数環境へのインストール」という反復作業をデフォルト引数なしの単一コマンドに集約:ルーティングはホストのホームディレクトリの存在検知に基づいて決定され、ユーザーが各 Agent のディレクトリ規約を把握する必要がない
  • コピーではなくリンクを利用することで、複数環境間におけるバージョンの不一致を根本から排除。実行のたびに過去の冗長エントリを収束させるため、長期運用でも同期の取れていない複製が乱立しない
  • 破壊的変更を伴う操作には明確な境界と失敗セマンティクスを設定:実ディレクトリ、実ファイル、他ソースへのリンクはすべて保持され非ゼロを返すため、ユーザーは自動処理されなかった箇所を直ちに把握可能
  • ドキュメントの開示レベルが誠実:「存在しない Agent ホームディレクトリは作成しない」「実ディレクトリは上書きしない」「アンインストールは派生物のみ削除」「ソース Skill は削除されない」といった制約を明示し、スクリプトの実装と 1 対 1 で対応
  • 最適な用途: 2 つ以上の Agent ホスト(Claude Code + Codex + Cursor/Grok/Qwen Code など)を併用する Skill 開発者やパワーユーザーに最適:単一のソースオブトゥルース、単一の保守場所で全環境に反映。また、Skill コレクション(例:dbskill 全体の 32 個の Skill)の一括配布や定期的な重複排除チェック(status サブコマンドは CI やセルフチェックフックとして利用可能)にも適しています。
    不向きな用途: Skill をバージョン管理された複製として他者に配布する用途には不向き(本ツールは意図的にリンクを採用し、コピーやパッケージングを行いません)。PowerShell が利用できない Windows 環境には不向き。任意のカスタムディレクトリへインストールしたいユースケースには不向き(ホストディレクトリはハードコードされた配列であり、変更可能なのは DBS_INSTALL_HOME による INSTALL_HOME ルートのみです)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload dbs-install-skill.tar.gz
    sha256: d04f021c0c5317a1…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 8b8e33f1ec.