Migrate existing ADRs to YAML frontmatter format. Scans docs/decisions/ for ADRs without frontmatter, infers status from body text, shows dry-run for approval. Trigger: /adr-migrate
日本語の概要は準備中です。原文の説明を表示しています。
chezmoi で apply や status を実行するとき、配置する対象を増やす、減らす、撤去するとき、配置先の状態や依存の取得経路を確かめるときに使う。chezmoi が関わらない Git や GitHub の手順には使わない。
実行スコア 未検証
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
chezmoi source-path で確認できる)の今の作業ツリー全体を配置先に反映する。merge していない変更を含んだブランチがほかにないか確かめる。未マージのブランチから配置した内容は、master からの次の apply で巻き戻る。worktree の内容を試すには、--source <worktree> を付け、対象のファイルを引数で絞る。この指定では run script が走らないので、mise の導入や settings の統合は別に行う。chezmoi diff で配置が運ぶ変更を事前に見る。diff はディレクトリを引数に取っても配下を再帰しない(apply は再帰する)。同じ引数を渡しても、事前確認と適用とで範囲が違いうる。chezmoi status の 2 列は意味が違う。1 列目は「前回の apply のあとに配置先が外から変わったか」で、この列に何かあると非対話の apply が確認を求めて止まる。2 列目は「apply が何を変えるか」。R の行は apply のたびに実行される run script の一覧で、未適用の差分ではない。MM は二重差分で、道具が自分の設定ファイルを書き換えるタイプで起き、放置すると apply のたびに巻き戻っては再実行を繰り返す。umask 002 を先に付ける。022 のままだと、002 で配置したファイルがすべて権限だけの差分として出る。--no-perms --executability を付ける(短い -E は古い rsync で意味が違うので長い形で書く)。-a には --perms が含まれ、source が本当には持っていない情報(ディレクトリのモード、group と other のビット)までコピーする。git が記録するのは実行可能かどうかの 1 ビットである。転送元の末尾にスラッシュを付けると . 自身が転送対象になり、転送先のルートディレクトリのモードが上書きされる。exclude を付けてもルートのメタデータは守れない。chezmoi apply --exclude scripts を使う。apply からスクリプトの実行だけを除けるので、chezmoi が覚えている「最後に書いた状態」と実体をそろえられる。.chezmoiignore は「これから配置しない」だけで、配置先の既存ファイルには触らない。.chezmoiremove は全端末で無条件に消す。テンプレートの描画結果が空の target は、その端末でだけ消える。端末ごとに配置するかどうかを分けるなら、ignore ではなくテンプレートの中身を条件で空にする形が向いている。条件が変わった端末から、既に配置された分も自動で片付く。.chezmoiignore は配置先のパスに対して、gitignore に近い glob で照合される。リポジトリ内の名前(dot_claude など)で書くと効かない。* はディレクトリの区切りをまたがないため、*.md が除外するのは直下だけで、下の階層はすり抜ける。ignore はほかのすべてに優先し、.chezmoiremove の対象からも外す。.chezmoiremove に同じパスを書く。書いた行は、対象のファイルがもう無くてもエラーにならないので残してよい。ほかの端末の apply でも同じ片付けが効く。git log --diff-filter=D で source から消したファイルを拾い、「いま管理していない」「ignore に入っていない」「.chezmoiremove にまだ無い」の 3 条件で絞り込む。この端末に残っていないことは、ほかの端末に残っていないことの証明にならない。行の不足は残骸を残し、過剰な行は生きたファイルを消して apply 全体を止める。chezmoi unmanaged は書き忘れの残りを見つけるが、merge 前のブランチから apply したファイルも同じように出る。消す前に出どころを確かめる。chezmoi managed には .chezmoiremove で消される target も載り続けるので、一覧の見た目で判断せず、apply の dry-run で結果を確かめる。端末条件で分けた変更は、dry-run を条件の両側(真と偽)で取る。片側だけの確認は「この端末では変わらない」ことしか分からない。chezmoi apply <target> は対象のファイルだけを置き、run script は実行しない。引数に管理対象外のパスを 1 つでも混ぜると、ほかの引数も含めて何も配置せずに終わる。配置先に親ディレクトリがまだ無い新規ファイルを単体で指定すると、stat ... no such file or directory で失敗する。そのファイルのディレクトリごと指定して apply し直すと配置される。run_onchange_ は描画後の内容のハッシュが変わると再実行される。script を直すと、直した部分と無関係な処理まで一度は実行し直す。apply の序盤で sudo が要る script が落ちると、後続の反映がすべて止まる。create_ は初回だけ作る属性である。後から雛形を変えても、既にできた配置先のリストには反映されない。modify_ script は配置先のファイルを入力として受け取り、加工した結果を出す。実行時に道具が書き足した項目は apply をまたいで残るので、一時的な項目は配置先から直接消す。~/.codex/rules/default.rules に許可の行を書き足したことで apply が止まったとき、同じ行を home/dot_codex/rules/default.rules に足して commit してから apply し直すと通った。Codex が書き足すたびに再発するので同じ手順の繰り返しになり、根本策は別の文書に残す。has changed since chezmoi last wrote it で止まるのは、persistent state が覚えている前回の内容と今のファイルが違うときである。2 つのファイルの更新時刻が一致するかは、利用者が直したのか道具が書いたのかを切り分ける最初の手がかりになる。chezmoi cat を比べるときは、整形込みの差分をそのまま読まず、jq -S などで正規化してから比べる。複数のテンプレートが同じ部品を引数違いで呼ぶと、1 行の変更が複数の出力に効く。run_onchange の仕組み上「apply で作り直す」が効かない案内の例)。env が起動時に指定した CLAUDE_CODE_PLUGIN_DIRS を上書きしていないか確かめる。読み込まれた実装は、その実装だけが書く記録の形式と時刻でも照合する。/hooks の一覧に出るか)。最後に、新規セッションで動作を確かめる。settings.json への登録はセッションの起動時に読み込まれるため、今のセッションが配備前に起動していれば、ここで確認しても「登録が無い」という当たり前の結果しか出ない。disableAllHooks が true になっていないかを先に確かめる。run_onchange script は描画後の中身が変わらないと再実行せず、settings の統合もテンプレートに無いキーを残すため、chezmoi apply --force でも戻らない。/hooks の確認か jq の del(.disableAllHooks) で直接消すと、hook が戻る。mise registry <名前> で行き先を見る。短縮名が別のツールを指すことがある。with: 経由なら github-actions、package.json 経由なら npm の扱いになり、別のブランチに振り分けられる。mise の cargo:zizmor の depName は接頭辞ごと cargo:zizmor なので、規則は接頭辞を含めて書く。Renovate は mise の短縮名を自前の対応表で読み、表に無い名前は更新が黙って止まる。載っているかを別に確かめる。--platform=local --dry-run=lookup で、PR を作らずにどのブランチに何が入るかを確かめる。次の更新が来るまで結果が見えない設定の検証に向いている。minimumReleaseAge、mise の minimum_release_age)が効くのは、バージョンの範囲や latest から解決するときだけである。バージョンを固定した指定は待たずに入る。bun install --frozen-lockfile は解決を飛ばすので待ち期間の対象外で、配置時に改変を防ぐのは lock の integrity ハッシュである。グループ化しても待ち期間は依存ごとに評価され、manager が違えば片方にしか掛からない。curl -f URL | sh は、pipefail の無いシェルでは curl が何も出さずに落ちても sh が空の入力を 0 で読み終え、失敗が隠れる。ダウンロードの途中で切れると、前半だけが実行される。取得が完了する前に実行せず、失敗は後続の処理へ伝える。run: の中に書く。jactionlint の unverified-download は run の本文だけを見るため、照合を script ファイルに移すと検出が消える。それは直ったのではなく見えなくなっただけである。CI が実行する文面をそのまま取り出し、偽の curl に向けて実行すると、実際に走る文面そのものを検査できる。まだレビューはありません。使ってみた感想をお寄せください。
ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。
まだコメントはありません。最初のコメントを書いてみませんか。
Migrate existing ADRs to YAML frontmatter format. Scans docs/decisions/ for ADRs without frontmatter, infers status from body text, shows dry-run for approval. Trigger: /adr-migrate
日本語の概要は準備中です。原文の説明を表示しています。
Start or resume an ADR session. Without number: show status overview and recommend next actionable ADR. With number: provide phase-specific guidance. Trigger: /adr-session, /adr-session NNN, /adr-session new
日本語の概要は準備中です。原文の説明を表示しています。
agent-vm の初期化・共有・資格情報・ポート転送を変更、検証するときに使う。VM 内だけの通常の開発には使わない。
Analyze a project's harness maturity and guide staged adoption of Harness Engineering best practices (quality loops, safety gates, linters, CLAUDE.md optimization).
日本語の概要は準備中です。原文の説明を表示しています。
Standardized bug fix workflow using TDD (Red-Green-Refactor). Use when fixing bugs, resolving issues, or when the user invokes /bugfix. Ensures root cause analysis, failing test first, then minimal fix.
日本語の概要は準備中です。原文の説明を表示しています。
Create detailed specifications by iteratively clarifying unclear points for Plan mode. Use when: After completing a plan when detailed requirements need clarification before implementation.
日本語の概要は準備中です。原文の説明を表示しています。