A package is the feature boundary. It names the product material the feature owns so the rest of the product can use it without guessing.
A customer dashboard owns customer records, a package-owned formatter, and a callable archive target. Those belong together because they change together.Record
Declare the records the feature owns.
+
File
Attach text, JSON, or other bytes the package needs.
+
Slot
Declare the named target the surface may request.
Authoring rule
Put something in the package when it is part of the feature’s contract. Keep it out when it is only local developer convenience.Example boundary sketch
Common failures
Verify
The package file is ready when a teammate or reviewer can answer these questions from the boundary alone:- What product facts does this feature own?
- Which bytes are package-owned material?
- Which callable targets exist?
- Which surface reads are expected?
- Which user action maps to each target?