Review syncpack
Review the syncpack setup for alignment with current official best practices - dependency specifier enforcement (catalog: vs workspace:*), version-drift detection across workspaces, and package.json hygiene automation. Your reply must be a plan of suggested changes: concise, actionable, structured - not only prose.
Invocation
Text after the slash command is additional scope/focus (e.g. "lint rules only", "formatting") - narrow the review accordingly.
Ground truth (mandatory)
Your pre-trained knowledge of syncpack may be outdated (major versions changed config shape significantly). Do not draft suggestions from memory alone.
- Resolve "syncpack" via the Context7 MCP (
resolve-library-id → query-docs) at the installed major: config file name/schema, lint rule set (specifiers, versions, semverRange), filter/sort/format options, CLI commands (lint, fix, format) and flags.
- For anything Context7 lacks, use Firecrawl search/scrape restricted to the official domain (
jamiemason.github.io/syncpack) - config reference and release notes for the pinned major.
- Version currency: catalog
syncpack in pnpm-workspace.yaml vs latest stable; confirm config format matches the pinned major (older JSON configs break on newer majors).
- Cite the retrieved source next to every finding; label anything unverifiable as Unverified.
Scope artifacts
- syncpack config file at repo root (
.syncpackrc / syncpack.config.* - locate actual file)
- Root scripts in package.json:
deps:check (syncpack lint), deps:fix (syncpack fix), deps:format (syncpack format) and their gate position inside pnpm run ci
- pnpm-workspace.yaml
catalog: as the canonical source; per-package specifiers (catalog: third-party, workspace:* internal, peer-range exemptions)
.claude/rules/quality/ dependency-workflow documentation ↔ .cursor twin
Analysis axes
- Specifier policy: lint rules enforce exactly the repo contract - third-party deps must use
catalog:, internal @repo/** must use workspace:*, peer ranges exempt; violations fail deps:check.
- Drift detection: semver grouping catches same-intent packages diverging across workspaces (e.g. React/TanStack families, oxlint toolchain); groups defined deliberately rather than defaults alone.
- Formatting automation: field ordering normalized via
syncpack format; deps:format --check wired into CI; deps:fix safe to run blindly by agents (no destructive rewrites).
- Catalog interplay: syncpack rules and pnpm
catalogMode: prefer reinforce each other; no rules fighting pnpm catalogs (double sources of truth).
- Version currency: renamed rules/options at installed major adopted; deprecated config removed.
DX & AI-agentic workflow
Verify agent-friendliness: syncpack lint failures are precise and machine-actionable; the add-a-dependency procedure (catalog first → catalog: reference → pnpm deps:fix if flagged) documented so agents follow it deterministically.
Steps
- Collect ground truth before reading config.
- Read the syncpack config; run
pnpm deps:check and pnpm deps:format --check to confirm gates green.
- Walk each analysis axis; note findings or explicit one-line "no issues".
- Compose the plan grouped Critical / Improvements / Optional with what, where, why, and source citations.
Output format
- Critical - gates failing/not wired into CI, policy violations shipping.
- Improvements - rule/group alignment with current guidance.
- Optional - nice-to-haves; prefix pure polish with Nit:.
Read-only review: produce the plan only; implement nothing unless explicitly asked afterwards.
1---2name: review-syncpack3description: syncpack review (specifier rules for catalog/workspace links, formatting of package.json fields, drift gates) against current official syncpack best practices. USE WHEN: user runs /review-syncpack or explicitly asks for this review. DO NOT USE WHEN: reviewing app code, other dev dependencies, or implementing features.4---56# Review syncpack78Review the syncpack setup for alignment with current official best practices - dependency specifier enforcement (`catalog:` vs `workspace:*`), version-drift detection across workspaces, and package.json hygiene automation. Your reply must be a **plan of suggested changes**: concise, actionable, structured - not only prose.910## Invocation1112Text after the slash command is additional scope/focus (e.g. "lint rules only", "formatting") - narrow the review accordingly.1314## Ground truth (mandatory)1516Your pre-trained knowledge of syncpack may be outdated (major versions changed config shape significantly). **Do not draft suggestions from memory alone.**17181. Resolve "syncpack" via the **Context7 MCP** (`resolve-library-id` → `query-docs`) at the installed major: config file name/schema, lint rule set (`specifiers`, `versions`, `semverRange`), filter/sort/format options, CLI commands (`lint`, `fix`, `format`) and flags.192. For anything Context7 lacks, use **Firecrawl search/scrape restricted to the official domain** (`jamiemason.github.io/syncpack`) - config reference and release notes for the pinned major.203. Version currency: catalog `syncpack` in [pnpm-workspace.yaml](../../../pnpm-workspace.yaml) vs latest stable; confirm config format matches the pinned major (older JSON configs break on newer majors).214. Cite the retrieved source next to every finding; label anything unverifiable as **Unverified**.2223## Scope artifacts2425- syncpack config file at repo root (`.syncpackrc` / `syncpack.config.*` - locate actual file)26- Root scripts in [package.json](../../../package.json): `deps:check` (`syncpack lint`), `deps:fix` (`syncpack fix`), `deps:format` (`syncpack format`) and their gate position inside `pnpm run ci`27- [pnpm-workspace.yaml](../../../pnpm-workspace.yaml) `catalog:` as the canonical source; per-package specifiers (`catalog:` third-party, `workspace:*` internal, peer-range exemptions)28- `.claude/rules/quality/` dependency-workflow documentation ↔ `.cursor` twin2930## Analysis axes3132- **Specifier policy**: lint rules enforce exactly the repo contract - third-party deps must use `catalog:`, internal `@repo/**` must use `workspace:*`, peer ranges exempt; violations fail `deps:check`.33- **Drift detection**: semver grouping catches same-intent packages diverging across workspaces (e.g. React/TanStack families, oxlint toolchain); groups defined deliberately rather than defaults alone.34- **Formatting automation**: field ordering normalized via `syncpack format`; `deps:format --check` wired into CI; `deps:fix` safe to run blindly by agents (no destructive rewrites).35- **Catalog interplay**: syncpack rules and pnpm `catalogMode: prefer` reinforce each other; no rules fighting pnpm catalogs (double sources of truth).36- **Version currency**: renamed rules/options at installed major adopted; deprecated config removed.3738## DX & AI-agentic workflow3940Verify agent-friendliness: `syncpack lint` failures are precise and machine-actionable; the add-a-dependency procedure (catalog first → `catalog:` reference → `pnpm deps:fix` if flagged) documented so agents follow it deterministically.4142## Steps43441. Collect ground truth before reading config.452. Read the syncpack config; run `pnpm deps:check` and `pnpm deps:format --check` to confirm gates green.463. Walk each analysis axis; note findings or explicit one-line "no issues".474. Compose the plan grouped Critical / Improvements / Optional with **what**, **where**, **why**, and source citations.4849## Output format50511. **Critical** - gates failing/not wired into CI, policy violations shipping.522. **Improvements** - rule/group alignment with current guidance.533. **Optional** - nice-to-haves; prefix pure polish with **Nit:**.5455Read-only review: produce the plan only; implement nothing unless explicitly asked afterwards.