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 no dependencies at root (only devDependencies).
Inherits all available tools
Additional assets for this skill
This 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 | NO dependencies (except cross-platform binaries). Tooling in devDependencies only |
| 4 | Workspaces in YAML | NO workspaces field (use pnpm-workspace.yaml) |
| 5 | Cross-platform binaries | 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