agent-package-manager
Agent Package Manager
Procedures
Step 1: Assess the repository and the requested APM outcome
- Inspect the repository root for
apm.yml,apm.lock.yaml,.github/,.claude/,.cursor/,.opencode/, andapm_modules/. - Execute
apm --versionandapm configto confirm the installed CLI and current configuration. - If
apm.ymlexists, readreferences/manifest-and-lockfile.mdbefore changing dependencies, scripts, or compilation settings. - If the request is about package installation, updates, pruning, or removal, read
references/command-workflows.mdbefore executing APM commands. - If no
apm.ymlexists and the user wants APM in the repository, initialize the project withapm initorapm init --yes. - If the repository already uses another agent configuration flow and the user did not ask to migrate it, limit the change to the requested APM scope instead of replacing the existing setup.
Step 2: Shape or repair the manifest deliberately
- Read
assets/apm.yml.templatewhen the repository needs a fresh or repaired manifest structure. - Keep
nameandversionpresent at the top level; treat them as required contract fields. - Add APM package dependencies under
dependencies.apmand MCP servers underdependencies.mcp. - Prefer canonical dependency forms in
apm.ymlafter installation. Default to the repository shorthandowner/repo/pathfor GitHub-hosted skills and packages, for examplewebmaxru/agent-skills/skills/webmcp, and preserve explicitpath,ref, andaliasonly when they are needed. - Use pinned refs for shared team packages when reproducibility matters more than automatic drift.
- Keep local path dependencies only for active local development. Replace them with remote references before recommending bundle distribution.
- If the request includes scripts, define them under
scriptsand verify that each script can be previewed or executed throughapm list,apm preview, orapm run.
Step 3: Manage dependencies with verification, not guesswork
- Preview risky changes with
apm install --dry-run,apm uninstall --dry-run, orapm prune --dry-runwhen the repository already has installed packages. - Install or update packages with
apm install,apm install <package>,apm install --update, orapm deps updateaccording to the requested scope. - After running
apm install --updateorapm deps update, verify the lockfileresolved_commitactually changed. If packages were served from a stale cache, follow the "Stale packages after update" workflow inreferences/troubleshooting.md. - When the request is to install a single skill from a repository, provide the package path down to that skill directory instead of a vague repo-only placeholder, for example
apm install webmaxru/agent-skills/skills/webmcp. - Verify the resolved state with
apm deps list,apm deps tree, orapm deps info <package>after dependency changes. - Treat
apm.lock.yamlas the source of truth for resolved commits and deployed files. Recommend committing it for team and CI reproducibility. - If the repository needs MCP discovery or selection, use
apm mcp list,apm mcp search <query>, andapm mcp show <server>before editing MCP entries by hand. - If installation output reports collisions or skipped files, read
references/troubleshooting.mdbefore retrying with forceful options. - If the repository consumes packages from itself (self-referencing dependency), remind the user that changes must be committed and pushed before APM can fetch them. Read
references/troubleshooting.mdfor the "Self-referencing dependencies" section.
Step 4: Compile and validate only when it adds value
- Read
references/command-workflows.mdbefore changing compilation strategy or target selection. - Use
apm compile --validateto validate primitives when the goal is correctness rather than output generation. - Use
apm compile --dry-runbefore large compilation changes or when checking placement decisions. - Explain that
apm installalready deploys prompts, agents, skills, hooks, and MCP integrations for supported tools;apm compilemainly exists to generate instruction files such asAGENTS.mdorCLAUDE.md. - Use explicit targets when the repository serves more than one runtime or tool family.
- Keep
compilation.excludealigned with build and dependency directories so compilation does not re-scan generated output. - If the project needs continuous regeneration during authoring, use
apm compile --watchonly after the one-shot validation path is clean.
Step 5: Operate scripts, runtimes, and distribution flows professionally
- List project scripts with
apm listbefore invoking them. - Preview prompt-driven scripts with
apm preview <script> -p key=valuebefore usingapm run <script> -p key=valuein an automation or debugging workflow. - Use
apm runtime status,apm runtime list, andapm runtime setup <runtime>when the repository depends on an APM-managed runtime. - If the goal is CI fan-out, air-gapped delivery, or release traceability, read
references/command-workflows.mdand useapm packonly after a successful install has producedapm.lock.yamland deployed files. - Use
apm unpackonly for additive extraction of a previously packed bundle. Do not present it as a replacement for dependency authoring. - Recommend
apm-actionor a prebuilt bundle when repeated installs create avoidable CI cost or network risk.
Error Handling
- If
apmis missing, install or update it first, then verify withapm --versionbefore editing project files. - If
apm installreports authentication failures, readreferences/troubleshooting.mdand fix host authentication before retrying. - If
apm installreports file collisions, inspect the diagnostic summary, retry with--verbosewhen needed, and use--forceonly when overwriting local files is clearly intended. - If
apm compileis unnecessary for the user’s toolchain, avoid adding it as busywork; prefer the lighter install-only path. - If
apm packfails becauseapm.lock.yamlis missing or deployed files are absent, rerunapm installbefore retrying. - If the repository depends on local path packages, do not recommend
apm packuntil those dependencies are replaced with remote references.
More from webmaxru/agent-skills
github-agentic-workflows
Authors, reviews, installs, and debugs GitHub Agentic Workflows in repositories, including workflow markdown, frontmatter, gh aw compile and run flows, safe outputs, security guardrails, and operational patterns. Use when creating or maintaining GH-AW automation. Don't use for standard deterministic GitHub Actions YAML, generic CI pipelines, or non-GitHub automation systems.
96proofreader-api
Implements and debugs browser Proofreader API integrations in JavaScript or TypeScript web apps. Use when adding Proofreader availability checks, monitored model downloads, proofread flows, correction metadata handling, or permissions-policy checks for built-in proofreading. Don't use for generic prompt engineering, server-side LLM SDKs, or cloud AI services.
93webmcp
Implements and debugs browser WebMCP integrations in JavaScript or TypeScript web apps. Use when exposing imperative tools through navigator.modelContext, annotating HTML forms for declarative tools, handling agent-invoked form flows, or validating WebMCP behavior in the current Chrome preview. Don't use for server-side MCP servers, REST tool backends, or non-browser providers.
92prompt-api
Implements and debugs browser Prompt API integrations in JavaScript or TypeScript web apps. Use when adding LanguageModel availability checks, session creation, prompt or promptStreaming flows, structured output, download progress UX, or iframe permission-policy handling. Don't use for server-side LLM SDKs, REST AI APIs, or non-browser providers.
92writing-assistance-apis
Implements and debugs browser Summarizer, Writer, and Rewriter integrations in JavaScript or TypeScript web apps. Use when adding availability checks, model download UX, session creation, summarize or write or rewrite flows, streaming output, abort handling, or permissions-policy constraints for built-in writing assistance APIs. Don't use for generic prompt engineering, server-side LLM SDKs, or cloud AI services.
92language-detector-api
Implements and debugs browser Language Detector API integrations in JavaScript or TypeScript web apps. Use when adding LanguageDetector support checks, availability and model download flows, session creation, detect() calls, input-usage measurement, permissions-policy handling, or compatibility fallbacks for built-in language detection. Don't use for server-side language detection SDKs, cloud translation services, or generic NLP pipelines.
92