pi-apexlang 0.2.2 → 0.4.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.
Files changed (239) hide show
  1. package/README.md +22 -5
  2. package/THIRD_PARTY_NOTICES.md +2 -2
  3. package/UPSTREAM.json +2 -2
  4. package/docs/assets/overview.en.png +0 -0
  5. package/docs/assets/overview.en.svg +89 -0
  6. package/docs/assets/overview.uk.png +0 -0
  7. package/docs/assets/overview.uk.svg +89 -0
  8. package/docs/en/README.md +41 -0
  9. package/docs/en/architecture.md +73 -0
  10. package/docs/en/getting-started.md +77 -0
  11. package/docs/en/maintenance.md +83 -0
  12. package/docs/en/tool-reference.md +85 -0
  13. package/docs/uk/README.md +41 -0
  14. package/docs/uk/architecture.md +73 -0
  15. package/docs/uk/getting-started.md +77 -0
  16. package/docs/uk/maintenance.md +83 -0
  17. package/docs/uk/tool-reference.md +85 -0
  18. package/extensions/apexlang/index.ts +19 -10
  19. package/extensions/lib/apexlang-cli.d.mts +1 -2
  20. package/extensions/lib/apexlang-cli.mjs +18 -13
  21. package/extensions/lib/apexlang-local-validate.mjs +83 -0
  22. package/extensions/lib/apexlang-local-validator.py +116 -0
  23. package/extensions/lib/apexlang-runtime-validate.mjs +76 -0
  24. package/package.json +2 -1
  25. package/skills/apexlang/APEXlang Skills and Workflows.md +325 -0
  26. package/skills/apexlang/README.md +6 -6
  27. package/skills/apexlang/RELEASE-NOTES.md +2 -2
  28. package/skills/apexlang/SKILL.md +24 -19
  29. package/skills/apexlang/agents/openai.yaml +4 -3
  30. package/skills/apexlang/assets/apex-generation/components.registry.json +1001 -16
  31. package/skills/apexlang/assets/apexlang/domains-catalog.json +6 -1
  32. package/skills/apexlang/assets/component-attributes.json +1924 -180
  33. package/skills/apexlang/assets/component-policies.json +19 -10
  34. package/skills/apexlang/assets/contracts/grammar-semantic-rules.json +134 -0
  35. package/skills/apexlang/assets/contracts/package-layers.json +56 -0
  36. package/skills/apexlang/assets/contracts/page-construction-packs.json +154 -0
  37. package/skills/apexlang/assets/contracts/page-patterns.json +119 -0
  38. package/skills/apexlang/assets/grammar/apexlang.ebnf +11743 -0
  39. package/skills/apexlang/assets/indexes/font-apex-icon-index.json +1699 -0
  40. package/skills/apexlang/assets/routing-catalog-main.json +11 -10
  41. package/skills/apexlang/assets/routing-load-policy.json +35 -9
  42. package/skills/apexlang/assets/rules-mapping.json +110 -2
  43. package/skills/apexlang/assets/rules.catalog.json +1298 -0
  44. package/skills/apexlang/assets/validator-fix-recipes.json +372 -17
  45. package/skills/apexlang/assets/workspace-intelligence.json +7 -10
  46. package/skills/apexlang/manifest.json +268 -12
  47. package/skills/apexlang/references/domains/README.md +1 -1
  48. package/skills/apexlang/references/domains/page-components/buttons.md +2 -2
  49. package/skills/apexlang/references/domains/page-components/page-items.md +3 -3
  50. package/skills/apexlang/references/domains/page-components/regions/region-display-selector/workflow-region-display-selector.md +69 -0
  51. package/skills/apexlang/references/domains/page-components/regions.md +1 -0
  52. package/skills/apexlang/references/domains/template-components/comments.md +61 -0
  53. package/skills/apexlang/references/domains/template-components/registry.md +2 -0
  54. package/skills/apexlang/references/domains/template-components/templates.md +47 -0
  55. package/skills/apexlang/references/domains/template-components/timeline.md +51 -0
  56. package/skills/apexlang/references/ops/one-message-router-contract.md +2 -2
  57. package/skills/apexlang/references/ops/runtime-gates/01-direct-sqlcl-import.md +1 -1
  58. package/skills/apexlang/references/ops/runtime-gates/02-direct-sqlcl-validate-gate.md +1 -1
  59. package/skills/apexlang/references/ops/runtime-gates.md +17 -16
  60. package/skills/apexlang/references/ops/sqlcl-agents/00-connection-gate.md +7 -7
  61. package/skills/apexlang/references/ops/sqlcl.md +7 -8
  62. package/skills/apexlang/references/policies/compiler-prop-map.md +6 -4
  63. package/skills/apexlang/references/policies/governance/00-governance.md +2 -2
  64. package/skills/apexlang/references/policies/memory-bank/00-guard/ai.guard.md +126 -922
  65. package/skills/apexlang/references/policies/memory-bank/20-data/apex.logic.md +3 -3
  66. package/skills/apexlang/references/policies/memory-bank/20-data/db.connection.md +9 -11
  67. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.cards-page.md +95 -0
  68. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.page.md +2 -2
  69. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.smart-filter-search.md +145 -74
  70. package/skills/apexlang/references/policies/memory-bank/40-components/apex.region-interactions.md +9 -2
  71. package/skills/apexlang/references/policies/memory-bank/40-components/apex.region-media.md +6 -5
  72. package/skills/apexlang/references/policies/memory-bank/systemPatterns.md +9 -1
  73. package/skills/apexlang/references/workflows/apex-generation/agents/20-agent-draft.md +51 -232
  74. package/skills/apexlang/references/workflows/apex-generation/agents/30-agent-critique.md +49 -449
  75. package/skills/apexlang/references/workflows/apex-generation/agents/40-agent-revision.md +38 -238
  76. package/skills/apexlang/references/workflows/apex-generation/nlu/nlu-routing-test-matrix.md +8 -2
  77. package/skills/apexlang/references/workflows/apex-generation/nlu/nlu-routing-validation-notes.md +19 -3
  78. package/skills/apexlang/references/workflows/apex-generation/registry.md +15 -1
  79. package/skills/apexlang/references/workflows/apex-generation/templates.md +1 -1
  80. package/skills/apexlang/references/workflows/apex-generation.md +1 -1
  81. package/skills/apexlang/references/workflows/apexlang/apexlang-execution-model.md +5 -5
  82. package/skills/apexlang/references/workflows/apexlang/prompt-contracts.md +81 -10
  83. package/skills/apexlang/references/workflows/apexlang/workflow-create-app-from-fr-and-model.md +18 -7
  84. package/skills/apexlang/release-notes.json +156 -0
  85. package/skills/apexlang/runtime/grammar_contract.mjs +1166 -0
  86. package/skills/apexlang/runtime/internal/python/format_apexlang.py +210 -0
  87. package/skills/apexlang/runtime/internal/python/validate_apexlang.py +14142 -5843
  88. package/skills/apexlang/runtime/internal/python/validator_common.py +2 -0
  89. package/skills/apexlang/runtime/lib/catalogs.mjs +1026 -0
  90. package/skills/apexlang/runtime/lib/common.mjs +35 -0
  91. package/skills/apexlang/runtime/runtime.bundle.mjs +457 -57
  92. package/skills/apexlang/templates/items/combobox/combobox.explicit-defaults.md +1 -1
  93. package/skills/apexlang/templates/items/date-picker/date-picker._common.md +1 -1
  94. package/skills/apexlang/templates/items/date-picker/date-picker.explicit-defaults.md +1 -1
  95. package/skills/apexlang/templates/items/file-upload/file-upload._common.md +30 -24
  96. package/skills/apexlang/templates/items/file-upload/file-upload.compact-template.md +6 -0
  97. package/skills/apexlang/templates/items/file-upload/file-upload.explicit-defaults.md +23 -8
  98. package/skills/apexlang/templates/items/file-upload/file-upload.minimal.md +6 -0
  99. package/skills/apexlang/templates/items/hidden-item/hidden-item._common.md +1 -1
  100. package/skills/apexlang/templates/items/hidden-item/hidden-item.explicit-defaults.md +1 -1
  101. package/skills/apexlang/templates/items/items._common.md +3 -2
  102. package/skills/apexlang/templates/items/list-manager/list-manager.explicit-defaults.md +1 -1
  103. package/skills/apexlang/templates/items/markdown-editor/markdown-editor._common.md +1 -1
  104. package/skills/apexlang/templates/items/markdown-editor/markdown-editor.explicit-defaults.md +1 -1
  105. package/skills/apexlang/templates/items/number-field/number-field._common.md +8 -6
  106. package/skills/apexlang/templates/items/number-field/number-field.explicit-defaults.md +12 -2
  107. package/skills/apexlang/templates/items/popup-lov/popup-lov.explicit-defaults.md +1 -1
  108. package/skills/apexlang/templates/items/rich-text-editor/rich-text-editor._common.md +1 -1
  109. package/skills/apexlang/templates/items/rich-text-editor/rich-text-editor.explicit-defaults.md +1 -1
  110. package/skills/apexlang/templates/items/select-many/standard.md +1 -1
  111. package/skills/apexlang/templates/items/shuttle/shuttle.explicit-defaults.md +1 -1
  112. package/skills/apexlang/templates/items/switch/switch._common.md +8 -8
  113. package/skills/apexlang/templates/items/switch/switch.explicit-defaults.md +1 -1
  114. package/skills/apexlang/templates/items/text-area/text-area._common.md +2 -3
  115. package/skills/apexlang/templates/items/text-area/text-area.explicit-defaults.md +1 -1
  116. package/skills/apexlang/templates/items/text-area/text-area.required-length.md +1 -3
  117. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.explicit-defaults.md +1 -1
  118. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.required-length.md +1 -3
  119. package/skills/apexlang/templates/items/text-field/text-field._common.md +2 -3
  120. package/skills/apexlang/templates/items/text-field/text-field.explicit-defaults.md +1 -1
  121. package/skills/apexlang/templates/items/text-field/text-field.required-length.md +1 -3
  122. package/skills/apexlang/templates/page-examples/faceted-search/faceted-search.example.md +0 -5
  123. package/skills/apexlang/templates/page-examples/form-page/form-page.example.md +0 -9
  124. package/skills/apexlang/templates/page-examples/interactive-report-page/interactive-report-page.example.md +2 -2
  125. package/skills/apexlang/templates/page-examples/login-page/login-page.example.md +0 -8
  126. package/skills/apexlang/templates/page-examples/task-definition-initiated-tasks-page/task-definition-initiated-tasks-page.example.md +7 -17
  127. package/skills/apexlang/templates/page-examples/task-definition-my-tasks-page/task-definition-my-tasks-page.example.md +7 -65
  128. package/skills/apexlang/templates/page-examples/task-definition-task-details/task-definition-task-details.example.md +38 -201
  129. package/skills/apexlang/templates/region-components/calendar/calendar.custom-styling.md +3 -1
  130. package/skills/apexlang/templates/region-components/calendar/calendar.faceted-search.md +3 -2
  131. package/skills/apexlang/templates/region-components/cards/README.md +12 -4
  132. package/skills/apexlang/templates/region-components/cards/cards._common.md +176 -37
  133. package/skills/apexlang/templates/region-components/cards/cards._index.md +2 -1
  134. package/skills/apexlang/templates/region-components/cards/cards.refresh-after-dialog.md +46 -0
  135. package/skills/apexlang/templates/region-components/cards/cards.refresh-on-change.md +58 -0
  136. package/skills/apexlang/templates/region-components/cards/cards.rest-source.md +54 -18
  137. package/skills/apexlang/templates/region-components/cards/cards.standard.md +37 -21
  138. package/skills/apexlang/templates/region-components/chart/chart._series._common.md +1 -4
  139. package/skills/apexlang/templates/region-components/chart/chart.pie.md +6 -2
  140. package/skills/apexlang/templates/region-components/chart/chart.status-meter-gauge.md +1 -1
  141. package/skills/apexlang/templates/region-components/chart/chart.stock.md +2 -0
  142. package/skills/apexlang/templates/region-components/chart/features/chart.feature-chart-links.md +9 -7
  143. package/skills/apexlang/templates/region-components/faceted-search/faceted-search._common.md +1 -14
  144. package/skills/apexlang/templates/region-components/form/form._items._common.md +1 -5
  145. package/skills/apexlang/templates/region-components/interactive-report/interactive-report._columns._common.md +2 -6
  146. package/skills/apexlang/templates/region-components/interactive-report/interactive-report.page-header-actions.md +1 -7
  147. package/skills/apexlang/templates/region-components/list/README.md +1 -1
  148. package/skills/apexlang/templates/region-components/list/list._common.md +1 -1
  149. package/skills/apexlang/templates/region-components/map/map.backgrounds.md +12 -10
  150. package/skills/apexlang/templates/region-components/map/map.layer.extruded-polygons.md +16 -12
  151. package/skills/apexlang/templates/region-components/map/map.layer.heat-map.md +10 -7
  152. package/skills/apexlang/templates/region-components/map/map.layer.lines.md +10 -8
  153. package/skills/apexlang/templates/region-components/map/map.layer.polygons.md +21 -18
  154. package/skills/apexlang/templates/region-components/map/map.region.background-custom.md +25 -19
  155. package/skills/apexlang/templates/region-components/map/map.region.background-shared.md +19 -13
  156. package/skills/apexlang/templates/region-components/map/map.region.bbox-sql.md +13 -13
  157. package/skills/apexlang/templates/region-components/map/map.region.bbox-static.md +2 -2
  158. package/skills/apexlang/templates/region-components/map/map.region.browser-location.md +3 -7
  159. package/skills/apexlang/templates/region-components/map/map.region.init-position-sql.md +7 -7
  160. package/skills/apexlang/templates/region-components/region-display-selector/README.md +5 -2
  161. package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector._common.md +60 -7
  162. package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector._index.md +4 -1
  163. package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector.permutations.md +55 -0
  164. package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector.standard.md +91 -5
  165. package/skills/apexlang/templates/region-components/smart-filter-search/README.md +6 -2
  166. package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search._common.md +107 -46
  167. package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search._index.md +4 -3
  168. package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search.standard.md +33 -17
  169. package/skills/apexlang/templates/shared-components/component-settings/component-settings._common.md +1 -0
  170. package/skills/apexlang/templates/shared-components/component-settings.example.md +1 -0
  171. package/skills/apexlang/templates/shared-components/email-templates.example.md +1 -1
  172. package/skills/apexlang/templates/shared-components/rest-data-sources/example_rest_data_source.example.md +40 -46
  173. package/skills/apexlang/templates/shared-components/task-definitions/action-task.example.md +2 -30
  174. package/skills/apexlang/templates/shared-components/task-definitions/approve-request.example.md +3 -31
  175. package/skills/apexlang/templates/template-components/README.md +27 -15
  176. package/skills/apexlang/templates/template-components/avatar/README.md +56 -0
  177. package/skills/apexlang/templates/template-components/avatar/avatar._common.md +149 -0
  178. package/skills/apexlang/templates/template-components/avatar/avatar._index.md +42 -0
  179. package/skills/apexlang/templates/template-components/{avatar._template_options.md → avatar/avatar._template_options.md} +1 -1
  180. package/skills/apexlang/templates/template-components/avatar/avatar.report-icon.md +48 -0
  181. package/skills/apexlang/templates/template-components/avatar/avatar.report-image-url-column.md +62 -0
  182. package/skills/apexlang/templates/template-components/avatar/avatar.report-initials.md +54 -0
  183. package/skills/apexlang/templates/template-components/badge/README.md +38 -0
  184. package/skills/apexlang/templates/template-components/badge/badge._common.md +183 -0
  185. package/skills/apexlang/templates/template-components/badge/badge._index.md +20 -0
  186. package/skills/apexlang/templates/template-components/badge/badge.report-link.md +66 -0
  187. package/skills/apexlang/templates/template-components/badge/badge.report-minimal.md +76 -0
  188. package/skills/apexlang/templates/template-components/comments/README.md +20 -0
  189. package/skills/apexlang/templates/template-components/comments/comments._common.md +43 -0
  190. package/skills/apexlang/templates/template-components/comments/comments._index.md +25 -0
  191. package/skills/apexlang/templates/template-components/{comments._template_options.md → comments/comments._template_options.md} +2 -1
  192. package/skills/apexlang/templates/template-components/comments/comments.apex-task-comments.md +77 -0
  193. package/skills/apexlang/templates/template-components/comments/comments.partial-column.md +120 -0
  194. package/skills/apexlang/templates/template-components/comments/comments.permutations.md +425 -0
  195. package/skills/apexlang/templates/template-components/content-row/README.md +1 -1
  196. package/skills/apexlang/templates/template-components/content-row/content-row._common.md +1 -1
  197. package/skills/apexlang/templates/template-components/content-row/content-row._index.md +1 -1
  198. package/skills/apexlang/templates/template-components/content-row/content-row._template_options.md +1 -1
  199. package/skills/apexlang/templates/template-components/flexbox-container/README.md +9 -0
  200. package/skills/apexlang/templates/template-components/flexbox-container/flexbox-container._index.md +13 -0
  201. package/skills/apexlang/templates/template-components/media-list/README.md +100 -0
  202. package/skills/apexlang/templates/template-components/media-list/media-list._common.md +174 -0
  203. package/skills/apexlang/templates/template-components/media-list/media-list._index.md +50 -0
  204. package/skills/apexlang/templates/template-components/{media-list._template_options.md → media-list/media-list._template_options.md} +8 -2
  205. package/skills/apexlang/templates/template-components/media-list/media-list.partial.md +50 -0
  206. package/skills/apexlang/templates/template-components/media-list/media-list.report-avatar-badge.md +76 -0
  207. package/skills/apexlang/templates/template-components/media-list/media-list.report-base.md +71 -0
  208. package/skills/apexlang/templates/template-components/media-list/media-list.report-grouped.md +40 -0
  209. package/skills/apexlang/templates/template-components/media-list/media-list.report-layouts.md +50 -0
  210. package/skills/apexlang/templates/template-components/media-list/media-list.report-link.md +53 -0
  211. package/skills/apexlang/templates/template-components/metric-card/README.md +19 -4
  212. package/skills/apexlang/templates/template-components/metric-card/metric-card._common.md +122 -29
  213. package/skills/apexlang/templates/template-components/metric-card/metric-card._index.md +6 -0
  214. package/skills/apexlang/templates/template-components/metric-card/metric-card._template_options.md +47 -2
  215. package/skills/apexlang/templates/template-components/metric-card/metric-card.partial-minimal.md +51 -0
  216. package/skills/apexlang/templates/template-components/metric-card/metric-card.permutations.md +56 -0
  217. package/skills/apexlang/templates/template-components/metric-card/metric-card.report-avatar-badge.md +98 -0
  218. package/skills/apexlang/templates/template-components/metric-card/metric-card.report-grouping-selection.md +131 -0
  219. package/skills/apexlang/templates/template-components/metric-card/metric-card.report-link.md +66 -0
  220. package/skills/apexlang/templates/template-components/metric-card/metric-card.report-minimal.md +97 -0
  221. package/skills/apexlang/templates/template-components/template-components.registry.json +90 -1
  222. package/skills/apexlang/templates/template-components/timeline/README.md +19 -0
  223. package/skills/apexlang/templates/template-components/timeline/timeline._common.md +43 -0
  224. package/skills/apexlang/templates/template-components/timeline/timeline._index.md +24 -0
  225. package/skills/apexlang/templates/template-components/{timeline._template_options.md → timeline/timeline._template_options.md} +2 -1
  226. package/skills/apexlang/templates/template-components/timeline/timeline.permutations.md +399 -0
  227. package/skills/apexlang/templates/template-components/timeline/timeline.report-sample-data.md +168 -0
  228. package/skills/apexlang/templates/workspace-components/credentials/credentials-for-open-ai.example.md +1 -1
  229. package/skills/apexlang/templates/workspace-components/generative-ai-services/open-ai.example.md +8 -6
  230. package/skills/apexlang/tools/apexctl.mjs +167 -4
  231. package/skills/apexlang/tools/compiler-truth-audit.mjs +95 -63
  232. package/skills/apexlang/tools/query-valid-props-context.mjs +30 -0
  233. package/skills/apexlang/tools/query-valid-props-normalize.mjs +1 -0
  234. package/skills/apexlang/tools/query-valid-props-runtime.mjs +13 -8
  235. package/skills/apexlang/tools/query-valid-props-semantics.mjs +391 -0
  236. package/skills/apexlang/tools/query-valid-props-template-components.mjs +15 -1
  237. package/skills/apexlang/tools/query-valid-props.mjs +198 -216
  238. /package/skills/apexlang/templates/template-components/{badge._template_options.md → badge/badge._template_options.md} +0 -0
  239. /package/skills/apexlang/templates/template-components/{flexbox-container._template_options.md → flexbox-container/flexbox-container._template_options.md} +0 -0
@@ -292,21 +292,30 @@
292
292
  },
293
293
  {
294
294
  "id": "REGION_RULE_006",
295
- "scope": "region.metricChart.interactions",
296
- "whenAny": [
297
- {
298
- "regionType": "Metric Card"
299
- },
300
- {
301
- "regionType": "Chart"
302
- }
303
- ],
295
+ "scope": "region.chart.interactions",
296
+ "when": {
297
+ "regionType": "Chart"
298
+ },
304
299
  "forbid": [
305
300
  "links",
306
301
  "actions"
307
302
  ],
308
303
  "severity": "error",
309
- "message": "Metric Card and Chart regions must not own links or actions; model navigation through adjacent components."
304
+ "message": "Chart regions must not own links or actions; model navigation through adjacent components."
305
+ },
306
+ {
307
+ "id": "REGION_RULE_019",
308
+ "scope": "region.metricCard.interactions",
309
+ "when": {
310
+ "regionType": "Metric Card"
311
+ },
312
+ "requireValues": {
313
+ "actions.position": [
314
+ "link"
315
+ ]
316
+ },
317
+ "severity": "error",
318
+ "message": "Metric Card row actions use the compiler-backed link position and do not use action templates."
310
319
  },
311
320
  {
312
321
  "id": "REGION_RULE_007",
@@ -0,0 +1,134 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "purpose": "Compact renderer requirements selected by grammar components and variant conditions.",
4
+ "rules": [
5
+ {
6
+ "id": "canonical-page-identity",
7
+ "match": { "components": ["page"] },
8
+ "level": "must",
9
+ "scope": "page-local",
10
+ "check": "canonical-page-identity",
11
+ "requirements": [
12
+ "Declare the numeric page id in both `page <id> (` and `page: <id>`.",
13
+ "For pNNNNN-<slug>.apx, set alias to the uppercase slug with hyphens preserved."
14
+ ]
15
+ },
16
+ {
17
+ "id": "normal-static-content-slot",
18
+ "match": { "conditions": ["page.pageMode=normal", "region.type=staticContent"] },
19
+ "level": "must",
20
+ "scope": "page-local",
21
+ "check": "normal-static-content-slot",
22
+ "requirements": [
23
+ "Place static-content regions in `layout.slot: body`; `contentBody` is for modal-dialog content."
24
+ ]
25
+ },
26
+ {
27
+ "id": "normal-page-breadcrumb-region",
28
+ "match": { "conditions": ["page.pageMode=normal"] },
29
+ "level": "must",
30
+ "scope": "page-local",
31
+ "check": "normal-page-breadcrumb-region",
32
+ "requirements": [
33
+ "Render a named `region breadcrumb (` block with `type: breadcrumb`, `source.breadcrumb: @breadcrumb`, and `layout.slot: breadcrumbBar`."
34
+ ]
35
+ },
36
+ {
37
+ "id": "normal-page-breadcrumb-entry",
38
+ "match": { "conditions": ["page.pageMode=normal"] },
39
+ "level": "must",
40
+ "scope": "app-local",
41
+ "check": "shared-breadcrumb-entry",
42
+ "requirements": [
43
+ "Add a shared breadcrumb entry whose pageNumber matches this non-modal page."
44
+ ]
45
+ },
46
+ {
47
+ "id": "normal-page-body-regions",
48
+ "match": { "components": ["region"], "conditions": ["page.pageMode=normal"] },
49
+ "level": "must",
50
+ "scope": "page-local",
51
+ "check": "normal-page-body-regions",
52
+ "requirements": [
53
+ "Place every non-breadcrumb region on a normal page in `layout.slot: body`; reserve `contentBody` for modal-dialog content."
54
+ ]
55
+ },
56
+ {
57
+ "id": "normal-page-template-decision",
58
+ "match": { "conditions": ["page.pageMode=normal"] },
59
+ "level": "decision",
60
+ "scope": "page-local",
61
+ "requirements": ["Do not invent page template references."],
62
+ "decisions": [
63
+ {
64
+ "when": "No special page layout is requested or selected.",
65
+ "use": "appearance.pageTemplate: @/standard"
66
+ },
67
+ {
68
+ "when": "A special page layout is requested.",
69
+ "use": "Its compiler- or contract-verified template; stop if unavailable."
70
+ }
71
+ ]
72
+ },
73
+ {
74
+ "id": "static-content-region",
75
+ "match": { "conditions": ["region.type=staticContent"] },
76
+ "level": "decision",
77
+ "scope": "page-local",
78
+ "requirements": [
79
+ "Use `source.text` for plain text or `source.htmlCode` only when HTML is requested; do not add SQL.",
80
+ "Do not invent region template references."
81
+ ],
82
+ "decisions": [
83
+ {
84
+ "when": "Ordinary body content with no special shell.",
85
+ "use": "appearance.template: @/standard"
86
+ },
87
+ {
88
+ "when": "A special shell or interaction pattern is requested.",
89
+ "use": "A compiler- or contract-verified region template; stop if unavailable."
90
+ }
91
+ ]
92
+ },
93
+ {
94
+ "id": "same-app-button-target",
95
+ "match": { "conditions": ["button.action=redirectThisApp"] },
96
+ "level": "must",
97
+ "scope": "page-local",
98
+ "check": "same-app-button-target",
99
+ "requirements": [
100
+ "Use an object-valued `behavior.target` property; scalar page numbers and f?p URL strings are invalid."
101
+ ],
102
+ "shape": "target: {\n page: <task-page-number>\n clearCache: <task-page-number-if-needed>\n}"
103
+ },
104
+ {
105
+ "id": "button-presentation-evidence",
106
+ "match": { "components": ["button"] },
107
+ "level": "decision",
108
+ "scope": "page-local",
109
+ "requirements": [
110
+ "Derive `layout.slot` from the verified parent region template; do not infer it from the region type alone.",
111
+ "Emit alignment, row/column flags, `hot`, icons, and template options only from explicit task intent or a selected construction contract.",
112
+ "Do not invent button template references or presentation choices."
113
+ ],
114
+ "decisions": [
115
+ {
116
+ "when": "Text-only button with no specialized template.",
117
+ "use": "appearance.buttonTemplate: @/text"
118
+ },
119
+ {
120
+ "when": "The task explicitly marks the button primary.",
121
+ "use": "appearance.hot: true"
122
+ },
123
+ {
124
+ "when": "The task requests an icon.",
125
+ "use": "Select @/text-with-icon or @/icon from label intent; do not guess."
126
+ },
127
+ {
128
+ "when": "Unsaved-change behavior is relevant.",
129
+ "use": "Apply workflow or app policy; do not force doNotCheck globally."
130
+ }
131
+ ]
132
+ }
133
+ ]
134
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "purpose": "Progressive public-package layer contract. The public skill keeps one entrypoint while assets are grouped by load responsibility.",
4
+ "decision_order": [
5
+ "apexlang-core",
6
+ "apexlang-metadata",
7
+ "apexlang-patterns",
8
+ "apexlang-runtime"
9
+ ],
10
+ "trace_required": true,
11
+ "layers": [
12
+ {
13
+ "id": "apexlang-core",
14
+ "summary": "Router, workflow entrypoints, local context discovery, stop conditions, and import approval rules.",
15
+ "required_paths": ["SKILL.md", "assets/routing-catalog-main.json", "assets/routing-load-policy.json", "assets/workspace-intelligence.json"],
16
+ "load_policy": "always_first"
17
+ },
18
+ {
19
+ "id": "apexlang-metadata",
20
+ "summary": "Grammar, compiler property lookup tools, compiler-truth audit, and curated fallback component attributes.",
21
+ "required_paths": [
22
+ "assets/grammar/apexlang.ebnf",
23
+ "assets/contracts/grammar-semantic-rules.json",
24
+ "runtime/grammar_contract.mjs",
25
+ "tools/query-valid-props.mjs",
26
+ "tools/compiler-truth-audit.mjs",
27
+ "assets/component-attributes.json"
28
+ ],
29
+ "load_policy": "when_structural_legality_or_validation_is_needed",
30
+ "model_context_policy": "tool_results_only",
31
+ "runtime_only_paths": ["assets/grammar/apexlang.ebnf", "assets/component-attributes.json"],
32
+ "model_interfaces": ["tools/query-valid-props.mjs", "tools/compiler-truth-audit.mjs"]
33
+ },
34
+ {
35
+ "id": "apexlang-patterns",
36
+ "summary": "Structured page construction packs plus selected templates and domain references.",
37
+ "required_paths": [
38
+ "assets/contracts/page-patterns.json",
39
+ "assets/contracts/page-construction-packs.json",
40
+ "assets/apex-generation/components.registry.json",
41
+ "templates",
42
+ "references/domains/README.md"
43
+ ],
44
+ "load_policy": "when_generation_requires_page_or_app_pattern_selection",
45
+ "model_context_policy": "resolver_projection_only",
46
+ "model_interfaces": ["tools/apexctl.mjs context resolve"]
47
+ },
48
+ {
49
+ "id": "apexlang-runtime",
50
+ "summary": "SQLcl preflight, live validate/import gates, and failure repair loop references.",
51
+ "required_paths": ["references/ops/sqlcl.md", "references/ops/runtime-gates.md", "runtime/runtime.bundle.mjs", "assets/validator-fix-recipes.json"],
52
+ "load_policy": "when_live_db_or_runtime_validation_is_requested_or_required",
53
+ "model_context_policy": "projected_repair_results_only"
54
+ }
55
+ ]
56
+ }
@@ -0,0 +1,154 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "purpose": "Renderer-facing construction packs for common page workflows. Each pack declares inputs, emitted components, validation gates, and follow-on references.",
4
+ "selection_order": ["visual-summary-cards", "report-modal-form", "dashboard", "master-detail", "smart-filter-search", "faceted-search", "carousel-static-content", "lov-backed-form"],
5
+ "packs": [
6
+ {
7
+ "id": "visual-summary-cards",
8
+ "pattern_id": "visual-summary-cards",
9
+ "inputs": {
10
+ "required": ["app_path", "page_id", "cards_source", "source_mode", "title_mapping"],
11
+ "optional": ["subtitle_mapping", "body_mapping", "secondary_body_mapping", "primary_key_mapping", "icon_mapping", "media_mapping", "badge_mapping", "conditional_style_mapping", "card_target", "refresh_trigger", "page_items_to_submit", "fixed_grid_columns", "authorization_scheme", "rest_web_credential", "rest_allowed_url_prefixes"]
12
+ },
13
+ "components": ["page:visualSummary", "region:cards", "action:cardNavigationWhenRequested", "dynamicAction:cardsRefreshWhenRequested"],
14
+ "renderer_rules": ["emit_cards_source_mapping_first", "select_exact_sql_or_rest_source_shape", "prefer_native_icon_media_badge_and_action_blocks", "emit_component_appearance_layout_grid", "omit_only_fixed_grid_columns_for_ut_responsive_auto_layout", "project_only_allowlisted_conditional_css_tokens", "emit_exact_refresh_dynamic_action_when_requested", "apply_page_region_action_and_rest_security", "exclude_filter_and_search_orchestration", "validate_generated_apx"],
15
+ "validation_rules": ["CARDS_VISUAL_SUMMARY_PATTERN_REQUIRED_001", "CARDS_SOURCE_MAPPING_REQUIRED_001", "CARDS_INTERACTION_BOUNDARY_REQUIRED_001", "CARDS_SECURITY_REQUIRED_001", "CARDS_CONDITIONAL_STYLE_ALLOWLIST_REQUIRED_001", "DEFAULT_GUIDANCE_LAYER_REQUIRED_001"]
16
+ },
17
+ {
18
+ "id": "report-modal-form",
19
+ "pattern_id": "report-modal-form",
20
+ "inputs": {
21
+ "required": ["app_path", "report_page_id", "form_page_id", "source_table_or_query", "primary_key", "report_columns", "form_items"],
22
+ "optional": ["authorization_scheme", "breadcrumb_parent", "create_button_label", "edit_action_label"]
23
+ },
24
+ "components": ["page:report", "region:interactiveReport", "button:create", "page:modalForm", "process:formAutomaticRowProcessing"],
25
+ "renderer_rules": ["emit_ir_first", "query_property_mapper_for_non_exact_shapes", "validate_generated_apx"],
26
+ "validation_rules": ["INTERACTIVE_REPORT_COLUMN_COVERAGE_001", "FORM_DRAWER_DEFAULT_END_REQUIRED_001"]
27
+ },
28
+ {
29
+ "id": "dashboard",
30
+ "pattern_id": "dashboard",
31
+ "inputs": {
32
+ "required": ["app_path", "page_id", "metrics", "chart_series"],
33
+ "optional": ["supporting_report_source", "time_filter_item", "drill_targets"]
34
+ },
35
+ "components": ["page:dashboard", "templateComponent:metricCard", "region:chart", "region:reportOrCards"],
36
+ "renderer_rules": ["emit_ir_first", "prefer_metric_card_template_components", "validate_generated_apx"],
37
+ "validation_rules": ["DASHBOARD_KPI_METRIC_CARD_REQUIRED_001", "DEFAULT_GUIDANCE_LAYER_REQUIRED_001"]
38
+ },
39
+ {
40
+ "id": "master-detail",
41
+ "pattern_id": "master-detail",
42
+ "inputs": {
43
+ "required": ["app_path", "page_id", "master_source", "detail_source", "join_key"],
44
+ "optional": ["modal_detail_target", "map_layer_target", "refresh_behavior"]
45
+ },
46
+ "components": ["region:masterResults", "region:detailResults", "dynamicAction:selectionRefresh"],
47
+ "renderer_rules": ["emit_ir_first", "explicit_refresh_for_child_context", "validate_generated_apx"],
48
+ "validation_rules": ["MASTER_DETAIL_DYNAMIC_ACTION_REQUIRED_001", "MAP_LAYER_CONTEXT_BIND_REQUIRED_001"]
49
+ },
50
+ {
51
+ "id": "smart-filter-search",
52
+ "pattern_id": "smart-filter-search",
53
+ "inputs": {
54
+ "required": ["app_path", "page_id", "results_source", "base_region_static_id", "searchable_attributes", "match_semantics", "min_chars", "max_len", "tokenization_policy", "settings_contract", "security_scope", "performance_readiness", "generation_plan"],
55
+ "optional": ["results_region_alias", "results_region_type", "authorization_scheme"]
56
+ },
57
+ "contract": {
58
+ "base_region": {
59
+ "count": 1,
60
+ "static_id_required": true,
61
+ "allowed_source_modes": ["secured_view", "canonical_sql"],
62
+ "apex_version": "24.2",
63
+ "allowed_region_types": ["classicReport", "cards", "map", "calendar"],
64
+ "canonical_sql_snapshot_required": true,
65
+ "object_evidence_must_match_source": true,
66
+ "secured_view_evidence": ["object", "source", "object_type:view", "secured:true"],
67
+ "allow_sql_auto_modification": false
68
+ },
69
+ "search": {
70
+ "searchable_attributes_allowlist_required": true,
71
+ "match_semantics": ["contains", "starts", "exact"],
72
+ "match_semantics_count": 1,
73
+ "match_semantic_definitions": {
74
+ "contains": "normalized_token_within_value",
75
+ "starts": "normalized_value_starts_with_token",
76
+ "exact": "normalized_value_equals_token"
77
+ },
78
+ "min_chars_required": true,
79
+ "min_chars": {"type": "positive_integer", "minimum": 1},
80
+ "max_len_required": true,
81
+ "max_len": {"type": "positive_integer", "minimum": 1, "greater_than_or_equal_to": "min_chars"},
82
+ "tokenization_policy_required": true,
83
+ "tokenization_policy": {
84
+ "required_decisions": ["trimming", "repeated_whitespace", "punctuation_boundaries", "case_normalization", "accent_normalization", "duplicate_tokens", "token_order"],
85
+ "consistency_scope": ["search", "suggestions", "refinements"]
86
+ },
87
+ "compiler_evidence_required": true,
88
+ "unsupported_behavior_outcome": "stop_missing_inputs",
89
+ "allow_base_sql_rewrite": false
90
+ },
91
+ "settings": {
92
+ "compiler_evidence_required": true,
93
+ "required_properties": ["maxSuggestionChips", "moreFiltersSuggestionChip", "compactNosThreshold", "showTotalRowCount"],
94
+ "maxSuggestionChips": 100,
95
+ "moreFiltersSuggestionChip": true,
96
+ "compactNosThreshold": 10000,
97
+ "showTotalRowCount": "explicit_boolean",
98
+ "totalRowCountLabel": {
99
+ "when": {"showTotalRowCount": true},
100
+ "value": "Results"
101
+ },
102
+ "unsupported_property_outcome": "stop_missing_inputs"
103
+ },
104
+ "security": {
105
+ "suggestions_use_base_dataset": true,
106
+ "authorization_and_condition_match_base": true
107
+ },
108
+ "performance": {
109
+ "required_evidence": ["index_strategy", "statistics_status", "expected_cardinality"]
110
+ },
111
+ "generation_plan": {
112
+ "required_sections": ["base_source", "search", "settings_contract", "security_scope", "performance_readiness", "runtime_acceptance"],
113
+ "compiler_evidence": ["match_semantics", "min_chars", "max_len", "tokenization_policy"]
114
+ }
115
+ },
116
+ "components": ["region:smartFilters", "filter:search", "region:filteredResults"],
117
+ "renderer_rules": ["emit_smart_filters_before_results", "target_exactly_one_base_region", "require_proven_base_source_contract", "query_compiler_truth_for_settings", "stop_on_unrepresentable_search_behavior", "enforce_compiler_supported_ticket_settings", "require_performance_readiness_evidence", "validate_generated_apx"],
118
+ "validation_rules": ["SMART_FILTER_TOPOLOGY_REQUIRED_001", "SMART_FILTER_RESULTS_REGION_REQUIRED_001", "SMART_FILTER_RESULTS_REGION_ORDER_REQUIRED_001", "SMART_FILTER_BASE_SOURCE_CONTRACT_REQUIRED_001", "SMART_FILTER_SEARCH_SOURCE_REQUIRED_001", "SMART_FILTER_SEARCHABLE_COLUMNS_BASE_PROJECTION_REQUIRED_001", "SMART_FILTER_SECURITY_SCOPE_MATCH_REQUIRED_001", "SMART_FILTER_REFINEMENT_SOURCE_SCOPE_REQUIRED_001", "SMART_FILTER_SEARCH_BEHAVIOR_CONTRACT_REQUIRED_001", "SMART_FILTER_SETTINGS_VALUE_REQUIRED_001", "SMART_FILTER_PERFORMANCE_READINESS_REQUIRED_001", "SMART_FILTER_ACCESSIBILITY_GUIDANCE_REQUIRED_001", "SMART_FILTER_RUNTIME_ACCEPTANCE_REQUIRED_001"]
119
+ },
120
+ {
121
+ "id": "faceted-search",
122
+ "pattern_id": "faceted-search",
123
+ "inputs": {
124
+ "required": ["app_path", "page_id", "results_source", "facet_columns"],
125
+ "optional": ["results_region_alias", "default_filters", "saved_report"]
126
+ },
127
+ "components": ["region:facetedSearch", "region:results", "facet:items"],
128
+ "renderer_rules": ["emit_ir_first", "target_results_region_only", "validate_generated_apx"],
129
+ "validation_rules": ["FACET_SOURCE_DATA_TYPE_REQUIRED_001"]
130
+ },
131
+ {
132
+ "id": "carousel-static-content",
133
+ "pattern_id": "carousel-static-content",
134
+ "inputs": {
135
+ "required": ["app_path", "page_id", "content_items"],
136
+ "optional": ["action_targets", "template_variant", "empty_state"]
137
+ },
138
+ "components": ["region:staticContent", "templateComponent:contentRowOrCards"],
139
+ "renderer_rules": ["emit_ir_first", "avoid_unsupported_custom_html", "validate_generated_apx"],
140
+ "validation_rules": ["GENERATION_PLAN_REQUIRED_001"]
141
+ },
142
+ {
143
+ "id": "lov-backed-form",
144
+ "pattern_id": "lov-backed-form",
145
+ "inputs": {
146
+ "required": ["app_path", "page_id", "form_source", "lov_source", "display_column", "return_column", "target_item"],
147
+ "optional": ["display_null", "cascading_parent_item", "authorization_scheme"]
148
+ },
149
+ "components": ["sharedComponent:lov", "item:selectListOrPopupLov", "process:formAutomaticRowProcessing"],
150
+ "renderer_rules": ["emit_ir_first", "verify_lov_columns", "query_property_mapper_for_item_variant", "validate_generated_apx"],
151
+ "validation_rules": ["COMPILER_TRUTH_EVIDENCE_REQUIRED_001"]
152
+ }
153
+ ]
154
+ }
@@ -0,0 +1,119 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "purpose": "Compact selector catalog for supported APEX page patterns. Use this before Markdown templates when choosing a page construction path.",
4
+ "authority": {
5
+ "syntax": "assets/grammar/apexlang.ebnf",
6
+ "semantics": "tools/query-valid-props.mjs and compiler-truth audit",
7
+ "fallback_policy": "assets/component-attributes.json is curated fallback context only"
8
+ },
9
+ "patterns": [
10
+ {
11
+ "id": "visual-summary-cards",
12
+ "name": "Visual summary cards",
13
+ "intent_keywords": ["visual summary", "people cards", "person cards", "product cards", "status cards", "status tiles", "entity cards", "cards region", "cards"],
14
+ "selection_require_any": ["visual summary", "people cards", "person cards", "product cards", "status cards", "status tiles", "entity cards", "cards region", "cards"],
15
+ "selection_exclude_any": ["faceted search", "facets", "filters", "filtering", "smart filters", "search page", "search cards", "cards search"],
16
+ "required_inputs": ["cards_source", "source_mode", "title_mapping"],
17
+ "generated_components": ["cards_region"],
18
+ "validation_rules": [
19
+ "CARDS_VISUAL_SUMMARY_PATTERN_REQUIRED_001",
20
+ "CARDS_SOURCE_MAPPING_REQUIRED_001",
21
+ "CARDS_INTERACTION_BOUNDARY_REQUIRED_001",
22
+ "CARDS_SECURITY_REQUIRED_001",
23
+ "CARDS_CONDITIONAL_STYLE_ALLOWLIST_REQUIRED_001"
24
+ ],
25
+ "reference_paths": [
26
+ "references/policies/memory-bank/30-pages/apex.cards-page.md",
27
+ "templates/region-components/cards/cards._common.md"
28
+ ]
29
+ },
30
+ {
31
+ "id": "report-modal-form",
32
+ "name": "Report plus modal form",
33
+ "intent_keywords": ["report", "interactive report", "crud", "modal form", "drawer form", "create edit"],
34
+ "selection_require_any": ["crud", "modal form", "drawer form", "create edit"],
35
+ "required_inputs": ["source_table_or_query", "primary_key", "report_columns", "form_items", "target_page_ids"],
36
+ "generated_components": ["interactive_report_region", "modal_form_page", "create_button", "edit_link_or_row_action", "automatic_row_processing"],
37
+ "validation_rules": [
38
+ "FORM_DRAWER_DEFAULT_END_REQUIRED_001",
39
+ "INTERACTIVE_REPORT_COLUMN_COVERAGE_001",
40
+ "DECLARATIVE_BUTTON_TARGET_REQUIRED"
41
+ ],
42
+ "reference_paths": [
43
+ "templates/page-examples/interactive-report-page/interactive-report-page.example.md",
44
+ "templates/page-examples/form-page/form-page.example.md",
45
+ "references/domains/page-components/regions/form/workflow-modal-crud-form.md"
46
+ ]
47
+ },
48
+ {
49
+ "id": "dashboard",
50
+ "name": "Dashboard",
51
+ "intent_keywords": ["dashboard", "kpi", "metric", "chart", "operations summary"],
52
+ "required_inputs": ["metrics", "chart_series", "supporting_report_or_cards_region"],
53
+ "generated_components": ["metric_card_template_components", "chart_region", "supporting_results_region"],
54
+ "validation_rules": ["DASHBOARD_KPI_METRIC_CARD_REQUIRED_001", "DEFAULT_GUIDANCE_LAYER_REQUIRED_001"],
55
+ "reference_paths": [
56
+ "references/policies/memory-bank/30-pages/apex.dashboard.md",
57
+ "templates/template-components/metric-card/metric-card._common.md",
58
+ "references/domains/page-components/regions/dashboard/workflow-dashboard.md"
59
+ ]
60
+ },
61
+ {
62
+ "id": "master-detail",
63
+ "name": "Master detail",
64
+ "intent_keywords": ["master detail", "parent child", "detail region", "selected row"],
65
+ "required_inputs": ["master_source", "detail_source", "join_key", "selection_behavior"],
66
+ "generated_components": ["master_results_region", "detail_results_or_form_region", "selection_dynamic_action"],
67
+ "validation_rules": ["MASTER_DETAIL_DYNAMIC_ACTION_REQUIRED_001", "GENERATION_PLAN_REQUIRED_001"],
68
+ "reference_paths": ["references/domains/README.md", "references/workflows/apexlang/application-spec.template.md"]
69
+ },
70
+ {
71
+ "id": "smart-filter-search",
72
+ "name": "Smart Filter Search",
73
+ "intent_keywords": ["smart filter", "smart filters", "smart filter search", "smart filters region"],
74
+ "required_inputs": ["results_source", "base_region_static_id", "searchable_attributes", "match_semantics", "min_chars", "max_len", "tokenization_policy", "settings_contract", "security_scope", "performance_readiness", "generation_plan"],
75
+ "readiness_required_inputs": ["results_source", "base_region_static_id", "searchable_attributes", "match_semantics", "min_chars", "max_len", "tokenization_policy", "settings_contract", "security_scope", "performance_readiness", "generation_plan"],
76
+ "generated_components": ["smart_filters_region", "search_filter", "filtered_results_region"],
77
+ "validation_rules": ["SMART_FILTER_TOPOLOGY_REQUIRED_001", "SMART_FILTER_RESULTS_REGION_REQUIRED_001", "SMART_FILTER_RESULTS_REGION_ORDER_REQUIRED_001", "SMART_FILTER_BASE_SOURCE_CONTRACT_REQUIRED_001", "SMART_FILTER_SEARCH_SOURCE_REQUIRED_001", "SMART_FILTER_SEARCHABLE_COLUMNS_BASE_PROJECTION_REQUIRED_001", "SMART_FILTER_SECURITY_SCOPE_MATCH_REQUIRED_001", "SMART_FILTER_REFINEMENT_SOURCE_SCOPE_REQUIRED_001", "SMART_FILTER_SEARCH_BEHAVIOR_CONTRACT_REQUIRED_001", "SMART_FILTER_SETTINGS_VALUE_REQUIRED_001", "SMART_FILTER_PERFORMANCE_READINESS_REQUIRED_001", "SMART_FILTER_ACCESSIBILITY_GUIDANCE_REQUIRED_001", "SMART_FILTER_RUNTIME_ACCEPTANCE_REQUIRED_001"],
78
+ "reference_paths": [
79
+ "references/policies/memory-bank/30-pages/apex.smart-filter-search.md",
80
+ "templates/region-components/smart-filter-search/smart-filter-search._common.md"
81
+ ]
82
+ },
83
+ {
84
+ "id": "faceted-search",
85
+ "name": "Faceted search",
86
+ "intent_keywords": ["faceted search", "facets", "filters", "filtering", "smart filters", "search page", "search cards", "cards search"],
87
+ "required_inputs": ["results_source", "facet_columns", "results_region_alias"],
88
+ "generated_components": ["faceted_search_region", "filtered_results_region", "facet_items"],
89
+ "validation_rules": ["FACET_SOURCE_DATA_TYPE_REQUIRED_001"],
90
+ "reference_paths": [
91
+ "templates/page-examples/faceted-search/faceted-search.example.md",
92
+ "templates/region-components/faceted-search/faceted-search._common.md"
93
+ ]
94
+ },
95
+ {
96
+ "id": "carousel-static-content",
97
+ "name": "Carousel or static content",
98
+ "intent_keywords": ["carousel", "static content", "empty state", "cards", "content band"],
99
+ "selection_require_any": ["carousel", "static content", "empty state", "content band"],
100
+ "required_inputs": ["content_items", "region_purpose", "navigation_or_action_targets"],
101
+ "generated_components": ["static_content_region", "template_component_or_cards_region"],
102
+ "validation_rules": ["GENERATION_PLAN_REQUIRED_001", "DEFAULT_GUIDANCE_LAYER_REQUIRED_001"],
103
+ "reference_paths": ["templates/region-components/static-content/README.md"]
104
+ },
105
+ {
106
+ "id": "lov-backed-form",
107
+ "name": "LOV-backed form",
108
+ "intent_keywords": ["lov", "select list", "popup lov", "lookup", "reference data"],
109
+ "required_inputs": ["form_source", "lov_source", "display_column", "return_column", "target_item"],
110
+ "generated_components": ["shared_lov", "form_item", "form_process"],
111
+ "validation_rules": ["COMPILER_TRUTH_EVIDENCE_REQUIRED_001", "DEFAULT_GUIDANCE_LAYER_REQUIRED_001"],
112
+ "reference_paths": [
113
+ "templates/shared-components/lovs/lovs.dynamic.query.md",
114
+ "templates/items/select-list/select-list.lov-shared.md",
115
+ "references/domains/README.md"
116
+ ]
117
+ }
118
+ ]
119
+ }