ヤドカリハーネス作成検証
目標
OpenFisca-Japanのバックエンド(Variable)をLLM Agentで自動生成したい
課題:LLMだと制度のコーナーケースを精密に再現しすぎてしまい、必要なパラメータが増え利用者の入力負荷が増える
人手で実装する際には、既存のVariableを使いまわしたり想定利用者にとって影響が少ない要素をデフォルメし簡単な式に変えたりしている
やりたいこと:↑の設計判断をAgentにもやらせたい
ヤドカリハーネス(=OpenFisca実装時に上記の設計判断をもとにVariable設計できるSkill)を作成
OpenFiscaに詳しくない or 非エンジニアでも、制度に詳しければVariableを実装できるのが理想
1. 過去の知見をまとめる
まずは設計でどのようなことをこれまで考えてきたかを洗い出す
以下から設計や実装の意図に関連する内容を抜き出す
リポジトリのPR一覧
Cosenseの設計アイデアページ
リポジトリのソースコード(docs/, openfisca_japan/)
暗黙知は別途思い出して記載
リポジトリ内の知見を抽出
PRの本文を一括ダウンロード
参考: GitHub CLIを使ってプルリクエストのリストを取得する方法 #GithubCLI - Qiita
code:powershell
gh pr list --state all --limit 1000 --repo project-inclusive/OpenFisca-Japan --json number,title,body > result.json
上記から関連する内容のみをClaude Codeで抽出
code:_
このディレクトリにあるすべてのファイルを読み、その中に書かれている以下に関する記述をすべて抽出して整理してください。
- テーマ: OpenFiscaで支援制度をVariableとして実装する際に気を付けた点、意識した点
- 保存先: summary.md
このCosenseの設計文書から知見を抽出
Variableについて議論した以下ページをエクスポート
能登半島地震被災者用の制度調査
特定疾病対象制度の設計メモ
エクスポート方法:右上の上から二番目の📝のアイコン→ Export for AI(2 hop links)
2hopを選択することで、当該ページから2ページで辿れる関連ページもあわせてダウンロードされる
Claude Codeで抽出(プロンプトは同上)
ソースコードから知見を抽出
プロンプト
code:_
docs配下のドキュメントとopenfisca_japan配下のソースコードの設計やコメント等を読み、その中に書かれている以下に関する記述をすべて抽出して整理してください。
- テーマ: OpenFiscaで支援制度をVariableとして実装する際に気を付けた点、意識した点
- 保存先: summary2.md
なお、設計時に別途議論した内容を summary.md にまとめているため、必要があれば参照してください。
結果(生ファイル)
大きいのでファイルで添付
summary.md
summary2.md
上記+挙げられなかった観点を整理し似ているものをグループ化
以下に分類できそう
1. OpenFiscaそのものの仕様
2. コーディングスタイル
3. 簡潔な設計のために心がけていること(目標として考えていたこと)
4. UIの制約
5. テスト
3が本丸だが、それ以外の機械的にできることから先に進めたほうがスモールステップとして良い?
https://scrapbox.io/files/6a3773802ba3627f4ec44e50.png
https://scrapbox.io/files/6a37736b2ba3627f4ec44e36.png
https://scrapbox.io/files/6a3773942ba3627f4ec44e65.png
https://scrapbox.io/files/6a3773a22ba3627f4ec44e79.png
https://scrapbox.io/files/6a3773ac2ba3627f4ec44e88.png
2. 整理してskills化
OpenFiscaそのものの仕様
openfisca-core, openfisca-docを配下にcloneして以下を実行
code:_
openfiscaのvariableを作成するため、variableの仕様、文法を知るためのskillを作って欲しいです。
配下のディレクトリを見て、仕様、実装からvariable作成のためのskillを作成してください。
複数世帯の場合の考慮事項を上記に追加
summary2.md は前述の知見抽出結果
code:_
summary2.mdの以下の項目を、openfisca-variableのskillに整理して追加してください。
ただし、既存のSKILL.mdの書き方に揃え、違和感のないように統合してください。
## 2. 複数世帯に対応した実装(最重要)
## 8. 世帯員の順序付け(get_rank)
一か所だけ説明が抜けていたので追加
code:_
.agents/skills/openfisca-variable/SKILL.md の Enumの説明やサンプルコードに __order__ を加えたいです。
openfisca_japan 配下や /home/syuparn/tmp/openfisca/openfisca-core の実装を参照して、説明を追記してください。
parameterスキルも作成
code:_
.agents/skills/openfisca-variable 同様に、OpenFiscaのparameterについてのskill openfisca-parameter を作成してください。仕様については、このディレクトリのopenfisca配下や/home/syuparn/tmp/openfisca 配下の実装、ドキュメントを参考にしてください。
testスキルも作成
code:_
.agents/skills/openfisca-variable 同様に、OpenFiscaのテスト(yamlファイル使用)についてのskill openfisca-test を作成してください。仕様については、このディレクトリのopenfisca配下や/home/syuparn/tmp/openfisca 配下の実装、ドキュメントを参考にしてください。
OpenFisca-Japan専用の記述がいくつか作成されたので修正
code:_
.agents/skills/openfisca-parameter/SKILL.md, .agents/skills/openfisca-test/SKILL.md は、openfisca_japanに限らず他のOpenFiscaのプロジェクトでも使いまわせるようにしたいです。openfisca_japanを引用する場合、あくまで紹介したい構造の一例という建付けで記載してください。
まだディレクトリ構成の話が合ったので手動で章ごと消す
OpenFisca-Japan特有の仕様
code:_
以下のskillはOpenFiscaの実装方法を説明したものです。
- .agents/skills/openfisca-parameter
- .agents/skills/openfisca-test
- .agents/skills/openfisca-variable
上記に加え、このリポジトリ(OpenFisca-Japan)特有で気を付けるべき観点をskill
- .agents/skills/openfisca-japan
に作成してください。なお、内容は既存のOpenFiscaスキルに書かれていないもののみ記載してください。必要であれば調査結果
- summary.md
- summary2.md
を参照してください。
code:_
Claude Codeでも使えるように、他のスキル同様 .claude/commands にリンクも作ってもらえますか?
#openfisca
#ヤドカリハーネス