導入にあたって
すぐに使えるもの
- COBOL・JCL、PL/I、FORTRAN、Java、SQL DDL、PLC コードの解析エンジン
- 保存したベースラインとの変更検出
- すべての事実に path:line を付けた日本語・英語の Word 設計書
- 変更をレビュー用に準備する夜間ルーティン
- IDE 向けの MCP サーバー
設定が必要なもの
- ソースフォルダー(読み取り専用)をプロジェクトとして登録
- 比較の基準とするベースライン
- 文書と変更のレビュー担当者
- 夜間ルーティンのスケジュール
設定する人
- 情報システム部門の管理者が Kurahi を導入し、ソースフォルダーを登録
- リードエンジニアがベースラインとレビュー担当者を決定
- Enterprise 契約では KODA SōKEN が設定をご一緒します
エンジニアが覚えること
- 設計書を path:line の出典と照らして読む
- 要確認とされた項目の確認
- 検出された変更を案件としてレビュー
個別にお見積もりするもの
- 対応一覧にない言語・方言
- 追加ルールが必要な社内フレームワークや生成コード
- 貴社固有の文書テンプレート
ソースコードから、レビューできる設計書へ
解析対象
- COBOL・JCL
- プログラム、コピーブック、ジョブステップ
- PL/I
- プログラムと埋め込み SQL の呼び出し
- FORTRAN
- プログラムと呼び出し構造
- Java
- JPA のマッピングと DDL の突き合わせを含む
- MyBatis
- マッパー XML と、それを呼び出す Java の対応付け
- SQL データベース
- DDL とストアドプロシージャ(DB2 SQL PL、PL/SQL、パッケージ本体)を、Java・COBOL・PL/I の呼び出し元と対応付け
- PLC
- IEC 61131-3 Structured Text と、PLCopen XML 出力の FBD・LD。ソースのテキストだけを読み、コントローラーには接続しません
Industrial の機能(詳細)
解析対象、エージェントツール、設計書、変更検出、オートパイロットまで、Kurahi Industrial のすべての機能です。
解析対象の言語と形式
| 機能 | 内容 |
|---|---|
| COBOL プログラム | 段落、PERFORM/CALL グラフ、ファイルアクセス、EXEC SQL / EXEC CICS によるアクセスを読み取り、すべての事実に path:line を付ける。 |
| COBOL コピーブック | COPY の解決を含め、コピーブックから項目レベルのデータ辞書を作成する。 |
| JCL(ジョブとプロシージャ) | ジョブ、ステップ、EXEC PGM/PROC、DD 文、データセットを読み取り、ジョブフローとデータセットの系譜に利用する。 |
| Java(Spring、JPA、MyBatis を含む) | クラス、インターフェース、enum、record、メソッド、フィールドを読み取って継承と静的呼び出しを解決し、JPA、Spring Data、@Query、JDBC の SQL リテラル、MyBatis のマッパー XML からテーブルアクセスを検出する。 |
| JPA マッピングと DDL の照合 | JPA の結合マッピングを DDL の外部キーと比較し、外部キーのない結合と、どのマッピングにも使われていない外部キーを報告する。 |
| SQL DDL | CREATE TABLE/VIEW/INDEX、列、キー、コメント、ALTER、COMMENT ON(ANSI、DB2、Oracle、PostgreSQL の基本構文)を読み取り、複数のスキーマで定義されたテーブルはスキーマごとに1つのノードとする。 |
| SQL ストアドルーチン(DB2 SQL PL、Oracle PL/SQL) | プロシージャ、関数、トリガー、Oracle パッケージのメンバーを、使用するテーブルやルーチンと関連付け、動的 SQL は未解析の箇所として一覧に示す。 |
| FORTRAN(固定形式 77、自由形式 90 以降) | プログラム単位、CALL/USE/INCLUDE、レイアウト検査付きの COMMON ブロック、EQUIVALENCE、JCL で割り当てられたファイル I/O ユニットを読み取る。 |
| PL/I | プロシージャ、CALL の関係、%INCLUDE、DECLARE 構造、JCL の DD 文に割り当てられたファイル、EXEC SQL のテーブル、ON ユニットを読み取る。 |
| PLC 構造化テキスト(IEC 61131-3:.st .scl .iecst) | PROGRAM、FUNCTION_BLOCK、FUNCTION の各ユニット、VAR セクション、%I/%Q/%M アドレスの I/O マップ、アドレスの重複、FB インスタンスと書き込みを読み取り、ソーステキストのみを対象としてコントローラーには一切接続しない。 |
| PLCopen XML(TC6 0201) | ST の本体、FBD/LD のブロック呼び出し、コイルへの書き込みを含む同じ事実を XML の行単位で読み取り、IL/SFC の本体は未解析の箇所として報告する。 |
| 言語検出と振り分け | 拡張子または内容でファイルを識別し、内容で判定した各ファイルを必ず1つのエンジンに振り分ける。 |
| 言語をまたぐ共有テーブル | COBOL の EXEC SQL、PL/I、JPA の @Table、CREATE TABLE に現れるテーブルを1つのノードとして扱い、CRUD と影響範囲の分析を言語横断で行えるようにする。 |
エージェントツール(legacy_*、modernise_*)
| 機能 | 内容 |
|---|---|
| インデックス作成 | フォルダー内の COBOL、コピーブック、JCL を解析し、件数と診断情報付きの事実インデックスを作成してキャッシュする。 |
| インデックス作成(MCP) | エディタ向け MCP サーバー版のインデックス作成。 |
| インデックス状態 | 対象範囲に最新のインデックスがあるかを件数とともに報告し、解析自体は行わない。 |
| 構造の問い合わせ | 構造に関する問い合わせに file:line 付きで回答する(summary、programs、paragraphs、callers、callees、call-graph、perform-graph、file-access、data-item、data-refs、job-steps、datasets、unresolved、graph-neighbours、call-chains、lineage)。 |
| 業務ルール候補 | 条件、定数を含む演算、ROUNDED、88 レベルの値、リテラルなどの業務ルール候補を一覧化し、該当するソーステキストをそのまま引用して意味の推測は行わない。 |
| データ辞書 / データ項目定義書 | レベル、PIC、USAGE、バイト数、オフセット、桁位置、OCCURS、REDEFINES、VALUE/88、コメントを含むコピーブックのデータ辞書を作成する。 |
| 影響範囲 | COBOL のデータ項目の変更が及ぶ範囲(共有ストレージ、データフロー、コピーブックの利用箇所、CALL USING、データセット、ジョブステップ)を、それぞれの根拠となる事実とともに示す。 |
| 設計書 | コードから設計書を生成する(セクション3を参照)。 |
| 移行ウェーブ案 | 人がレビューするための移行ウェーブを提案する(セクション4を参照)。 |
| 変更検知 | ソースを保存済みのベースラインと比較する(セクション4を参照)。 |
| ベースラインの更新 | 変更検知のベースラインを最後に比較したスナップショットまで進めるか、現在のソースから作り直す。 |
| 刷新計画(言語検出と棚卸し) | フォルダー内の言語を検出して有効なエンジンを実行し、統合した棚卸し結果、CRUD 付きの共有テーブル、カバレッジの欠落、計画中のアシスタントが対象とするファイルを返す。 |
| 言語横断 CRUD | COBOL、PL/I、Java、JCL ユーティリティにまたがるテーブルの CRUD と、COBOL、FORTRAN、PL/I にまたがるファイルの CRUD を、操作ごとの path:line 付きで示す。 |
| 言語横断の影響範囲 | テーブル、列、データセット、FORTRAN の COMMON ブロックやモジュール、Java クラス、プログラムを変更した場合の言語横断の影響範囲を示す。 |
| 棚卸し | Java の型、SQL のテーブルとビュー、FORTRAN の単位と COMMON ブロック、PL/I のプロシージャ、PLC の POU と I/O マップ(種別 `plc`)を一覧または詳細で表示する。 |
設計書
| 機能 | 内容 |
|---|---|
| 設計書(日本語/英語) | すべての事実の行に path:line を引用した Markdown 文書をコードから作成し、業務目的やルールの意味は確認用のプレースホルダー(要確認)として明示する。 |
| システム概要・ジョブフロー・プログラム仕様書・データ項目定義書・CRUDマトリクス・カバレッジ | overview、jobs、programs、java、fortran、pli、plc、dictionary、tables、crud、coverage の各セクションを含み、各セクションはフォルダーに該当する言語がある場合にのみ追加される。 |
| Mermaid 図 | グラフから生成したシステム概要図と、ジョブごとのフロー図を含む。 |
| PLC プログラム仕様 | POU 一覧、%I/%Q/%M アドレス別の I/O 割付表、各 POU の変数を含む。 |
| Java・FORTRAN・PL/I 仕様とテーブル定義 | 該当するソースがある場合、Java クラス仕様、COMMON マップ付きの FORTRAN 単位、PL/I プロシージャ仕様、テーブル定義を追加する。 |
| Word(.docx)出力 | `output_format: docx` を指定すると、`設計書_YYYYMMDD.docx`(英語版は `design-doc_YYYYMMDD.docx`)もプロジェクトの `output/design-docs/` に書き出し、既存のファイルは上書きしない。 |
変更検知・移行ウェーブ案・影響範囲
| 機能 | 内容 |
|---|---|
| 変更検知(ベースラインとの比較) | 追加・削除・変更された COBOL プログラム、コピーブック、JCL ジョブ、SQL のテーブル・列・ルーチンと CALL/PERFORM/EXEC SQL/ステップの関係を、証跡と変更された各プログラムの影響範囲とともに一覧化し、ベースラインは `output/.legacy-index/baseline/` に保存する。 |
| 移行ウェーブ案 | CALL とデータセットの依存関係、循環(SCC)、結合度、規模、複雑度、文書化されたリスクスコアに基づき、COBOL プログラムの移行ウェーブを人のレビュー用に日英の Markdown で提案する。 |
| ナレッジグラフとデータの系譜 | グラフ上の隣接ノード、上位・下位への呼び出しチェーン、ユーティリティステップを経由したデータセット・テーブルの系譜を提供する。 |
| カバレッジレポート | モデル化されなかった構文、未解決の呼び出し、見つからないコピーブック、スキップした DDL などの欠落を一覧化し、解析されなかった範囲を明確にする。 |
Autopilot・ワークベンチ・パック・エディタ連携
| 機能 | 内容 |
|---|---|
| 夜間レガシー解析と設計書更新 | 毎晩 01:30 JST とソース投入後に実行し、ソースに変更があれば Word の設計書を再生成して変更内容の業務項目を1件作成したうえでベースラインを進め、変更がなければモデルを呼び出さない(レベル L1)。 |
| 産業:システム刷新 | source/、data/、docs/ を読み取り専用とし、出力は output/ のみに書き込むプロジェクトテンプレートで、ルール、プレイブック、ルール表テンプレート、評価テンプレート、キュー(解析結果レビュー、設計書レビュー、移行計画、品質・リスク)を含む。 |
| 産業ワークベンチ / 資産 | タブ(チャット、端末、タイムライン、ファイル、成果物、資産)、刷新工程、エンジンレジストリから状態を取得する領域グリッドを備えたプロジェクト画面。 |
| 設計書の生成依頼を開く/移行ウェーブ案の生成依頼を開く | `legacy_design_doc` または `legacy_wave_plan` を実行する準備済みのチャット依頼を開き、送信前に内容を確認できる。 |
| エージェントパック(準備状況) | 5つの Industrial パックを準備状況とともに表示し(分析:利用可能、刷新・保全:設定確認が必要、制御:オフライン環境の準備が必要、サイバーセキュリティ:現在は利用できません)、現時点でエンジンが実装されているのは分析のみ。 |
| エディタでレガシー解析(MCP) | VS Code、Eclipse ベースの IDE などの MCP クライアント向けに stdio またはループバック HTTP で動作する単体の MCP サーバーで、1つのプロジェクトルートに限定され、応答サイズを制限し、追記専用の監査ログを保持する。 |
コードから生成する設計書
日本語または英語の設計書を Word ファイルとして作成します。事実の各行に path:line を記載し、コードから分からないことは推測せず「要確認」と明記します。
ベースラインとの比較による変更検出
保存したベースラインと比べ、夜間の解析では変わった箇所だけを、ファイルと行の根拠付きで報告します。ベースラインは、変更点が案件として担当者に届いた後にだけ更新されます。
移行ウェーブ案
依存関係と、計算式を明示したリスク点数から移行の順序を提案します。あくまで人がレビューし判断するための提案です。
エンジニアのエディタから
kurahi-legacy MCP サーバーが、同じ読み取り専用の解析を VS Code、Eclipse 系 IDE、任意の MCP クライアントに提供します。
架空の給与計算システムを、ソースから設計書まで
架空の会社の COBOL プログラム 4 本、コピーブック 2 本、4 ステップの JCL ジョブを使っています。実在する組織のデータは含みません。

明確な制限付きの、エンジニアリングのオートパイロット
夜間のルーティンでコードベースを解析し、変更を検出し、設計書を準備できます。本番の OT や PLC に書き込むことはなく、顧客システムへのマージやデプロイも行いません。プルリクエストの作成には、L3 と対象リポジトリを指定した常設承認が必要です。
