Coding
PromptBeginner5 minmarkdown
Markdown Converter
Agent skill for markdown-converter
7
既存の`app.py`/`chat_logic.py`構成を分離し、共有ロジックを`core.py`へ集約したうえで、セッションベースのシステムプロンプト機能をWeb UIとCLIの双方に実装する。
Sign in to like and favorite skills
既存の
app.py/chat_logic.py構成を分離し、共有ロジックをcore.pyへ集約したうえで、セッションベースのシステムプロンプト機能をWeb UIとCLIの双方に実装する。doc/system_prompt_feature_requirements.md)
core.pyへ移し、webui.py/cli.pyを薄いエントリーポイントにする。core.pyにAPI設定、モデルラッパー、履歴整形、共通ユーティリティ(トークン計算のスタブ含む)が実装されている。app.pyはwebui.pyへリネームされ、Gradioロジックのみ保持する。chat_logic.pyの対話ループはcli.pyへ移行し、core.pyを介してLLMを呼び出す。tests/test_core.pyとtests/test_cli.pyに再編され、ルートに不要な旧ファイルが残っていない。core.pyに移植し、他モジュールからインポートできるよう公開関数を整理する。app.py→webui.py、chat_logic.py→cli.pyへ移行し、すべてのインポート・起動手順・README記述を更新する。tests/test_chat_logic.pyを分割し、coreレイヤとCLI振る舞いを個別に検証する新しいテストファイルを追加する。core.pyにシステムプロンプト入力を受け取り、API向け履歴へ適切に挿入する仕組みと、モデルキャッシュのリセットを実装する。prepare_request(history, system_prompt, model_name)がOpenAI/Gemini向けに正しいフォーマットを返す。get_token_infoが{"count": <int>, "max_allowed": <int>, "is_estimated": <bool>}を返し、現段階では簡易な概算実装でもよいが、Epic 4で精緻化されることを明記している。get_token_infoがトークン数・最大長・推定フラグを返すようにし、未設定モデルにはデフォルトを適用する。Gemini等の概算ロジックは簡易でよく、Epic 4でプロバイダ別精度向上を行う旨をコメントする。gr.Textbox(lines>=3)でプロンプトを編集でき、入力が変更されるたびにget_token_info結果が表示される。gr.Markdownを配置し、ユーザー操作フローを更新する。get_token_infoを呼び出し、超過時にボタン無効化と警告表示を行うロジックを実装する。/system コマンド体系/system <text>で設定、/systemで現在値表示、/system clearで解除できる。get_token_infoを使用し、上限超過時は警告を表示して設定をキャンセルする。/コマンドにはガイド付きエラーメッセージを返す。/systemコマンドをCLIループに統合し、通常入力と区別して処理する。system_promptが保存され、読み込み時に現在のセッションへ適用される。