Monitor CI
nrwl/nx
Monitor Nx Cloud CI pipeline and handle self-healing fixes. An agent skill from nrwl/nx.
AL version migration for Business Central. An agent skill from javiarmesto/ALDC-AL-Development-Collection.
$ npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-migrate -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install javiarmesto/ALDC-AL-Development-Collection skill-migrate --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-migrate .claude/skills/skill-migrate && 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-migrate" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-migrate into .claude/skills/skill-migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-migrate", 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-migrateType 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-migrate -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install javiarmesto/ALDC-AL-Development-Collection skill-migrate --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-migrate .agents/skills/skill-migrate && 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-migrate" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-migrate into .agents/skills/skill-migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-migrate", 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-migrate -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install javiarmesto/ALDC-AL-Development-Collection skill-migrate --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-migrate .cursor/skills/skill-migrate && 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-migrate" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-migrate into .cursor/skills/skill-migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-migrate", 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-migrate--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-migrate -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install javiarmesto/ALDC-AL-Development-Collection skill-migrate --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-migrate .gemini/skills/skill-migrate && 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-migrate" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-migrate into .gemini/skills/skill-migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-migrate", 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-migrateInstalls 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-migrate -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-migrate .github/skills/skill-migrate && 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-migrate" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-migrate into .github/skills/skill-migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-migrate", 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-migrate -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-migrate --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-migrate .opencode/skills/skill-migrate && 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-migrate" agent skill from https://github.com/javiarmesto/ALDC-AL-Development-Collection/tree/main/skills/skill-migrate into .opencode/skills/skill-migrate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skill-migrate", 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-migrateAL version migration for Business Central. An agent skill from javiarmesto/ALDC-AL-Development-Collection.
Skill Migrate is an agent skill from javiarmesto/ALDC-AL-Development-Collection. AL version migration for Business Central. Use when upgrading extensions between BC versions, handling breaking changes, or implementing rollback strategies.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/al18-capabilities.md` and `references/cli-al-tools.md`).
It sits in DevOps & Cloud. 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.
5 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.
Shell commands in SKILL.md call:
gitFrom 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 Migrate loads about 3k tokens when it runs, and up to ~6.4k if it reads all its reference files. Until then it costs about 43 tokens; SKILL.md has 779 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). 779 words, ~2,979 tokens.
.claude/skills/skill-migrate/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Plan and execute BC platform version upgrades: app.json configuration, breaking-change remediation, deprecated API replacement, event signature updates, upgrade codeunits for data migration, rollback strategy, and manifest regeneration.
This skill should be loaded when:
For BC29 / AL18, first read AL18 capability checks when selecting new manifest, public-resource, isolation, testing or translation features. Apply only the sections needed by the requirement; distinguish announced capabilities from locally verified declarations. Keep BC28 configuration unchanged unless an upgrade is part of the approved task.
Update the three version-sensitive properties in app.json:
{
"platform": "25.0.0.0",
"runtime": "14.0",
"application": "25.0.0.0",
"dependencies": [
{
"id": "63ca2fa4-4f03-4f2b-a480-172fef340d3f",
"name": "System Application",
"publisher": "Microsoft",
"version": "25.0.0.0"
}
],
"features": ["TranslationFile", "GenerateCaptions", "NoImplicitWith"]
}Rules:
platform — target BC platform version (major.minor.0.0)runtime — AL runtime version matching the target (see runtime matrix)application — must match or be compatible with target platformfeatures flags required by the target runtime (e.g., NoImplicitWith from runtime 11.0+)Replace legacy patterns with modern equivalents:
// ❌ Deprecated — C/AL style
Record.FIND('-');
Record.FINDSET(TRUE, TRUE);
IF Record.FINDFIRST THEN;
Record.INIT;
Record.INSERT;
// ✅ Modern — AL patterns
Record.FindSet();
Record.FindSet(true, true);
if Record.FindFirst() then;
Record.Init();
Record.Insert(true);// ❌ Deprecated — WITH statement (removed in NoImplicitWith)
with SalesHeader do begin
"Document Type" := "Document Type"::Order;
"Sell-to Customer No." := CustomerNo;
Insert(true);
end;
// ✅ Modern — explicit record reference
SalesHeader."Document Type" := SalesHeader."Document Type"::Order;
SalesHeader."Sell-to Customer No." := CustomerNo;
SalesHeader.Insert(true);// ❌ Deprecated — TextConst (runtime < 6.0)
CustomerNotFoundErr@1000 : TextConst 'ENU=Customer %1 not found.';
// ✅ Modern — Label
var
CustomerNotFoundErr: Label 'Customer %1 not found.';When base-app events add or change parameters between versions:
// BC 23.x subscriber — 3 parameters
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Sales-Post",
OnBeforePostSalesDoc, '', false, false)]
local procedure OnBeforePost(
var SalesHeader: Record "Sales Header";
CommitIsSuppressed: Boolean;
var IsHandled: Boolean)
begin
// ...
end;
// BC 24.x — same event now has 4 parameters (new PreviewMode added)
[EventSubscriber(ObjectType::Codeunit, Codeunit::"Sales-Post",
OnBeforePostSalesDoc, '', false, false)]
local procedure OnBeforePost(
var SalesHeader: Record "Sales Header";
CommitIsSuppressed: Boolean;
PreviewMode: Boolean;
var IsHandled: Boolean)
begin
// ...
end;Migration steps:
al_build — signature mismatches produce AL0482 errorsal_get_object_definition to inspect the new publisher signatureal_buildHandle objects marked ObsoleteState = Removed in the target version:
// Step 1: Find usage of removed objects
// al_search_objects — search for the obsolete table/page/codeunit
// Step 2: Replace with the designated successor
// Before (removed in BC 24):
// Codeunit 80 "Sales-Post (Yes/No)" — ObsoleteState = Removed
// After:
Codeunit.Run(Codeunit::"Sales-Post", SalesHeader);
// Step 3: Check ObsoleteReason for migration guidance
// ObsoleteReason typically says: "Use codeunit X instead"Process:
AL0503 (removed) and AL0432 (pending) warningsRemoved — must fix before compilation succeedsPending — fix proactively to avoid future breaksUse upgrade codeunits to transform data when schema changes between versions:
codeunit 50100 "Contoso Data Upgrade"
{
Subtype = Upgrade;
trigger OnUpgradePerCompany()
var
Module: Info;
begin
Module.DataVersion(1); // check data version tracking
MigrateCustomerLoyaltyData();
SplitAddressFields();
end;
trigger OnValidateUpgradePerCompany()
begin
// Pre-upgrade validation — runs before OnUpgradePerCompany
VerifyDataIntegrity();
end;
local procedure MigrateCustomerLoyaltyData()
var
Customer: Record Customer;
ContosoLoyalty: Record "Contoso Loyalty Entry";
UpgradeTag: Codeunit "Upgrade Tag";
begin
if UpgradeTag.HasUpgradeTag(GetLoyaltyMigrationTag()) then
exit;
// Migrate data from old field to new table
Customer.SetFilter("Contoso Legacy Points", '>0');
if Customer.FindSet() then
repeat
ContosoLoyalty.Init();
ContosoLoyalty."Customer No." := Customer."No.";
ContosoLoyalty.Points := Customer."Contoso Legacy Points";
ContosoLoyalty."Entry Date" := WorkDate();
ContosoLoyalty.Insert();
until Customer.Next() = 0;
UpgradeTag.SetUpgradeTag(GetLoyaltyMigrationTag());
end;
local procedure GetLoyaltyMigrationTag(): Code[250]
begin
exit('CONTOSO-LOYALTY-MIGRATION-20260301');
end;
}Upgrade codeunit rules:
Subtype = Upgrade — BC runs these automatically during app upgradeUpgradeTag to ensure idempotency — never run migration twiceOnValidateUpgradePerCompany runs first — validate data before transformingOnUpgradePerCompany runs per company — do the actual migrationSelectLatestVersion() and batch processingDocument and prepare rollback before executing migration:
## Rollback Plan — {Project} Migration v{X} → v{Y}
### Pre-Migration Checklist
- [ ] Git branch created from stable tag: `git checkout -b migration/vX-to-vY vX.0.0`
- [ ] Database backup taken and verified
- [ ] Extension .app file of current version archived
- [ ] Rollback tested in sandbox environment
### Rollback Procedure
1. **Code rollback**: `git checkout vX.0.0` — restore previous version
2. **Extension rollback**: Uninstall new version, install archived .app
3. **Data rollback** (if upgrade codeunit ran):
- Restore database from pre-migration backup
- OR run compensating downgrade codeunit (if written)
4. **Verify**: Run smoke tests on restored environment
### Point of No Return
⚠️ After these actions, rollback requires database restore:
- Upgrade codeunits that DELETE data
- Schema changes that DROP columns
- External system notifications sentRollback rules:
git tag vX.0.0-pre-migrationgit status clean)al_downloadsymbolsal_packages — list loaded packages with current versions.github/plans/{project}-migration.mdPAUSE — wait for user approval before modifying files.
app.json (Pattern 1) — platform, runtime, application, dependencies, featuresal_build — collect all errorsPrioritize by error type:
For each fix, verify with incremental build.
app.json) — no agent tool; edit directly (or via the VS Code command)al_build — zero errors, zero new warnings; al_build also produces the .app package| Upgrade Path | Key Breaking Changes |
|---|---|
| BC 20 → 21 | New permission model, page layout changes |
| BC 21 → 22 | Namespace support, NoImplicitWith enforcement |
| BC 22 → 23 | Async patterns, isolated events, security hardening |
| BC 23 → 24 | New AL capabilities, event parameter additions |
| BC 24 → 25 | Enhanced debugging, agent integration, new runtime features |
skill-debug.md | Performance after migration → skill-performance.md | Test verification → skill-testing.md© javiarmesto, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (references) in skills/skill-migrate of javiarmesto/ALDC-AL-Development-Collection.
Open the folder on GitHubat commit 4f99d7d
Skill Migrate 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 Migrate this skilljaviarmesto/ALDC-AL-Development-Collection | 109 | — | ~3k | Automated safety check: Pass | MIT | |
| Monitor CInrwl/nx | 29k | 6 repos | ~4.7k | Automated safety check: Pass | MIT | |
| Terraform and OpenTofu Guideagentscope-ai/QwenPaw | 36k | 6 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Vercel Optimize Auditvercel-labs/agent-skills | 32k | 8 repos | ~4.3k | Automated safety check: Pass | None | |
| Analyze GitHub Action Logswithastro/astro | 63k | 1 repos | ~1.3k | Automated safety check: Pass | Custom licence | |
| Openclaw Live Updateropenclaw/openclaw | 392k | — | ~3.7k | Automated safety check: Pass | MIT |
nrwl/nx
Monitor Nx Cloud CI pipeline and handle self-healing fixes. An agent skill from nrwl/nx.
agentscope-ai/QwenPaw
Guidance for writing and testing Terraform and OpenTofu code: module structure, naming, test approaches, CI/CD workflows, state handling and security scanning.
vercel-labs/agent-skills
Runs a metrics-first audit of a deployed Vercel project, gating investigations on real signals to produce ranked, citation-backed cost and performance recommendations.
withastro/astro
Analyze recent GitHub Actions workflow runs to identify patterns, mistakes, and improvements.
openclaw/openclaw
Maintain the canonical live OpenClaw main checkout, macOS LaunchAgent-managed Gateway, local macOS app, exact-head main CI, and recurring full release validation.
netdata/netdata
Use only when the user explicitly asks to build, run, preview, inspect, or validate learn.netdata.cloud locally using the contents of a PR or documentation branch before merge.
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
Agent SDK task integration patterns for Business Central. An agent skill from javiarmesto/ALDC-AL-Development-Collection.
javiarmesto/ALDC-AL-Development-Collection
Build, configure, and integrate Business Central agents using the AI Development Toolkit and Agent SDK.
javiarmesto/ALDC-AL-Development-Collection
AL debugging and diagnostics for Business Central. An agent skill from javiarmesto/ALDC-AL-Development-Collection.
Categories
AL version migration for Business Central. An agent skill from javiarmesto/ALDC-AL-Development-Collection. Skill Migrate is an agent skill from javiarmesto/ALDC-AL-Development-Collection. AL version migration for Business Central.
Skill Migrate fits situations like: upgrading extensions between BC versions; handling breaking changes; implementing rollback strategies.
Run `npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-migrate -a claude-code`. Or copy the skill folder (skills/skill-migrate in javiarmesto/ALDC-AL-Development-Collection) into .claude/skills/skill-migrate in your project. Claude Code loads it when a task matches its description.
Run `npx skills add javiarmesto/ALDC-AL-Development-Collection --skill skill-migrate -a codex`. Or copy the skill folder (skills/skill-migrate in javiarmesto/ALDC-AL-Development-Collection) into .agents/skills/skill-migrate 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-migrate -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-migrate, .gemini/skills/skill-migrate, .github/skills/skill-migrate and .opencode/skills/skill-migrate in your project.
Going by SKILL.md and its folder, Skill Migrate needs the command-line tools its instructions call (git).
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 Migrate is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Skill Migrate: Monitor CI (nrwl/nx, 29k stars), Terraform and OpenTofu Guide (agentscope-ai/QwenPaw, 36k stars), Vercel Optimize Audit (vercel-labs/agent-skills, 32k stars) and Analyze GitHub Action Logs (withastro/astro, 63k 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.