@smartsoft001-mobilems/claude-plugins 2.121.0 → 2.123.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/package.json +1 -1
- package/plugins/mobilems/.claude-plugin/plugin.json +1 -1
- package/plugins/mobilems/skills/mobilems-objects/SKILL.md +7 -6
- package/plugins/mobilems/skills/mobilems-objects/references/lib-contents.md +4 -0
- package/plugins/mobilems/skills/mobilems-objects/scripts/verify-module.sh +15 -0
package/package.json
CHANGED
|
@@ -35,12 +35,13 @@ list — re-implementing framework code is a defect, not a shortcut:
|
|
|
35
35
|
2. [`packages/objects/README.md`](https://github.com/smartsoft001/mobilems-framework/blob/main/packages/objects/README.md) — this module's package catalog
|
|
36
36
|
3. `libs/shared/angular/README.md` — the app's own shared lib (built by `mobilems-project-init`)
|
|
37
37
|
|
|
38
|
-
| Do not hand-roll
|
|
39
|
-
|
|
|
40
|
-
| a masonry grid (`new Masonry(...)`, per-page masonry JS/CSS)
|
|
41
|
-
| filter state / hand-built `query` arrays
|
|
42
|
-
| list
|
|
43
|
-
|
|
|
38
|
+
| Do not hand-roll | Use |
|
|
39
|
+
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
|
|
40
|
+
| a masonry grid (`new Masonry(...)`, per-page masonry JS/CSS) | `<smart-mobilems-masonry-grid>` (`MasonryGridComponent`) with a `#masonryContentTpl`; the `Masonry` provider in step 3 only feeds it |
|
|
41
|
+
| filter state / hand-built `query` arrays | `FiltersBaseComponent<MsObject>` + its `FiltersContext` accessors (`searchText`, `keywords`, `page`, `sort`, `onlyImage`, …) |
|
|
42
|
+
| list page logic (first read, persistence, SSR read, read guard, load-more, masonry lifecycle, list SEO) | `ObjectsCatalogBaseComponent` (`pages/list` extends it; the app keeps its own markup and `sortOptions` over `isNewType`) |
|
|
43
|
+
| detail plumbing (facade wiring, id-from-route, PDF) | the `ObjectsItemComponent` base class (detail page only) |
|
|
44
|
+
| media URLs, meta/OG tags, filter dictionaries, modals, WCAG | `FileUrlService`, `SeoService`/`MetaService`, `DictionaryService`, `ModalService`, `WcagService` |
|
|
44
45
|
|
|
45
46
|
Anything the framework genuinely lacks goes into `libs/shared/angular` **once** (and into its
|
|
46
47
|
README) — never a per-module copy. `scripts/verify-module.sh` fails the run on hand-rolled masonry.
|
|
@@ -26,6 +26,10 @@ libs/museum-objects/
|
|
|
26
26
|
└── services/ # objects.service.ts + index
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
+
`pages/list` extends `ObjectsCatalogBaseComponent` (logic only: first read, persistence, SSR read, read guard,
|
|
30
|
+
load-more, masonry lifecycle, list SEO) and keeps the app's own markup and `sortOptions` over `isNewType`;
|
|
31
|
+
`pages/item` extends `ObjectsItemComponent`.
|
|
32
|
+
|
|
29
33
|
## Domain entity (verbatim, thread nothing — pure types)
|
|
30
34
|
|
|
31
35
|
```ts
|
|
@@ -107,6 +107,21 @@ else
|
|
|
107
107
|
pass "no filters component in this module"
|
|
108
108
|
fi
|
|
109
109
|
|
|
110
|
+
# 5. list page logic lives in the framework catalog base — the page only adds markup
|
|
111
|
+
LISTF="$LIBDIR/pages/list/list.component.ts"
|
|
112
|
+
if [ -f "$LISTF" ]; then
|
|
113
|
+
if grep -qE "extends[[:space:]]+ObjectsCatalogBaseComponent" "$LISTF"; then
|
|
114
|
+
pass "pages/list extends ObjectsCatalogBaseComponent"
|
|
115
|
+
else
|
|
116
|
+
bad "pages/list/list.component.ts does not extend ObjectsCatalogBaseComponent — list logic belongs to the framework base ($LISTF)"
|
|
117
|
+
fi
|
|
118
|
+
if grep -qE "initSlides|getPage\('home'" "$LISTF"; then
|
|
119
|
+
bad "pages/list/list.component.ts contains initSlides or getPage('home' — home-page logic does not belong in a list page ($LISTF)"
|
|
120
|
+
else
|
|
121
|
+
pass "no home-page logic in the list page"
|
|
122
|
+
fi
|
|
123
|
+
fi
|
|
124
|
+
|
|
110
125
|
echo "== Translations (REF_ROOT=${REF_ROOT:-unset}) =="
|
|
111
126
|
# Groups: present in pl+en, no dead references, complete vs the reference repo
|
|
112
127
|
# (export REF_ROOT=<reference-repo-root> to enable the completeness diff).
|