@autotelic/plumb
v0.6.0
Published
Opinionated Oxlint rules that keep TypeScript true: generic and Effect-specific patterns, maintained as one source of truth for the autotelic repos.
Readme
plumb
Opinionated Oxlint rules that keep TypeScript true: a plumb line for your codebase.
Plugins
plumb: generic rules that reject low-evidence and low-signal implementation patterns (43 rules).plumb-effect: opt-in rules for Effect service and Layer architecture (16 rules). Enable only in repos that depend oneffect.plumb/testing: RuleTester lifecycle adapter (testableRule,wireRuleTester,createTester) socreateOncerules withbefore/afterhooks test correctly under the ESLint-compatiblecreatepath.
Consuming
1. Add the dependency (public npm, no tokens or registry config needed)
pnpm add -D @autotelic/plumb2. Register the plugins in your oxlint config
Point jsPlugins straight at the installed package: no copies, updates are just a version bump:
// oxlint.config.ts
jsPlugins: [
{ name: "plumb", specifier: "@autotelic/plumb" },
{ name: "plumb-effect", specifier: "@autotelic/plumb/effect" },
],
rules: {
"plumb/no-builtin-throws": "error",
"plumb-effect/guarded-op-must-return-effect": "error",
},If your setup does not resolve package exports for plugin specifiers, point directly at the source files instead:
jsPlugins: [
{ name: "plumb", specifier: "./node_modules/@autotelic/plumb/src/index.ts" },
{ name: "plumb-effect", specifier: "./node_modules/@autotelic/plumb/src/effect/index.ts" },
],
ignorePatterns: ["node_modules/**"],Updating
pnpm up @autotelic/plumb # bump to the latest published versionReleasing (maintainers)
Releases publish to public npm automatically when a GitHub Release is published; the Publish workflow runs pnpm check, then publishes with provenance via npm trusted publishing (no stored npm token).
- Update
versioninpackage.jsonand merge. - Create a GitHub Release for
vX.Y.Z. - The workflow publishes to npmjs; verify on the release page.
Development
pnpm install
pnpm check # lint + typecheck + test + rule/config consistency