初回 install の次は、運用中のズレを減らす

登録できたあとに問題が出る

前回 は、persona-skills-core を手元の端末へ登録する初回 install の流れを書きました。statusdry-runapply の順で進め、Codex$Claude Code/ に同じ skill が出るところまでです。

初回 install だけなら、そこまで難しくありません。問題が出やすいのは、その後です。skill を更新したり、別端末で使ったり、agent-config-core と組み合わせたりすると、「どの順番で何を叩くか」を決めておかないと、また片方だけ古い状態が起きます。

この記事では、複数端末で運用するときに自分が意識している順番をまとめます。

agent-config-core と組み合わせる

deploy.sh からまとめて呼び出す

agent-config-core を併用している場合、deploy.sh 側に --install-persona-skills というオプションを用意しています。rule.md の配信と skill の登録を、1 回の deploy 経路からまとめて走らせるためです。

PERSONA_SKILLS_ROOT=/path/to/persona-skills-core ./deploy.sh --install-persona-skills
PERSONA_SKILLS_ROOT=/path/to/persona-skills-core ./deploy.sh --persona-skills-status

PERSONA_SKILLS_ROOTpersona-skills-core を clone した先の絶対パスを渡すと、agent-config-core 側の deploy.sh から persona-skills-core の CLI が呼び出されます。Codex の plugin 登録と Claude Code の skill directory 登録を、同じ導線で確認できます。

前提と skill を同じ経路で見る

この連携の目的は、何でも agent-config-core に詰め込むことではありません。rule.md の配信と skill の登録は、責務としては別です。

ただ、自分の端末で「今のエージェント環境を揃える」作業としては、同じタイミングで確認したくなります。だから、deploy.sh から persona-skills-core の status や install を呼べるようにしました。

それでも、persona-skills-core 単独で動く経路は残しています。skill だけ使いたい端末では、persona-skills-core 側の CLI を直接叩けば十分です。

複数端末では順番を決めておく

git pull してから apply する

複数端末で揃える場面では、まず repository 側を最新にします。

cd /path/to/persona-skills-core
git pull
python3 scripts/persona-skills.py status
python3 scripts/persona-skills.py install --dry-run
python3 scripts/persona-skills.py install --apply

persona-skills-core を更新したあと別端末で同じ skill を有効にしたいときは、その端末で git pull を済ませてから install --apply を叩きます。symlink 側はファイル実体を見るので、repository が古いままだと候補も古いままです。

ここを逆にすると、「apply は通ったけれど中身は古い」という状態になります。先に正本を更新し、その後で登録先を更新する。順番はこれだけです。

自分の手元では、symlink の張り先は persona-skills-core の checkout 位置に依存しています。clone 先を別端末で別の directory に置くこと自体は問題ありませんが、同じ端末上で checkout の場所を後から移動すると symlink が切れます。

repository を移動した場合は、移動後に install を叩き直して symlink を張り替えます。

python3 scripts/persona-skills.py install --dry-run
python3 scripts/persona-skills.py install --apply

パスを動かしたら張り直す、くらいで見ておくと混乱が減ります。

しばらく触っていない端末では dry-run を挟む

新しい端末で初めて叩くときや、しばらく触っていなかった端末で再開するときは、status--dry-run を挟みます。

python3 scripts/persona-skills.py status
python3 scripts/persona-skills.py install --dry-run

--apply でも上書きが起きにくい設計にはしてありますが、conflict を先に見ておくと安心です。特に home directory 配下を触る作業では、差分を見てから反映する方が落ち着いて進められます。

分けた責務を運用でも守る

rule.md と skill を混ぜない

連載全体を通して、最初に困っていたのは「1 台の端末で CodexClaude Code に同じ指示・ルールを読ませたい」という 1 点でした。そこから「同じ skill も両方で呼びたい」「skill を登録する作法を書き手から隠したい」と段階的に整理していきました。

最終的には、次の2段構えに落ち着きました。

  • agent-config-core: rule.md を正本にして、両エージェントの global instruction へ配る
  • persona-skills-core: skill / persona / workflow を1か所に置き、Bootstrap CLI で両エージェントへ登録する

この分担を運用でも守ると、トラブル時に見に行く場所がはっきりします。指示・ルールのズレなら agent-config-core、skill 候補や手順のズレなら persona-skills-core です。

困った瞬間を設計材料にする

一気にここまで設計したわけではありません。その都度、面倒になったところを 1 つずつほどいていったら、結果として複数端末でも同期しやすい形になりました。

手で同期していた global instruction がズレたので rule.md を正本にしました。Claude Code だけに置いた skill が Codex から見えなかったので、persona-skills-core へ分けました。登録先の作法が違ったので、Bootstrap CLI に閉じ込めました。

困った瞬間は、だいたい設計の入口になります。自分の場合は、そこで無理に手作業を続けず、小さい repository と小さい CLI に分けたのが効きました。

連載の区切り

ここまでで一通りつながった

ここまでで、rule.md で指示・ルールを揃え、persona-skills-core で作業手順を揃えるところまで一通りつながりました。

最初の目的は大きなマルチエージェント基盤を作ることではなく、1 台の端末で CodexClaude Code を併用したときに、同じことを2回書かないようにすることでした。その目的には、今のところこの構成で十分です。

今後また書きたいものが溜まったら、ここから別の運用メモとして切り出していくつもりです。まずは、1記事1論点で読み返せる形にしておくことを優先しました。