一键导入
add-drone
Borg drone(lib/ 配下の git submodule として管理される Emacs パッケージ)を追加する。「パッケージを導入して」「〜.el を追加して」「drone 追加」等のリクエストで使う。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Borg drone(lib/ 配下の git submodule として管理される Emacs パッケージ)を追加する。「パッケージを導入して」「〜.el を追加して」「drone 追加」等のリクエストで使う。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | add-drone |
| description | Borg drone(lib/ 配下の git submodule として管理される Emacs パッケージ)を追加する。「パッケージを導入して」「〜.el を追加して」「drone 追加」等のリクエストで使う。 |
新しい Emacs パッケージを Borg drone として追加する手順。
GitHub リポジトリ名ではなく、(require 'X) する Emacs の feature/package 名を使う。
この2つはしばしば異なる(例: リポジトリ akermu/emacs-libvterm → 名前は vterm、
リポジトリ xenodium/acp.el → 名前は acp)。迷ったらパッケージの主要な .el
ファイル末尾の (provide 'X) を確認する。
.claude/skills/add-drone/scripts/lookup.sh <name>
borg-assimilate が参照するのと同じ Epkg データベース(emacsmirror の
パッケージ定義、var/epkgs)から、正規の upstream URL・summary・必須依存を
引く。リポジトリ URL を Web 検索で探してはいけない。 同名の別パッケージや
fork を正規リポジトリと取り違える事故の元になる。
出力の url: をそのまま手順 3 に渡す
class が wiki / orphaned の場合は供給元の信頼性に注意が必要なので、 進める前にユーザーに確認する
必須依存に「未登録」があれば、その依存パッケージも本手順(1〜3)で追加する
見つからない場合は、まずデータベース自体を更新して再確認する:
.claude/skills/add-drone/scripts/update-epkgs.sh
(emacs --batch から epkg-update を実行し、パッケージリストと定義を
最新化する。)それでも見つからない新しすぎる・マイナーなパッケージに
限り、upstream リポジトリを自力で特定し、URL をユーザーに確認してから
手順 3 に進む。
.claude/skills/add-drone/scripts/add-drone.sh <name> <url>
内部で emacs --batch から borg-assimilate を呼ぶ。submodule の登録・
.gitmodules の整列・git dir の absorb・drone のビルドまで borg が一貫して
行うので、git submodule add を直接叩いてはいけない(--name の
付け忘れなど手作業の事故を防ぎ、borg の管理下で完結させるため)。
変更はステージされた状態で残る(コミットはしない)。
lisp/toncs-config-*.org の (require '...) が並ぶブロックに (require '<name>) を追記する。lisp/toncs-config-<name>.org を新規作成し、
lisp/toncs-config.org に (toncs-config-prepare <name>) または
(toncs-config-configure <name> ...) を追加する。make lisp
ERROR_ON_WARN=t make test
(/verify スキルでも同等の検証ができる)
assimilate 後にビルドや設定で失敗して最初からやり直したい場合は、 コミット前であれば以下でクリーンアップできる:
git submodule deinit -f lib/<name>
git rm -f lib/<name>
rm -rf .git/modules/lib/<name> .git/modules/<name>
git checkout -- .gitmodules
(.git/modules/ 側のパスは submodule 名によって lib/<name> か <name> のいずれかになるので
両方 rm しても無害)