[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69A2X616HCSYF8QFTHKKF0K":3,"skill-same:01M69A2X616HCSYF8QFTHKKF0K":95},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":54,"repositoryHtmlUrl":55,"repositoryHomepageUrl":56,"ownerHtmlUrl":57,"ownerBlogUrl":58,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M69A2X616HCSYF8QFTHKKF0K","extensibility-request-implement",null,"Implement a single Business Central extensibility request as an AL code change. The request is provided as plain text (a natural-language description of the extension point that is needed, usually a new integration event \u002F event publisher). The skill locates the affected AL code in the current repository, adds the requested extension point following the repository extensibility guidelines, and propagates the change across the W1 base layer and any same-named country\u002Fregion layer files. It edits only `.al` source files and leaves the changes unstaged in the working tree. No build, no tests, no commit, and no pull request. TRIGGER when the user asks to implement or add an extensibility request \u002F extension point \u002F integration event described in the provided text. DO NOT TRIGGER for bug fixes, for building or testing, or for opening pull requests.","microsoft\u002FBC-Bench","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69A2DVX16MBYVPEN8MW9M7A",61,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FBC-Bench\u002Fblob\u002Fmain\u002Fsrc\u002Fbcbench\u002Fagent\u002Fshared\u002Finstructions\u002FmicrosoftInternal-NAV\u002Fskills\u002Fextensibility-request-implement\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"implement","request","extensibility","extensibility request implement","when","testing","natural-language","affected","across","files","only","ask","text","powershell","repository","code","create","commit","change","pull requests","2026-11-10 10:12:30",false,"---\nname: extensibility-request-implement\ndescription: >\n  Implement a single Business Central extensibility request as an AL code change. The request is\n  provided as plain text (a natural-language description of the extension point that is needed,\n  usually a new integration event \u002F event publisher). The skill locates the affected AL code in the\n  current repository, adds the requested extension point following the repository extensibility\n  guidelines, and propagates the change across the W1 base layer and any same-named country\u002Fregion\n  layer files. It edits only `.al` source files and leaves the changes unstaged in the working tree.\n  No build, no tests, no commit, and no pull request. TRIGGER when the user asks to implement or add\n  an extensibility request \u002F extension point \u002F integration event described in the provided text.\n  DO NOT TRIGGER for bug fixes, for building or testing, or for opening pull requests.\nallowed-tools: ['view', 'create', 'edit', 'grep', 'glob', 'powershell', 'ask_user']\n---\n\n# AI Extension Fix Skill\n\nThis skill implements one Business Central extensibility request entirely offline, inside the\ncurrent repository. It reads the request text, adds the requested extension point (most often an\nintegration event) to the standard code following the repository guidelines, and applies the\nchange W1-first with propagation to same-named country\u002Fregion layer files. It does **not** build,\ntest, commit, or open a pull request. The change is left as unstaged edits in the working tree; the\nauthor (or the evaluation harness) reviews the resulting diff.\n\n---\n\n## Critical Rules\n\n- **Text input only**: The extensibility request is provided as plain text in the current\n  conversation \u002F prompt. Never fetch anything from an issue tracker or any external system, and never\n  depend on labels, tickets, or online metadata.\n- **Single request**: This skill implements one request per run. If more than one distinct request is\n  provided, implement the first and warn.\n- **No writeback, no PR**: Never commit, never push, never open or edit a pull request, and never run\n  any `gh` command. The only deliverable is the set of local `.al` edits.\n- **No build, no tests**: Never build, publish, or run the app, and never create tests. Produce a\n  change that is aligned with the guidelines and, to the best of static reasoning, compilable.\n  Correctness is verified by the human reviewer on the resulting diff.\n- **Surgical changes**: Make the smallest diff that satisfies the request. Follow the repository's\n  code surgery guidelines (see Step 2). Do not reformat, rename, reorder, or refactor unrelated code.\n- **W1-first layering**: When the file to change exists in the W1 base layer (`App\u002FLayers\u002FW1\u002F...`),\n  make the change in W1 first, then apply the same change to every same-named counterpart file that\n  exists in the other layers (Step 5). Only when the file exists solely in a specific country layer do\n  you edit that layer directly and skip the propagation step.\n- **AL files only**: Only ever create or modify `.al` source files. Never edit, add, or delete any\n  other file type (for example `.json`, `.xml`, `.xlf`\u002Ftranslations, `.md`, `.txt`, project or\n  settings files, workflows, or build scripts). If a correct change would require touching a\n  non-`.al` file, STOP and report that instead of changing it.\n- **No ticket-reference comments in code**: Do not add `\u002F\u002F issue #\u003Cn>`-style comments or any external\n  reference into the source.\n\n---\n\n## Step 1: Parse the Request\n\nReview the current conversation and the most recent user message to extract the extensibility\nrequest. Identify:\n\n- **What extension point is asked for** — typically a new integration event \u002F event publisher, but it\n  may be an event added to an existing procedure or trigger.\n- **Where it should live** — the object (codeunit\u002Ftable\u002Fpage\u002Freport), and the procedure or trigger and\n  the exact placement (before\u002Fafter a step, in an `else` branch of a `case`, etc.).\n- **What data it must expose** — the records and parameters subscribers need.\n\nIf the request cannot be found in the provided text and an ask-user capability is available, ask the\nuser for it. If none is available (unattended), STOP with: `An extensibility request is required.`\n\nIf more than one distinct request is present, keep the first, warn that this skill implements a\nsingle request per run, and ignore the rest.\n\n---\n\n## Step 2: Understand and Plan the Change\n\nBuild enough understanding to make a correct, minimal change.\n\n1. **Load the guidelines** the change must follow, in this order:\n\n   - The repository code surgery guidelines: read `.github\u002Fcopilot\u002Fcode-guidelines.md` if present.\n   - The extension guidelines: read `guidelines.md` in this skill folder.\n   - General AL best practices (see the checklist at the end of this file).\n\n2. **Locate the affected code**: use `grep` and `glob` to find the AL objects, procedures, tables,\n   pages, or codeunits named or implied by the request. Use `view` to read the candidate files and\n   confirm relevance. Prefer searching for exact symbol names and object references mentioned in the\n   request.\n\n3. **Decide the layer (W1-first)**: this repository is layered under `App\u002FLayers\u002F` with a `W1` base\n   layer and country layers (AT, AU, BE, CA, CH, CZ, DE, DK, ES, FI, FR, GB, IN, IS, IT, MX, NL, NO,\n   NZ, RU, SE, US). For each file you plan to change, check whether it exists in the W1 layer:\n\n   - **If the file exists under `App\u002FLayers\u002FW1\u002F...`**: make the change there. In Step 5 you will apply\n     the same change to every same-named counterpart file that exists in the other layers. Record\n     `used_w1 = true`.\n   - **If the file exists only in a specific country layer** (not in W1): edit that layer's file\n     directly. No propagation applies; the change stays in that layer only.\n\n4. **Form a concrete plan in memory** (do not write it to a tracked file): the specific edits, file by\n   file, and the layer each edit lands in. There is no approval gate. Proceed directly to Step 3.\n\n---\n\n## Step 3: Implement the Change\n\nApply the planned edits with the `edit` and `create` tools.\n\n- Make the **smallest diff** that satisfies the request. Add rather than change where reasonable.\n- **Match the existing code style** in each file: indentation, casing, naming, and object layout.\n- Follow the AL best-practice checklist below and the extension guidelines from Step 2.\n- **Guidelines override the request**: If the request text contains a proposed solution (event names,\n  parameter names, code snippets, or any other implementation detail) that does not comply with the\n  guidelines, do **not** implement it as-is. Correct it to comply. The guidelines are the source of\n  truth; the request's suggestion is a hint, not a specification. In particular, event names must\n  follow the placement-based naming convention (for example `OnBeforePostSalesLine`,\n  `OnPostSalesLineOnAfterCalculateAmounts`), and record parameters use full table names with spaces\n  removed.\n- Do **not** reformat, rename, reorder, or refactor code unrelated to the change.\n- Edit **only `.al` files**. If the change seems to need a non-`.al` file, STOP and report it.\n- Aim for code that compiles: keep object IDs, procedure signatures, and variable declarations\n  consistent; ensure every referenced symbol exists; balance `begin`\u002F`end`; and respect AL syntax.\n  You will not build it here, so reason carefully about correctness.\n\nMake **all** the W1-layer edits now, before propagating, so the W1 layer is in its final state\nbefore Step 5.\n\n---\n\n## Step 4: (reserved)\n\nThere is no separate branch\u002Fcommit step. The change stays as unstaged edits in the working tree.\n\n---\n\n## Step 5: Propagate W1 Changes to Same-Named Files in Other Layers\n\nRun this step **only if** you changed at least one file under `App\u002FLayers\u002FW1\u002F...` (`used_w1 == true`).\nIf every edit was in a country-only layer, skip this step.\n\nA country layer overrides only a subset of files; the ones it does **not** contain are inherited from\nW1 automatically. So propagation means: for each W1 file you changed, find the **same-named\ncounterpart files that already exist in the other layers** and apply the equivalent change to each of\nthem yourself with the `edit` tool.\n\nFor **each** W1 file you edited in Step 3:\n\n1. **List the existing counterparts** in the other layers (same relative path under each layer root):\n\n   ```powershell\n   $w1File = \"\u003Cthe W1 file you changed, e.g. App\u002FLayers\u002FW1\u002FBaseApp\u002F...\u002FFoo.Codeunit.al>\"\n   $rel = $w1File -replace '^App\u002FLayers\u002FW1\u002F', ''\n   Get-ChildItem \"App\u002FLayers\" -Directory | Where-Object { $_.Name -ne 'W1' } | ForEach-Object {\n     $candidate = Join-Path $_.FullName $rel\n     if (Test-Path $candidate) { $candidate }\n   }\n   ```\n\n   Each path returned is a layer that has its own copy of this file and therefore needs the change.\n   Layers with no such file inherit W1 and are left untouched.\n\n2. **Apply the equivalent change to each counterpart** with the `edit` tool:\n\n   - Read the counterpart file first. It may already differ from W1 because that layer customized it.\n   - Make the **same logical change** you made in W1 — locate the same object, procedure, or lines and\n     apply it there.\n   - **Adapt, do not overwrite**: preserve that layer's existing customizations, local naming, values,\n     and any country-specific behavior. If the layer's code differs from W1's, apply the intent of the\n     change to the layer's variant rather than pasting the W1 text verbatim.\n   - Keep the same surgical, style-matching discipline as Step 3.\n\n3. If a counterpart's code has genuinely diverged so the change does not map cleanly, apply the safest\n   equivalent change (preserve the layer's behavior) and continue.\n\n---\n\n## Step 6: Summary\n\nReport to the user, concisely:\n\n- The extensibility request implemented, in one or two sentences.\n- The extension point added (object, procedure\u002Ftrigger, event name and signature).\n- The exact list of `.al` files changed, including any propagated layer counterparts.\n\nIf no file changes were produced, STOP and report that the request did not lead to any code change,\nexplaining why.\n\n---\n\n## AL Best-Practice Checklist\n\nApply these when editing AL code, unless the surrounding code clearly follows a different local\nconvention (match the file):\n\n- Follow standard event conventions: `[IntegrationEvent(false, false)]`, `local procedure`, empty\n  body, and placement-accurate `OnBefore`\u002F`OnAfter`\u002F`On\u003CProcedure>On\u003CTiming>` naming.\n- Use full table names with spaces removed for record parameters (e.g. `SalesHeader`, `Jobs Setup`\n  → `JobsSetup`); do not abbreviate. Use descriptive names for simple-type parameters.\n- Append new parameters to the end of an existing event signature; do not insert in the middle.\n- When adding `IsHandled`, initialize it to `false` before the event call.\n- Use meaningful PascalCase names for objects, procedures, and variables; match existing naming.\n- Respect existing object IDs and app structure; do not renumber or move objects.\n- Preserve `begin`\u002F`end`, `case`, and `if\u002Fthen\u002Felse` structure and existing indentation.\n- Avoid breaking public\u002Fextensible signatures; add optional parameters or overloads instead.\n- Keep changes backward compatible for existing callers and subscribers.\n","# AI Extension Fix Skill\n\nThis skill implements one Business Central extensibility request entirely offline, inside the\ncurrent repository. It reads the request text, adds the requested extension point (most often an\nintegration event) to the standard code following the repository guidelines, and applies the\nchange W1-first with propagation to same-named country\u002Fregion layer files. It does **not** build,\ntest, commit, or open a pull request. The change is left as unstaged edits in the working tree; the\nauthor (or the evaluation harness) reviews the resulting diff.\n\n---\n\n## Critical Rules\n\n- **Text input only**: The extensibility request is provided as plain text in the current\n  conversation \u002F prompt. Never fetch anything from an issue tracker or any external system, and never\n  depend on labels, tickets, or online metadata.\n- **Single request**: This skill implements one request per run. If more than one distinct request is\n  provided, implement the first and warn.\n- **No writeback, no PR**: Never commit, never push, never open or edit a pull request, and never run\n  any `gh` command. The only deliverable is the set of local `.al` edits.\n- **No build, no tests**: Never build, publish, or run the app, and never create tests. Produce a\n  change that is aligned with the guidelines and, to the best of static reasoning, compilable.\n  Correctness is verified by the human reviewer on the resulting diff.\n- **Surgical changes**: Make the smallest diff that satisfies the request. Follow the repository's\n  code surgery guidelines (see Step 2). Do not reformat, rename, reorder, or refactor unrelated code.\n- **W1-first layering**: When the file to change exists in the W1 base layer (`App\u002FLayers\u002FW1\u002F...`),\n  make the change in W1 first, then apply the same change to every same-named counterpart file that\n  exists in the other layers (Step 5). Only when the file exists solely in a specific country layer do\n  you edit that layer directly and skip the propagation step.\n- **AL files only**: Only ever create or modify `.al` source files. Never edit, add, or delete any\n  other file type (for example `.json`, `.xml`, `.xlf`\u002Ftranslations, `.md`, `.txt`, project or\n  settings files, workflows, or build scripts). If a correct change would require touching a\n  non-`.al` file, STOP and report that instead of changing it.\n- **No ticket-reference comments in code**: Do not add `\u002F\u002F issue #\u003Cn>`-style comments or any external\n  reference into the source.\n\n---\n\n## Step 1: Parse the Request\n\nReview the current conversation and the most recent user message to extract the extensibility\nrequest. Identify:\n\n- **What extension point is asked for** — typically a new integration event \u002F event publisher, but it\n  may be an event added to an existing procedure or trigger.\n- **Where it should live** — the object (codeunit\u002Ftable\u002Fpage\u002Freport), and the procedure or trigger and\n  the exact placement (before\u002Fafter a step, in an `else` branch of a `case`, etc.).\n- **What data it must expose** — the records and parameters subscribers need.\n\nIf the request cannot be found in the provided text and an ask-user capability is available, ask the\nuser for it. If none is available (unattended), STOP with: `An extensibility request is required.`\n\nIf more than one distinct request is present, keep the first, warn that this skill implements a\nsingle request per run, and ignore the rest.\n\n---\n\n## Step 2: Understand and Plan the Change\n\nBuild enough understanding to make a correct, minimal change.\n\n1. **Load the guidelines** the change must follow, in this order:\n\n   - The repository code surgery guidelines: read `.github\u002Fcopilot\u002Fcode-guidelines.md` if present.\n   - The extension guidelines: read `guidelines.md` in this skill folder.\n   - General AL best practices (see the checklist at the end of this file).\n\n2. **Locate the affected code**: use `grep` and `glob` to find the AL objects, procedures, tables,\n   pages, or codeunits named or implied by the request. Use `view` to read the candidate files and\n   confirm relevance. Prefer searching for exact symbol names and object references mentioned in the\n   request.\n\n3. **Decide the layer (W1-first)**: this repository is layered under `App\u002FLayers\u002F` with a `W1` base\n   layer and country layers (AT, AU, BE, CA, CH, CZ, DE, DK, ES, FI, FR, GB, IN, IS, IT, MX, NL, NO,\n   NZ, RU, SE, US). For each file you plan to change, check whether it exists in the W1 layer:\n\n   - **If the file exists under `App\u002FLayers\u002FW1\u002F...`**: make the change there. In Step 5 you will apply\n     the same change to every same-named counterpart file that exists in the other layers. Record\n     `used_w1 = true`.\n   - **If the file exists only in a specific country layer** (not in W1): edit that layer's file\n     directly. No propagation applies; the change stays in that layer only.\n\n4. **Form a concrete plan in memory** (do not write it to a tracked file): the specific edits, file by\n   file, and the layer each edit lands in. There is no approval gate. Proceed directly to Step 3.\n\n---\n\n## Step 3: Implement the Change\n\nApply the planned edits with the `edit` and `create` tools.\n\n- Make the **smallest diff** that satisfies the request. Add rather than change where reasonable.\n- **Match the existing code style** in each file: indentation, casing, naming, and object layout.\n- Follow the AL best-practice checklist below and the extension guidelines from Step 2.\n- **Guidelines override the request**: If the request text contains a proposed solution (event names,\n  parameter names, code snippets, or any other implementation detail) that does not comply with the\n  guidelines, do **not** implement it as-is. Correct it to comply. The guidelines are the source of\n  truth; the request's suggestion is a hint, not a specification. In particular, event names must\n  follow the placement-based naming convention (for example `OnBeforePostSalesLine`,\n  `OnPostSalesLineOnAfterCalculateAmounts`), and record parameters use full table names with spaces\n  removed.\n- Do **not** reformat, rename, reorder, or refactor code unrelated to the change.\n- Edit **only `.al` files**. If the change seems to need a non-`.al` file, STOP and report it.\n- Aim for code that compiles: keep object IDs, procedure signatures, and variable declarations\n  consistent; ensure every referenced symbol exists; balance `begin`\u002F`end`; and respect AL syntax.\n  You will not build it here, so reason carefully about correctness.\n\nMake **all** the W1-layer edits now, before propagating, so the W1 layer is in its final state\nbefore Step 5.\n\n---\n\n## Step 4: (reserved)\n\nThere is no separate branch\u002Fcommit step. The change stays as unstaged edits in the working tree.\n\n---\n\n## Step 5: Propagate W1 Changes to Same-Named Files in Other Layers\n\nRun this step **only if** you changed at least one file under `App\u002FLayers\u002FW1\u002F...` (`used_w1 == true`).\nIf every edit was in a country-only layer, skip this step.\n\nA country layer overrides only a subset of files; the ones it does **not** contain are inherited from\nW1 automatically. So propagation means: for each W1 file you changed, find the **same-named\ncounterpart files that already exist in the other layers** and apply the equivalent change to each of\nthem yourself with the `edit` tool.\n\nFor **each** W1 file you edited in Step 3:\n\n1. **List the existing counterparts** in the other layers (same relative path under each layer root):\n\n   ```powershell\n   $w1File = \"\u003Cthe W1 file you changed, e.g. App\u002FLayers\u002FW1\u002FBaseApp\u002F...\u002FFoo.Codeunit.al>\"\n   $rel = $w1File -replace '^App\u002FLayers\u002FW1\u002F', ''\n   Get-ChildItem \"App\u002FLayers\" -Directory | Where-Object { $_.Name -ne 'W1' } | ForEach-Object {\n     $candidate = Join-Path $_.FullName $rel\n     if (Test-Path $candidate) { $candidate }\n   }\n   ```\n\n   Each path returned is a layer that has its own copy of this file and therefore needs the change.\n   Layers with no such file inherit W1 and are left untouched.\n\n2. **Apply the equivalent change to each counterpart** with the `edit` tool:\n\n   - Read the counterpart file first. It may already differ from W1 because that layer customized it.\n   - Make the **same logical change** you made in W1 — locate the same object, procedure, or lines and\n     apply it there.\n   - **Adapt, do not overwrite**: preserve that layer's existing customizations, local naming, values,\n     and any country-specific behavior. If the layer's code differs from W1's, apply the intent of the\n     change to the layer's variant rather than pasting the W1 text verbatim.\n   - Keep the same surgical, style-matching discipline as Step 3.\n\n3. If a counterpart's code has genuinely diverged so the change does not map cleanly, apply the safest\n   equivalent change (preserve the layer's behavior) and continue.\n\n---\n\n## Step 6: Summary\n\nReport to the user, concisely:\n\n- The extensibility request implemented, in one or two sentences.\n- The extension point added (object, procedure\u002Ftrigger, event name and signature).\n- The exact list of `.al` files changed, including any propagated layer counterparts.\n\nIf no file changes were produced, STOP and report that the request did not lead to any code change,\nexplaining why.\n\n---\n\n## AL Best-Practice Checklist\n\nApply these when editing AL code, unless the surrounding code clearly follows a different local\nconvention (match the file):\n\n- Follow standard event conventions: `[IntegrationEvent(false, false)]`, `local procedure`, empty\n  body, and placement-accurate `OnBefore`\u002F`OnAfter`\u002F`On\u003CProcedure>On\u003CTiming>` naming.\n- Use full table names with spaces removed for record parameters (e.g. `SalesHeader`, `Jobs Setup`\n  → `JobsSetup`); do not abbreviate. Use descriptive names for simple-type parameters.\n- Append new parameters to the end of an existing event signature; do not insert in the middle.\n- When adding `IsHandled`, initialize it to `false` before the event call.\n- Use meaningful PascalCase names for objects, procedures, and variables; match existing naming.\n- Respect existing object IDs and app structure; do not renumber or move objects.\n- Preserve `begin`\u002F`end`, `case`, and `if\u002Fthen\u002Felse` structure and existing indentation.\n- Avoid breaking public\u002Fextensible signatures; add optional parameters or overloads instead.\n- Keep changes backward compatible for existing callers and subscribers.\n",{"name":5,"description":44,"allowed-tools":45},"Implement a single Business Central extensibility request as an AL code change. The request is provided as plain text (a natural-language description of the extension point that is needed, usually a new integration event \u002F event publisher). The skill locates the affected AL code in the current repository, adds the requested extension point following the repository extensibility guidelines, and propagates the change across the W1 base layer and any same-named country\u002Fregion layer files. It edits only `.al` source files and leaves the changes unstaged in the working tree. No build, no tests, no commit, and no pull request. TRIGGER when the user asks to implement or add an extensibility request \u002F extension point \u002F integration event described in the provided text. DO NOT TRIGGER for bug fixes, for building or testing, or for opening pull requests.\n",[46,35,47,48,49,32,50],"view","edit","grep","glob","ask_user","main","518f0b3d4413015ca37761f09fd760cc25bd5309","src\u002Fbcbench\u002Fagent\u002Fshared\u002Finstructions\u002FmicrosoftInternal-NAV\u002Fskills\u002Fextensibility-request-implement",33,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FBC-Bench","https:\u002F\u002Fmicrosoft.github.io\u002FBC-Bench\u002F","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-13 01:35:22",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add microsoft\u002FBC-Bench --skill extensibility-request-implement",{"tool":67,"command":68},"bunx","bunx skills add microsoft\u002FBC-Bench --skill extensibility-request-implement",{"tool":70,"command":71},"pnpm","pnpm dlx skills add microsoft\u002FBC-Bench --skill extensibility-request-implement","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FBC-Bench\u002Fblob\u002Fmain\u002Fsrc\u002Fbcbench\u002Fagent\u002Fshared\u002Finstructions\u002FmicrosoftInternal-NAV\u002Fskills\u002Fextensibility-request-implement\u002FSKILL.md",true,[75,81,87,91],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"agents\u002Fopenai.yaml","REFERENCE","参考文档",198,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Felephant-goldfish-model\u002Fblob\u002Fmain\u002Fdistributions\u002Fclaude\u002Fskills\u002Fegm-draft\u002Fagents\u002Fopenai.yaml",{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"assets\u002Ficon.svg","ASSET","资产文件",545,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Felephant-goldfish-model\u002Fblob\u002Fmain\u002Fdistributions\u002Fclaude\u002Fskills\u002Fegm-draft\u002Fassets\u002Ficon.svg",{"path":88,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":89,"sourceHtmlUrl":90},"guidelines.md",8741,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FBC-Bench\u002Fblob\u002Fmain\u002Fsrc\u002Fbcbench\u002Fagent\u002Fshared\u002Finstructions\u002FmicrosoftInternal-NAV\u002Fskills\u002Fextensibility-request-implement\u002Fguidelines.md",{"path":92,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":93,"sourceHtmlUrl":94},"references\u002Fdesign_doc.md",5432,"https:\u002F\u002Fgithub.com\u002Fgoogle\u002Felephant-goldfish-model\u002Fblob\u002Fmain\u002Fdistributions\u002Fclaude\u002Fskills\u002Fegm-draft\u002Freferences\u002Fdesign_doc.md",[96,120,150,172,178,206],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":102,"publishedAt":39},"01M69A2ZC0BM89ZTW81TP4M1J1","bcbench-example","BC-Bench example skill — a no-op skill that only exists to prove the BC-Bench `plugins` experiment toggle loaded a plugin and made its skill available. USE FOR nothing real; it is a smoke-test marker. DO NOT USE FOR actual Business Central \u002F AL work.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FBC-Bench\u002Fblob\u002Fmain\u002Fsrc\u002Fbcbench\u002Fagent\u002Fshared\u002Fplugins\u002Fbcbench-example\u002Fskills\u002Fbcbench-example\u002FSKILL.md",[],[103,104,105,106,107,108,109,110,111,112,29,113,114,115,116,117,118,119],"bcbench example","example","test","example skill","plugin","plugins","work","business","use","experiment","smoke","do","it","marker","op","for","prove",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":131,"publishedAt":39},"01M69A2SGD763ZP785AQC97MSE","bc-ext-advisor","Guide a Business Central user through preparing a high-quality extensibility request and filing it as a GitHub issue in microsoft\u002FALAppExtensions. The skill classifies the request (event, external access, enum, or general enhancement), gathers the mandatory information for that type, checks it against the extensibility rules and blockers, drafts the issue against the standard template, and — only after explicit approval — submits it with the `gh` CLI. It is advisory and read-only against workspace code: it never edits, builds, or runs AL source. It applies only to Microsoft base-application AL objects. Runs interactively in VS Code Copilot Chat (agent mode) and the Copilot CLI. TRIGGER when a user wants to request an event, make a member public\u002Fglobal, add or extend an enum, or otherwise ask Microsoft to make base Business Central code more extensible. DO NOT TRIGGER for pure bug reports, for changes to non-Microsoft (custom) objects, or to write or fix AL code.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FBC-Bench\u002Fblob\u002Fmain\u002Fsrc\u002Fbcbench\u002Fagent\u002Fshared\u002Finstructions\u002FmicrosoftInternal-NAV\u002Fskills\u002Fbc-ext-advisor\u002FSKILL.md",[126],{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[132,133,134,135,9,136,137,138,139,34,32,140,141,30,142,143,144,29,145,146,147,148,149,23],"bc ext advisor","advisor","cli","github","vscode","copilot","copilot chat","run","access","template","command","fix","never","reports","objects","filing","information","mode",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":159,"publishedAt":39},"01M69A2QREAZ4S60E04QHTWM8Z","al-test-generation","Guide for creating AL tests for Microsoft Dynamics 365 Business Central. Use this when asked to write, create, or generate AL test codeunits, test procedures, or test automation for Business Central.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FBC-Bench\u002Fblob\u002Fmain\u002Fsrc\u002Fbcbench\u002Fagent\u002Fshared\u002Finstructions\u002FmicrosoftInternal-NAV\u002Fskills\u002Fal-test-generation\u002FSKILL.md",[156],{"categoryNo":157,"categoryName":158,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000008","测试与质量",[105,160,161,162,163,164,9,165,166,35,167,168,110,169,111,170,171,118,23],"al test generation","test generation","generation","automation","test automation","dynamics 365","dynamics 365 business central","generate","write","guide","tests","dynamics",{"skillNo":173,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":177,"publishedAt":39},"01M69A2NTVPAN1KA0F2TYBFD5M","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FBC-Bench\u002Fblob\u002Fmain\u002Fsrc\u002Fbcbench\u002Fagent\u002Fshared\u002Finstructions\u002Fmicrosoft-BCApps\u002Fskills\u002Fal-test-generation\u002FSKILL.md",[176],{"categoryNo":157,"categoryName":158,"taxonomyType":129,"taxonomyTypeDesc":130},[105,160,161,162,163,164,9,165,166,35,167,168,110,169,111,170,171,118,23],{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":190,"publishedAt":39},"01M69A2KSVE5QH2RNPW3XC9HGB","bc-al-query-mcp","Use when: writing, fixing, validating, or running Business Central AL query objects with bc_data MCP tools (and, optionally, Microsoft Learn MCP docs). Covers AL query syntax, table discovery, schemas, relations, joins, filters, FlowFields, pagination, and read-only data retrieval.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FBC-Bench\u002Fblob\u002Fmain\u002Fsrc\u002Fbcbench\u002Fagent\u002Fshared\u002Finstructions\u002Fdataquery\u002Fskills\u002Fbc-al-query-mcp\u002FSKILL.md",[184,185],{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},{"categoryNo":186,"categoryName":187,"taxonomyType":188,"taxonomyTypeDesc":189},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[191,192,193,194,195,9,196,197,198,143,110,111,29,199,146,200,201,202,203,204,23,205],"MCP","bc al query mcp","query","writing","docs","learn","discovery","question","filters","false","with","learn mcp","read-only","true","running",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":213,"publishedAt":39},"01M69A2HHRV6WE52A3DVJ6WHNV","update-agent-harness","Update an agent harness used by BC-Bench. Use when bumping GitHub Copilot CLI or Claude Code, reviewing intervening release notes and breaking changes, curating benchmark-worthy model choices, updating the BC-Bench version, or preparing the release handoff.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002FBC-Bench\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fupdate-agent-harness\u002FSKILL.md",[212],{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},[214,215,216,217,218,134,219,135,220,137,221,222,34,223,224,225,111,226,227,228,23],"update agent harness","update","harness","agent harness","update agent","handoff","github copilot","notes","release notes","benchmark","release","model","version","github copilot cli","changes"]