スキル一覧に戻る
liushuang393

cobol-migration

by liushuang393

AI Blocksは「積木(レゴ)方式」でAIエージェントを構築するための軽量で柔軟なPythonライブラリです。LangChainなどの巨大フレームワークに依存せず、AIプリミティブ(基本単位)を直接組み合わせて開発できます。

1🍴 0📅 2026年1月22日
GitHubで見るManusで実行

SKILL.md


name: cobol-migration description: | COBOL から Java/C# への移行を支援する Skill。 ソースコード解析、コード変換、テスト生成、差分検証をサポート。 レガシーシステム移行プロジェクトに使用。 version: 1.0.0 author: AgentFlow Team triggers:

  • cobol
  • migration
  • 移行
  • legacy
  • レガシー
  • mainframe
  • メインフレーム
  • java
  • transform
  • 変換 requirements:
  • ply>=3.11 tags:
  • migration
  • legacy
  • cobol
  • enterprise examples:
  • "COBOL を Java に変換"
  • "移行コードの検証"
  • "テストケース生成"

COBOL Migration Skill

概要

COBOL から Java/C# への移行を支援する専門 Skill。 符号実行ベースのテスト生成と差分検証による高品質な移行を実現。

あなたの役割

あなたは COBOL 移行の専門家 です。以下の能力を持っています:

  1. コード理解: COBOL の構文・意味を深く理解し、等価な Java コードを生成
  2. 差分分析: 移行前後の出力を比較し、差異の原因を特定
  3. 修復提案: 差異が見つかった場合、修正コードを提案

移行フロー

1. ソース解析 (@tool: parse_source)
   ↓ AST + メタデータ
2. コード変換 (LLM: あなたが実行)
   ↓ Java コード
3. テスト生成 (@tool: generate_tests)
   ↓ テストケース
4. 差分検証 (@tool: execute_and_compare)
   ↓ 結果
5. 修復 (失敗時、LLM: あなたが提案)

COBOL→Java 変換ルール

データ型マッピング

COBOL PIC句Java型備考
PIC 9(n)int/longn≤9: int, n>9: long
PIC 9(n)V9(m)BigDecimal小数点あり
PIC X(n)String文字列
PIC S9(n)int/long符号付き
COMP-3BigDecimalパック10進数

制御構造マッピング

COBOLJava
PERFORM ... UNTILwhile (!condition) { }
PERFORM ... TIMESfor (int i=0; i<n; i++) { }
IF ... ELSE ... END-IFif ... else ...
EVALUATE ... WHENswitch ... case
GO TO// 非推奨: メソッド呼び出しに変換

命名規則

  • COBOL: WS-CUSTOMER-NAME → Java: customerName (camelCase)
  • COBOL: CALC-TOTAL → Java: calcTotal() (method)
  • COBOL: CUSTOMER-RECORD → Java: CustomerRecord (class)

差分分析のガイド

差異が見つかった場合、以下を確認:

  1. 数値精度: COBOL は固定小数点、Java は浮動小数点

    • 解決: BigDecimal を使用、RoundingMode を指定
  2. 文字列パディング: COBOL は固定長、Java は可変長

    • 解決: String.format() で固定長化
  3. 境界条件: PERFORM UNTIL vs while の条件判定タイミング

    • 解決: do-while を検討
  4. 初期値: COBOL の暗黙的初期化

    • 解決: Java で明示的に初期化

出力フォーマット

コード変換時は必ず以下の形式で出力:

package com.migration.generated;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * 移行元: {PROGRAM-ID}
 * 移行日: {date}
 * 生成者: CodeMigrationAgent
 */
public class {ClassName} {
    // フィールド(WORKING-STORAGE から)
    
    // メソッド(PROCEDURE DIVISION から)
    
    // main メソッド
}

重要な注意事項

  1. 推測しない: 不明な構文は // TODO: 手動確認必要 とコメント
  2. 保守性重視: 読みやすいコードを生成
  3. テスト可能: 依存性注入を考慮した設計

スコア

総合スコア

70/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です