一键导入
xppai-core
Use for all XppAI AX 2009 tasks as the canonical core baseline (architecture, language, lifecycle, hard constraints, and evidence labels).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use for all XppAI AX 2009 tasks as the canonical core baseline (architecture, language, lifecycle, hard constraints, and evidence labels).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when analyzing X++ AX 2009 profiler traces, code stack traces, or execution paths to identify performance bottlenecks — repeated call chains, quadratic loops, expensive constructor+calc combos, excessive tax/totals recalculation, or deep framework cascades.
Use when reviewing X++ or general ERP source code for architectural weaknesses, design gaps, fragile sequencing, responsibility mismatches, technical debt, or structural risks — not just syntax or performance issues.
Use when given any X++ AX 2009 artifact — stack trace, method, class, form XPO, posting code, or table — and you need a full structured multi-skill analysis applied automatically based on artifact type.
Use when proposing X++ AX 2009 code fixes for identified performance bottlenecks or behavioral bugs — minimal, production-safe changes that preserve business logic and fit ERP team review standards.
Use when deep AX 2009 analysis is required (performance, posting, totals/tax, framework patterns, customization safety, and architecture judgment).
Use when reading unfamiliar X++ AX 2009 code — methods, classes, forms, tables, or XPO extracts — to understand what it does, what triggers it, what it calls, and where it fits in the AX execution model.
| name | xppai-core |
| description | Use for all XppAI AX 2009 tasks as the canonical core baseline (architecture, language, lifecycle, hard constraints, and evidence labels). |
Canonical shared baseline for all XppAI skills.
Use these labels consistently across all skills:
ConfirmedLikelyHypothesisUnknown<GBR>, <GIN>, <GJP>, <GSA>, <GTH>TextIo has no .eof(); use status() == IO_Status::Okselect count(RecId) result is read from buffer RecId