Skip to content

fix: resolve prompt templates by the configured language - #119

Merged
nonz250 merged 2 commits into
mainfrom
sabori-flow/110-20260731215546
Aug 9, 2026
Merged

nonz250 merged 2 commits into
mainfrom
sabori-flow/110-20260731215546

Conversation

@nonz250

@nonz250 nonz250 commented Jul 31, 2026

Copy link
Copy Markdown
Owner

Summary

close #110

~/.sabori-flow/prompts/ がフラットな単一言語のテンプレート置き場になっており、config.yml の language 設定が実際に送られるプロンプトの言語に反映されない不具合がありました。init を実行した時点の言語がユーザーディレクトリに焼き付いてしまい、以後 language を変更してもテンプレートの言語は変わりません。この PR ではユーザープロンプトディレクトリを言語別に分割し、既存のフラットインストールをカスタマイズ内容を失わずに移行できるようにしました。

Changes

ワーカー・CLI 共通ロジック

言語ごとにテンプレートを解決できるようにするための変更です。

  • ユーザープロンプトディレクトリを ~/.sabori-flow/prompts/{lang}/ という言語別構成に変更
  • init 実行時のテンプレートコピー先を言語別ディレクトリに変更
  • ワーカー起動時と init 実行時に、既存のフラットインストール(~/.sabori-flow/prompts/ 直下のテンプレート)を config.yml の language に基づいて言語別ディレクトリへ自動移行
  • 移行先に同名ファイルが既に存在する場合は上書きせず、フラット側のファイルを残して警告ログを出す(ユーザーのカスタマイズを破棄しない)

既知の制約

移行処理はフラット側テンプレートの実際の言語を判別できないため、config.yml の language 値をラベルとしてそのまま採用します。過去に日本語で init した後に config.yml の language を手動で en に変更していた場合、日本語のカスタム内容が prompts/en/ 配下に移動されるため、テンプレートの言語ラベルと実際の内容が一致しない状態になり得ます。ファイルが失われることはなく、ユーザーが手動で移動できます。language を変更した際に実際にテンプレートの言語が切り替わる対応は別 issue で追跡する想定です。

Checklist

  • npm run build が通ることを確認
  • 既存テストを含め npm test が全てパスすることを確認(627 テスト)
  • 移行処理の単体テストを追加(正常移行、衝突時のスキップ、部分失敗時の継続、冪等性)

その他

design review(テスト観点・コードレビュー・セキュリティレビュー)と実装後レビュー(コードレビュー・セキュリティレビュー)をいずれも実施し、Critical/High の指摘はありませんでした。

🤖 Generated with Claude Code

nonz250 and others added 2 commits August 9, 2026 15:45
User prompt templates were stored in a flat ~/.sabori-flow/prompts/
directory regardless of config.yml's language setting, so the language
selected at `init` time stuck permanently. Split the user directory
into per-language subdirectories and migrate existing flat
installations (without discarding user customizations) on worker
startup and on `init`.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
@nonz250
nonz250 force-pushed the sabori-flow/110-20260731215546 branch from eeea3c2 to ed6232b Compare August 9, 2026 06:49
@nonz250
nonz250 marked this pull request as ready for review August 9, 2026 06:52
@nonz250
nonz250 merged commit d9f6d34 into main Aug 9, 2026
2 checks passed
@nonz250
nonz250 deleted the sabori-flow/110-20260731215546 branch August 9, 2026 06:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: resolve prompt templates by the configured language

1 participant