lg_toolkit_guide

00_policy.md - 開発方針

1. 目的

本リポジトリは、閉域または庁内ネットワーク環境で利用する小規模な内部業務支援ツールを、継続的かつ効率的に開発するための共通方針・設計前提・品質基準をまとめたものである。

主な目的は、個別ツールを毎回フルスクラッチで作成する状態を避け、画面構成、共通処理、注意事項、配布方法、保守方法を標準化することである。

本リポジトリは、基幹システムを代替するものではなく、閉域環境における職員の隙間業務を支援する小規模ツールを、継続的に作成・再利用するための開発基盤である。

この文書は、Vibe-codingで新規ツールを作成または修正する際に、個別のシステム設計書とは別に、AIへ毎回渡す共通前提文書として利用する。


2. 位置づけ

本リポジトリの中核は、特定のコードライブラリやフレームワークではなく、閉域自治体向け内部ツール開発のための「開発ガードレール」である。

そのため、最初から過度な共通部品化を目指さない。

まずは、以下を優先する。

  1. 開発方針の明文化
  2. AIに守らせる実装ルールの整備
  3. 個別ツール設計時の確認観点の標準化
  4. README、チェックリスト、注意事項の標準化
  5. 繰り返し発生する実装のみ、後から共通部品化する

3. 対象とするツール

本方針で対象とするのは、以下のような内部業務支援ツールである。


4. 対象外

以下は、原則として本リポジトリの対象外とする。


5. 基本思想

本リポジトリの基本思想は以下のとおりである。

  1. 閉域環境で動作することを優先する
  2. 外部通信を前提にしない
  3. 外部CDNを使用しない
  4. 追加ソフトウェアの導入を前提にしない
  5. 基幹システムや公式記録を代替しない
  6. 処理結果は必ず職員が確認する
  7. 個人情報を保存しない、または最小限に扱う
  8. 操作が簡単で、説明を読まなくても概ね使えることを目指す
  9. 小さく作り、必要に応じて育てる
  10. Vibe-codingで再利用しやすい構成にする
  11. 毎回フルスクラッチで作らず、既存方針・既存設計・既存部品を優先する
  12. 流行技術よりも、閉域環境での運用容易性、説明容易性、保守性を優先する
  13. ツールの出力は補助であり、最終判断は利用者または所管部署が行う

6. 対象環境

原則として、以下の環境で動作することを想定する。

ただし、ツールごとに利用可能な環境は異なるため、各ツールのREADMEに前提条件を明記する。


7. 原則として前提にしないもの

以下は、原則として前提にしない。


8. 使用する言語と役割

本リポジトリでは、主に以下の3種類の言語を使用する。

言語 主な役割 想定用途
JavaScript 職員向けWebツール IIS配置、ブラウザ上で動作する便利ツール
PowerShell 事務処理・運用補助 ファイル整理、CSV処理、Office補助、配布作業、ログ処理
C# 安定運用向けアプリ GUIツール、重い処理、exe配布、長期利用ツール

8.1 JavaScript

JavaScriptは、職員がブラウザで利用する小規模Webツールの主力とする。

HTML / CSS / JavaScriptで完結し、サーバーサイド処理を前提にしない。

主な用途は以下のとおり。

8.2 PowerShell

PowerShellは、主に開発者または運用担当者が使用する自動化・一括処理用とする。

ファイル操作、ログ出力、バックアップ、CSV処理、Office関連の補助処理に使用する。

主な用途は以下のとおり。

8.3 C#

C#は、JavaScriptやPowerShellでは扱いにくい処理、または職員向けにexeとして安定配布したい処理に使用する。

C#は、WinForms等のGUIツール、exe配布、Office連携、長期利用を想定する内部ツールに適している。 C#を使う場合でも、外部依存を増やしすぎず、.NET標準機能や導入済みOffice等を前提にできるか事前確認する。

最初から多用せず、必要性が明確な場合に採用する。

主な用途は以下のとおり。


9. 技術選定の原則

技術選定は、流行や高度さよりも、閉域環境での運用容易性、説明容易性、保守性を優先する。

9.1 優先するもの

9.2 慎重に扱うもの

9.3 外部ライブラリを使用する場合

外部ライブラリを使用する場合は、以下を満たすこと。


10. 標準ディレクトリ構成

新規リポジトリでは、以下の構成を基本とする。

localgov-internal-toolkit/
  README.md

  guides/
    00_policy.md
    01_ai_coding_rules.md
    02_tool_design_template.md
    03_security_privacy_rules.md
    04_ui_ux_rules.md
    05_release_checklist.md
    06_readme_template.md
    07_prompt_template.md

  examples/
    design-guides/
    prompts/
    readmes/

  common/
    web-js/
    powershell/
    csharp/

guides/

開発方針、AIコーディングルール、設計書テンプレート、セキュリティ方針、UI/UX方針、リリース前チェックリスト、READMEテンプレート、プロンプトテンプレートを置く。

examples/

設計書、プロンプト、READMEの記入例を置く。

common/

繰り返し利用することが明確になった共通部品を置く。

ただし、初期段階では common/ の整備を急がない。


11. 言語の使い分け基準

やりたいこと 第一候補
職員がブラウザで使う小ツール JavaScript
IISに置いて全庁共有したい JavaScript
ファイル整理・一括処理・配布作業 PowerShell
個人PCで自分だけ使う自動化 PowerShell
OfficeやOutlookを操作したい PowerShell または C#
Windows上で安定したexeにしたい C#
他部署に配る簡易アプリ JavaScript または C#
複雑な処理を長期運用したい C#

12. UI/UX方針

職員が短時間で使えることを優先し、画面は簡潔にする。

12.1 原則

12.2 標準画面構成

Webツールは原則として以下の構成とする。

  1. ツール名
  2. 何をするツールかの短い説明
  3. 入力欄
  4. 実行ボタン
  5. 結果表示欄
  6. コピー・ダウンロード・印刷等の操作
  7. 注意事項
  8. 更新日・バージョン

13. セキュリティ・個人情報方針

本リポジトリで作成するツールは、個人情報や機微情報の取扱いに注意する。

13.1 原則

13.2 標準注意文

各ツールには、必要に応じて以下の注意文を記載する。

本ツールは庁内事務の補助を目的とした簡易ツールです。
基幹システム、公式記録、法令判断、最終的な業務判断を代替するものではありません。
出力結果は、利用者が必ず確認したうえで使用してください。

14. ファイル・データ取扱方針

ファイルを扱うツールでは、元ファイルを破壊しないことを優先する。

原則


15. 共通化の判断基準

すべてを最初から共通化しない。

同じ処理が複数回登場した場合、または今後も再利用する可能性が高い場合に共通化する。

目安として、同じ処理が3回以上登場した場合に、共通部品化を検討する。

15.1 共通化してよいもの

15.2 共通化に慎重になるもの


16. Vibe-coding利用方針

Vibe-codingを利用する場合は、毎回ゼロから作らせず、本リポジトリの方針、テンプレート、共通前提に従わせる。

16.1 原則

16.2 Vibe-coding時の基本指示

Vibe-codingで新規作成または修正を依頼する場合は、以下の内容を基本指示として含める。

このリポジトリは、閉域自治体向けの内部業務支援ツール群です。

外部CDN、外部API、クラウドサービス、追加インストールを前提にしないでください。
既存の方針、設計前提、共通部品を優先して利用し、フルスクラッチで作り直さないでください。
個人情報を保存・送信しない設計にしてください。
処理結果は利用者が確認して使用する前提としてください。
基幹システム、公式記録、法令判断、最終的な業務判断を代替しない補助ツールとして設計してください。

17. 各ツールのREADMEに記載する事項

各ツールにはREADMEを置き、以下を記載する。


18. バージョン管理・リリース方針

各ツールは、可能な範囲でバージョンを付与する。

18.1 バージョン例

18.2 リリース前確認

リリース前に、最低限以下を確認する。


19. 保守方針

本リポジトリのツールは、小規模な内部業務支援を目的とする。

必要以上に保守責任を拡大しない。

原則


20. 禁止事項

原則として、以下は禁止する。


21. 当面の整備対象

まずは以下を整備する。

  1. 00_policy.md
  2. 01_ai_coding_rules.md
  3. 02_tool_design_template.md
  4. 05_release_checklist.md
  5. 06_readme_template.md
  6. 07_prompt_template.md

コードの共通部品は、複数ツールで再利用することが明確になってから整備する。


22. まとめ

本リポジトリでは、立派な業務システム基盤を目指すのではなく、閉域自治体環境で使いやすい小規模な内部業務支援ツールを、継続的に作成・再利用できる状態を目指す。

重要な方針は以下の3点である。

  1. 閉域・庁内・小規模補助ツールであること
  2. JavaScript / PowerShell / C# を用途別に使い分けること
  3. Vibe-codingで毎回フルスクラッチに戻らないこと

本方針により、個別ツールの開発効率、品質、説明責任、保守性を高める。