agent-builder
Agent Toolkit Builder — specialist in designing and coding Business Central agents using the AI Development Toolkit and Agent…
AL page design patterns for Business Central. Use when creating Card, List, ListPart, Document pages, implementing page extensions, or designing UX layouts.
$ npx -y skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-pages --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/skill-pagesContext preview
The summary Claude sees to decide when to auto-load this skill.
AL page design patterns for Business Central. Use when creating Card, List, ListPart, Document pages, implementing page extensions, or designing UX layouts.
name: skill-pages description: "AL page design patterns for Business Central. Use when creating Card, List, ListPart, Document pages, implementing page extensions, or designing UX layouts."
Design and customize Business Central pages: Card, List, Document, Worksheet, and RoleCenter page types, page extensions with `addafter`/`addbefore`/`modify`, dynamic UI (visibility, styling), FastTab layout, promoted actions, and FactBoxes.
This skill should be loaded when:
Single-record display with FastTab groups:
page 50100 "Contoso Project Card"
{
PageType = Card;
SourceTable = "Contoso Project";
Caption = 'Project Card';
UsageCategory = None; // accessed from list, not search
layout
{
area(Content)
{
group(General)
{
Caption = 'General';
field("No."; Rec."No.")
{
ApplicationArea = All;
Importance = Promoted; // visible in collapsed FastTab
}
field(Description; Rec.Description)
{
ApplicationArea = All;
Importance = Promoted;
}
field(Status; Rec.Status)
{
ApplicationArea = All;
StyleExpr = StatusStyleExpr;
}
field("Starting Date"; Rec."Starting Date")
{
ApplicationArea = All;
}
}
group(Details)
{
Caption = 'Details';
Visible = DetailsVisible; // dynamic visibility
field("Project Manager"; Rec."Project Manager")
{
ApplicationArea = All;
}
field(Budget; Rec.Budget)
{
ApplicationArea = All;
}
}
}
area(FactBoxes)
{
systempart(Notes; Notes) { ApplicationArea = All; }
systempart(Links; Links) { ApplicationArea = All; }
}
}
actions
{
area(Processing)
{
action(Release)
{
ApplicationArea = All;
Caption = 'Release';
Image = ReleaseDoc;
Promoted = true;
PromotedCategory = Process;
PromotedIsBig = true;
trigger OnAction()
begin
Rec.TestField(Status, Rec.Status::Open);
Rec.Validate(Status, Rec.Status::Released);
Rec.Modify(true);
end;
}
}
area(Navigation)
{
action(Entries)
{
ApplicationArea = All;
Caption = 'Ledger Entries';
Image = LedgerEntries;
RunObject = page "Contoso Project Entries";
RunPageLink = "Project No." = field("No.");
}
}
}
var
StatusStyleExpr: Text;
DetailsVisible: Boolean;
trigger OnAfterGetRecord()
begin
StatusStyleExpr := GetStatusStyle();
DetailsVisible := Rec.Status <> Rec.Status::Open;
end;
local procedure GetStatusStyle(): Text
begin
case Rec.Status of
Rec.Status::Open:
exit('Standard');
Rec.Status::Released:
exit('Favorable');
Rec.Status::Closed:
exit('Subordinate');
end;
end;
}Multi-record display with filters and navigation:
page 50101 "Contoso Project List"
{
PageType = List;
SourceTable = "Contoso Project";
Caption = 'Projects';
UsageCategory = Lists;
ApplicationArea = All;
CardPageId = "Contoso Project Card";
Editable = false;
layout
{
area(Content)
{
repeater(Group)
{
field("No."; Rec."No.") { ApplicationArea = All; }
field(Description; Rec.Description) { ApplicationArea = All; }
field(Status; Rec.Status)
{
ApplicationArea = All;
StyleExpr = StatusStyleExpr;
}
field("Starting Date"; Rec."Starting Date") { ApplicationArea = All; }
// Limit FlowFields on list pages — max 3-4 for performance
field("Total Budget"; Rec."Total Budget") { ApplicationArea = All; }
}
}
}
var
StatusStyleExpr: Text;
trigger OnAfterGetRecord()
begin
StatusStyleExpr := GetStatusStyle();
end;
}**List page rules:**
page 50102 "Contoso Sales Document"
{
PageType = Document;
SourceTable = "Contoso Document Header";
Caption = 'Sales Document';
layout
{
area(Content)
{
group(General)
{
Caption = 'General';
field("No."; Rec."No.") { ApplicationArea = All; }
field("Customer No."; Rec."Customer No.")
{
ApplicationArea = All;
Importance = PrSkills-based, spec-driven, TDD-orchestrated development framework for Microsoft Dynamics 365 Business Central. Engineering systems, visibly reasoned.
Agent Toolkit Builder — specialist in designing and coding Business Central agents using the AI Development Toolkit and Agent…
Generate optimized natural language instructions for Business Central agents (Designer or SDK). Applies the…
End-to-end workflow to create a coded Business Central agent using the Agent SDK. Orchestrates the 7 phases following the…
Generate optimized natural language instructions for Business Central agents (Designer or SDK). Applies the…
Generate AL code for Business Central Agent SDK task integration. Applies the patterns from skill-agent-task-patterns to produce…
Generate comprehensive test codeunits for Business Central Agent SDK integrations. Covers 6 categories: Registration, Factory,…