一键导入
sc4sap-create-program
Create ABAP programs (Report/CRUD/ALV/Batch) with Main+Include structure, OOP or Procedural, and full agent-driven coding/QA pipeline
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create ABAP programs (Report/CRUD/ALV/Batch) with Main+Include structure, OOP or Procedural, and full agent-driven coding/QA pipeline
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Reverse-engineer an ABAP program into a Functional/Technical Specification artifact (Markdown or Excel). Socratic scope narrowing from "everything" to "only what the user needs".
Analyze a CBO (Customer Business Object) package — discover frequently-used Z tables / function modules / data elements / classes / structures / table types — and save a per-module / per-package reference file so later `program` / `program-to-spec` runs prefer existing CBO elements over new ones.
ABAP code analysis — delegate source reads + AST/semantic/where-used analysis + rule-based review to sap-code-reviewer, then optionally render a rich briefing via sap-writer
Step-by-step root cause analysis for SAP operational errors. Uses MCP to directly inspect dumps, logs, transports, and where-used relations, then narrows hypotheses with minimal user questions and provides SAP Note search keywords.
Direct operational Q&A with a SAP module consultant agent. Auto-routes the question to the matching sap-{module}-consultant and answers against the configured SAP environment (version, industry, country, active modules).
Business-angle comparison of 2–5 ABAP programs that share the same business scenario but diverge by module (MM vs CO), country (KR vs EU), persona (controller vs warehouse), or time horizon. Reader = functional consultant.
| name | sc4sap:create-program |
| description | Create ABAP programs (Report/CRUD/ALV/Batch) with Main+Include structure, OOP or Procedural, and full agent-driven coding/QA pipeline |
| level | 4 |
| model | sonnet |
Core ABAP program creation skill. Generates a Main Program wrapped with conditional Includes following the sc4sap template convention. Supports both OOP (two-class split: Data + Screen/ALV) and Procedural (PERFORM) paradigms. Full pipeline: SAP version preflight → Socratic interview → planner → writer spec → user confirm → executor/qa/reviewer.
sc4sap:create-program is the flagship skill for creating new ABAP programs. It handles a wide range of purposes (Report, CRUD, ALV list, Batch, Interface). Before coding starts, it runs an internal Socratic interview to resolve ambiguity, then produces a confirmed spec, then orchestrates coding and QA agents to deliver activated, tested ABAP objects following sc4sap conventions.<Response_Prefix>Every response triggered by this skill MUST begin with [Model: <main-model> · Dispatched: <sub-summary>] per ../../common/model-routing-rule.md § Response Prefix Convention.</Response_Prefix>
<Phase_Banner>Multi-phase skill. Before each Agent(...) dispatch, emit ▶ phase=<id> (<label>) · agent=<name> · model=<Opus 4.7|Sonnet 4.6|Haiku 4.5> per ../../common/model-routing-rule.md § Phase Banner Convention.</Phase_Banner>
<Team_Mode>Four teamMode integration points — Type A: Phase 1A (post-interview cross-module consistency) + Phase 2 (planner conflict resolution) — see team-mode.md. Type B: Phase 4 Wave 2/3 (executor's novel code gets live consultant review) — see team-mode-b.md. Type D: Phase 1A↔1B bridge — user-chosen at Phase 1A close (legacy sequential 1B vs Type D team synthesis); analyst + architect + consultant parallel synthesis replaces sequential 1B when selected — see team-mode-d.md. Base protocol: ../../common/team-consultation-protocol.md.</Team_Mode>
<Use_When>
<Do_Not_Use_When>
/sc4sap:create-objectUpdateProgram / UpdateInclude MCP calls/sc4sap:create-object (with service binding + behavior definition) or /sc4sap:team for multi-object orchestration/sc4sap:create-object with type=program
</Do_Not_Use_When><Shared_Conventions>
The following rules are shared across sc4sap skills and live in sc4sap/common/. Load and apply them during the relevant phases of this skill:
| Convention | Reference File | Applied In |
|---|---|---|
| Include structure (t/s/c/a/o/i/e/f/_tst) | ../../common/include-structure.md | Planner, Executor |
| OOP two-class pattern (LCL_DATA + LCL_ALV) | ../../common/oop-pattern.md | Executor (OOP mode only) |
| ALV rules (Full vs SALV, field catalog standard) | ../../common/alv-rules.md | Executor, Reviewer |
| Text element rule (no hardcoded display literals) | ../../common/text-element-rule.md | Executor, Reviewer |
| Constant rule (no magic literals in logic) | ../../common/constant-rule.md | Executor, Reviewer |
Procedural FORM naming (_{screen_no} suffix) | ../../common/procedural-form-naming.md | Executor (Procedural mode only), Reviewer |
| Naming conventions (program/include/class/screen) | ../../common/naming-conventions.md | Planner, Executor, Reviewer |
| ECC DDIC fallback (Table / DTEL / DOMA on ECC) | ../../common/ecc-ddic-fallback.md | Planner (gate), Executor (program generation), Reviewer |
| Clean ABAP — shared baseline | ../../common/clean-code.md | Executor, Reviewer (always) |
| Clean ABAP — OOP paradigm | ../../common/clean-code-oop.md | Executor, Reviewer — only when Phase 1B paradigm = OOP |
| Clean ABAP — Procedural paradigm | ../../common/clean-code-procedural.md | Executor, Reviewer — only when Phase 1B paradigm = Procedural |
| Mandatory main-program template (OOP) | ../../common/oop-sample/zrsc4sap_oop_ex.prog.abap (+ companion includes / screens in same folder) | Executor Wave 3 (starting skeleton) + Reviewer B3 bucket (structural match) — OOP paradigm |
| Mandatory main-program template (Procedural) | ../../common/procedural-sample/main-program.abap | Executor Wave 3 + Reviewer B3 bucket — Procedural paradigm |
Paths are relative to this skill's directory (sc4sap/skills/create-program/).
ECC DDIC fallback gate. When the planner's object list includes a new Table, Data Element, or Domain AND SAP_VERSION = ECC, Phase 4 (Executor) must not call CreateTable / CreateDataElement / CreateDomain. Instead, follow ../../common/ecc-ddic-fallback.md: generate a helper report in $TMP using the matching template under skills/create-object/ecc/, activate the helper, then emit the mandatory user message (SE38 run → uncheck dry-run → SE11 activate + assign transport). Do not treat the DDIC object as created until the user confirms activation. Remaining objects (classes, includes, screens, …) proceed on the normal flow; the plan should sequence the DDIC helpers first so the user can create them before code that depends on them is activated.
</Shared_Conventions>
<Preflight_SAP_Version_Check> MUST run BEFORE the Socratic interview starts. The entire development approach (tables, BAPIs, CDS availability, ABAP syntax, RAP eligibility) depends on the SAP platform and release.
Steps:
.sc4sap/config.json for sapVersion, abapRelease, and activeModules
.sc4sap/sap.env → SAP_ACTIVE_MODULES as fallbackcommon/active-modules.md and precompute the cross-module concern list for the program's primary module. Every downstream phase (planner, writer, executor) receives this list and must factor in integration fields (e.g., MM primary + PS active → add PS_POSID).abapRelease (e.g. 750, 756, 758) — drives allowed syntaxBranching consequences:
if_oo_adt_classrun, or SALV-only output. Fail-fast with an explanation. Full prohibited-statement list and Cloud-native API replacements: see ../../common/cloud-abap-constraints.md.Outputs:
.sc4sap/program/{PROG}/platform.md — resolved platform, release, and constraints<Inventory_Lookups>
Runs immediately after package + module are resolved during the interview (Phase 1 dimension #6) and feeds every downstream phase. Two sequential inventory passes: CBO Inventory (reusable Z*/Y* objects in the target package — delegated to sap-stocker on cache miss) then Customization Inventory (existing BAdI impls / CMOD projects / form-based exits / appends per module).
Full procedure (when-to-stock, three-option prompt, dispatch template, persistence paths, reuse-gating rules) lives in inventory-lookups.md. Read and follow literally. Output files consumed by planner / writer / executor:
.sc4sap/program/{PROG}/cbo-context.md.sc4sap/program/{PROG}/customization-context.md
</Inventory_Lookups><Interview_Gating>
MANDATORY — never skip, never shortcut, never merge. Phase 1 runs as two sequential sub-phases (1A then 1B) on every sc4sap:create-program invocation.
Full procedure — two-stage rule, lead agents, dimension lists, skip rules, gates, output files, and enforcement contracts — lives in interview-gating.md. Read that file and follow it literally before asking the first question.
One-line summary:
Phase 1A
sap-{module}-consultantinterviews business context (purpose / reason / company rules / reference assets / standard-SAP alternatives) → filemodule-interview.md, gate ≤ 5% → Phase 1Bsap-analyst+sap-architectinterview technical dimensions (purpose-type / paradigm / display / screen / data / package / test) → fileinterview.md, gate ≤ 5% → proceed to<Spec_Approval_Gate>. Phase 1B never starts before 1A closes; Phase 2 planner refuses to run if either file is missing. </Interview_Gating>
<Spec_Approval_Gate>
MANDATORY — never skip, never shortcut. After <Interview_Gating> closes (ambiguity ≤ 5%) and Phase 2 (Planning) produces plan.md, the skill MUST run a spec-approval gate before any Create* / Update* MCP call.
Full procedure — required steps, enforcement contract, rationale, spec template, and the verbatim user-facing approval prompt — lives in spec-approval-gate.md. Read that file and follow it literally.
One-line summary (the full text lives in the companion file):
Invoke
sap-writer→ producespec.md→ display to user → wait for an explicit approval keyword (승인/approve/ok/proceed/go ahead/confirmed). "yes" / "빨리" / "해봐" / silence are NOT approval — loop with revisions. Phase 4 Executor refuses to run if spec.md is missing, unapproved, or modified after approval. </Spec_Approval_Gate>
<Session_Trust_Bootstrap>
MANDATORY — runs at the very start of Phase 1A, BEFORE the module consultant asks the first question. Invoke /sc4sap:trust-session with parent_skill=sc4sap:create-program to pre-grant MCP tool + file-op permissions for the entire session. This ensures interview-time MCP calls (consultant SPRO lookups, SearchObject, GetWhereUsed) and downstream Phase 4–8 activity both run without permission prompts.
.sc4sap/session-trust.log already has a line within the last 24h, skip silently.Agent dispatches in this skill MUST pass mode: "dontAsk".GetTableContents and GetSqlQuery are NEVER auto-approved — they require explicit per-call user consent. See ../trust-session/SKILL.md Layer 1.
</Session_Trust_Bootstrap><Execution_Mode_Gate>
MANDATORY — runs between <Spec_Approval_Gate> and Phase 4. After spec approval, the skill prompts the user to pick an execution cadence: auto / manual / hybrid. Persists the choice to .sc4sap/program/{PROG}/state.json under execution_mode.
trust-session is NOT re-invoked here — it already ran at the start of Phase 1A.
Full procedure — verbatim mode-prompt text, per-mode semantics, state.json schema (also drives C-2 resume support), and manual-mode phase-transition prompt — lives in execution-mode.md. Read that file and follow it literally before dispatching Phase 4.
</Execution_Mode_Gate>
<Agent_Pipeline>
The full phase-by-phase pipeline (Phase 0 – Phase 8) lives in agent-pipeline.md in this skill folder.
Read that file before dispatching any agent. It is the authoritative source for:
sap-{module}-consultant, business context)sap-analyst + sap-architect, technical dimensions)sap-planner + consultants, CBO reuse gate, SPRO lookup)sap-writer)sap-executor)sap-qa-tester, OOP mode)sap-code-reviewer, mandatory, see phase6-review.md)sap-debugger)Do not inline or paraphrase phase logic here — update agent-pipeline.md instead so the pipeline stays single-sourced.
</Agent_Pipeline>
<MCP_Tools_Used>
SearchObject — existence checkListTransports / CreateTransport — transport managementGetPackage — package validationCreateProgram + UpdateProgram — main programCreateInclude + UpdateInclude — all includes (TOP/SEL/CLASS/ALV/PBO/PAI/EVENT/FORM/TEST)CreateScreen + UpdateScreen — custom screens (ALV full mode)CreateGuiStatus + UpdateGuiStatus — PF-Status for custom screensCreateTextElement + UpdateTextElement — text-xxx resourcesGetAbapSemanticAnalysis — pre-activation syntax checkGetInactiveObjects — post-activation verificationRunUnitTest / GetUnitTestResult — QA (OOP mode)
</MCP_Tools_Used><State_Files>
.sc4sap/program/{PROG}/platform.md — Phase 0 preflight output.sc4sap/program/{PROG}/module-interview.md — Phase 1A business interview (consultant-led: purpose / reason / company-specific rules / reference assets / standard-SAP alternatives).sc4sap/program/{PROG}/interview.md — Phase 1B technical interview (analyst+architect-led: 7 dimensions Q&A log).sc4sap/program/{PROG}/cbo-context.md — CBO reuse candidates (written by <Inventory_Lookups> / inventory-lookups.md).sc4sap/program/{PROG}/customization-context.md — Z*/Y* BAdI impl / CMOD / form-exit / append reuse candidates (written by <Inventory_Lookups> / inventory-lookups.md).sc4sap/program/{PROG}/plan.md — planner output.sc4sap/program/{PROG}/spec.md — writer output (requires user confirm).sc4sap/program/{PROG}/state.json — execution_mode + per-phase status/timing (schema in execution-mode.md, drives resume support).sc4sap/program/{PROG}/review-bucket-{B1|B2|B3|B4}.md — Phase 6 per-bucket reviews (merged into review.md, see phase6-buckets.md).sc4sap/program/{PROG}/review.md — Phase 6 consolidated review.sc4sap/program/{PROG}/report.md — final completion report.claude/settings.local.json — permissions allowlist (written by /sc4sap:trust-session during Phase 3.5).sc4sap/session-trust.log — audit trail of trust-session invocations
</State_Files>Task: {{ARGUMENTS}}