PT
Docs / Security

Security model

GenPM is secure by design and verifiable by anyone. It never promises "100 % secure"; it guarantees ten invariants, each with a test that blocks every release:

  1. Integrity — installed bytes are exactly the tree of commit c, never a branch.
  2. Zero execution — no lifecycle scripts, Git hooks, submodules or filters.
  3. Confinement — writes stay inside the project, in the planned paths.
  4. No executables — injected files are written with mode 0644.
  5. Consent — no MCP config, npm installs or overwrites without your yes.
  6. Secrets — GenPM never reads .env values.
  7. Registry authority — publishing reads GitHub, never the client.
  8. Signed manifests — the CLI only installs Ed25519-signed manifests.
  9. Immutability — a published version never changes.
  10. Tenant isolation — no query crosses registries.

The same deterministic scanner runs in the registry (on publish) and in the CLI (on every install), so a compromised registry is not enough to bypass it.

Reporting

Email hello@genpm.net with subject [SECURITY] or use GitHub Private Vulnerability Reporting. First response within 48 hours. See /security.