# Shopify/packwerk

Good things come in small packages.

Repository: https://github.com/Shopify/packwerk
Canonical: https://ross.abutalabs.com/products/packwerk
Language: Ruby
License: MIT
License Family: permissive
Last push: 2026-08-26T01:36:53+00:00

## Health v2 (maintenance only)
Score: 88/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 67, longevity 100
- inputs: {"age_days": 2170, "days_push": 8, "days_rel": 8, "gap_med": 199, "n_releases_24m": 4}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1907, forks 122 (observed 2026-08-28T04:05:52.610011+00:00)

## What it is
Packwerk is a Ruby gem from Shopify that enforces architectural boundaries and modularization in Rails applications by grouping files into packages and checking constant references against package dependencies. It helps large existing codebases become more modular incrementally without blocking development.

## Use cases
- enforce package boundaries in a rails monolith
- modularize a large ruby codebase
- detect cross-package constant references
- define public APIs for ruby packages
- prevent dependency violations between modules
- gradually split a rails app into packages

## When to choose
- you maintain a large Rails 6+ app using Zeitwerk and want enforced modularity
- you want to catch boundary violations in CI before code review
- you're incrementally decomposing a monolith into packages

## When to avoid
- your project is not Ruby or doesn't use Zeitwerk autoloading
- you need a general-purpose dependency graph visualizer rather than enforcement
- your codebase is small enough that modular boundaries add overhead without benefit

## Facets
- artifact type: library
- maturity: active
- function: linter, developer-tools, cli
- domain: developer-tools, web-development, backend
- platform: ruby, cli
- tags: modularization, architecture-boundaries, rails, code-structure, static-analysis

## Member repositories
- Shopify/packwerk (main) score 88

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:52.610011+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:11:14.972987+00:00, confidence not recorded.
  - readme: https://github.com/Shopify/packwerk (fetched 2026-08-28T04:05:52.610011+00:00, sha cb0328791e23)
- Data as of 2026-08-30T08:39:29.467469+00:00.
