ZH
测试版翻译
文档 / Publishing

genpm.json reference

A complete source manifest (genpm.json at the root of your repo):

{
  "$": 1,
  "n": "@acme/billing",
  "v": "1.2.0",
  "s": { "en": "Stripe subscriptions with webhooks", "es": "Suscripciones de Stripe con webhooks" },
  "d": "src/lib/billing",
  "k": ["stripe", "billing", "subscriptions"],
  "g": { "@core/db": "^1.0.0" },
  "p": { "stripe": "^17.0.0" },
  "e": ["STRIPE_SECRET_KEY", "STRIPE_WEBHOOK_SECRET"],
  "m": [{ "n": "stripe", "c": "npx", "a": ["-y", "@stripe/mcp"], "e": ["STRIPE_SECRET_KEY"] }]
}

Keys are one character long to keep manifests cheap in tokens. Every surface that shows manifests to an LLM includes this legend:

genpm keys: n=name v=version s=summary r=repo t=git-ref c=commit-sha d=install-dir i=repo-subdir x=ai-rules-file l=license k=keywords g=genpm-deps p=npm-deps e=env-vars m=mcp-servers(n=name c=command a=args u=url e=env)
Key Name Required Rules
n name yes @scope/name, lowercase.
v version yes Strict SemVer, no v prefix, no build metadata.
d dest yes Relative POSIX path in the consumer project. No .., no absolute paths, never .git/, node_modules/ or .genpm/, at most 8 segments.
s summary recommended ≤ 160 chars, one line. String or { "en": "…", "es": "…" } (must include en).
r repo no HTTPS Git URL; defaults to the origin remote.
t ref no A tag or a 40-hex SHA; defaults to v{v}. Never a branch.
i include no Repo subdirectory to inject (default .).
x context no AI rules file relative to i (default AGENTS.md, ≤ 16 KB).
l license no SPDX expression; the license detected by GitHub wins.
k keywords no Up to 10, ^[a-z0-9-]{2,32}$.
g genpm deps no { "@core/db": "^1.0.0" }, up to 10. Resolved by GenPM.
p npm deps no Proposed to the user; never installed without consent.
e env no Variable names (^[A-Z][A-Z0-9_]{1,63}$), never values.
m mcp no Up to 5 servers: "@stripe/mcp" or { "n", "c", "a", "u", "e" }.
_* extensions no Ignored by official tools. Any other key is an error.

The source manifest must not contain c (its own commit); the registry adds r, t, c, i, x and l when it resolves it.

Exclude files with .genpmignore (gitignore syntax, relative to i). .git/, .github/, node_modules/, genpm.json, .genpmignore and .env* are always excluded.

Limits

What Limit
Files per package 2,000
Package size 20 MB (override with --max-size when installing)
Single file 1 MB
AI rules file 16 KB; ~1,500 tokens recommended, warning above 4,000
Path length / depth 200 characters / 8 segments
Keywords · genpm deps · npm deps · env vars · MCP servers 10 · 10 · 30 · 30 · 5

genpm validate checks all of this locally with the same code the registry runs.

JSON Schema: /schema/v1/genpm.json.