Skip to content

trvswgnr/prodkit

Repository files navigation

prodkit monorepo

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.

canonical package docs

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:

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

documentation map

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.

workspace layout

  • packages/: library packages
  • apps/*: 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

development

  • Node: >=24.14.0 on the 24.x line; .nvmrc pins the local contributor version.
  • contributor guide: CONTRIBUTING.md

Primary quality gate:

pnpm run gate

release flow

Pushing 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

license

MIT

About

A runtime-agnostic, composable library for writing predictable operations in TypeScript.

Topics

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Contributors