From bc-al-dev
Use when creating any new AL object (table, page, codeunit, enum, query, report, xmlport, table extension, page extension) for an Express LUCK HQ Business Central extension. Use BEFORE writing any .al file.
How this skill is triggered — by the user, by Claude, or both
Slash command
/bc-al-dev:bc-al-new-objectThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Always use before creating:**
Always use before creating:
Before creating any object, read the repo's app.json to get:
idRanges — object ID range for this extensionname — app name (used in translations)publisher — publisher namedependencies — what this extension depends onUse the next available ID within the app.json idRanges. The AL compiler suggests the next ID automatically — use it.
Field IDs in extensions: start at the lower bound of idRanges (e.g., 52000 if range is 52000–52999).
Follow Microsoft official convention: <ObjectName>.<FullTypeName>.al
| Type | Suffix | Example |
|---|---|---|
| Table | .Table.al | HQHUCustomerType.Table.al |
| Page | .Page.al | HQHUCustomerTypes.Page.al |
| Codeunit | .Codeunit.al | HQHUCustomerMgmt.Codeunit.al |
| Table Extension | .TableExt.al | HQHUCustomer.TableExt.al |
| Page Extension | .PageExt.al | HQHUCustomerCard.PageExt.al |
| Enum | .Enum.al | HQHUCustomerTypeEnum.Enum.al |
| Enum Extension | .EnumExt.al | HQHUCustomerTypeEnumExt.EnumExt.al |
| Query | .Query.al | HQHUCustomerQuery.Query.al |
| Report | .Report.al | HQHUCustomerReport.Report.al |
| XmlPort | .XmlPort.al | HQHUCustomerImport.XmlPort.al |
Prefix comes from the project convention (e.g., HQHU for Hungary, HQFR for France).
"<PREFIX> <Name>""<PREFIX> <Name>""<PREFIX> <BaseName> Tbl Ext""<PREFIX> <BasePage> Ext"Caption = '<Description>';
DataClassification = CustomerContent;
LookupPageId = "<Page Name>";
DrillDownPageId = "<Page Name>";
DataCaptionFields = <Key fields>;
Caption = '<Label>';
DataClassification = CustomerContent;
ToolTip = 'Specifies <what the field does>.';
Caption = '<Label>';
ApplicationArea = All;
UsageCategory = Lists; // or Administration, Documents
ApplicationArea = All;
ToolTip = 'Specifies <what the field does>.';
Place in src/components/<ComponentName>/<TypeFolder>/:
| Object Type | Folder |
|---|---|
| Table | Tables/ |
| Page | Pages/ |
| Codeunit | Codeunits/ |
| Table Extension | TableExtensions/ |
| Page Extension | PageExtensions/ |
| Permission Set Extension | PermissionSetExtensions/ |
After creating the object, create matching permission set extensions. See bc-al-permissions skill.
npx claudepluginhub expressluck/sub-business-central.hq-agent-plugin-marketplace --plugin bc-al-devProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.