Marketplace

root-package-json-config

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).

$ 安裝

git clone https://github.com/metasaver/metasaver-marketplace /tmp/metasaver-marketplace && cp -r /tmp/metasaver-marketplace/plugins/metasaver-core/skills/config/workspace/root-package-json-config ~/.claude/skills/metasaver-marketplace

// tip: Run this command in your terminal to install the skill


name: root-package-json-config description: 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).

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

RuleRequirementDetails
1Monorepo metadataname: @metasaver/*, private: true, packageManager: pnpm@*, engines (node, pnpm), type: "module"
2Standard scriptsbuild, clean, dev, lint*, prettier*, test*, db*, docker*, setup*
3DevDependencies onlyENSURE ONLY devDependencies (except cross-platform binaries). Place all tooling in devDependencies
4Workspaces in YAMLUSE pnpm-workspace.yaml instead of workspaces field in package.json
5Cross-platform binariesPLACE 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)

CategoryScripts
Buildbuild, clean, dev
Lint/Formatlint, lint:fix, lint:tsc, prettier, prettier:fix
Testtest:unit, test:coverage, test:watch
Databasedb:generate, db:migrate, db:seed, db:studio
Dockerdocker:up, docker:down, docker:logs
Setupsetup: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

  1. Use template as starting point
  2. ENSURE all scripts use turbo for orchestration
  3. PLACE cross-platform binaries in dependencies (not devDependencies)
  4. VERIFY only devDependencies at root (place all tooling in devDependencies only)
  5. 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

Repository

metasaver
metasaver
Author
metasaver/metasaver-marketplace/plugins/metasaver-core/skills/config/workspace/root-package-json-config
0
Stars
0
Forks
Updated2d ago
Added1w ago