> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# Engineering

Keep domain logic pure and effects behind resource-owning adapters. Covers focused changes, immutable state, errors as values, dependency evaluation, meaningful comments, and behavioral testing.


[Change disciplineTie each edited line to an observable outcome and preserve unrelated behavior.](/packs/shared/engineering/change-discipline)[Code commentsExplain hidden constraints and required ordering without restating the surrounding code.](/packs/shared/engineering/comments)[DependenciesEvaluate capability, typing, maintenance, and licensing before expanding the dependency vocabulary.](/packs/shared/engineering/dependencies)[Errors as valuesRepresent expected failures as typed outcomes and contain external exception behavior at adapters.](/packs/shared/engineering/errors-as-values)[Functional designCompose pure transformations and isolate effects behind explicit resource capabilities.](/packs/shared/engineering/functional-design)[Functional engineeringShared rules for pure domain logic, immutable values, explicit failures, and resource-owning adapters. Apply these principles alongside the pack for the language being edited.](/packs/shared/engineering/README)[ImmutabilityReturn new domain values and keep mutable resource handles separate from application state.](/packs/shared/engineering/immutability)[TestingTest consequential decisions and real boundaries with observable success and failure contracts.](/packs/shared/engineering/testing)