Skip to content
frontmatter
キー値
specdojo.idprj-0001:pjr-xbdb-devcontainer-emacs-init-location
specdojo.typeproject
specdojo.statusready
specdojo.rulebookspecdojo:pjr-rulebook
specdojo.part_ofprj-0001:pjr-index
specdojo.item_typeissue
specdojo.item_statusdone
specdojo.prioritymedium
specdojo.ownerDEV
specdojo.registered_at2026-10-09T13:28:55Z
specdojo.completed_at2026-10-09T13:41:21Z
specdojo.conclusion生成する post-create を、~/.emacs・~/.emacs.el・~/.emacs.d/init.el・~/.config/emacs/init.el のいずれかがあれば何もせず、なければ ~/.emacs.d の有無で実際に読まれる場所へ置くように直した。一時的な HOME で 3 通りを unit test で確かめた。

PJR-XBDB devcontainer scaffold の Emacs の設定が ~/.emacs.d があると読まれない ​

1. 課題内容 ​

devcontainer scaffold --editor emacs の post-create は、init.el がどこにもないときテンプレートを ~/.config/emacs/init.el に置く。Emacs は ~/.emacs.d があると init.el がなくても ~/.config/emacs を読まないため、Emacs を起動したことがある環境やホームを引き継ぐ構成ではテンプレートが黙って無視される(2026-10-09 に実機で確認)。

2. 影響範囲 ​

観点影響
スコープsrc/devcontainer-scaffold.ts が生成する post-create の Emacs の設定の配置、その unit test と案内文書
スケジュールdevcontainer scaffold は v0.3.0 で試験的な機能。公開前に直すのが望ましい
コスト利用者が設定の効かない理由を調べる手間
品質テンプレートが黙って無視され、C-h などの既定が効かない
関係者--editor emacs を使う利用者

3. 対応方針 ​

項目内容
原因Emacs は ~/.emacs / ~/.emacs.el / ~/.emacs.d のいずれかがあると ~/.config/emacs/ を読まない。~/.emacs.d は Emacs の初回起動で自動的に作られる
対応策実際に読まれる場所へ置く。下記の「完了条件の詳細」のとおり。本リポジトリの .devcontainer/post-create.sh は同じ規則で orchestrator が対応済み(feature/prj-0001/devcontainer-emacs-init)
依存事項PJR-J7WE
完了条件下記の「完了条件の詳細」を満たす

3.1. 完了条件の詳細 ​

  • 生成する post-create は、~/.emacs、~/.emacs.el、~/.emacs.d/init.el、~/.config/emacs/init.el のいずれかがあれば何もしない(利用者の設定を優先する)。
  • いずれもない場合、~/.emacs.d ディレクトリがあれば ~/.emacs.d/init.el に、なければ ~/.config/emacs/init.el にテンプレートを置く。
  • 置いた場所を post-create の出力に表示する。
  • unit test で、生成された post-create の処理を一時的な HOME で実行し、次を確かめる。
    • 何もない場合は ~/.config/emacs/init.el に置かれる。
    • 空の ~/.emacs.d がある場合は ~/.emacs.d/init.el に置かれる。
    • ~/.emacs がある場合は何も置かれない。
  • command-reference と remote-host-development-guide の配置の説明を直す。
  • CHANGELOG の v0.3.0 の devcontainer scaffold の項目に追記する。
  • npm run check が通る。

4. 対応結果 ​

  • post-create は ~/.emacs、~/.emacs.el、~/.emacs.d/init.el、~/.config/emacs/init.el のいずれかがあれば利用者設定を優先し、テンプレートを配置しないようにした。
  • 設定ファイルが無く、空の ~/.emacs.d がある場合は ~/.emacs.d/init.el へ、それ以外は ~/.config/emacs/init.el へ配置し、実際の配置先を出力するようにした。
  • unit test で一時的な HOME に生成後の post-create を実行し、空のホーム、空の ~/.emacs.d、既存の ~/.emacs の3ケースを検証するようにした。
  • specdojo:command-reference、specdojo:remote-host-development-guide、CHANGELOG.md の案内を新しい配置規則へ更新した。

5. 関連ドキュメント ​