You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- A class and its companion should live together in the same file.
247
247
- sealed traits and their subtypes must also be in the same file for compiler safety.
248
248
- File names usually match the main type they hold.
249
-
- Multi-type grouping: When types are closely related, grouping is permitted—but only when justified. The file should then use meaningful lowerCamelCase names.
249
+
- Multi-type grouping: When types are closely related, grouping is permitted-but only when justified. The file should then use meaningful lowerCamelCase names.
250
250
- Developer ergonomics: Having one type per file helps with navigation, findability, and code review. It avoids confusion and reduces search friction.
Copy file name to clipboardExpand all lines: README.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@
41
41
"A partner team removed a nullable column late Friday. We couldn’t roll back in time; both teams were up all night. If that change had been a compile error, we would have slept."
42
42
43
43
### For Python/ETL folks (dbt/Airflow/Informatica/Talend):
44
-
Think "contracts like Pydantic/Avro — but enforced before jobs run," "pure functions you can test without a cluster," and "connectors/engines that make IO explicit and safe."
44
+
Think "contracts like Pydantic/Avro - but enforced before jobs run," "pure functions you can test without a cluster," and "connectors/engines that make IO explicit and safe."
45
45
46
46
### For EMs / Staff Data Architects:
47
47
You get compile‑time guarantees (not CI or runtime heuristics), a small opinionated surface, and batteries‑included defaults with escape hatches.
@@ -91,7 +91,7 @@ You get compile‑time guarantees (not CI or runtime heuristics), a small opinio
91
91
## Guarantees (Non‑negotiables)
92
92
93
93
- Compile‑fail contracts for typed endpoints under policy lattice
94
-
- Typestate builder: `build()` only when complete — incomplete pipelines can’t compile
94
+
- Typestate builder: `build()` only when complete - incomplete pipelines can’t compile
95
95
- Pure transforms; effectful edges; idempotent side‑effects by design
96
96
- See: docs/design/framework-behaviors.md
97
97
@@ -118,7 +118,7 @@ Relax the policy to Backward (allows extra producer fields and missing optional/
0 commit comments