ローカルLLMでGitHub Copilotスキルのevalをするまでにハマったこと ― isdd v1.0.14 開発ログA development log for isdd v1.0.14, a tool that uses GitHub Copilot skills to…
匿名の公開いいねです。記事の保存・お気に入りではなく、Featured、Top 3、重要度、掲載順位には影響しません。仕組みとプライバシーAnonymous public likes are reactions, not saved articles or bookmarks. They do not affect Featured, Top 3, importance, or listing order.How it works and privacy
GitHub Copilotスキルで要件定義から実装までをID追跡するisdd v1.0.14の開発ログで、ローカルLLMを使ってスキルのeval(評価)を回す際に直面した課題と解決策を記録している。
A development log for isdd v1.0.14, a tool that uses GitHub Copilot skills to track requirements through implementation by ID, documenting the pitfalls and fixes encountered while running skill evals with a local LLM.
本ページの本文と要約は AI による自動生成です。日本語版と英語版は言語ごとに独立して生成されるため、表現や詳しさが異なる場合があります。正確性は元記事 (qiita.com) をご確認ください。The body and summaries are AI-generated independently for each language, so wording and detail may differ. Verify accuracy at the original source (qiita.com).
要約と収集メタデータに基づく AI 解説。元記事全文の転載・翻訳ではありません。AI explainer based on the summaries and collected metadata, not a copy or translation of the full source article.
isdd v1.0.14では、ローカルLLMを使ってGitHub Copilotスキルのevalを実行するための改修が行われた。中心となったのは、長時間の処理に対応するタイムアウト設定と、follow_up_promptsの設計判断である。
isddの役割
isddは、Interview-driven Spec-driven Developmentの略称で、GitHub Copilotのスキル機能を利用する。要件定義、詳細設計、実装までをIDによって一貫して追跡する仕組みであり、今回の開発では、そのスキルをローカルLLMで評価できるようにする作業が進められた。
evalの時間延長
wazaのevalでは、timeout_secondsによって1回ごとのタイムアウトを制御する。当初のデフォルト値は600秒、つまり10分だった。しかし、ローカルで動作するGemma 4 26B QATに84Kトークンを処理させたところ、約44分を要した。
この結果を受け、全evalのtimeout_secondsは一律で10倍に変更された。6000秒あれば実用上は余裕がある場面も多いとされるが、今回の改修では、まずevalを最後まで通すことが優先されている。
bash 3.2の問題
run-all.shでは、未定義変数への参照をエラーにするset -uを有効にしていたため、空配列の展開時にunbound variableが発生した。zshやbash 4以降では問題にならない一方、macOSのデフォルトであるbash 3.2系ではエラーになる。そのため、bash 3.2でも空配列を扱える書き方へ修正された。
follow_up_prompts
waza v0.28.0からは、eval中に追加のプロンプトをモデルへ送るfollow_up_promptsが利用できる。ただし、使い方を誤ると逆効果になると説明されている。今回対象となったisdd-change-designは自律完了型スキルであり、追加プロンプトを使うかどうかもスキルの性質を踏まえて判断する必要がある。
isdd v1.0.14
isdd, short for Interview-driven Spec-driven Development, uses GitHub Copilot skills to track requirements definition, detailed design, and implementation consistently by ID. The v1.0.14 development log records changes made during the week, focusing on local LLM eval support and design decisions around follow_up_prompts.
Local LLM evals
waza evals use timeout_seconds to control the timeout for each evaluation. The default had been set to 600 seconds, or 10 minutes, but that limit was insufficient when running an eval with the locally operated Gemma 4 26B QAT.
Processing 84K tokens took approximately 44 minutes. In response, timeout_seconds was increased uniformly by a factor of 10 across all evals, taking the value to 6000 seconds. The development log says that 6000 seconds provides ample time in many practical cases, while emphasizing that the immediate priority was to allow the evals to complete.
bash 3.2
Another issue appeared in run-all.sh, where set -u was enabled. This option treats references to undefined variables as errors, and expanding an empty array caused an unbound variable error.
The same empty-array expansion does not cause a problem in zsh or bash 4 and later. However, the default bash on macOS is from the 3.2 series, where the error occurs. The script therefore required a pattern compatible with bash 3.2, and the empty-array bug in run-all.sh was fixed.
follow_up_prompts
waza has supported follow_up_prompts since v0.28.0. The mechanism sends additional prompts to the model during an eval.
The work on isdd v1.0.14 showed that using follow_up_prompts incorrectly can be counterproductive. This became a design consideration because isdd-change-design is an autonomous completion skill. Alongside the timeout and shell-script fixes, this behavior formed the second main theme of the development work.
ポコとTECHガイドPoko & TECH Guide
ポコと当サイトのTECHガイドが、記事の要約と収集した情報から読みどころを語るAI生成の対話です。Poko and TECH Dashboard's own TECH Guide discuss the article's highlights in an AI-generated conversation based on its summary and collected source details.
- ポコPoko開発の仕事で、これは普段の何が変わるの? 要件から実装まで、迷子になりにくくなるのかな。What could this change in everyday development? Would it make the path from requirements to implementation easier to follow?
- TECHガイドTECH Guideisddは、要件定義・詳細設計・実装をIDで一貫して追う仕組みだよ。今回は、そのスキルをローカルLLMで評価するための改修なんだ。isdd tracks requirements, detailed design, and implementation consistently by ID. This update focuses on evaluating that skill with a local LLM.
- ポコPokoローカルLLMでの評価って、前はできなかったの? それとも、動くけど途中でつまずいたのかな。Couldn’t they run evaluations with a local LLM before? Or did it work but hit some snags?
- TECHガイドTECH Guide以前は不可能だった、とは書かれていないよ。今回はタイムアウトを600から6000へ延ばし、bash 3.2の空配列エラーも直したんだ。It doesn’t say evaluations were previously impossible. This update raised the timeout from 600 to 6000 and fixed an empty-array error in bash 3.2.
- ポコPokoなるほど。収穫は、待ち時間や実行環境を見ながら、追加プロンプトも慎重に使うことなんだね。Got it. The lesson is to account for runtime and the execution environment, while using follow-up prompts carefully too.
- TECHガイドTECH Guideそうだね。次は、自律完了型のisdd-change-designでfollow_up_promptsをどう設計したかに注目すると、流れをつかみやすいよ。Right. Next, focus on how follow_up_prompts were designed for the self-completing isdd-change-design skill; that should make the reasoning easier to follow.
