B24phpsdk Maintainer
bitrix24/b24phpsdk
A skill your agent uses whenever working with GitHub issues in the bitrix24/b24phpsdk repository: creating new issues, reading existing ones, planning implementation from an issue, referencing an…
A skill your agent uses to run a four-panel adversarial advisory review on any pull request that touches the OpenAPM specification artifact (docs/src/content/docs/specs/openapm-.md), its inline /…
$ npx skills add microsoft/apm --skill apm-spec-guardian -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install microsoft/apm apm-spec-guardian --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/microsoft/apm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.apm/skills/apm-spec-guardian .claude/skills/apm-spec-guardian && 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 "apm-spec-guardian" agent skill from https://github.com/microsoft/apm/tree/main/.apm/skills/apm-spec-guardian into .claude/skills/apm-spec-guardian/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-spec-guardian", 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/microsoft/apm/tree/main/.apm/skills/apm-spec-guardianType 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 microsoft/apm --skill apm-spec-guardian -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install microsoft/apm apm-spec-guardian --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/apm.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.apm/skills/apm-spec-guardian .agents/skills/apm-spec-guardian && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "apm-spec-guardian" agent skill from https://github.com/microsoft/apm/tree/main/.apm/skills/apm-spec-guardian into .agents/skills/apm-spec-guardian/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-spec-guardian", 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 microsoft/apm --skill apm-spec-guardian -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install microsoft/apm apm-spec-guardian --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/apm.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.apm/skills/apm-spec-guardian .cursor/skills/apm-spec-guardian && 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 "apm-spec-guardian" agent skill from https://github.com/microsoft/apm/tree/main/.apm/skills/apm-spec-guardian into .cursor/skills/apm-spec-guardian/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-spec-guardian", 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/microsoft/apm.git --path .apm/skills/apm-spec-guardian--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 microsoft/apm --skill apm-spec-guardian -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install microsoft/apm apm-spec-guardian --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/apm.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.apm/skills/apm-spec-guardian .gemini/skills/apm-spec-guardian && 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 "apm-spec-guardian" agent skill from https://github.com/microsoft/apm/tree/main/.apm/skills/apm-spec-guardian into .gemini/skills/apm-spec-guardian/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-spec-guardian", 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 microsoft/apm apm-spec-guardianInstalls 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 microsoft/apm --skill apm-spec-guardian -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/microsoft/apm.git skills-src && mkdir -p .github/skills && cp -r skills-src/.apm/skills/apm-spec-guardian .github/skills/apm-spec-guardian && 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 "apm-spec-guardian" agent skill from https://github.com/microsoft/apm/tree/main/.apm/skills/apm-spec-guardian into .github/skills/apm-spec-guardian/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-spec-guardian", 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 microsoft/apm --skill apm-spec-guardian -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install microsoft/apm apm-spec-guardian --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/microsoft/apm.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.apm/skills/apm-spec-guardian .opencode/skills/apm-spec-guardian && 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 "apm-spec-guardian" agent skill from https://github.com/microsoft/apm/tree/main/.apm/skills/apm-spec-guardian into .opencode/skills/apm-spec-guardian/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "apm-spec-guardian", 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.
apm-spec-guardianA skill your agent uses to run a four-panel adversarial advisory review on any pull request that touches the OpenAPM specification artifact (docs/src/content/docs/specs/openapm-.md), its inline /…
Apm Spec Guardian is an agent skill from microsoft/apm, published by the product's own GitHub organization. Use this skill to run a four-panel adversarial advisory review on any pull request that touches the OpenAPM specification artifact (docs/src/content/docs/specs/openapm-.md), its inline / sidecar JSON Schemas (docs/src/content/docs/specs/schemas/.schema.json), or the conformance fixture seed (tests/fixtures/spec-conformance/). The panel fans out to four spec-ecosystem reviewers (swagger-openapi-editor, oci-distribution-editor, pkgmgr-registry-contract-editor, w3c-tag-architect), each running in its own agent…
Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including assets (for example `assets/comment-template.md`, `assets/linter-checklist.md` and `assets/panelist-return-schema.json`).
It sits in Backend & APIs, covering Monitoring and alerting, OpenAPI specifications and Pull requests. It works with OpenAPI. The repository describes itself as: Agent Package Manager. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 280b8a7. 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:
ghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh, which can reach the network depending on how they are called.
From 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.
Apm Spec Guardian loads about 4.9k tokens when it runs. Until then it costs about 234 tokens; SKILL.md has 2,045 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 microsoft/apm at commit 280b8a7, republished under its MIT licence (© microsoft). 2,045 words, ~4,871 tokens.
.claude/skills/apm-spec-guardian/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.This skill institutionalizes the two-round adversarial spec review
that produced OpenAPM v0.1 by hand. The panel is FAN-OUT +
SYNTHESIZER. Each panelist runs in its own agent thread (via the
task tool) and returns JSON matching
assets/panelist-return-schema.json. The orchestrator schema-validates
each return, hands all returns to the spec-editor-synthesizer
(also a task thread, returns JSON matching
assets/synthesizer-return-schema.json), runs the linter checklist
in assets/linter-checklist.md, then renders ONE comment from
assets/comment-template.md.
This skill is ADVISORY by design. It does not compute a binary verdict, it does not apply verdict labels, and it does not gate merge. The panel surfaces findings; the maintainer ships.
This skill activates ONLY when the PR diff touches at least one of:
docs/src/content/docs/specs/openapm-*.md (the normative spec
artifact, current and future versions)docs/src/content/docs/specs/schemas/*.schema.json (sidecar JSON
Schemas, if/when the inline Appendix-A schemas are extracted to
files)tests/fixtures/spec-conformance/** (the conformance fixture seed)Edits to any OTHER documentation page MUST NOT trigger this skill.
The maintainer's general docs-sync skill covers those.
APPROVE /
REJECT, no spec-approved / spec-rejected label, no
deterministic verdict computation. The synthesizer returns a
ship_decision (fold_and_ship / needs_revision /
next_brief); this is prose for the human reviewer, never
auto-applied as a label or status check.ship_decision: fold_and_ship REQUIRES
shocked_meter_avg >= 7.0. Below 7.0 the synthesizer MUST emit
needs_revision (single drafter pass on the existing artifact)
or next_brief (another round of panel review with a new brief).
The floor is advisory wording in the comment, not a status check.new_blocking_findings[].length > 0, the synthesizer MUST emit
ship_decision: next_brief regardless of the shocked_meter_avg.
A blocking finding from one panel is not outweighed by three
panels rating the artifact 9/10.add-comment call and one remove-labels call.
The remove-labels call sweeps spec-review (trigger
idempotency). NO add-labels call -- there are no verdict labels.
Panelist subagents and the synthesizer subagent return JSON only
and MUST NOT call any gh write command, post comments, apply
labels, or touch PR state.assets/comment-template.md after all subagents
return and the linter checklist runs..github/instructions/encoding.instructions.md
(if present) and additionally enforces it on the spec artifact via
linter check 1.| Agent | Role | Always active? |
|---|---|---|
| Swagger / OpenAPI Editor | Interface-contract discipline (schemas, $ref hygiene, oneOf discriminators, conformance enumeration) | Yes |
| OCI Distribution Editor | Registry-HTTP rigor (hash envelopes, mirror tolerance, fail-closed extraction, supply-chain threat model) | Yes |
| Package-Manager Registry-Contract Editor | Dependency-resolution rigor (semver dialect pinning, lockfile determinism, transitive conflict policy, reserved-slot defensive MUSTs) | Yes |
| W3C TAG Architect | Web-platform integration / architecture (extensibility, layering, fingerprinting, machine-readable contract surface) | Yes |
| Spec Editor Synthesizer | Same hand that drafted; aggregates panel returns, computes shocked_meter_avg, clusters convergent themes, produces fold-now / defer / reject lists and ship_decision | Yes |
The roster is invariant for the v0.1 lineage. Changing it requires bumping the skill version.
apm-spec-guardian SKILL (orchestrator thread)
|
+------ Wave 0: scope decision (orchestrator-internal) ------+
| classify diff: |
| - editorial-only (tiny patch, single section, no schema |
| change, no fixture add) -> skip Wave 3, run Wave 5 |
| linter only, render lightweight comment |
| - editorial-patch (default for PR-trigger) |
| -> skip Wave 1+2, start at Wave 3 |
| - new-version (operator opt-in via PR body marker |
| `apm-spec-guardian: new-version`) |
| -> run Wave 1 + 2 + 3 + 4 + 5 |
+------------------------------------------------------------+
|
IF new-version mode: run Wave 1 + Wave 2 first
|
Wave 1 (optional, new-version only): task -> spec-editor-synthesizer
acting as ASSESSOR -- reads issue context + corpus +
produces SPEC_BRIEF_v0 (session-state artifact)
Wave 2 (optional, new-version only): task -> spec-editor-synthesizer
acting as DRAFTER -- produces SPEC_DRAFT_v0 from SPEC_BRIEF_v0
|
Wave 3: FAN-OUT via task tool (4 panelists in parallel)
+------+------+--------+------+
v v v v
swagger oci pkgmgr tag
(each returns JSON per assets/panelist-return-schema.json)
|
v <-- S4 schema-validate per return
v <-- on malformed: re-spawn that panelist
v (max 2 attempts; then placeholder)
v
Wave 4: task -> spec-editor-synthesizer
- aggregates findings across 4 panels
- computes shocked_meter_avg
- resolves dissent
- clusters into convergent themes
- emits fold_now[] + defer_v0_1_1[] + defer_v0_2[] + reject[]
- emits ship_decision honoring ship-meter floor + blocker veto
- returns assets/synthesizer-return-schema.json
|
v <-- S4 schema-validate
v
Wave 5: LINTER (mechanical, from assets/linter-checklist.md)
- 11 checks; each MUST pass
- failures append to ship_prose as advisory notes
- linter does NOT change ship_decision; it informs the
human reviewer
|
Wave 6: orchestrator (sole writer)
| |
v v
add-comment remove-labels
(max:1) [spec-review]
(trigger idempotency reset)The orchestrator classifies the diff before spawning any panelist. Decision rules, in order:
apm-spec-guardian: new-version, OR the diff creates a new
docs/src/content/docs/specs/openapm-*.md file (not an edit to
an existing one), classify as new-version. Run Waves 1 -> 2 ->
3 -> 4 -> 5 -> 6.properties keys changed,<a id="req- was added or removed,
classify as editorial-only. SKIP Wave 3 + Wave 4. Run Wave 5
linter on the modified artifact. Render the lightweight
editorial-only branch of assets/comment-template.md (just the
linter result + a one-line "no substantive spec change
detected").Document the decision in the comment header (one line: "Scope: <mode>;
diff = +X/-Y lines across N files").
Spawn the following four tasks in PARALLEL via the task tool, one
task per persona:
spec-swagger-editorspec-oci-editorspec-pkgmgr-editorspec-tag-architectEach task prompt MUST:
../../agents/spec-<slug>.agent.md) so the subagent loads its
own scope, lens, and pedigree.assets/panelist-return-schema.json and require the
subagent to emit JSON matching that schema as its FINAL message.new_blocking_findings ONLY for issues that would break a
conformant implementation, leak a security guarantee, or invalidate
a published normative claim. Use new_recommended_findings for
substantive improvements. Use new_nit_findings for one-line
editorial polish. The panel is advisory; nothing you return blocks
merge; pick the severity that honestly matches your signal
strength."round (1 on first pass, 2+ on subsequent rounds in
new-version mode).gh write commands, NO posting
comments, NO label changes, NO touching PR state. JSON return only.Pass all four validated panelist JSON returns to a task invocation
that loads ../../agents/spec-editor-synthesizer.agent.md. The prompt
MUST:
convergence_table, convergent_themes (themes flagged
by 2+ panels), fold_now[] (surgical single-section fixes only),
defer_v0_1_1[] (small patches deferrable to next patch
release), defer_v0_2[] (architectural work requiring a reserved
slot in a future major), reject[] (findings the synthesizer
declines, with rationale), ship_decision, ship_prose,
linter_handoff_notes.sum(panelist.new_blocking_findings) > 0 across all panels,
ship_decision MUST be next_brief.shocked_meter_avg < 7.0, ship_decision MUST be
needs_revision.ship_decision MAY be fold_and_ship.reject[] with rationale.assets/synthesizer-return-schema.json and require JSON
return.ship_decision is prose for the
human reviewer, not a gate. NO gh write commands.Validate the synthesizer return against
assets/synthesizer-return-schema.json. On failure, re-spawn once
with the violation cited.
Run assets/linter-checklist.md against the in-scope artifact set
(spec markdown + schemas + fixtures). The checklist has 11 mechanical
checks; each is a one-liner producing exit code 0 (or empty grep
output where noted). Record pass / fail per check.
Linter outcomes are ADVISORY: a failed check does NOT change the
synthesizer's ship_decision. It DOES surface in the comment as a
"Linter notes" section so the maintainer can decide whether to fold
the fix into the same PR. If ship_decision == fold_and_ship AND
any linter check failed, the comment surfaces the conflict
prominently ("Synthesizer recommends ship; linter found N issues
worth folding first").
Load assets/comment-template.md, fill the placeholders from the
synthesizer + panelist JSON + linter results, and emit it as exactly
ONE comment.
Filling rules:
fold_now[]
verbatim, ordered as returned.<details> blocks if either has more than 3 items.<details> at the bottom.Then sweep the spec-review label via safe-outputs.remove-labels
(idempotent on missing labels). NO add-labels call.
assets/comment-template.md.remove-labels call sweeping [spec-review].add-labels call.gh pr comment, NEVER call gh pr edit --add-label.
They return JSON. The orchestrator is the sole writer.ship_decision: next_brief with a ship_prose note that the
loop budget is exhausted and the maintainer should ESCALATE
(manually decide between drafting a fix or closing the PR).The orchestrator increments and tracks the round counter; subagents receive it as input but MUST NOT trust panel-side memory.
new_blocking_finding and a shocked_meter of 9 means "the spec is
mostly excellent but this one thing would break a conformant
implementation". That blocker still vetoes fold_and_ship. Do not
let the synthesizer average it away.summary field) but MUST NOT appear in the synthesizer's
fold_now[].patch_instruction or in the rendered comment body
outside <details> collapsed sections. The synthesizer auto-rejects
panelist proposals that would add banned tokens to the artifact.gh toolset.
The "subagents must not write" rule is enforced by the prompt
contract in each .agent.md plus the safe-outputs.add-comment.max: 1 fail-soft.autopilot-pr-review-worker is the general OSS multi-persona review for any
non-trivial PR in the repo. apm-spec-guardian is its narrow,
spec-only sibling: a different persona roster, a different ship
decision schema (shocked_meter instead of stance enum), and a
mandatory linter step. The architectural shape (FAN-OUT +
SYNTHESIZER + single-writer interlock + advisory regime) is
deliberately the same so a contributor reading one can read the
other. Do not merge them; the persona pedigrees and the artifact
type (spec vs code) are different enough that one-size-fits-all
prompts would dilute both.
© microsoft, 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 4 other files (assets) in .apm/skills/apm-spec-guardian of microsoft/apm.
Open the folder on GitHubat commit 280b8a7
Apm Spec Guardian 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 |
|---|---|---|---|---|---|---|
| Apm Spec Guardian this skillmicrosoft/apm | 4k | — | ~4.9k | Automated safety check: Pass | MIT | |
| B24phpsdk Maintainerbitrix24/b24phpsdk | 102 | — | ~10k | Automated safety check: Notes | MIT | |
| Guidesmicronaut-projects/micronaut-openapi | 114 | — | ~1.9k | Automated safety check: Notes | Apache-2.0 | |
| Ramp CI Integrationjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~1.3k | Automated safety check: Pass | MIT | |
| PR Reviewconfluentinc/mcp-confluent | 167 | — | ~4.6k | Automated safety check: Notes | MIT | |
| Counterfact PR Creationcounterfact/api-simulator | 170 | — | ~918 | Automated safety check: Pass | MIT |
bitrix24/b24phpsdk
A skill your agent uses whenever working with GitHub issues in the bitrix24/b24phpsdk repository: creating new issues, reading existing ones, planning implementation from an issue, referencing an…
micronaut-projects/micronaut-openapi
Create or update standalone Micronaut Guides in micronaut-projects/micronaut-guides, including topic discovery, guide authoring, validation, PDF export, and pull request handoff.
jeremylongshore/tons-of-skills-marketplace
Build deterministic CI gates for a Ramp integration using the official OpenAPI contract, local fixtures, and explicitly approved sandbox probes.
confluentinc/mcp-confluent
Reviews pull requests for the Confluent MCP server. An agent skill from confluentinc/mcp-confluent.
counterfact/api-simulator
Create Counterfact pull requests with the required agent-authored acceptance and repository-learning notes; do not use to review another PR.
oryx-labs/oryxos
初始化 OryxOS(或同类 JDK 21 + Spring Boot 3.x 企业级单体)的工程地基:Maven 多模块骨架、 结构化日志、Actuator + Prometheus 监控、Spring MVC + 虚拟线程、springdoc OpenAPI、 统一响应体与全局异常/错误码、Google 格式 + 阿里编码规约(Spotless + 阿里 P3C +…
microsoft/apm
A skill your agent uses to cut an APM release from the current worktree: assess whether the cycle since the last tag warrants a patch or minor bump (semver discipline against the…
microsoft/apm
A skill your agent uses to run a holistic regrounding pass on the entire microsoft/apm documentation corpus against current source code, page-by-page, and emit surgical fixes for stale claims.
microsoft/apm
A skill your agent uses to verify CLAIM-LEVEL grounding of a documentation page (or set of pages) against the source code.
microsoft/apm
A skill your agent uses to write the PR description (PR body) for any pull request opened against microsoft/apm.
microsoft/apm
A skill your agent uses to implement ONE microsoft/apm issue already selected by autopilot-issue-delivery-scheduler.
microsoft/apm
Drive ONE already selected open pull request in microsoft/apm to mergeable.
Works with
Categories
A skill your agent uses to run a four-panel adversarial advisory review on any pull request that touches the OpenAPM specification artifact (docs/src/content/docs/specs/openapm-.md), its inline /…. Apm Spec Guardian is an agent skill from microsoft/apm, published by the product's own GitHub organization.json), or the conformance fixture seed (tests/fixtures/spec-conformance/).
Apm Spec Guardian fits situations like: its inline / sidecar JSON Schemas (docs/src/content/docs/specs/schemas/.schema.json); the conformance fixture seed (tests/fixtures/spec-conformance/).
Run `npx skills add microsoft/apm --skill apm-spec-guardian -a claude-code`. Or copy the skill folder (.apm/skills/apm-spec-guardian in microsoft/apm) into .claude/skills/apm-spec-guardian in your project. Claude Code loads it when a task matches its description.
Run `npx skills add microsoft/apm --skill apm-spec-guardian -a codex`. Or copy the skill folder (.apm/skills/apm-spec-guardian in microsoft/apm) into .agents/skills/apm-spec-guardian 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 microsoft/apm --skill apm-spec-guardian -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/apm-spec-guardian, .gemini/skills/apm-spec-guardian, .github/skills/apm-spec-guardian and .opencode/skills/apm-spec-guardian in your project.
Going by SKILL.md and its folder, Apm Spec Guardian needs the command-line tools its instructions call (gh).
SKILL.md contains no URLs. Its commands use gh, which can reach the network depending on how they are called. 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.
Apm Spec Guardian is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.9k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Apm Spec Guardian: B24phpsdk Maintainer (bitrix24/b24phpsdk, 102 stars), Guides (micronaut-projects/micronaut-openapi, 114 stars), Ramp CI Integration (jeremylongshore/tons-of-skills-marketplace, 2.8k stars) and PR Review (confluentinc/mcp-confluent, 167 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
microsoft (a GitHub organization, an official publisher) maintains it in microsoft/apm, which has 3,982 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on October 7, 2026.
Source: microsoft/apm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.