This repository is the prodkit monorepo, managed with pnpm workspaces and Turborepo (turbo).
It is organized for multiple publishable packages plus dedicated top-level workspaces for
examples, benchmarks, and maintainer tooling.
Use each publishable package README under packages/*/README.md as the source of truth for that package's installation, API reference, usage examples, and consumer-facing commands:
@prodkit/op(published to npm with the package)@prodkit/op-lint(published to npm with the package)@prodkit/std(reserved package; entrypoint intentionally has no utility exports)
Other workspace roots are maintainer- or CI-oriented: examples (@prodkit/examples, topic folders under examples/op/ and examples/op/di/), tools (@prodkit/tools), and benchmarks (@prodkit/benchmarks).
| Audience | Doc | Purpose |
|---|---|---|
| npm consumers | packages/op/README.md |
Hub, quick start, core API |
| npm consumers | packages/op/docs/ |
Comparison, performance, subpaths, lifecycle (ships on npm) |
| npm consumers | packages/op-lint/README.md |
Lint plugin install and rules |
| contributors | CONTRIBUTING.md |
Setup, gate, testing, release |
| security | SECURITY.md |
Vulnerability reporting and disclosure |
| contributors | docs/CONTEXT.md |
Domain vocabulary, doc roles, where new modules live |
| contributors | docs/contributor/op-invariants.md |
Runtime invariants and enforcement map |
| contributors | docs/contributor/runtime-architecture.md |
Module graph and execution flow |
| architects | docs/adr/ |
Why decisions were made |
Changelogs: packages/op/CHANGELOG.md, packages/op-lint/CHANGELOG.md, packages/std/CHANGELOG.md.
packages/: library packagesapps/*: reserved pnpm workspace slot for runnable product/demo applications (no app tree is checked in)examples: consumer examples and smoke workspace (@prodkit/examples)benchmarks: performance benchmark harnesses (@prodkit/benchmarks)tools: maintainer tooling workspace (@prodkit/tools).github/workflows: CI and release automation
- Node:
>=24.14.0on the 24.x line;.nvmrcpins the local contributor version. - contributor guide:
CONTRIBUTING.md
Primary quality gate:
pnpm run gatePushing a package-scoped tag (op-v*, op-lint-v*, std-v*) triggers
.github/workflows/release.yml, which publishes the matching
npm package with trusted publishing and provenance. Release helpers live on each publishable
package:
pnpm --filter @prodkit/op run release:patch # or release:minor
pnpm --filter @prodkit/op run release:push
pnpm --filter @prodkit/op-lint run release:patch # or release:minor
pnpm --filter @prodkit/op-lint run release:push
pnpm --filter @prodkit/std run release:patch
pnpm --filter @prodkit/std run release:push