Agent Builder Plus
LeoYeAI/openclaw-master-skills
Build high-performing OpenClaw agents end-to-end with comprehensive safety features.
Build, configure, and integrate Business Central agents using the AI Development Toolkit and Agent SDK.
$ npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-agent-toolkit -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install javiarmesto/ALDC-AL-Development-Collection skill-agent-toolkit --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/javiarmesto/ALDC-AL-Development-Collection.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/skill-agent-toolkit .claude/skills/skill-agent-toolkit && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "skill-agent-toolkit" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-agent-toolkit into .claude/skills/skill-agent-toolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-agent-toolkit", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-agent-toolkitType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-agent-toolkit -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install javiarmesto/ALDC-AL-Development-Collection skill-agent-toolkit --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/javiarmesto/ALDC-AL-Development-Collection.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/skill-agent-toolkit .agents/skills/skill-agent-toolkit && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "skill-agent-toolkit" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-agent-toolkit into .agents/skills/skill-agent-toolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-agent-toolkit", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-agent-toolkit -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install javiarmesto/ALDC-AL-Development-Collection skill-agent-toolkit --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/javiarmesto/ALDC-AL-Development-Collection.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/skill-agent-toolkit .cursor/skills/skill-agent-toolkit && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "skill-agent-toolkit" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-agent-toolkit into .cursor/skills/skill-agent-toolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-agent-toolkit", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/javiarmesto/ALDC-AL-Development-Collection.git --path skills/skill-agent-toolkit--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-agent-toolkit -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install javiarmesto/ALDC-AL-Development-Collection skill-agent-toolkit --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/javiarmesto/ALDC-AL-Development-Collection.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/skill-agent-toolkit .gemini/skills/skill-agent-toolkit && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "skill-agent-toolkit" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-agent-toolkit into .gemini/skills/skill-agent-toolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-agent-toolkit", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install javiarmesto/ALDC-AL-Development-Collection skill-agent-toolkitInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-agent-toolkit -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/javiarmesto/ALDC-AL-Development-Collection.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/skill-agent-toolkit .github/skills/skill-agent-toolkit && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "skill-agent-toolkit" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-agent-toolkit into .github/skills/skill-agent-toolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-agent-toolkit", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-agent-toolkit -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install javiarmesto/ALDC-AL-Development-Collection skill-agent-toolkit --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/javiarmesto/ALDC-AL-Development-Collection.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/skill-agent-toolkit .opencode/skills/skill-agent-toolkit && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "skill-agent-toolkit" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-agent-toolkit into .opencode/skills/skill-agent-toolkit/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-agent-toolkit", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skill-agent-toolkitBuild, configure, and integrate Business Central agents using the AI Development Toolkit and Agent SDK.
Skill Agent Toolkit is an agent skill from javiarmesto/ALDC-AL-Development-Collection. Build, configure, and integrate Business Central agents using the AI Development Toolkit and Agent SDK. Triggers on Agent SDK, Agent Metadata Provider, IAgentFactory, IAgentMetadata, IAgentTaskExecution, ConfigurationDialog, Agent Task Builder, Agent Session, Copilot Capability, agent instructions, or agent setup in BC context.
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in AI & LLM Engineering, covering Building AI agents and Agent instruction files. The repository describes itself as: AL development toolkit for Business Central with specialist agents, skills and review workflows for Copilot, Claude Code and Codex. The licence is MIT.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 4f99d7d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are al).
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
learn.microsoft.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Skill Agent Toolkit loads about 4.4k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 472 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from javiarmesto/ALDC-AL-Development-Collection at commit 4f99d7d, republished under its MIT licence (© javiarmesto). 472 words, ~4,362 tokens.
.claude/skills/skill-agent-toolkit/SKILL.md (or your agent's skills folder).Manual del Agent SDK: arquitectura, registro, las 3 interfaces, Setup Codeunit, ConfigurationDialog, Install/Upgrade, project structure. Para patterns de creación de tasks ver skill-agent-task-patterns. Para redactar instrucciones de agente ver skill-agent-instructions.
Reference oficial: https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/ai/ai-development-toolkit-overview
| Path | Use when | Result |
|---|---|---|
| Designer (No-Code) | Prototyping, testing | Agent via wizard with .github/instructions/profile/permissions |
| SDK (Pro-Code) | Production, extensions | Coded agent via AL interfaces, shipped in .app |
Both share the same runtime: an agent is a BC user that interacts with the UI via a logical UI API.
app/
├── .resources/Instructions/InstructionsV1.txt # Agent instructions (resource file)
├── Example/
│ ├── {Agent}CustomerCardExt.PageExt.al # Page extension (task trigger example)
│ ├── {Agent}PublicAPI.Codeunit.al # Public API (Access = Public)
│ └── {Agent}PublicAPIImpl.Codeunit.al # Implementation (Access = Internal)
├── Integration/
│ ├── {Agent}CopilotCapability.EnumExt.al
│ ├── {Agent}Install.Codeunit.al
│ └── {Agent}Upgrade.Codeunit.al
└── Setup/
├── {Agent}Setup.Codeunit.al # Centralized setup logic
├── {Agent}Setup.Page.al # ConfigurationDialog
├── {Agent}Setup.Table.al # PK = User Security ID
├── KPI/{Agent}KPI.{Table,Page}.al # CardPart for hover summary
├── Metadata/
│ ├── {Agent}Factory.Codeunit.al # IAgentFactory
│ ├── {Agent}Metadata.Codeunit.al # IAgentMetadata
│ └── {Agent}MetadataProvider.EnumExt.al
├── Permissions/{Agent}.permissionset.al # Includes D365 BASIC
├── Profile/
│ ├── {Agent}Profile.Profile.al
│ ├── {Agent}RoleCenter.Page.al
│ └── {Agent}*.PageCustomization.al
└── TaskExecution/
└── {Agent}TaskExecution.Codeunit.al # IAgentTaskExecutionenumextension 52100 "My Agent Copilot Capability" extends "Copilot Capability"
{
value(52100; "My Agent Capability") { Caption = 'My Agent'; }
}enumextension 52101 "My Agent Metadata Provider" extends "Agent Metadata Provider"
{
value(52101; "My Agent")
{
Caption = 'My Agent';
Implementation = IAgentFactory = MyAgentFactory,
IAgentMetadata = MyAgentMetadata,
IAgentTaskExecution = MyAgentTaskExecution;
}
}Always unregister before register to handle version updates cleanly. Re-install instructions for existing agent setup records.
codeunit 52101 "My Agent Install"
{
Subtype = Install;
Access = Internal;
InherentEntitlements = X;
InherentPermissions = X;
trigger OnInstallAppPerDatabase()
var
MyAgentSetup: Record "My Agent Setup";
begin
RegisterCapability();
if MyAgentSetup.FindSet() then
repeat
InstallAgentInstructions(MyAgentSetup);
until MyAgentSetup.Next() = 0;
end;
local procedure RegisterCapability()
var
CopilotCapability: Codeunit "Copilot Capability";
LearnMoreUrlTxt: Label 'https://docs.example.com', Locked = true;
begin
if CopilotCapability.IsCapabilityRegistered(Enum::"Copilot Capability"::"My Agent Capability") then
CopilotCapability.UnregisterCapability(Enum::"Copilot Capability"::"My Agent Capability");
CopilotCapability.RegisterCapability(
Enum::"Copilot Capability"::"My Agent Capability",
Enum::"Copilot Availability"::Preview,
"Copilot Billing Type"::"Microsoft Billed",
LearnMoreUrlTxt);
end;
}Trigger OnUpgradePerDatabase — manage instruction updates per UpgradeTag.
| Method | Purpose |
|---|---|
GetDefaultInitials(): Text[4] | Agent avatar initials |
GetFirstTimeSetupPageId(): Integer | Setup page on first creation |
ShowCanCreateAgent(): Boolean | Single-instance vs multi gate |
GetCopilotCapability(): Enum "Copilot Capability" | Feature switch reference |
GetDefaultProfile(var TempAllProfile: Record "All Profile" temporary) | Default UI profile |
GetDefaultAccessControls(var TempAccessControlBuffer: Record temporary) | Default permission template |
Delegate every method to the Setup Codeunit:
codeunit 52100 MyAgentFactory implements IAgentFactory
{
Access = Internal;
procedure GetDefaultInitials(): Text[4] begin exit(SetupCU.GetInitials()); end;
procedure GetFirstTimeSetupPageId(): Integer begin exit(SetupCU.GetSetupPageId()); end;
procedure ShowCanCreateAgent(): Boolean begin exit(true); end;
procedure GetCopilotCapability(): Enum "Copilot Capability"
begin exit("Copilot Capability"::"My Agent Capability"); end;
procedure GetDefaultProfile(var TempAllProfile: Record "All Profile" temporary)
begin SetupCU.GetDefaultProfile(TempAllProfile); end;
procedure GetDefaultAccessControls(var TempAccessControlBuffer: Record "Access Control Buffer" temporary)
begin SetupCU.GetDefaultAccessControls(TempAccessControlBuffer); end;
var
SetupCU: Codeunit "My Agent Setup";
}| Method |
|---|
GetInitials(AgentUserId: Guid): Text[4] |
GetSetupPageId(AgentUserId: Guid): Integer |
GetSummaryPageId(AgentUserId: Guid): Integer |
GetAgentTaskMessagePageId(AgentUserId: Guid; MessageId: Guid): Integer |
GetAgentAnnotations(AgentUserId: Guid; var Annotations: Record "Agent Annotation") |
GetAgentAnnotations is where you validate preconditions: licensing checks, configuration completeness, missing master data.
| Method |
|---|
AnalyzeAgentTaskMessage(AgentTaskMessage; var Annotations: Record "Agent Annotation") |
GetAgentTaskUserInterventionSuggestions(RequestDetails; var Suggestions) |
GetAgentTaskPageContext(PageContextRequest; var AgentTaskPageContext) |
AnalyzeAgentTaskMessage is the core hook. Use AgentMessage.GetText() to read and AgentMessage.UpdateText() to mutate output.
codeunit 52104 MyAgentTaskExecution implements IAgentTaskExecution
{
Access = Internal;
procedure AnalyzeAgentTaskMessage(
AgentTaskMessage: Record "Agent Task Message";
var Annotations: Record "Agent Annotation")
begin
if AgentTaskMessage.Type = AgentTaskMessage.Type::Output then
PostProcessOutput(AgentTaskMessage, Annotations)
else
ValidateInput(AgentTaskMessage, Annotations);
end;
procedure GetAgentTaskUserInterventionSuggestions(
RequestDetails: Record "Agent User Int Request Details";
var Suggestions: Record "Agent Task User Int Suggestion")
begin
if RequestDetails.Type = RequestDetails.Type::Assistance then begin
Suggestions.Summary := 'User-friendly summary'; // translatable Label
Suggestions.Description := 'System-facing condition'; // Locked = true
Suggestions.Instructions := 'Steps for agent after user acts'; // Locked = true
Suggestions.Insert();
end;
end;
procedure GetAgentTaskPageContext(
Request: Record "Agent Task Page Context Req.";
var Context: Record "Agent Task Page Context")
begin
// Inject page-specific context. See "Page-specific dynamic instructions" below.
end;
local procedure ValidateInput(
AgentTaskMessage: Record "Agent Task Message";
var Annotations: Record "Agent Annotation")
var
AgentMessage: Codeunit "Agent Message";
MessageText: Text;
begin
MessageText := AgentMessage.GetText(AgentTaskMessage);
// Severity::Error → stops task
// Severity::Warning → triggers user intervention flow
end;
local procedure PostProcessOutput(
AgentTaskMessage: Record "Agent Task Message";
var Annotations: Record "Agent Annotation")
var
AgentMessage: Codeunit "Agent Message";
OldText: Text;
begin
OldText := AgentMessage.GetText(AgentTaskMessage);
AgentMessage.UpdateText(AgentTaskMessage, OldText + '\n---\nAgent signature');
end;
}Every agent has a Setup Codeunit that Factory and Metadata delegate to. It owns:
NavApp.GetResourceAsText() returning SecretTextAgent.PopulateDefaultProfile()Access Control BufferInitializeSetupRecord / SaveSetupRecord / SaveCustomPropertiescodeunit 52103 "My Agent Setup"
{
Access = Internal;
procedure GetInitials(): Text[4] begin exit('AGT'); end;
procedure GetSetupPageId(): Integer begin exit(Page::"My Agent Setup"); end;
procedure GetSummaryPageId(): Integer begin exit(Page::"My Agent KPI"); end;
[NonDebuggable]
procedure GetInstructions(): SecretText
begin
exit(NavApp.GetResourceAsText('Instructions/InstructionsV1.txt'));
end;
procedure GetDefaultProfile(var TempAllProfile: Record "All Profile" temporary)
var
CurrentModuleInfo: ModuleInfo;
begin
NavApp.GetCurrentModuleInfo(CurrentModuleInfo);
Agent.PopulateDefaultProfile('MY AGENT PROFILE', CurrentModuleInfo.Id, TempAllProfile);
end;
procedure GetDefaultAccessControls(var TempBuf: Record "Access Control Buffer" temporary)
var
CurrentModuleInfo: ModuleInfo;
begin
NavApp.GetCurrentModuleInfo(CurrentModuleInfo);
TempBuf."Company Name" := CopyStr(CompanyName(), 1, MaxStrLen(TempBuf."Company Name"));
TempBuf.Scope := TempBuf.Scope::System;
TempBuf."App ID" := CurrentModuleInfo.Id;
TempBuf."Role ID" := 'MY AGENT';
TempBuf.Insert();
end;
procedure InitializeSetupRecord(
var TempSetup: Record "My Agent Setup" temporary;
var AgentSetupBuffer: Record "Agent Setup Buffer")
var
AgentSetup: Codeunit "Agent Setup";
begin
if AgentSetupBuffer.IsEmpty() then
AgentSetup.GetSetupRecord(
AgentSetupBuffer, TempSetup."User Security ID",
Enum::"Agent Metadata Provider"::"My Agent",
'My Agent - ' + CompanyName(), 'My Agent',
'Description of what the agent does.');
end;
procedure SaveSetupRecord(
var TempSetup: Record "My Agent Setup" temporary;
var AgentSetupBuffer: Record "Agent Setup Buffer")
var
AgentSetup: Codeunit "Agent Setup";
IsNewAgent: Boolean;
begin
IsNewAgent := IsNullGuid(AgentSetupBuffer."User Security ID");
if AgentSetup.GetChangesMade(AgentSetupBuffer) then begin
TempSetup."User Security ID" := AgentSetup.SaveChanges(AgentSetupBuffer);
if IsNewAgent then
Agent.SetInstructions(TempSetup."User Security ID", GetInstructions());
end;
end;
procedure SaveCustomProperties(var TempSetup: Record "My Agent Setup" temporary)
begin
// Persist agent-specific properties (e.g. thresholds, target agent refs)
end;
var
Agent: Codeunit Agent;
}page 52100 "My Agent Setup"
{
PageType = ConfigurationDialog;
Extensible = false;
SourceTable = "My Agent Setup";
SourceTableTemporary = true;
InherentEntitlements = X;
InherentPermissions = X;
layout
{
area(Content)
{
part(AgentSetupPart; "Agent Setup Part") // MUST be first
{
ApplicationArea = All;
UpdatePropagation = Both;
}
group(General)
{
ShowCaption = false;
field(Active; ActiveTok) // boolean with ShowCaption = false
{ // = toggle on card header
ApplicationArea = All;
ShowCaption = false;
trigger OnValidate() begin IsUpdated := true; end;
}
}
}
}
actions
{
area(SystemActions)
{
systemaction(OK)
{
Caption = 'Update';
Enabled = IsUpdated;
}
systemaction(Cancel) { Caption = 'Cancel'; }
}
}
trigger OnOpenPage()
begin
if not AzureOpenAI.IsEnabled(Enum::"Copilot Capability"::"My Agent Capability") then
Error(CapabilityNotEnabledErr);
InitializePage();
end;
trigger OnQueryClosePage(CloseAction: Action): Boolean
begin
if CloseAction = CloseAction::Cancel then exit(true);
CurrPage.AgentSetupPart.Page.GetAgentSetupBuffer(AgentSetupBuffer);
SetupCU.SaveSetupRecord(Rec, AgentSetupBuffer);
SetupCU.SaveCustomProperties(Rec);
exit(true);
end;
var
AzureOpenAI: Codeunit "Azure OpenAI";
SetupCU: Codeunit "My Agent Setup";
AgentSetupBuffer: Record "Agent Setup Buffer";
IsUpdated: Boolean;
ActiveTok: Boolean;
CapabilityNotEnabledErr: Label 'AI capability is not enabled for this environment.';
}A boolean field with ShowCaption = false placed as first child of a group renders as a toggle on the card header. Wire its OnValidate to set IsUpdated := true.
IAgentTaskExecution.GetAgentTaskPageContext can inject context per page. The runtime resolves Liquid-style conditionals at execution time:
Consider the following fields:
{% if page.id == 42 %}
Field "The Answer" — the meaning of the universe
{% else %}
Field "Business Data" — standard business field
{% endif %}VS Code: Ctrl+Shift+P → AL: New Project → choose Agent template.
| Symptom | Check |
|---|---|
| Agent doesn't appear | Copilot capability registered? Install codeunit ran? AzureOpenAI.IsEnabled returns true? |
| Can't create instance | ShowCanCreateAgent() returns false? |
| Setup page error | SourceTableTemporary = true? AgentSetupPart first in layout? Extensible = false? |
| Wrong defaults | Setup Codeunit GetDefaultProfile / GetDefaultAccessControls? |
| Input rejected | AnalyzeAgentTaskMessage adding Error annotation on Input? |
| No suggestions | GetAgentTaskUserInterventionSuggestions empty? Type filter? |
| Capability not found | Check Copilot & Agent Capabilities page in BC |
For task-creation troubleshooting (event subscribers not firing, agent loses context across pages, multi-turn failures), see skill-agent-task-patterns.
skill-agent-task-patterns — 8 task integration patterns + API availability matrix per runtimeskill-agent-instructions — natural-language instructions for the agent runtime© javiarmesto, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/skill-agent-toolkit of javiarmesto/ALDC-AL-Development-Collection.
Open the folder on GitHubat commit 4f99d7d
Skill Agent Toolkit next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Skill Agent Toolkit this skilljaviarmesto/ALDC-AL-Development-Collection | 109 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Agent Builder PlusLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.3k | Automated safety check: Notes | MIT | |
| Create System Promptpnp/copilot-prompts | 893 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Agent Prompt Engineeringagentailor/fullstack-langgraph-nextjs-agent | 132 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Microsoft Foundrymicrosoft/GitHub-Copilot-for-Azure | 255 | 1 repos | ~6.7k | Automated safety check: Pass | MIT | |
| Create Agentprassanna-ravishankar/repowire | 264 | — | ~388 | Automated safety check: Pass | None |
LeoYeAI/openclaw-master-skills
Build high-performing OpenClaw agents end-to-end with comprehensive safety features.
pnp/copilot-prompts
This skill should be used when the user asks to "create an agent instruction", "add agent instructions", "scaffold an agent sample", "create a system prompt sample", "add a system prompt", "create a…
agentailor/fullstack-langgraph-nextjs-agent
Comprehensive guide for designing, refining, and auditing system prompts for autonomous AI agents based on Anthropic's production practices.
microsoft/GitHub-Copilot-for-Azure
Build, deploy, evaluate, optimize, fine-tune, and manage Microsoft Foundry agents, models, and resources end to end.
prassanna-ravishankar/repowire
A skill your agent uses when creating, updating, or explaining a standing Repowire agent folder, worker folder, durable-job executor context, or reusable agent-specific AGENTS.md guidance.
omnigent-ai/omnigent
Reference for the Omnigent agent platform: agent directory layout, config.yaml fields, executor types, harness options, AGENTS.md and skill structure.
javiarmesto/ALDC-AL-Development-Collection
Generate, review, and optimize natural language instructions for Business Central agents (Designer or SDK).
javiarmesto/ALDC-AL-Development-Collection
AL API development patterns for Business Central. An agent skill from javiarmesto/ALDC-AL-Development-Collection.
javiarmesto/ALDC-AL-Development-Collection
AL Copilot capability development for Business Central. An agent skill from javiarmesto/ALDC-AL-Development-Collection.
javiarmesto/ALDC-AL-Development-Collection
AL version migration for Business Central. An agent skill from javiarmesto/ALDC-AL-Development-Collection.
javiarmesto/ALDC-AL-Development-Collection
Agent SDK task integration patterns for Business Central. An agent skill from javiarmesto/ALDC-AL-Development-Collection.
javiarmesto/ALDC-AL-Development-Collection
AL debugging and diagnostics for Business Central. An agent skill from javiarmesto/ALDC-AL-Development-Collection.
Categories
Build, configure, and integrate Business Central agents using the AI Development Toolkit and Agent SDK. Skill Agent Toolkit is an agent skill from javiarmesto/ALDC-AL-Development-Collection. Build, configure, and integrate Business Central agents using the AI Development Toolkit and Agent SDK.
Skill Agent Toolkit fits situations like: agent Metadata Provider; IAgentTaskExecution; configurationDialog; agent Task Builder.
Run `npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-agent-toolkit -a claude-code`. Or copy the skill folder (skills/skill-agent-toolkit in javiarmesto/ALDC-AL-Development-Collection) into .claude/skills/skill-agent-toolkit in your project. Claude Code loads it when a task matches its description.
Run `npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-agent-toolkit -a codex`. Or copy the skill folder (skills/skill-agent-toolkit in javiarmesto/ALDC-AL-Development-Collection) into .agents/skills/skill-agent-toolkit in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-agent-toolkit -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skill-agent-toolkit, .gemini/skills/skill-agent-toolkit, .github/skills/skill-agent-toolkit and .opencode/skills/skill-agent-toolkit in your project.
SKILL.md names no scripts, command-line tools or credentials: Skill Agent Toolkit is instructions for the agent only.
SKILL.md names 1 domain. As links in the text: learn.microsoft.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Skill Agent Toolkit is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Skill Agent Toolkit: Agent Builder Plus (LeoYeAI/openclaw-master-skills, 2.2k stars), Create System Prompt (pnp/copilot-prompts, 893 stars), Agent Prompt Engineering (agentailor/fullstack-langgraph-nextjs-agent, 132 stars) and Microsoft Foundry (microsoft/GitHub-Copilot-for-Azure, 255 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
javiarmesto (a GitHub user) maintains it in javiarmesto/ALDC-AL-Development-Collection, which has 109 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.
Source: javiarmesto/ALDC-AL-Development-Collection on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.