create-apm-package Skill 🏗️
Overview
This skill scaffolds a new APM-native package using the "Source in .apm/" pattern. It is used for greenfield projects where APM is the primary distribution format from day one.
🚫 Non-Negotiables
- Source in .apm/ — Primitives MUST be authored inside the
.apm/directory. - Kebab-case — Package names must be lowercase with hyphens.
- No Overwrites — Never overwrite an existing directory without explicit confirmation.
- Governance Docs — Every package must include
docs/governance.md.
Decision Tree
- New Package? -> Proceed with
scripts/scaffold_apm.py. - Existing Plugin? -> Route to
convert-plugin-to-apm. - Hybrid needed? -> Use
--allow-hybridflag in scaffold script.
Generated Structure
<package-name>/
apm.yml
README.md
.gitignore
.apm/
skills/
agents/
instructions/
prompts/
hooks/
mcp/
scripts/
tests/
docs/
governance.md
attribution.md
package-lifecycle.md
scripts/
tests/
Validation Steps
After scaffolding, always run:
python scripts/validate_apm_package.py --path ./<package-name>
Anti-Patterns
- Duplicate Roots: Creating
.apm/skillswhile also havingskills/in the same package. - Missing Docs: Skipping the
docs/folder in ateamorenterpriselane. - Absolute Paths: Using machine-specific paths in
apm.yml.