Skip to content

systemfsoftware/systemfsoftware

Repository files navigation

systemfsoftware

Effect-TS libraries and the lint plugin that enforces the constitution — from System F Software

License: MIT Constitution System F Software

PackagesInstallDevelop

A pnpm monorepo of Effect-TS packages, each built as a pure functional core behind a thin imperative shell and gated by property tests and a 100% mutation score — the discipline the System F Software constitution codifies. One of the packages, oxlint-plugin, is the linter that enforces that discipline; the monorepo lints itself with it.

Packages

Package npm What it does
effect-gherkin-spec @systemfsoftware/effect-gherkin-spec Write Vitest specs as Effect-native Gherkin features — Given/When/Then steps that compose as Effects, with Scenario Outline expansion and typed step errors.
effect-daemon-spec @systemfsoftware/effect-daemon-spec A typed supervision-tree daemon for Effect — leader election, lock primitives, restart-intensity windows, dynamic children, and health latches.
oxlint-plugin @systemfsoftware/oxlint-plugin 25 oxlint rules enforcing the constitution: ban classes and string errors, forbid native timers/Promise/Date inside Effect, require pipeable composition, keep tests off the I/O boundary.
effect-schema-law @systemfsoftware/effect-schema-law One call asserts the codec laws of any Effect Schema as Vitest property tests — decode∘encode is identity, and encoding is stable under a decode round-trip.
stryker-plugins @systemfsoftware/stryker-plugins Stryker mutation-testing plugins for Effect — effect-schema-ignorer skips equivalent mutants on Effect Schema declarations so the score reflects behaviour, not data.
rx-effect @systemfsoftware/rx-effect Bridge RxJS and Effect — turn an Observable into a typed Effect Stream with backpressure and proper interruption.
effect-schema-extensions @systemfsoftware/effect-schema-extensions Extra Effect Schema codecs — branded hex-string schemas with decode/encode and arbitraries.

Supporting internal tooling (tsconfig, oxlint-config, vitest-config) lives under packages/ and is not published.

Install

pnpm add @systemfsoftware/effect-gherkin-spec
pnpm add @systemfsoftware/effect-daemon-spec
pnpm add -D @systemfsoftware/oxlint-plugin

Note

effect is a peer dependency. effect-gherkin-spec also peers @effect/vitest and vitest.

Develop

pnpm install
pnpm build        # tsdown, in dependency order (turbo)
pnpm typecheck    # tsgo (TypeScript 7) + tsc
pnpm test         # vitest — property + composition suites
pnpm lint         # dprint check + oxlint (self-hosted plugin)
pnpm --filter @systemfsoftware/effect-daemon-spec mutation   # stryker, 100% gate

Important

Read CONSTITUTION.md (the design law) and AGENTS.md (workspace invariants) before contributing. The constitution is vendored from systemfsoftware/constitution as a subtree.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors