Skip to main content
Glama

Plan an ABAP Cloud migration

plan_cloud_migration
Read-onlyIdempotent

Turn ABAP readiness findings into an ordered migration backlog, arranging blockers into per-object work items across repair, quick wins, rework, and API phases.

Instructions

Turn ABAP sources into an ordered, phased ABAP Cloud migration backlog: runs the same dual-parse analysis as check_cloud_readiness, then arranges every blocker into per-object work items across consulting-ordered phases — repair-the-baseline first (broken code is not migration work), then mechanical quick wins, core rework of removed statements, UI/output re-architecture, and a separate snapshot-dated released-API remediation phase. Each work item carries an S/M/L effort band, a remediation recipe and sample locations; each phase carries a goal and objective, re-checkable exit criteria. Use this when someone asks 'plan the migration', 'what do we tackle first', or wants a work breakdown / task backlog instead of raw findings — the natural next call after check_cloud_readiness says rework is needed. It is a deterministic re-arrangement of the readiness analysis: it does not estimate person-days, does not modify any code, and inherits every readiness limitation (static, parser-level, snapshot-dated released-API data — a system's ATC stays authoritative). Example: plan_cloud_migration({ "files": [ { "source": "REPORT zold.\nWRITE: / 'hi'.\nCALL SCREEN 100." } ] }).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
filesYesSource files to analyze, up to 32 per call, 100k chars each.
editionNoSAP edition of the bundled Cloudification snapshot to check against: "s4hc" (default, SAP Cloud ERP Public Edition), "btp" (SAP BTP ABAP environment), or "pce" (SAP Cloud ERP Private Edition / on-premise). Release state and successors can differ by edition — the same object may be released in one and not yet in another.s4hc
baselineVersionNoClassic ABAP version the code runs on today; used to separate broken-anyway code (phase: repair the baseline) from real migration work.v758

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
phasesYes
summaryYesRoll-up of the plan and the readiness numbers it rearranges.
scopeNoteYesExactly what the underlying analysis does and does not cover.
suggestedLoopYesHow to execute and prove each item: the fix → compare_abap → re-check loop.
releasedApiSnapshotDateYesDate of the bundled released-API snapshot behind the released-api phase.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.12.0
    • addedInput schema / properties / edition
      Added value: +{
      +  "default": "s4hc",
      +  "description": "SAP edition of the bundled Cloudification snapshot to check against: \"s4hc\" (default, SAP Cloud ERP Public Edition), \"btp\" (SAP BTP ABAP environment), or \"pce\" (SAP Cloud ERP Private Edition / on-premise). Release state and successors can differ by edition — the same object may be released in one and not yet in another.",
      +  "enum": [
      +    "s4hc",
      +    "btp",
      +    "pce"
      +  ],
      +  "type": "string"
      +}
  2. Addedv0.10.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly/idempotent/no-open-world, but the description adds substantial context beyond them: it is a 'deterministic re-arrangement', it 'does not modify any code', 'does not estimate person-days', and it inherits static/parser-level/snapshot-dated limitations with ATC remaining authoritative. This tells the agent exactly what to trust and what not to expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph that is front-loaded with the core purpose and phase ordering before the usage cues and example. It is long, but nearly every clause carries distinct information (phase sequence, effort bands, limitations), with little pure padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a planning tool with an output schema, the description fully frames the return structure (per-object work items with S/M/L bands, recipes, sample locations; phases with goals and exit criteria) and closes the loop on scope and limitations. Nothing needed to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents files, edition, and baselineVersion, making 3 the baseline. The description adds meaning by tying baselineVersion to the 'repair-the-baseline' phase ('broken code is not migration work') and reinforcing the snapshot-dated released-API framing behind edition, so it earns a small lift above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Turn ABAP sources into an ordered, phased ABAP Cloud migration backlog') and immediately distinguishes itself from the sibling it builds on: it 'runs the same dual-parse analysis as check_cloud_readiness, then arranges every blocker into per-object work items.' An agent can tell this apart from the readiness and lint tools without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit triggers ('plan the migration', 'what do we tackle first', wants a work breakdown / task backlog instead of raw findings) and names the alternative ('the natural next call after check_cloud_readiness says rework is needed'). It also states when-not by contrasting with 'raw findings' from the analysis tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.