Files
holocron/plugins/kyberforge/skills/apm-workflow/SKILL.md
Defame1297 591b9cccb8 fix(kyberforge): resolve second round of PR #91 review findings
Two review passes on PR #91 (correctness + simplification) found the
prior fixup commit (d6fd9b6) left the deprecation notice it added
half-applied, cited a nonexistent ADR, and introduced/compounded a
few duplicate restatements of the same facts across apm-workflow's
skill files and apm-orchestrate's Hard rules.

- plugin-author/SKILL.md cited ADR-0016 (doesn't exist) instead of
  ADR-0006 for the version-parity invariant.
- The deprecation banner on plugin-author/marketplace-author wasn't
  reflected in their routing `description:` frontmatter, forge's
  routing table, either kyberforge README skill table, or CONTEXT.md
  — now propagated consistently; routing behavior is unchanged since
  issue #90 (repo-wide apm conversion) hasn't landed yet.
- apm-orchestrate's `configure` operation only covered scaffolding a
  new package, not editing an existing apm.yml (e.g. removing a
  marketplace.packages[] entry, which has no dedicated `apm` CLI verb
  and is just a manifest edit). Added `edit-config`, intentionally
  ungated — a local file edit isn't the same class of irreversible
  action as `apm publish`, and normal review already gates the commit.
- Deduplicated facts restated 3-4x across SKILL.md/references/ADR
  boundaries (audit semantics, reserved name prefixes, marketplace-add
  direction, registries precondition), and trimmed configure.md's
  ~55-line apm.yml schema dump — copied near-verbatim from the
  research doc — down to a compact key list with a pointer, matching
  install.md's existing terse cross-referencing style.

Deliberately left as-is: apm-orchestrate's parallel/sequential
fan-out logic stays inline rather than extracted to a shared
reference, since neither git-orchestrate nor gitea-orchestrate need
it yet — premature extraction for a single caller.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0186ERbyACLRuRxPRnqwpa4m
2026-08-11 15:20:46 +00:00

3.4 KiB

name, description, metadata
name description metadata
apm-workflow Use when the user wants to author or edit an apm.yml manifest (dependencies, scripts, compilation, policy, registries), scaffold a new apm package or marketplace (apm plugin init, apm marketplace init/package add), install or resolve dependencies declared in apm.yml (apm install, apm install [PACKAGE_REF]), register a marketplace as a consumer, compile/pack/publish an apm package for distribution, or validate/audit apm.yml and installed content (apm audit, apm marketplace check) — even if the user doesn't say "apm" explicitly, e.g. "set up the package manifest", "scaffold this as an apm package", "install my apm dependencies", "resolve apm.yml deps", "build the distributable", "check this passes CI". Do not use for installing the apm binary itself or setting up an agent runtime — use apm-install for those.
category source_keys
apm
context7-microsoft-apm

Gotchas

  • apm.yml's type: field (instructions, skill, hybrid, prompts) constrains what .apm/ may contain — set it before scaffolding content, not after. Changing it later doesn't retroactively validate what's already on disk.
  • includes: auto publishes the authoritative local layout as-is. Anything narrower needs an explicit repo-path list — don't assume auto means "scoped down to what's relevant."
  • apm marketplace add (registering a marketplace as a consumer, pointing at someone else's catalog) and apm marketplace package add (registering a local package into a marketplace you're building) are opposite directions of the same command family — don't conflate them.
  • MCP server secrets (headers, env vars) inside apm.yml must use ${VAR} indirection, never literal values, so they're resolved at install/runtime and never committed to the manifest.
  • apm experimental enable registries must run before any registry.* config takes effect. Declaring a registries: block or running apm config set registry.* without it silently does nothing — no error, no warning.
  • Plain apm audit and apm audit --ci check different things: plain apm audit scans deployed files for hidden Unicode only; --ci additionally runs lockfile-consistency checks, install-replay drift detection, and org policy checks. A clean plain apm audit is not a CI-equivalent pass.

Step 1 — Dispatch

Invocation Action Reference
/apm-workflow configure Author/edit apm.yml; scaffold a new package (apm plugin init) references/configure.md
/apm-workflow install Resolve/fetch dependencies declared in apm.yml (apm install, apm install [PACKAGE_REF]) references/install.md
/apm-workflow marketplace Build a marketplace, register packages into it, or register a marketplace as a consumer (apm marketplace init/check/package add/add) references/marketplace.md
/apm-workflow compile Generate per-target output, bundle, or publish (apm compile, apm pack, apm publish) references/compile.md
/apm-workflow audit Validate integrity/policy or wire a CI gate (apm audit, apm audit --ci) references/audit.md

Read only the reference file matching the requested action — each is self-contained for its concern.

Step 2 — Execute

Follow the matched reference file's instructions. Report back which apm command(s) were run (or drafted, if the user asked for a plan rather than execution) and their outcome.