Root package.json Configuration Skill
Provides root package.json template and validation logic for MetaSaver monorepo configuration.
Purpose
Configure pnpm workspaces, monorepo scripts, package manager, devDependencies, and cross-platform compatibility.
Template
Located at: templates/root-package.json.template
The 5 Root Package.json Standards
| 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) |
Rule 1: Monorepo Metadata
{
"name": "@metasaver/project-name",
"private": true,
"packageManager": "pnpm@10.20.0",
"engines": { "node": ">=22.0.0", "pnpm": ">=9.0.0" },
"type": "module"
}
Rule 2: Required Scripts (18 total)
| 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 |
Rule 3: Required DevDependencies
Core: @commitlint/cli, @metasaver/core-eslint-config, @metasaver/core-prettier-config, dotenv, husky, lint-staged, prettier, turbo, typescript
Rule 4: No Workspaces Field
Use pnpm-workspace.yaml instead.
Rule 5: Cross-Platform Binaries
{
"dependencies": {
"turbo-linux-64": "2.6.1",
"turbo-windows-64": "2.6.1"
}
}
Validation
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"],
);
Best Practices
- Use template as starting point
- ENSURE all scripts use turbo for orchestration
- PLACE cross-platform binaries in dependencies (not devDependencies)
- VERIFY only devDependencies at root (place all tooling in devDependencies only)
- RE-AUDIT after making changes
Integration
- Repository type: Use
/skill scope-check if not provided
- Workflow:
/skill audit-workflow
- Remediation:
/skill remediation-options
- Related:
pnpm-workspace-config, turbo-config
1---2name: root-package-json-config-23description: 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).4---56# Root package.json Configuration Skill78Provides root package.json template and validation logic for MetaSaver monorepo configuration.910## Purpose1112Configure pnpm workspaces, monorepo scripts, package manager, devDependencies, and cross-platform compatibility.1314## Template1516Located at: `templates/root-package.json.template`1718## The 5 Root Package.json Standards1920| Rule | Requirement | Details |21| ---- | ----------------------- | --------------------------------------------------------------------------------------------------- |22| 1 | Monorepo metadata | name: `@metasaver/*`, private: true, packageManager: `pnpm@*`, engines (node, pnpm), type: "module" |23| 2 | Standard scripts | build, clean, dev, lint*, prettier*, test*, db*, docker*, setup* |24| 3 | DevDependencies only | ENSURE ONLY devDependencies (except cross-platform binaries). Place all tooling in devDependencies |25| 4 | Workspaces in YAML | USE pnpm-workspace.yaml instead of workspaces field in package.json |26| 5 | Cross-platform binaries | PLACE turbo-linux-64, turbo-windows-64 in dependencies (NOT optionalDependencies) |2728### Rule 1: Monorepo Metadata2930```json31{32 "name": "@metasaver/project-name",33 "private": true,34 "packageManager": "pnpm@10.20.0",35 "engines": { "node": ">=22.0.0", "pnpm": ">=9.0.0" },36 "type": "module"37}38```3940### Rule 2: Required Scripts (18 total)4142| Category | Scripts |43| ----------- | ------------------------------------------------ |44| Build | build, clean, dev |45| Lint/Format | lint, lint:fix, lint:tsc, prettier, prettier:fix |46| Test | test:unit, test:coverage, test:watch |47| Database | db:generate, db:migrate, db:seed, db:studio |48| Docker | docker:up, docker:down, docker:logs |49| Setup | setup:npmrc, setup:env, setup:all |5051### Rule 3: Required DevDependencies5253Core: `@commitlint/cli`, `@metasaver/core-eslint-config`, `@metasaver/core-prettier-config`, `dotenv`, `husky`, `lint-staged`, `prettier`, `turbo`, `typescript`5455### Rule 4: No Workspaces Field5657Use `pnpm-workspace.yaml` instead.5859### Rule 5: Cross-Platform Binaries6061```json62{63 "dependencies": {64 "turbo-linux-64": "2.6.1",65 "turbo-windows-64": "2.6.1"66 }67}68```6970## Validation7172Validation checks (pseudo-code):7374```javascript75// Rule 1: Metadata76validate(77 config.name?.startsWith("@metasaver/"),78 config.private === true,79 config.packageManager?.startsWith("pnpm@"),80 config.engines?.node,81 config.engines?.pnpm,82);8384// Rule 2: Scripts (18 required)85const required = [86 "build",87 "clean",88 "dev",89 "lint",90 "lint:fix",91 "lint:tsc",92 "prettier",93 "prettier:fix",94 "test:unit",95 "test:coverage",96 "db:generate",97 "db:migrate",98 "db:seed",99 "db:studio",100 "docker:up",101 "docker:down",102 "setup:npmrc",103 "setup:env",104];105validate(required.every((s) => config.scripts?.[s]));106107// Rule 3: DevDependencies108const devDeps = [109 "@commitlint/cli",110 "@metasaver/core-eslint-config",111 "@metasaver/core-prettier-config",112 "dotenv",113 "husky",114 "lint-staged",115 "prettier",116 "turbo",117 "typescript",118];119validate(devDeps.every((d) => config.devDependencies?.[d]));120121// Rule 4: No workspaces field122validate(!config.workspaces);123124// Rule 5: Cross-platform binaries125validate(126 config.dependencies?.["turbo-linux-64"],127 config.dependencies?.["turbo-windows-64"],128);129```130131## Best Practices1321331. Use template as starting point1342. ENSURE all scripts use turbo for orchestration1353. PLACE cross-platform binaries in dependencies (not devDependencies)1364. VERIFY only devDependencies at root (place all tooling in devDependencies only)1375. RE-AUDIT after making changes138139## Integration140141- Repository type: Use `/skill scope-check` if not provided142- Workflow: `/skill audit-workflow`143- Remediation: `/skill remediation-options`144- Related: `pnpm-workspace-config`, `turbo-config`