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
3.4 KiB
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. |
|
Gotchas
apm.yml'stype: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: autopublishes the authoritative local layout as-is. Anything narrower needs an explicit repo-path list — don't assumeautomeans "scoped down to what's relevant."apm marketplace add(registering a marketplace as a consumer, pointing at someone else's catalog) andapm 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.ymlmust use${VAR}indirection, never literal values, so they're resolved at install/runtime and never committed to the manifest. apm experimental enable registriesmust run before anyregistry.*config takes effect. Declaring aregistries:block or runningapm config set registry.*without it silently does nothing — no error, no warning.- Plain
apm auditandapm audit --cicheck different things: plainapm auditscans deployed files for hidden Unicode only;--ciadditionally runs lockfile-consistency checks, install-replay drift detection, and org policy checks. A clean plainapm auditis 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.