Starter Extension (Runnable Example)
This example is a full capability reference extension. It intentionally demonstrates every extension capability surface, including parser/preflight/services/search/schema hooks.
Use it to learn APIs, then narrow capabilities for production extensions.
Contents
manifest.json-> extension metadata/capabilitiespackage.json-> local dependency metadataindex.js-> capability demonstrations
End-to-End Run
From repository root:
# 1) Copy into project extension root
mkdir -p .agents/pm/extensions
cp -R docs/examples/starter-extension .agents/pm/extensions/starter-extension
# 2) Install dependencies for the copied extension
cd .agents/pm/extensions/starter-extension
npm install
cd -
# 3) Install/activate in project scope
pm extension --install --project .agents/pm/extensions/starter-extension
# 4) Run a starter command
pm starter ping --name "agent"
# 5) Reload extension modules after edits
pm extension --reload --project
# 6) Optional watch-mode semantics
pm extension --reload --project --watch
# 7) Verify runtime health
pm extension --doctor --project --detail summary
Expected outcomes:
pm starter pingreturns deterministic output (plain text when starter service overrides output formatting).extension --doctorshowsdetails.summary.statusasokorwarn.- If
warn, inspectdetails.summary.warning_codesanddetails.triage.remediation. extension --reloadreturns deterministic load/activation diagnostics for cache-busted imports.
Policy-Restricted Variant
To test governance controls with this extension:
- Set
settings.extensions.policy.modetowarnorenforce. - Block one surface (for example
commands.override). - Re-run
pm extension --doctor --detail summary.
You should see extension_policy_* warnings and policy counters in details.triage.
CI-Friendly Verification Commands
pm contracts --command extension --flags-only --json
pm extension --doctor --project --detail summary --strict-exit
node scripts/run-tests.mjs test -- tests/unit/extension-loader.spec.ts tests/unit/extension-command.spec.ts
Notes
- Keep production manifests minimal: only declare capabilities you need.
- Prefer command metadata (
action,examples,failure_hints) for machine+human diagnostics. - Keep parser/preflight/service overrides narrow and deterministic.
Related Examples
docs/examples/policy-restricted-extension/README.mddocs/examples/sdk-contract-consumer/README.md
Examples - Starter-extension - Readme
remote
Report an issue