[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699ECN11C2CHXTDRXMAJ2MN":3,"skill-same:01M699ECN11C2CHXTDRXMAJ2MN":164},{"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":23,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":55,"repositoryHtmlUrl":56,"repositoryHomepageUrl":57,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M699ECN11C2CHXTDRXMAJ2MN","pr-description-skill",null,"Use this skill to write the PR description (PR body) for any pull request opened against microsoft\u002Fapm. Produces one self-sufficient GitHub-Flavored Markdown artifact: TL;DR, Problem (WHY), Approach (WHAT), Implementation (HOW), 1-3 validated mermaid diagrams, explicit trade-offs, validation evidence, and a How-to-test section -- with every WHY-claim backed by a verbatim quote from PROSE or Agent Skills. Activate when the user asks to \"write a PR description\", \"draft a PR body\", \"open a PR\", \"fill in the PR template\", or any equivalent.","microsoft\u002Fapm","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M699CC41JR5QW38C9PDX6101",4336,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,9,45,46],"pr","pr description","pr description skill","when","write","pr body","request","why","how","markdown","template","mermaid","artifact","self","activate","open","claim","trade-offs","problem","diagrams","mermaid diagrams","github","test","2026-11-10 10:12:30",false,"---\nname: pr-description-skill\ndescription: >-\n  Use this skill to write the PR description (PR body) for any pull\n  request opened against microsoft\u002Fapm. Produces one self-sufficient\n  GitHub-Flavored Markdown artifact: TL;DR, Problem (WHY), Approach\n  (WHAT), Implementation (HOW), 1-3 validated mermaid diagrams,\n  explicit trade-offs, validation evidence, and a How-to-test\n  section -- with every WHY-claim backed by a verbatim quote from\n  PROSE or Agent Skills. Activate when the user asks to \"write a PR\n  description\", \"draft a PR body\", \"open a PR\", \"fill in the PR\n  template\", or any equivalent.\n---\n\n# PR Description Skill -- Anchored, Concise, Validated PR Bodies\n\n## When to use\n\nTrigger this skill on any of the following intents:\n\n- \"write a PR description\"\n- \"draft a PR body\"\n- \"open a PR\" \u002F \"open this PR\" \u002F \"let's open the PR\"\n- \"fill in the PR template\"\n- \"summarize this branch as a PR\"\n- \"create the PR write-up\"\n\nReusable for any PR against `microsoft\u002Fapm`. The output is one\nmarkdown file that the orchestrator pastes into\n`gh pr create --body-file` or surfaces to the maintainer.\n\n## Output charset rule (read this first)\n\nThe repo-wide encoding rule at\n`.github\u002Finstructions\u002Fencoding.instructions.md` constrains\n**source files and CLI output** to printable ASCII because Windows\ncp1252 terminals raise `UnicodeEncodeError` on anything else. PR\ncomments are NOT source code and NOT CLI output -- they are rendered\nby GitHub's Primer engine, which expects UTF-8 GitHub-Flavored\nMarkdown.\n\nTwo distinct rules therefore apply:\n\n1. **Source files in this bundle** (`SKILL.md`, `assets\u002F*`) MUST\n   stay ASCII. They live in the repo and are subject to\n   `.github\u002Finstructions\u002Fencoding.instructions.md`.\n2. **The PR body output the skill produces** MUST be UTF-8\n   GitHub-Flavored Markdown. Use em dashes, smart punctuation,\n   alerts, collapsibles, task lists, and Unicode where it improves\n   readability. Mermaid diagram labels MAY use Unicode -- there is\n   no constraint here. The output is consumed by GitHub's renderer,\n   not by a Windows terminal.\n\nA previous version of this skill incorrectly required ASCII in the\nPR body. That made the output unreadable: no alerts, no collapsibles\nfor long evidence, no em dashes, no smart quotes. Reviewers had to\nscroll through hundreds of flat lines instead of scanning a body\nshaped by GFM features.\n\n## Concision targets (hard ceilings)\n\nThe skill aims for **150-220 lines** for a typical PR body. **300+\nlines is a smell, not a virtue**. If your draft exceeds 250 lines,\nrun a tightening pass: every sentence that does not change the\nreviewer's understanding must be cut.\n\nPer-section ceilings (enforced by `assets\u002Fsection-rubric.md`):\n\n| Section | Ceiling |\n|---|---|\n| TL;DR | 2-4 sentences |\n| Problem (WHY) | max 6 bullets, max 3 quoted anchors total |\n| Approach (WHAT) | a table OR 3-7 bullets; may be skipped if PR is purely additive (say \"additive: see Implementation\") |\n| Implementation (HOW) | one short paragraph per file, OR a table; no prose walls |\n| Diagrams | 1-3 mermaid blocks; every diagram preceded by a one-sentence legend |\n| Trade-offs | 3-5 bullets; mechanical PRs may be 1-2 |\n| Benefits | 3-5 numbered items, each measurable |\n| Validation | copy-paste real command output; do not narrate |\n| How to test | max 5 numbered steps |\n\nLong verbatim quote blocks, full file listings, and full validation\ntranscripts SHOULD live inside `\u003Cdetails>` so the body stays\nscannable.\n\n## Core principles (with quoted anchors)\n\nEach rule the skill enforces is backed by a verbatim quote from one\nof the two reference docs. If a rule below cannot be backed by a\nquote, it is downgraded to a \"should\" with the reason given.\n\n1. **Self-sufficient body.** A reviewer must be able to read the PR\n   body and form an opinion without opening any other doc, issue,\n   or chat. Every WHY-claim cites the source doc inline; every\n   named file is qualified with what changed in it; every diagram\n   has a one-sentence legend.\n\n   Anchor: Agent Skills,\n   [\"agents pattern-match well against concrete structures\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n\n2. **Anchored: every WHY-claim cites its source.** Every claim of\n   the form \"this violates X\" or \"this satisfies Y\" is followed by\n   a verbatim quoted phrase wrapped in a hyperlink to the source\n   page. Reproduce quotes character-for-character; do not paraphrase\n   inside link text.\n\n   Anchor: PROSE,\n   [\"Grounding outputs in deterministic tool execution transforms probabilistic generation into verifiable action.\"](https:\u002F\u002Fdanielmeppiel.github.io\u002Fawesome-ai-native\u002Fdocs\u002Fprose\u002F).\n\n3. **Cite-or-omit.** If a WHY-claim cannot be backed by a verbatim\n   quote, drop it or soften to a tradeoff statement. Never invent\n   justification.\n\n   Anchor: Agent Skills,\n   [\"Add what the agent lacks, omit what it knows\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n\n4. **Visual aid where structure is non-trivial.** Any change that\n   touches more than one file or alters control flow SHOULD include\n   at least one mermaid diagram. Add a second only when the\n   relationships are non-trivial. Never add a third unless it earns\n   its place. Each diagram MUST be preceded by a one-sentence legend.\n\n   Anchor: Agent Skills,\n   [\"agents pattern-match well against concrete structures\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n\n5. **Trade-offs explicit.** Address every non-obvious decision\n   (option chosen vs option rejected). For mechanical PRs this\n   section may be 1-2 bullets. For cross-cutting changes, surface\n   the rejected alternatives.\n\n   Anchor: PROSE,\n   [\"Favor small, chainable primitives over monolithic frameworks.\"](https:\u002F\u002Fdanielmeppiel.github.io\u002Fawesome-ai-native\u002Fdocs\u002Fprose\u002F).\n\n6. **Single artifact, no fluff.** One markdown file. No marketing\n   tone, no self-congratulation. TL;DR is at most four sentences.\n\n   Anchor: Agent Skills,\n   [\"When you find yourself covering every edge case, consider whether most are better handled by the agent's own judgment.\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n\n## GitHub-Flavored Markdown features the skill MUST use\n\nThe PR body is rendered by GitHub's Primer engine. Use the features\nthat engine provides; do not flatten the output to plain text.\n\n- **Alerts** for high-signal callouts:\n  `> [!NOTE]`, `> [!TIP]`, `> [!IMPORTANT]`, `> [!WARNING]`,\n  `> [!CAUTION]`. Reference:\n  https:\u002F\u002Fgithub.com\u002Forgs\u002Fcommunity\u002Fdiscussions\u002F16925.\n- **Collapsible sections** for long diffs, full validation output,\n  or appendix material:\n\n  ```\n  \u003Cdetails>\u003Csummary>Full audit output\u003C\u002Fsummary>\n\n  ...content...\n  \u003C\u002Fdetails>\n  ```\n\n  Use `\u003Cdetails open>` only when the content answers the most\n  likely first reviewer question.\n- **Task lists** for \"How to test\" sections:\n  `- [ ] Apply label, observe X`.\n- **Tables with alignment**: `| col | :---: | ---: |` for matrices.\n- **Permalink references** to specific lines in the diff:\n  `https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002F\u003Csha>\u002Fpath#L12-L34`.\n\nLong verbatim quote blocks, full file listings, and full validation\ntranscripts SHOULD live inside `\u003Cdetails>` so the body stays\nscannable.\n\n## Required body structure\n\n| # | Section | Purpose |\n|---|---------|---------|\n| 1 | Title line | Imperative summary; first line `\u003Cverb>(\u003Cscope>): \u003Csummary>`, max 100 chars |\n| 2 | TL;DR | 2-4 sentence executive summary |\n| 3 | Problem (WHY) | Observed failure modes; max 6 bullets, max 3 quoted anchors |\n| 4 | Approach (WHAT) | Table or 3-7 bullets; may say \"additive: see Implementation\" |\n| 5 | Implementation (HOW) | One short paragraph per file or a table |\n| 6 | Diagrams | 1-3 validated mermaid blocks, each with a legend; diagram type chosen per intent (`assets\u002Fmermaid-conventions.md`) |\n| 7 | Trade-offs | 3-5 bullets (1-2 if mechanical) |\n| 8 | Benefits | 3-5 numbered, measurable items |\n| 9 | Validation | Real command output, ideally inside `\u003Cdetails>` if long; **MUST include the Scenario Evidence subsection** (`assets\u002Fscenario-evidence-rubric.md`) for any behavior-change PR -- maps each user-promise scenario this PR touches to the test that proves it works, tagged with the APM principle the scenario serves |\n| 10 | How to test | Max 5 numbered or task-list steps |\n\nThe Trade-offs (7) and How to test (10) sections are non-skippable\nfor any PR that changes more than docs.\n\n## Activation contract -- inputs the orchestrator MUST gather first\n\nBefore invoking this skill, the orchestrator MUST have collected\nall of the following. The skill MUST NOT invent facts not present\nin these inputs.\n\n| Input | Source | Required |\n|-------|--------|----------|\n| Branch name (head) | `git rev-parse --abbrev-ref HEAD` | yes |\n| Base ref | usually `main`; ask if unclear | yes |\n| List of files changed | `git diff --name-status \u003Cbase>...HEAD` | yes |\n| Actual diff | `git diff \u003Cbase>...HEAD` | yes |\n| Commit messages on the branch | `git log --no-merges \u003Cbase>..HEAD --oneline` | yes |\n| CHANGELOG entry, if any | inspect `CHANGELOG.md` Unreleased section | yes |\n| Linked issue \u002F motivation | user-provided or referenced in commits, plus whether this PR fully delivers the issue | yes |\n| Validation evidence | output of `apm audit --ci`, `uv run pytest`, or equivalent | yes |\n| Scenario-test mapping | author-supplied or derived from diff: per user-promise scenario the PR touches, the test path proving it, plus the APM principle the scenario serves (taxonomy in `assets\u002Fscenario-evidence-rubric.md`) | conditional (required for any behavior-change PR; may be skipped for docs-only \u002F asset-bump \u002F pure-refactor per the rubric's skip clause, with the skip case stated in trade-offs) |\n| Mirror parity check, if applicable | `apm install --target copilot` output | conditional |\n\nIf any required input is missing, the orchestrator MUST stop and\ncollect it. This is a Progressive Disclosure boundary:\n[\"Context arrives just-in-time, not just-in-case.\"](https:\u002F\u002Fdanielmeppiel.github.io\u002Fawesome-ai-native\u002Fdocs\u002Fprose\u002F).\nDo not load `assets\u002Fpr-body-template.md` until the table above is\ncomplete.\n\n## Execution checklist\n\nRun these steps in order. Tick each before moving on.\n\n1. [ ] Confirm every row of the activation contract is filled in.\n   Defense-in-depth gate: before drafting the body, confirm the\n   repo's lint contract is green (canonical commands and lifecycle\n   binding live in `.apm\u002Finstructions\u002Flinting.instructions.md`). If lint is red,\n   STOP, fix, re-run; a PR body claiming green CI while lint fails\n   is a credibility tax we refuse to take on.\n2. [ ] Read the diff in full. Identify per-file change summary,\n       new files, deleted files, behavior changes at module\n       boundaries.\n3. [ ] Load `assets\u002Fpr-body-template.md`. This is the only point\n       at which the template enters context. Progressive Disclosure\n       in action:\n       [\"store them in `assets\u002F` and reference them from `SKILL.md` so they only load when needed.\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n4. [ ] Fill in the template top-to-bottom using only facts from\n       the activation contract. Every WHY-claim gets a verbatim\n       quoted anchor. If you cannot anchor a claim, drop it.\n5. [ ] Generate 1-3 mermaid diagrams. **Before drafting any block,\n       load `assets\u002Fmermaid-conventions.md`** to pick the right\n       diagram type per intent (sequenceDiagram for execution flow,\n       flowchart LR for pipeline \u002F architecture, stateDiagram-v2 for\n       state machines) and apply the boxing convention for NEW\n       behavior. Add a one-sentence legend above each diagram.\n6. [ ] **Validate every mermaid block deterministically (see\n       below). Do NOT save the draft until every block validates.**\n7. [ ] Load `assets\u002Fsection-rubric.md` and run the self-check pass.\n       Validation loop pattern from Agent Skills:\n       [\"do the work, run a validator (a script, a reference checklist, or a self-check), fix any issues, and repeat until validation passes.\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n8. [ ] Run the line-count check. If the body exceeds 250 lines,\n       tighten until it fits 150-220.\n9. [ ] Write the final body to a single file path provided by the\n       orchestrator (default: `.git\u002FPR_BODY.md` or\n       session-state-relative). Return the path; do not paste the\n       body inline unless explicitly asked.\n\n## Mandatory mermaid validation step\n\nRun every mermaid block in the draft through `mmdc` and refuse to\nsave until all pass.\n\n```bash\n# Extract mermaid blocks and validate each one.\n# Requires: npx --yes -p @mermaid-js\u002Fmermaid-cli mmdc (one-shot, no global install needed)\nawk '\u002F^```mermaid\u002F{n++; f=outdir\"\u002Fdiag\"n\".mmd\"; getline; while($0 != \"```\") {print > f; getline}}' outdir=\u002Ftmp\u002Fmermaid-check pr-body-draft.md\nfor f in \u002Ftmp\u002Fmermaid-check\u002Fdiag*.mmd; do\n  npx --yes -p @mermaid-js\u002Fmermaid-cli mmdc -i \"$f\" -o \"${f%.mmd}.svg\" --quiet || { echo \"INVALID: $f\"; exit 1; }\ndone\n```\n\nIf `mmdc` reports any error, fix the diagram and re-run. The skill\nMUST NOT save the draft until every mermaid block validates.\n\n### Diagram type and pitfalls reference\n\nThe full diagram-type-by-intent table, canonical templates, and the\nGitHub-renderer gotcha list (`mmdc` does NOT always catch GitHub\nrejections) live in `assets\u002Fmermaid-conventions.md`. Load it whenever\na PR body needs a mermaid block.\n\nCritical drift-known gotcha (the one most likely to bite, captured\ninline because it is not obvious from `mmdc` output):\n\n- **Square brackets in flowchart edge labels MUST be quoted.**\n  `A -->|[EXEC] work| B` parses on `mmdc` but is rejected by\n  GitHub's renderer (`Expecting 'TAGEND', ..., got 'SQS'`). Quote\n  the label: `A -->|\"[EXEC] work\"| B`. The same rule applies to\n  parentheses, colons, slashes, and pipes in edge labels.\n\nFor everything else (semicolons in classDiagram links, `note right\nof` closing rules, round brackets in node labels, inline\n`:::cssClass` failing in classDiagram on GitHub), see\n`assets\u002Fmermaid-conventions.md`.\n\n## Output contract\n\n- Exactly ONE markdown file is produced.\n- The file is **UTF-8 GitHub-Flavored Markdown**. Em dashes, smart\n  quotes, Unicode in mermaid labels, alerts, and collapsibles are\n  all permitted and encouraged where they improve readability.\n- Every mermaid block has been validated by `mmdc` and renders\n  without error.\n- The cite-or-omit rule applies absolutely.\n- The TL;DR is at most four sentences.\n- The body has an issue line directly under the TL;DR: `Fixes #N` or\n  `Closes #N` when the PR fully delivers issue N (GitHub closes it on\n  merge), `Refs #N` when it is partial or related. Never use a closing\n  keyword for partial work.\n- The body ends with the trailer:\n  `Co-authored-by: Copilot \u003C223556219+Copilot@users.noreply.github.com>`\n\n## Anti-patterns flagged -- refuse these\n\n- **Posting unvalidated mermaid.** A parser error renders as raw\n  code on GitHub and signals carelessness. Validate every block\n  before saving.\n- Pasting commit messages as the body. Commit messages are inputs,\n  not output.\n- Marketing tone or self-congratulation (\"this is a great\n  improvement\", \"significantly enhances\", \"best-in-class\"). Strip\n  on sight.\n- Diagrams without a legend, OR diagrams that fail `mmdc`.\n- A TL;DR longer than four sentences.\n- Skipping any required section because \"the PR is small\". A small\n  PR can have a one-line Implementation per file, but the section\n  header must still be present.\n- Restating the diff line-by-line in Implementation. That is what\n  the Files Changed tab is for.\n- Quoting a doc out of context. The self-check pass must verify\n  that the quoted phrase actually supports the claim.\n- **Forcing ASCII-only on the PR body.** That rule applies to\n  source files and CLI output, not to Primer-rendered markdown.\n  See \"Output charset rule\" above.\n\n## Gotchas\n\n- **Do not restate the diff.** Implementation is for intent, risk,\n  and decisions -- not a textual re-rendering of the patch.\n- **Do not quote out of context.** Re-read the surrounding paragraph\n  of the source doc before pasting a quote.\n- **Verify the source URL still serves the quoted text.** If the\n  doc has been edited and the phrase no longer appears verbatim,\n  drop the citation or find a new anchor.\n- **A doc-only PR still needs TL;DR, Problem, Validation, and\n  How-to-test.** \"The PR is trivial\" is not an exemption.\n- **Long evidence belongs in `\u003Cdetails>`.** Reviewers should be\n  able to read the whole body in a single screen-and-a-half scroll\n  and expand evidence on demand.\n\nCo-authored-by: Copilot \u003C223556219+Copilot@users.noreply.github.com>\n","# PR Description Skill -- Anchored, Concise, Validated PR Bodies\n\n## When to use\n\nTrigger this skill on any of the following intents:\n\n- \"write a PR description\"\n- \"draft a PR body\"\n- \"open a PR\" \u002F \"open this PR\" \u002F \"let's open the PR\"\n- \"fill in the PR template\"\n- \"summarize this branch as a PR\"\n- \"create the PR write-up\"\n\nReusable for any PR against `microsoft\u002Fapm`. The output is one\nmarkdown file that the orchestrator pastes into\n`gh pr create --body-file` or surfaces to the maintainer.\n\n## Output charset rule (read this first)\n\nThe repo-wide encoding rule at\n`.github\u002Finstructions\u002Fencoding.instructions.md` constrains\n**source files and CLI output** to printable ASCII because Windows\ncp1252 terminals raise `UnicodeEncodeError` on anything else. PR\ncomments are NOT source code and NOT CLI output -- they are rendered\nby GitHub's Primer engine, which expects UTF-8 GitHub-Flavored\nMarkdown.\n\nTwo distinct rules therefore apply:\n\n1. **Source files in this bundle** (`SKILL.md`, `assets\u002F*`) MUST\n   stay ASCII. They live in the repo and are subject to\n   `.github\u002Finstructions\u002Fencoding.instructions.md`.\n2. **The PR body output the skill produces** MUST be UTF-8\n   GitHub-Flavored Markdown. Use em dashes, smart punctuation,\n   alerts, collapsibles, task lists, and Unicode where it improves\n   readability. Mermaid diagram labels MAY use Unicode -- there is\n   no constraint here. The output is consumed by GitHub's renderer,\n   not by a Windows terminal.\n\nA previous version of this skill incorrectly required ASCII in the\nPR body. That made the output unreadable: no alerts, no collapsibles\nfor long evidence, no em dashes, no smart quotes. Reviewers had to\nscroll through hundreds of flat lines instead of scanning a body\nshaped by GFM features.\n\n## Concision targets (hard ceilings)\n\nThe skill aims for **150-220 lines** for a typical PR body. **300+\nlines is a smell, not a virtue**. If your draft exceeds 250 lines,\nrun a tightening pass: every sentence that does not change the\nreviewer's understanding must be cut.\n\nPer-section ceilings (enforced by `assets\u002Fsection-rubric.md`):\n\n| Section | Ceiling |\n|---|---|\n| TL;DR | 2-4 sentences |\n| Problem (WHY) | max 6 bullets, max 3 quoted anchors total |\n| Approach (WHAT) | a table OR 3-7 bullets; may be skipped if PR is purely additive (say \"additive: see Implementation\") |\n| Implementation (HOW) | one short paragraph per file, OR a table; no prose walls |\n| Diagrams | 1-3 mermaid blocks; every diagram preceded by a one-sentence legend |\n| Trade-offs | 3-5 bullets; mechanical PRs may be 1-2 |\n| Benefits | 3-5 numbered items, each measurable |\n| Validation | copy-paste real command output; do not narrate |\n| How to test | max 5 numbered steps |\n\nLong verbatim quote blocks, full file listings, and full validation\ntranscripts SHOULD live inside `\u003Cdetails>` so the body stays\nscannable.\n\n## Core principles (with quoted anchors)\n\nEach rule the skill enforces is backed by a verbatim quote from one\nof the two reference docs. If a rule below cannot be backed by a\nquote, it is downgraded to a \"should\" with the reason given.\n\n1. **Self-sufficient body.** A reviewer must be able to read the PR\n   body and form an opinion without opening any other doc, issue,\n   or chat. Every WHY-claim cites the source doc inline; every\n   named file is qualified with what changed in it; every diagram\n   has a one-sentence legend.\n\n   Anchor: Agent Skills,\n   [\"agents pattern-match well against concrete structures\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n\n2. **Anchored: every WHY-claim cites its source.** Every claim of\n   the form \"this violates X\" or \"this satisfies Y\" is followed by\n   a verbatim quoted phrase wrapped in a hyperlink to the source\n   page. Reproduce quotes character-for-character; do not paraphrase\n   inside link text.\n\n   Anchor: PROSE,\n   [\"Grounding outputs in deterministic tool execution transforms probabilistic generation into verifiable action.\"](https:\u002F\u002Fdanielmeppiel.github.io\u002Fawesome-ai-native\u002Fdocs\u002Fprose\u002F).\n\n3. **Cite-or-omit.** If a WHY-claim cannot be backed by a verbatim\n   quote, drop it or soften to a tradeoff statement. Never invent\n   justification.\n\n   Anchor: Agent Skills,\n   [\"Add what the agent lacks, omit what it knows\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n\n4. **Visual aid where structure is non-trivial.** Any change that\n   touches more than one file or alters control flow SHOULD include\n   at least one mermaid diagram. Add a second only when the\n   relationships are non-trivial. Never add a third unless it earns\n   its place. Each diagram MUST be preceded by a one-sentence legend.\n\n   Anchor: Agent Skills,\n   [\"agents pattern-match well against concrete structures\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n\n5. **Trade-offs explicit.** Address every non-obvious decision\n   (option chosen vs option rejected). For mechanical PRs this\n   section may be 1-2 bullets. For cross-cutting changes, surface\n   the rejected alternatives.\n\n   Anchor: PROSE,\n   [\"Favor small, chainable primitives over monolithic frameworks.\"](https:\u002F\u002Fdanielmeppiel.github.io\u002Fawesome-ai-native\u002Fdocs\u002Fprose\u002F).\n\n6. **Single artifact, no fluff.** One markdown file. No marketing\n   tone, no self-congratulation. TL;DR is at most four sentences.\n\n   Anchor: Agent Skills,\n   [\"When you find yourself covering every edge case, consider whether most are better handled by the agent's own judgment.\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n\n## GitHub-Flavored Markdown features the skill MUST use\n\nThe PR body is rendered by GitHub's Primer engine. Use the features\nthat engine provides; do not flatten the output to plain text.\n\n- **Alerts** for high-signal callouts:\n  `> [!NOTE]`, `> [!TIP]`, `> [!IMPORTANT]`, `> [!WARNING]`,\n  `> [!CAUTION]`. Reference:\n  https:\u002F\u002Fgithub.com\u002Forgs\u002Fcommunity\u002Fdiscussions\u002F16925.\n- **Collapsible sections** for long diffs, full validation output,\n  or appendix material:\n\n  ```\n  \u003Cdetails>\u003Csummary>Full audit output\u003C\u002Fsummary>\n\n  ...content...\n  \u003C\u002Fdetails>\n  ```\n\n  Use `\u003Cdetails open>` only when the content answers the most\n  likely first reviewer question.\n- **Task lists** for \"How to test\" sections:\n  `- [ ] Apply label, observe X`.\n- **Tables with alignment**: `| col | :---: | ---: |` for matrices.\n- **Permalink references** to specific lines in the diff:\n  `https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002F\u003Csha>\u002Fpath#L12-L34`.\n\nLong verbatim quote blocks, full file listings, and full validation\ntranscripts SHOULD live inside `\u003Cdetails>` so the body stays\nscannable.\n\n## Required body structure\n\n| # | Section | Purpose |\n|---|---------|---------|\n| 1 | Title line | Imperative summary; first line `\u003Cverb>(\u003Cscope>): \u003Csummary>`, max 100 chars |\n| 2 | TL;DR | 2-4 sentence executive summary |\n| 3 | Problem (WHY) | Observed failure modes; max 6 bullets, max 3 quoted anchors |\n| 4 | Approach (WHAT) | Table or 3-7 bullets; may say \"additive: see Implementation\" |\n| 5 | Implementation (HOW) | One short paragraph per file or a table |\n| 6 | Diagrams | 1-3 validated mermaid blocks, each with a legend; diagram type chosen per intent (`assets\u002Fmermaid-conventions.md`) |\n| 7 | Trade-offs | 3-5 bullets (1-2 if mechanical) |\n| 8 | Benefits | 3-5 numbered, measurable items |\n| 9 | Validation | Real command output, ideally inside `\u003Cdetails>` if long; **MUST include the Scenario Evidence subsection** (`assets\u002Fscenario-evidence-rubric.md`) for any behavior-change PR -- maps each user-promise scenario this PR touches to the test that proves it works, tagged with the APM principle the scenario serves |\n| 10 | How to test | Max 5 numbered or task-list steps |\n\nThe Trade-offs (7) and How to test (10) sections are non-skippable\nfor any PR that changes more than docs.\n\n## Activation contract -- inputs the orchestrator MUST gather first\n\nBefore invoking this skill, the orchestrator MUST have collected\nall of the following. The skill MUST NOT invent facts not present\nin these inputs.\n\n| Input | Source | Required |\n|-------|--------|----------|\n| Branch name (head) | `git rev-parse --abbrev-ref HEAD` | yes |\n| Base ref | usually `main`; ask if unclear | yes |\n| List of files changed | `git diff --name-status \u003Cbase>...HEAD` | yes |\n| Actual diff | `git diff \u003Cbase>...HEAD` | yes |\n| Commit messages on the branch | `git log --no-merges \u003Cbase>..HEAD --oneline` | yes |\n| CHANGELOG entry, if any | inspect `CHANGELOG.md` Unreleased section | yes |\n| Linked issue \u002F motivation | user-provided or referenced in commits, plus whether this PR fully delivers the issue | yes |\n| Validation evidence | output of `apm audit --ci`, `uv run pytest`, or equivalent | yes |\n| Scenario-test mapping | author-supplied or derived from diff: per user-promise scenario the PR touches, the test path proving it, plus the APM principle the scenario serves (taxonomy in `assets\u002Fscenario-evidence-rubric.md`) | conditional (required for any behavior-change PR; may be skipped for docs-only \u002F asset-bump \u002F pure-refactor per the rubric's skip clause, with the skip case stated in trade-offs) |\n| Mirror parity check, if applicable | `apm install --target copilot` output | conditional |\n\nIf any required input is missing, the orchestrator MUST stop and\ncollect it. This is a Progressive Disclosure boundary:\n[\"Context arrives just-in-time, not just-in-case.\"](https:\u002F\u002Fdanielmeppiel.github.io\u002Fawesome-ai-native\u002Fdocs\u002Fprose\u002F).\nDo not load `assets\u002Fpr-body-template.md` until the table above is\ncomplete.\n\n## Execution checklist\n\nRun these steps in order. Tick each before moving on.\n\n1. [ ] Confirm every row of the activation contract is filled in.\n   Defense-in-depth gate: before drafting the body, confirm the\n   repo's lint contract is green (canonical commands and lifecycle\n   binding live in `.apm\u002Finstructions\u002Flinting.instructions.md`). If lint is red,\n   STOP, fix, re-run; a PR body claiming green CI while lint fails\n   is a credibility tax we refuse to take on.\n2. [ ] Read the diff in full. Identify per-file change summary,\n       new files, deleted files, behavior changes at module\n       boundaries.\n3. [ ] Load `assets\u002Fpr-body-template.md`. This is the only point\n       at which the template enters context. Progressive Disclosure\n       in action:\n       [\"store them in `assets\u002F` and reference them from `SKILL.md` so they only load when needed.\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n4. [ ] Fill in the template top-to-bottom using only facts from\n       the activation contract. Every WHY-claim gets a verbatim\n       quoted anchor. If you cannot anchor a claim, drop it.\n5. [ ] Generate 1-3 mermaid diagrams. **Before drafting any block,\n       load `assets\u002Fmermaid-conventions.md`** to pick the right\n       diagram type per intent (sequenceDiagram for execution flow,\n       flowchart LR for pipeline \u002F architecture, stateDiagram-v2 for\n       state machines) and apply the boxing convention for NEW\n       behavior. Add a one-sentence legend above each diagram.\n6. [ ] **Validate every mermaid block deterministically (see\n       below). Do NOT save the draft until every block validates.**\n7. [ ] Load `assets\u002Fsection-rubric.md` and run the self-check pass.\n       Validation loop pattern from Agent Skills:\n       [\"do the work, run a validator (a script, a reference checklist, or a self-check), fix any issues, and repeat until validation passes.\"](https:\u002F\u002Fagentskills.io\u002Fskill-creation\u002Fbest-practices).\n8. [ ] Run the line-count check. If the body exceeds 250 lines,\n       tighten until it fits 150-220.\n9. [ ] Write the final body to a single file path provided by the\n       orchestrator (default: `.git\u002FPR_BODY.md` or\n       session-state-relative). Return the path; do not paste the\n       body inline unless explicitly asked.\n\n## Mandatory mermaid validation step\n\nRun every mermaid block in the draft through `mmdc` and refuse to\nsave until all pass.\n\n```bash\n# Extract mermaid blocks and validate each one.\n# Requires: npx --yes -p @mermaid-js\u002Fmermaid-cli mmdc (one-shot, no global install needed)\nawk '\u002F^```mermaid\u002F{n++; f=outdir\"\u002Fdiag\"n\".mmd\"; getline; while($0 != \"```\") {print > f; getline}}' outdir=\u002Ftmp\u002Fmermaid-check pr-body-draft.md\nfor f in \u002Ftmp\u002Fmermaid-check\u002Fdiag*.mmd; do\n  npx --yes -p @mermaid-js\u002Fmermaid-cli mmdc -i \"$f\" -o \"${f%.mmd}.svg\" --quiet || { echo \"INVALID: $f\"; exit 1; }\ndone\n```\n\nIf `mmdc` reports any error, fix the diagram and re-run. The skill\nMUST NOT save the draft until every mermaid block validates.\n\n### Diagram type and pitfalls reference\n\nThe full diagram-type-by-intent table, canonical templates, and the\nGitHub-renderer gotcha list (`mmdc` does NOT always catch GitHub\nrejections) live in `assets\u002Fmermaid-conventions.md`. Load it whenever\na PR body needs a mermaid block.\n\nCritical drift-known gotcha (the one most likely to bite, captured\ninline because it is not obvious from `mmdc` output):\n\n- **Square brackets in flowchart edge labels MUST be quoted.**\n  `A -->|[EXEC] work| B` parses on `mmdc` but is rejected by\n  GitHub's renderer (`Expecting 'TAGEND', ..., got 'SQS'`). Quote\n  the label: `A -->|\"[EXEC] work\"| B`. The same rule applies to\n  parentheses, colons, slashes, and pipes in edge labels.\n\nFor everything else (semicolons in classDiagram links, `note right\nof` closing rules, round brackets in node labels, inline\n`:::cssClass` failing in classDiagram on GitHub), see\n`assets\u002Fmermaid-conventions.md`.\n\n## Output contract\n\n- Exactly ONE markdown file is produced.\n- The file is **UTF-8 GitHub-Flavored Markdown**. Em dashes, smart\n  quotes, Unicode in mermaid labels, alerts, and collapsibles are\n  all permitted and encouraged where they improve readability.\n- Every mermaid block has been validated by `mmdc` and renders\n  without error.\n- The cite-or-omit rule applies absolutely.\n- The TL;DR is at most four sentences.\n- The body has an issue line directly under the TL;DR: `Fixes #N` or\n  `Closes #N` when the PR fully delivers issue N (GitHub closes it on\n  merge), `Refs #N` when it is partial or related. Never use a closing\n  keyword for partial work.\n- The body ends with the trailer:\n  `Co-authored-by: Copilot \u003C223556219+Copilot@users.noreply.github.com>`\n\n## Anti-patterns flagged -- refuse these\n\n- **Posting unvalidated mermaid.** A parser error renders as raw\n  code on GitHub and signals carelessness. Validate every block\n  before saving.\n- Pasting commit messages as the body. Commit messages are inputs,\n  not output.\n- Marketing tone or self-congratulation (\"this is a great\n  improvement\", \"significantly enhances\", \"best-in-class\"). Strip\n  on sight.\n- Diagrams without a legend, OR diagrams that fail `mmdc`.\n- A TL;DR longer than four sentences.\n- Skipping any required section because \"the PR is small\". A small\n  PR can have a one-line Implementation per file, but the section\n  header must still be present.\n- Restating the diff line-by-line in Implementation. That is what\n  the Files Changed tab is for.\n- Quoting a doc out of context. The self-check pass must verify\n  that the quoted phrase actually supports the claim.\n- **Forcing ASCII-only on the PR body.** That rule applies to\n  source files and CLI output, not to Primer-rendered markdown.\n  See \"Output charset rule\" above.\n\n## Gotchas\n\n- **Do not restate the diff.** Implementation is for intent, risk,\n  and decisions -- not a textual re-rendering of the patch.\n- **Do not quote out of context.** Re-read the surrounding paragraph\n  of the source doc before pasting a quote.\n- **Verify the source URL still serves the quoted text.** If the\n  doc has been edited and the phrase no longer appears verbatim,\n  drop the citation or find a new anchor.\n- **A doc-only PR still needs TL;DR, Problem, Validation, and\n  How-to-test.** \"The PR is trivial\" is not an exemption.\n- **Long evidence belongs in `\u003Cdetails>`.** Reviewers should be\n  able to read the whole body in a single screen-and-a-half scroll\n  and expand evidence on demand.\n\nCo-authored-by: Copilot \u003C223556219+Copilot@users.noreply.github.com>\n",{"name":5,"description":7},"main","59549aca5d39f2bf8cc6b15a62016a2a42746a54",".agents\u002Fskills\u002Fpr-description-skill",415,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm","https:\u002F\u002Fmicrosoft.github.io\u002Fapm\u002F","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-12 02:56:52",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add microsoft\u002Fapm --skill pr-description-skill",{"tool":68,"command":69},"bunx","bunx skills add microsoft\u002Fapm --skill pr-description-skill",{"tool":71,"command":72},"pnpm","pnpm dlx skills add microsoft\u002Fapm --skill pr-description-skill","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002FSKILL.md",true,[76,82,88,92,96,100,106,110,114,118,122,126,130,134,138,142,146,150,154,158],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"apm.yml","REFERENCE","参考文档",842,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fapm.yml",{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"assets\u002Fmermaid-conventions.md","ASSET","资产文件",8472,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fassets\u002Fmermaid-conventions.md",{"path":89,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":90,"sourceHtmlUrl":91},"assets\u002Fpr-body-template.md",6080,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fassets\u002Fpr-body-template.md",{"path":93,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":94,"sourceHtmlUrl":95},"assets\u002Fscenario-evidence-rubric.md",8720,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fassets\u002Fscenario-evidence-rubric.md",{"path":97,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":98,"sourceHtmlUrl":99},"assets\u002Fsection-rubric.md",6827,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fassets\u002Fsection-rubric.md",{"path":101,"resourceType":102,"resourceTypeDesc":103,"sizeBytes":104,"sourceHtmlUrl":105},"evals\u002F.gitignore","OTHER","其他",82,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002F.gitignore",{"path":107,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":108,"sourceHtmlUrl":109},"evals\u002Fcontent\u002Fauth-refactor.json",3081,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Fcontent\u002Fauth-refactor.json",{"path":111,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":112,"sourceHtmlUrl":113},"evals\u002Fcontent\u002Fdep-bump.json",2431,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Fcontent\u002Fdep-bump.json",{"path":115,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":116,"sourceHtmlUrl":117},"evals\u002Fcontent\u002Fdocs-only.json",2289,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Fcontent\u002Fdocs-only.json",{"path":119,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":120,"sourceHtmlUrl":121},"evals\u002Fevals.json",1225,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Fevals.json",{"path":123,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":124,"sourceHtmlUrl":125},"evals\u002Ffixtures\u002Fauth-refactor__with_skill.md",3812,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Ffixtures\u002Fauth-refactor__with_skill.md",{"path":127,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":128,"sourceHtmlUrl":129},"evals\u002Ffixtures\u002Fauth-refactor__without_skill.md",1009,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Ffixtures\u002Fauth-refactor__without_skill.md",{"path":131,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":132,"sourceHtmlUrl":133},"evals\u002Ffixtures\u002Fdep-bump__with_skill.md",1415,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Ffixtures\u002Fdep-bump__with_skill.md",{"path":135,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":136,"sourceHtmlUrl":137},"evals\u002Ffixtures\u002Fdep-bump__without_skill.md",246,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Ffixtures\u002Fdep-bump__without_skill.md",{"path":139,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":140,"sourceHtmlUrl":141},"evals\u002Ffixtures\u002Fdocs-only__with_skill.md",1800,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Ffixtures\u002Fdocs-only__with_skill.md",{"path":143,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":144,"sourceHtmlUrl":145},"evals\u002Ffixtures\u002Fdocs-only__without_skill.md",264,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Ffixtures\u002Fdocs-only__without_skill.md",{"path":147,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":148,"sourceHtmlUrl":149},"evals\u002FREADME.md",4730,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002FREADME.md",{"path":151,"resourceType":102,"resourceTypeDesc":103,"sizeBytes":152,"sourceHtmlUrl":153},"evals\u002Fresults\u002F.gitkeep",0,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Fresults\u002F.gitkeep",{"path":155,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":156,"sourceHtmlUrl":157},"evals\u002Ftriggers.json",3588,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fevals\u002Ftriggers.json",{"path":159,"resourceType":160,"resourceTypeDesc":161,"sizeBytes":162,"sourceHtmlUrl":163},"scripts\u002Frun_evals.py","SCRIPT","脚本",11065,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fpr-description-skill\u002Fscripts\u002Frun_evals.py",[165,172,178,183,188,193],{"skillNo":166,"name":167,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":171,"publishedAt":47},"01M699JMZBYWPBT7JYWBSB95Z6","hello","MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fshared\u002Fminimal_skill\u002F.apm\u002Fskills\u002Fhello\u002FSKILL.md",[],[167],{"skillNo":173,"name":174,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":177,"publishedAt":47},"01M699JKAMZ4DH1PYJMXHE4FG4","placeholder","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fs25_copilot_alias\u002F.apm\u002Fskills\u002Fplaceholder\u002FSKILL.md",[],[174],{"skillNo":179,"name":174,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":182,"publishedAt":47},"01M699JHR9DKJ7BZHAPF6DZX2Z","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fs24_priority_override\u002F.apm\u002Fskills\u002Fplaceholder\u002FSKILL.md",[],[174],{"skillNo":184,"name":174,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":187,"publishedAt":47},"01M699JG5BJBZSWM25F1VMJ2H6","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fs23_error_renderer\u002F.apm\u002Fskills\u002Fplaceholder\u002FSKILL.md",[],[174],{"skillNo":189,"name":174,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":192,"publishedAt":47},"01M699JEFSMBP3HNS061R15CE9","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fs22_gemini_md_only\u002F.apm\u002Fskills\u002Fplaceholder\u002FSKILL.md",[],[174],{"skillNo":194,"name":174,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":168,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":197,"publishedAt":47},"01M699JCRCJCVZ3Z3RD8F9MXF5","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fapm\u002Fblob\u002Fmain\u002Ftests\u002Fintegration\u002Ffixtures\u002Ftarget_resolution\u002Fs21_codex_dir\u002F.apm\u002Fskills\u002Fplaceholder\u002FSKILL.md",[],[174]]