monorepo-overview

Explain GROWI's pnpm workspace and Turborepo orchestration with changeset-based versioning.

1.5k|242|Updated Feb 16, 2017
One-click install
npx skills add https://github.com/growilabs/growi --skill monorepo-overview
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: monorepo-overview
Source: https://github.com/growilabs/growi/tree/main/.claude/skills/monorepo-overview
Command: npx skills add https://github.com/growilabs/growi --skill monorepo-overview

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides a concise, actionable map of GROWI's monorepo layout, workspace orchestration, and release practices so developers can correctly add, build, and version packages without breaking dependent workspaces or CI pipelines.

Core Features & Use Cases

  • Repository topology: Explains the apps/ and packages/ layout, key shared packages (for example @growi/core and @growi/pluginkit), and where configuration files like pnpm-workspace.yaml and turbo.json live.
  • Workspace & build orchestration: Details pnpm workspace usage, Turborepo task orchestration, explicit per-package turbo.json patterns for build-order, and when to update dependencies to avoid missing dist artifacts.
  • Release and versioning workflow: Describes the Changesets workflow for shared libraries and the separate versioning policies for the main app and microservices.
  • Use case: When adding a new package that depends on @growi/core, use this Skill to determine what workspace references, turbo.json dependsOn entries, and changeset steps are required to build, test, and release safely.

Quick Start

Use the monorepo-overview skill to summarize the build-order and workspace dependency changes required when a package adds a new dependency on @growi/core.

Frequently Asked Questions about monorepo-overview

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How does Turborepo orchestrate build order in a pnpm workspace monorepo?

Turborepo orchestrates pnpm workspace build order using explicit per-package turbo.json dependsOn declarations, ensuring dependencies compile before downstream packages to prevent missing dist artifacts.

How do I add a new package dependency on @growi/core in a monorepo?

To add a dependency on @growi/core, update workspace references, add turbo.json dependsOn entries for build-order, and follow changeset steps to safely build, test, and release the package.

What is the Changesets workflow for versioning shared libraries in a monorepo?

The Changesets workflow manages versioning for shared monorepo libraries separately from the main app and microservices, coordinating releases across pnpm workspace packages to maintain consistency.

Why does my Turborepo build fail with missing dist artifacts?

Missing dist artifacts occur when turbo.json dependency declarations are outdated or missing, causing Turborepo to execute build tasks out of order relative to pnpm workspace package dependencies.

Do I need explicit turbo.json dependsOn entries for every package dependency?

Yes, explicit per-package turbo.json dependsOn entries are required to define build-order correctly, ensuring Turborepo orchestrates tasks like build, lint, and test safely across workspace dependencies.

What is the repository topology of a feature-based monorepo using pnpm workspace?

A feature-based monorepo topology organizes code into apps/ and packages/ directories, with shared packages like @growi/core and configuration files like pnpm-workspace.yaml and turbo.json at the root.