Governance
Contributing
Contributing to Loop Engine
Before you build anything
Open an issue before significant work. This avoids duplicated implementation and ensures roadmap alignment.
DCO sign-off
All commits must be signed off.
1git commit -s -m "feat: add ..."This appends the required Signed-off-by: Your Name <email> trailer.
What belongs in this repo
Allowed:
- domain-neutral primitives (
packages/core) - reusable loop definitions (
loops/) - adapters and examples with cross-domain utility
Not accepted:
- SCM-specific business logic
- proprietary optimization algorithms
- Better Data tenant/billing internals
Governance model
Repository currently documents a BDFL model:
- Better Data, Inc. controls final roadmap and release decisions
- community contributions are welcomed
Branch and PR conventions
- open issue first for significant work
- pass CI checks before review
- breaking changes to core types require RFC issue (
[RFC])
Documentation: TypeScript fences
Some MDX pages use fenced ```typescript blocks for full runnable examples; others use the same fence for partial snippets (object shapes, type-only fragments, or multi-step fragments that are not meant to compile as a single file). Repository automation that type-checks doc examples only processes blocks that look like module-style examples (they contain import …) and do not start with an opt-out line. If a block is intentionally incomplete or non-compiling, put // @no-typecheck on the first line inside the fence so those checks skip it. That split matters: use the marker when the point is structure or pedagogy, not a copy-pastable import path. When the intent is a real, copy-pastable example, fix the snippet to match the published API rather than adding the marker.
Versioning with changesets
1pnpm changesetEvent schema breaking changes require a 6-month deprecation notice.
Local development
1pnpm install2pnpm build3pnpm testRun package-specific tests:
1pnpm --filter @loop-engine/core test2pnpm --filter @loop-engine/runtime test