Root package.json configuration for MetaSaver monorepos. Use when creating or auditing root package.json files to ensure workspace configuration, required scripts (build, dev, lint, test, format, clean), turbo pipeline scripts, packageManager field, and only devDependencies at root (no dependencies except cross-platform binaries).
Creates and validates root package.json for MetaSaver monorepos, enforcing workspace config, 18+ scripts, devDependencies-only rule, and cross-platform binaries. Use when initializing projects or auditing existing root package.json files.
/plugin marketplace add metasaver/claude-marketplace/plugin install core-claude-plugin@metasaver-marketplaceThis skill inherits all available tools. When active, it can use any tool Claude has access to.
templates/root-package.json.templateProvides root package.json template and validation logic for MetaSaver monorepo configuration.
Configure pnpm workspaces, monorepo scripts, package manager, devDependencies, and cross-platform compatibility.
Located at: templates/root-package.json.template
| Rule | Requirement | Details |
|---|---|---|
| 1 | Monorepo metadata | name: @metasaver/*, private: true, packageManager: pnpm@*, engines (node, pnpm), type: "module" |
| 2 | Standard scripts | build, clean, dev, lint*, prettier*, test*, db*, docker*, setup* |
| 3 | DevDependencies only | ENSURE ONLY devDependencies (except cross-platform binaries). Place all tooling in devDependencies |
| 4 | Workspaces in YAML | USE pnpm-workspace.yaml instead of workspaces field in package.json |
| 5 | Cross-platform binaries | PLACE turbo-linux-64, turbo-windows-64 in dependencies (NOT optionalDependencies) |
{
"name": "@metasaver/project-name",
"private": true,
"packageManager": "pnpm@10.20.0",
"engines": { "node": ">=22.0.0", "pnpm": ">=9.0.0" },
"type": "module"
}
| Category | Scripts |
|---|---|
| Build | build, clean, dev |
| Lint/Format | lint, lint:fix, lint:tsc, prettier, prettier:fix |
| Test | test:unit, test:coverage, test:watch |
| Database | db:generate, db:migrate, db:seed, db:studio |
| Docker | docker:up, docker:down, docker:logs |
| Setup | setup:npmrc, setup:env, setup:all |
Core: @commitlint/cli, @metasaver/core-eslint-config, @metasaver/core-prettier-config, dotenv, husky, lint-staged, prettier, turbo, typescript
Use pnpm-workspace.yaml instead.
{
"dependencies": {
"turbo-linux-64": "2.6.1",
"turbo-windows-64": "2.6.1"
}
}
Validation checks (pseudo-code):
// Rule 1: Metadata
validate(
config.name?.startsWith("@metasaver/"),
config.private === true,
config.packageManager?.startsWith("pnpm@"),
config.engines?.node,
config.engines?.pnpm,
);
// Rule 2: Scripts (18 required)
const required = [
"build",
"clean",
"dev",
"lint",
"lint:fix",
"lint:tsc",
"prettier",
"prettier:fix",
"test:unit",
"test:coverage",
"db:generate",
"db:migrate",
"db:seed",
"db:studio",
"docker:up",
"docker:down",
"setup:npmrc",
"setup:env",
];
validate(required.every((s) => config.scripts?.[s]));
// Rule 3: DevDependencies
const devDeps = [
"@commitlint/cli",
"@metasaver/core-eslint-config",
"@metasaver/core-prettier-config",
"dotenv",
"husky",
"lint-staged",
"prettier",
"turbo",
"typescript",
];
validate(devDeps.every((d) => config.devDependencies?.[d]));
// Rule 4: No workspaces field
validate(!config.workspaces);
// Rule 5: Cross-platform binaries
validate(
config.dependencies?.["turbo-linux-64"],
config.dependencies?.["turbo-windows-64"],
);
/skill scope-check if not provided/skill audit-workflow/skill remediation-optionspnpm-workspace-config, turbo-config