.agents/skills/north-star/rules/laws.md
Public APIs need explicit owners.
Do not blur these because the short-term code path is convenient.
Every reusable surface must say what layer it belongs to:
If you cannot name the layer, the API is not ready.
The best DX is not hidden DX.
Runtime/service concerns should be explicit seams, not side effects leaking out of plugin code.
Performance and scalability are design constraints, not later cleanup tasks.
If the nicer-looking API adds hot-path work, dispatch cost, allocation churn, merge ambiguity, or invalidation complexity, that cost is part of the API decision.
Canonical feature semantics belong with the owning feature package.
Preference-heavy sugar belongs local until it becomes genuinely canonical.
Keep authoring-time type richness where it helps the author. Widen at runtime storage boundaries when exact generics no longer matter.
Do not force runtime containers to pretend they preserve more type precision than they actually need.