@stardeck-customer-apps/compose 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/SKILL.md CHANGED
@@ -23,6 +23,7 @@ Compose turns that declaration into the code Next.js actually builds:
23
23
 
24
24
  ```bash
25
25
  npx stardeck-compose [--enabled=a,b,c] [--prune] [--cwd=<repo root>]
26
+ npx stardeck-compose --check-boundaries [--cwd=<repo root>]
26
27
  ```
27
28
 
28
29
  Run it from the repo root (the directory holding `apps/web`). The Blueprint
@@ -75,6 +76,24 @@ a silent fallback. It holds deployment facts: gitignore it (`apps/web/.gitignore
75
76
  a git checkout, and a clean one: it refuses when `git status --ignored`
76
77
  reports uncommitted or ignored files under `apps/web/src/modules`, and
77
78
  refuses outside a checkout — it is for throwaway deploy checkouts, not yours.
79
+ It also refuses, before deleting anything, when a file outside
80
+ `apps/web/src/modules` imports an excluded Module, or when a kept Module's own
81
+ file (tests included) would import a deleted path: an excluded Module, any
82
+ Module's `enhancements/<excluded>/`, a `.sql`/`.json` of theirs read by path,
83
+ or another kept file that does. Only a file inside the Module's own
84
+ `enhancements/<excluded>/` goes with the peer (with any excluded peer: a
85
+ booking slice may import membership when both are pruned). Fix: move the file into
86
+ `src/modules/<module>/enhancements/<peer>/`, or declare the peer in `uses` and
87
+ enable it. A test that needs two optional peers at once cannot live in one
88
+ `enhancements/` folder: load the second peer's harness only when
89
+ `isModuleEnabled(peer)` and `it.skipIf` without it. Needs compose 0.9.0 or
90
+ later for the Module-file check.
91
+ - `--check-boundaries` — Blueprint lint; composes nothing. Checks every Module
92
+ against every feature Module it does not list in `uses` (whether it lists it
93
+ in `enhancements` or not), as if all of them were switched off, and exits 1
94
+ listing the offending files. Library Modules are always composed and never
95
+ count. Run it in Blueprint CI so such an import is caught before a customer
96
+ prunes.
78
97
 
79
98
  ## Rules
80
99