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
@@ -0,0 +1,325 @@
1
+ # APEXlang Skill Inventory & Roadmap
2
+ The following document outlines the discrete skills & workflows included or being considered to be included in the APEXlang skills.
3
+
4
+
5
+ # Page Components
6
+ ## Page Patterns
7
+ ### Included
8
+ - Login Page
9
+ - Blank Page
10
+ - Map
11
+ - Interactive Report
12
+ - Interactive Grid
13
+ - Form
14
+ - Faceted Search
15
+ - Dashboard
16
+ - Chart
17
+ - Calendar
18
+ - Classic Report
19
+ - Global Page
20
+
21
+ ## Regions
22
+ ### Included
23
+ - Dynamic Content
24
+ - Faceted Search
25
+ - Form
26
+ - Breadcrumb
27
+ - Interactive Report
28
+ - Region Display Selector
29
+ - Map
30
+ - Calendar
31
+ - Interactive Grid
32
+ - Chart
33
+ - Classic Report
34
+ - AI Chat
35
+
36
+ ### Not Included
37
+ - Search Configuration
38
+ - Cards
39
+ - Help Text
40
+ - Master Detail
41
+
42
+ ## Template Components
43
+ ### Included
44
+ - Avatar
45
+ - Badge
46
+ - Content Row
47
+ - Timeline
48
+
49
+
50
+ ### Not Included / Fully Ready
51
+ - Media List
52
+ - Comments
53
+ - Metric Card
54
+
55
+ ## Page Items
56
+ ### Included
57
+ - Shuttle
58
+ - Switch
59
+ - Select List
60
+ - Checkbox
61
+ - Date Picker
62
+ - Display Only
63
+ - Hidden Item
64
+ - Radio Group
65
+ - Number Field
66
+ - Select Many
67
+ - Textfield
68
+ - Select One
69
+ - Text Area
70
+ - Rich Text Editor
71
+ - Multi Select
72
+ - Select List - Dynamic LOV Filter
73
+ - Select List - Dynamic LOV Form
74
+ - File Upload
75
+
76
+ ### Not Included
77
+ - Color Picker
78
+ - Star Rating
79
+ - Checkbox Group
80
+ - Combobox
81
+ - Textfield w/Autocomplete
82
+ - Smart Filter
83
+ - Display Image
84
+ - Image Upload
85
+
86
+ # Shared Components
87
+ ## Application Logic
88
+ ### Included
89
+ - Application Items
90
+ - Application Computations
91
+ - Application Processes
92
+ - Application Settings
93
+ - Build Options
94
+
95
+ ## Navigation & Search
96
+ ### Included
97
+ - Lists
98
+ - Navigation Menu
99
+ - Navigation Bar
100
+ - Breadcrumbs
101
+
102
+ ### Not Included
103
+ - Search Configurations
104
+
105
+ ## Data Sources
106
+ ### Included
107
+ - REST Data Sources
108
+
109
+ ### Not Included
110
+ - JSON Duality Views
111
+ - JSON Sources
112
+
113
+ ## Generative AI
114
+ ### Included
115
+ - AI Attributes
116
+ - AI Configurations
117
+ - AI Services
118
+
119
+ ## Security
120
+ ### Included
121
+ - Security Attributes
122
+ - Authentication Schemes
123
+ - Authorization Schemes
124
+ - Session State Protection
125
+
126
+ ### Not Included
127
+ - Application Access Control
128
+
129
+ ## User Interface
130
+ ### Included
131
+ - User Interface Attributes
132
+ - Email Templates
133
+
134
+ ### Not Included
135
+ - Progressive Web App
136
+ - Themes
137
+ - Templates
138
+ - Map Backgrounds
139
+
140
+ ## Workflows & Automations
141
+ ### Not Included
142
+ - Task Definitions
143
+ - Automations
144
+ - Workflows
145
+
146
+ ## Other Components
147
+ ### Included
148
+ - Lists of Values
149
+
150
+ ### Not Included
151
+ - Plug Ins
152
+ - Component Settings
153
+ - Shortcuts
154
+ - Component Groups
155
+ - Data Load Definitions
156
+
157
+ ## Files & Reports
158
+ ### Not Included
159
+ - Static Application Files
160
+ - Static Workspace Files
161
+ - Report Layouts
162
+ - Report Queries
163
+
164
+ ## Globalization
165
+ ### Included
166
+ - Globalization Attributes
167
+ - Text Messages
168
+
169
+ ### Not Included
170
+ - Application Translations
171
+
172
+ ## Computations
173
+ ### Included
174
+ - Static Value
175
+ - Item
176
+ - SQL Query - Return Single Value
177
+ - SQL Query - Return Multiple Values
178
+ - Expression
179
+ - Function Body
180
+
181
+ ### Not Included
182
+ - Preference
183
+
184
+ ## Processes
185
+ ### Included
186
+ - Close Dialog
187
+ - Execute Code
188
+ - Form - Automatic Row Processing
189
+ - Form - Initialization
190
+ - Generate Text with AI
191
+ - Interactive Grid - Automatic Row Processing
192
+ - Invoke API
193
+ - Send E-Mail
194
+
195
+ ### Not Included
196
+ - Clear Session State
197
+ - Data Loading
198
+ - Download
199
+ - Execution Chain
200
+ - Human Task - Create
201
+ - Human Task - Manage
202
+ - Print Report
203
+ - Reset Pagination
204
+ - Send Push Notification
205
+ - User Preferences
206
+ - Workflow
207
+
208
+
209
+ ## Validations
210
+ ### Included
211
+ - Rows Returned
212
+ - No Rows Returned
213
+ - Expression
214
+ - Function Body (returning Boolean)
215
+ - Function Body (returning Error Text)
216
+ - Item is NOT NULL
217
+ - Item is NOT NULL or zero
218
+ - Item is NOT zero
219
+ - Item contains no spaces
220
+ - Item is alphanumeric
221
+ - Item is numeric
222
+ - Item is a valid date
223
+ - Item is a valid timestamp
224
+ - Item = Value
225
+ - Item != Value
226
+ - Item is contained in Value
227
+ - Item is NOT contained in Value
228
+
229
+ ### Not Included
230
+ - PL/SQL Error
231
+ - Item contains only characters specified in Value
232
+ - Item contains at least one of the characters in Value
233
+ - Item does NOT contain any of the characters in Value
234
+ - Item matches Regular Expression
235
+
236
+ ## Dynamic Actions
237
+ ### Included
238
+ - Cancel Dialog
239
+ - Close Dialog
240
+ - Disable
241
+ - Enable
242
+ - Execute JavaScript Code
243
+ - Execute Server-Side Code
244
+ - Hide
245
+ - Refresh
246
+ - Set Value
247
+ - Show
248
+ - Show AI Assistant
249
+ - Show Error Message
250
+ - Show Success Message
251
+ - Submit Page
252
+ - Trigger Geocoding
253
+
254
+ ### Not Included
255
+ - Add Class
256
+ - Alert
257
+ - Cancel Event
258
+ - Clear
259
+ - Clear Errors
260
+ - Close Region
261
+ - Collapse Tree
262
+ - Confirm
263
+ - Download
264
+ - Expand Tree
265
+ - Generate Text with AI
266
+ - Get Current Position
267
+ - Invoke Interactive Report Dialog
268
+ - Open Region
269
+ - Print Report
270
+ - Remove Class
271
+ - Set Focus
272
+ - Set Style
273
+ - Share
274
+
275
+ # Automations & Workflows
276
+ ## PL/SQL
277
+ ### Included
278
+ - Foundation & Governance
279
+ - Batch Changes
280
+ - Migrate PL/SQL to Packages
281
+ - Generate UT-PLSQL Unit Tests
282
+ - Integration with DBMS_DEVELOPER table/view list / apex_db_dictionary
283
+
284
+ ### Not Included
285
+ - Move validations & computations to PL/SQL Packages
286
+
287
+ ## Help Text
288
+ ### Included
289
+ - Add help text to pages & forms
290
+
291
+ ## Translate an Application
292
+ ### Included
293
+ - Ability to translate an application using 26.1 message-based translations
294
+ - Applying translation to regions & items
295
+
296
+ ## Authorization
297
+ ### Included
298
+ - Apply an AuthZ scheme to data elements that contain PII
299
+
300
+ ## UI/UX Customizations
301
+ ### Included
302
+ - Basic understanding of Universal Theme
303
+
304
+ ## Column Comments
305
+ ### Included
306
+
307
+ - Create column comments in JSON that can be used when generating applications
308
+
309
+ ## Vector Search
310
+ ### Not Included
311
+ - Assist with generation of vectors
312
+
313
+ ## Debugging
314
+ ### Included
315
+ - Debugger foundations
316
+
317
+ ## Test Generation
318
+ ### Included
319
+ - Basic testing harness - phase 1
320
+
321
+ ## Static Analysis
322
+ ### Not Included
323
+ - Quality checks
324
+ - Security checks
325
+
@@ -9,10 +9,10 @@ Start with SKILL.md. It is the main root entry for routing, local context discov
9
9
  - Oracle APEX with APEXlang support, using the latest available 26.1 build.
10
10
  - SQLcl for real APEXlang validation and import workflows, version 26.1.2 or newer.
11
11
  - Java 17 or Java 21 for current SQLcl.
12
- - A saved SQLcl connection name and the corresponding APEX workspace name for Live DB validation, import, runtime diagnostics, or new-app materialization.
12
+ - A saved SQLcl connection or a manually supplied `db_connection_name` for Live DB validation, import, and runtime diagnostics. New-app materialization also requires the exact destination APEX workspace name.
13
13
  - A local Oracle APEX app directory or enough authoritative context for the skill to help create one.
14
14
 
15
- You can read the guidance and draft APEXlang artifacts without SQLcl. Any workflow that validates against Oracle APEX or imports into a workspace requires SQLcl, a usable `db_connection_name`, and the matching APEX workspace name.
15
+ You can read the guidance and draft APEXlang artifacts without SQLcl. Any workflow that validates against Oracle APEX or imports into a workspace requires SQLcl and a resolved `db_connection_name`. The active runtime resolves workspace identity; only ambiguity or new-app materialization requires an explicit workspace choice.
16
16
 
17
17
  New workspaces do not need a pre-existing `artifacts/` directory. Runtime outputs are created lazily under `APEXLANG_OUTPUT_ROOT` only when a command writes logs, reports, or export backups. Existing `apex-exports/` folders are backup/export material and are ignored for app resolution and generation unless the user explicitly asks to inspect an export backup.
18
18
 
@@ -33,7 +33,7 @@ Generic Oracle Database, PL/SQL, SQLcl, and utPLSQL guidance is owned by Oracle
33
33
 
34
34
  ## Prompt Examples by Task
35
35
 
36
- Good prompts name the app, page, component, data evidence, desired behavior, whether live validation is allowed, and for Live DB work the `db_connection_name` plus corresponding APEX workspace name.
36
+ Good prompts name the app, page, component, data evidence, desired behavior, and whether live validation is allowed. For Live DB work, provide `db_connection_name` only when saved-connection discovery cannot resolve one.
37
37
 
38
38
  ### Whole app from beginning to end
39
39
 
@@ -74,13 +74,13 @@ Localize and translate my APEX application to Spanish using text messages, creat
74
74
  ### Validation and debugging
75
75
 
76
76
  ```text
77
- Check the APEXlang code for my app using db_connection_name apex_dev and APEX workspace SERVICE_OPS_DEV. If validation fails, explain the owning layer and suggest the smallest fix.
77
+ Check the APEXlang code for my app using db_connection_name apex_dev. If validation reports workspace ambiguity, resolve the workspace from that session. If validation fails, explain the owning layer and suggest the smallest fix.
78
78
  ```
79
79
 
80
80
  ## Basic Workflow
81
81
 
82
82
  1. Load `SKILL.md`.
83
- 2. Resolve the app path and data context; collect `db_connection_name` plus the corresponding APEX workspace name only for Live DB work.
83
+ 2. Resolve the app path and data context; discover a saved SQLcl connection before requesting `db_connection_name` for Live DB work.
84
84
  3. Generate APEXlang artifacts.
85
85
  4. Check APEXlang code.
86
86
  5. Import only after explicit approval.
@@ -101,5 +101,5 @@ Check the APEXlang code for my app using db_connection_name apex_dev and APEX wo
101
101
  - This README is for Oracle APEXlang skill consumers.
102
102
  - Do not treat this README as the router. `SKILL.md` owns routing and safety behavior.
103
103
  - The skill must not invent database objects. Provide table metadata, a data model, a live connection, or exact object details when a request depends on schema facts.
104
- - Live DB workflows are incomplete until the user specifies both `db_connection_name` and the corresponding APEX workspace name.
104
+ - Live DB workflows require a resolved `db_connection_name`; explicit workspace input is needed only for new-app materialization or runtime-reported ambiguity.
105
105
  - `artifacts/` is output only, not startup context. `apex-exports/` is backup/export material, not generated source.
@@ -1,3 +1,3 @@
1
- # Release Notes
1
+ # APEXlang Release Notes
2
2
 
3
- View [APEXLang Skills Release Notes](https://html-preview.github.io/?url=https://raw.githubusercontent.com/oracle/skills/refs/heads/main/apex/apexlang/release-notes.html)
3
+ View the full [APEXlang Skills Release Notes](https://html-preview.github.io/?url=https://raw.githubusercontent.com/oracle/skills/refs/heads/main/apex/apexlang/release-notes.html).
@@ -5,30 +5,37 @@ description: Public APEXlang router with deterministic local-context discovery a
5
5
 
6
6
  # Skill — APEXlang
7
7
 
8
- `SKILL.md` is the north-star source of truth and main routing entry point for packaged APEXlang generation. Read compact JSON assets before broader prose.
8
+ `SKILL.md` is the router. Resolve compact task context before prose.
9
9
 
10
10
  ## Start Order
11
+ For an isolated grammar benchmark with a complete request and exact command,
12
+ skip this start order, catalogs, workspace probe, and templates. Run only the
13
+ selected lookup; the runner may audit afterward outside generation tokens.
14
+
11
15
  1. `assets/routing-catalog-main.json`
12
16
  2. `assets/routing-load-policy.json`
13
- 3. `assets/apexlang/domains-catalog.json`
14
- 4. `assets/workspace-intelligence.json`
15
- 5. Run `node tools/apexctl.mjs workspace probe` from the packaged skill root.
16
- 6. The temp-runtime `context-resolution.json` report under `APEXLANG_OUTPUT_ROOT`, when present
17
+ 3. `assets/rules.catalog.json`
18
+ 4. `assets/apexlang/domains-catalog.json`
19
+ 5. `assets/workspace-intelligence.json`
20
+ 6. Run `node tools/apexctl.mjs workspace probe`.
21
+ 7. The temp-runtime `context-resolution.json` report under `APEXLANG_OUTPUT_ROOT`, when present
17
22
 
18
- Only the package-root asset names above are valid for the public package. Do not substitute legacy router or load-policy aliases from copied prompts.
23
+ Use these package-root assets; ignore legacy aliases.
19
24
 
20
25
  ## Local Context Contract
21
26
  - Discovery boundary is the current local AI tooling session directory only.
22
27
  - Prefer authoritative offline context from metadata definitions, data models, or API contracts.
23
- - Treat `specs/` and `requirements/` as hints and disambiguation only.
24
- - Do not infer schema or API shape from prose, names, or headings.
28
+ - Treat `specs/`, `requirements/`, and prose as hints; never infer structure from them.
25
29
  - Treat `artifacts/` as optional runtime output only. Do not require it before generation starts and do not use it as source context.
26
- - Treat any `apex-exports` path segment as backup/export material only. Ignore it for app resolution, metadata discovery, bounded scans, template/source selection, and generation unless the user explicitly asks for read-only export inspection, migration, or recovery analysis.
30
+ - Treat any `apex-exports` path segment as backup/export material only. Ignore it except for explicit export inspection, migration, or recovery.
27
31
  - All `node tools/apexctl.mjs ...` commands are package-root relative: run them from the packaged skill root, or invoke that script by explicit path.
28
32
  - In packaged mode, default runtime outputs are ephemeral and must stay under `APEXLANG_OUTPUT_ROOT`, which the bundled launcher sets to a per-run temp directory.
29
33
  - When app or page scope appears with translation, localization, target-language, `messages.apx`, or `APP_TEXT$` wording, route first to the shared-components translation guidance before generic page/app generation references.
30
34
  - Plain app/page localization requests must be satisfied by text-message conversion plus `&APP_TEXT$...` consumption rewiring. Do not satisfy them by inserting direct translated literals into component attributes.
31
- - For complete app generation from functional requirements plus model/schema metadata, route through `references/workflows/apexlang/workflow-create-app-from-fr-and-model.md` and complete `references/workflows/apexlang/application-spec.template.md` into project-root `.apexlang/application-spec.md`, including an Application Composition Plan, Rich UI Pattern Plan, and project-root `.apexlang/app-ux-contract.json`, before drafting non-trivial `.apx` artifacts.
35
+ - For complete app generation from functional requirements plus model/schema metadata, route through `references/workflows/apexlang/workflow-create-app-from-fr-and-model.md` and complete `references/workflows/apexlang/application-spec.template.md` into `.apexlang/application-spec.md`, including an Application Composition Plan, before drafting non-trivial `.apx` artifacts.
36
+ - Use resolver projections before Markdown. For full apps, freeze the application spec and UX contract, then resolve fresh task-specific context for each implementation unit. Follow `assets/contracts/package-layers.json`.
37
+ - Selection is not authorization: if `generation_status` is `blocked`, report `missingInputs` and do not emit, validate, publish, or import. Use `context resolve ... --require-ready` for automation.
38
+ - Keep the raw grammar, full guard, component registry, repair catalog, and template tree out of model context; use tool projections.
32
39
 
33
40
  ## App Location Contract
34
41
  - For app-scoped work, resolve the target APEX app before reading or editing app files.
@@ -51,22 +58,20 @@ Only the package-root asset names above are valid for the public package. Do not
51
58
  - Use `node tools/apexctl.mjs runtime validate --app-path <absolute_app_path> --db-connection-name <db_connection_name> --apex-root <resolved_build_root> [--compiler-oracle-home <compiler_metadata_home>]` as the public check-only gate for generated apps. `--apex-root` selects the APEX/SQLcl runtime; `--compiler-oracle-home` overrides only compiler-truth metadata discovery.
52
59
  - Live APEX validation is authoritative; missing runtime inputs or live evidence records `LIVE_RUNTIME_VALIDATION_REQUIRED_001` and blocks completion.
53
60
  - Local lint, compiler-truth, and VS Code Problems snapshots are diagnostics after a live pass; missing snapshots are `not_provided`.
54
- - Use `problems.json` with `assets/validator-fix-recipes.json` to repair reported live problems, then rerun `runtime validate`.
61
+ - Resolve `problems.json` with `node tools/apexctl.mjs context repair --problems <path>`, which projects matching `assets/validator-fix-recipes.json` entries; apply them and rerun validation.
55
62
  - For every APEXlang artifact generation, mutation, checking, debugging, or runtime workflow: Default to checking APEXlang code only. After the live APEXlang check passes, offer GUI choices with a short purpose summary: Check APEXlang code (recommended) stops after confirmation, and Check and import APEXlang code runs the import in the checked session. If GUI choices are unavailable, stop after checking the code and report import as a follow-up.
56
- - Keep generated APEXlang block-structured and compiler-safe: emit one top-level declaration per block, separate sibling top-level declarations with a blank line, never place two sibling declarations on the same line, and preserve normal nested indentation inside each declaration.
57
- - Reuse a canonical template directly only when the component family and variant, parent context, nesting shape, and conditional mode already match, and the change is limited to safe instance substitutions such as labels, names, ids, aliases, and SQL text.
58
- - If no exact-match template exists, or if a change introduces a new property, nested block, enum token, slot, template option, or layout attribute, query compiler-backed truth with `node tools/query-valid-props.mjs` before generating code. Every generated or revised `.apx` artifact must pass `node tools/apexctl.mjs apexlang compiler-truth audit --app-path <app-path> --verify-component-attributes` before publish, live validate, or import eligibility. Direct compiler validation or compiler metadata outranks exact-match canonical templates and examples; `assets/component-attributes.json` is fallback/internal validator context only after those stronger sources are exhausted. Treat `assets/component-attributes.json` as a compiler-provenanced curated safe subset and policy layer, not a replacement for the audit. If compiler-backed truth conflicts with a template/example, follow the compiler-valid shape and treat the template/example as defective. If compiler-backed truth cannot be resolved for a non-exact-match structural change, stop with Missing Inputs rather than inventing syntax.
59
- - For non-trivial page, component, or application generation, emit a compact `Generation Plan` before the generated APEXlang. The plan must freeze the target artifact scope, exact template family or variant, ordered region/item/button inventory when applicable, source mode decisions, navigation or target decisions, and compiler-truth evidence references when required.
63
+ - Generate each implementation unit from its task-scoped context and grammar contract. Emit one top-level declaration per block and one property or parameter per line after its opening declaration or block; keep nested blocks multiline. Run `node tools/apexctl.mjs apexlang format --app-path <path> --strict-structure` before grammar validation: it may normalize whitespace, but it rejects and does not write structural changes.
64
+ - Reuse a canonical template directly only when the component family and variant, parent context, nesting shape, and conditional mode already match, and the change is limited to safe instance substitutions such as labels, names, ids, aliases, and SQL text. Templates are exact-match examples and renderer references, not the primary syntax oracle.
65
+ - Use `assets/grammar/apexlang.ebnf` as the APEXlang syntax oracle, but never load it whole. Run one task-scoped grammar contract for selected components and groups, using parent-aware child selectors and instance bindings only when required. Apply its semantic rules, compiler assumptions, exact instance declarations, repository policies, active requirements, forbidden blocks, and activation/omit rules. Then run the same-selection grammar audit and repair failed page-local MUST checks. For choices not resolved by the contract, query compiler-backed truth with `node tools/query-valid-props.mjs` before generating code. Every changed `.apx` must pass compiler-truth audit before live use. Compiler truth outranks templates; if unavailable, stop with Missing Inputs.
66
+ - For non-trivial page, component, or application generation, emit a compact `Generation Plan` before the generated APEXlang. The plan must freeze the target artifact scope, selected contract or exact template family/variant, ordered region/item/button inventory when applicable, source mode decisions, navigation or target decisions, source trace, and compiler-truth evidence references when required.
67
+ - For non-trivial work, keep a compact source trace: intent -> smallest rule/contract/workflow -> grammar/compiler evidence -> exact template only when needed.
60
68
  - Follow the shared snippet classification contract: treat unclassified examples as illustrative prompts, never as schema evidence; emit `{{...}}` metavariable templates only after every variable is bound from authoritative context; generated `.apx` artifacts must not contain unresolved `{{...}}` variables or prompt-only pseudo-identifiers such as `SOURCE_TABLE`, `LOOKUP_TABLE`, `RELATED_TABLE`, `SOURCE_ID`, `LOOKUP_ID`, or `LOOKUP_NAME`.
61
- - For any Live DB validation, import, runtime diagnostic, or new-app materialization, require the user to provide both `db_connection_name` and the corresponding APEX workspace name. Record the workspace name in `db_context.workspace.name`; stop with Missing Inputs if either value is missing or ambiguous.
69
+ - For Live DB work, inspect saved SQLcl connections first and auto-bind one deterministic connection. Ask the user only to choose among multiple connections or provide `db_connection_name` when none can be resolved. If the active runtime reports workspace ambiguity, resolve its workspace id and rerun with that run-scoped override. Require an exact destination workspace name before new-app materialization.
62
70
  - When a brand new app run will generate `deployments/default.json`, require the user to specify the exact destination APEX workspace name before materialization and record the selected workspace in the session `context-resolution.json` under `db_context.workspace`. Stop with Missing Inputs instead of guessing, auto-selecting, or reusing a scaffold placeholder. `node tools/apexctl.mjs new-app materialize --app-path <path>` may use that session context; an explicit `--workspace-name <name>` remains valid and takes precedence.
63
71
  - Use the shared contract in `references/workflows/apexlang/prompt-contracts.md` for instruction hierarchy, tagged prompt sections, rule IDs, intermediate artifacts, and stop conditions.
64
72
  - Follow the posted rules and workflow first. If those sources still do not answer a required high-impact decision, stop with Missing Inputs or explicit human intervention instead of guessing. Allow bounded inference only after higher-precedence rule and workflow sources are exhausted, and only for low-risk connective details that do not change structural legality.
65
73
  - Treat an explicit post-check GUI import choice as the only trigger for live import; do not infer it from prompt wording or defaults.
66
74
  - If GUI choices are unavailable, stop after the check-only path and report import as a follow-up.
67
- - For interactive DB-backed runs, ask whether the user wants `Offline` or `Live DB` first.
68
- - If `Live DB` is chosen, require the user to specify both `db_connection_name` and the corresponding APEX workspace name before live metadata validation, `apex validate`, `apex import`, runtime diagnostics, or new-app materialization.
69
- - Saved SQLcl connection discovery may help the user choose an alias, but do not treat discovery alone as approval to proceed without the matching APEX workspace name.
70
75
  - Record the APEX workspace name in `db_context.workspace.name`; pass it as `--workspace-name <name>` for packaged commands that accept the flag.
71
76
  - `Offline` disables live metadata validation, `apex validate`, and `apex import`.
72
77
 
@@ -1,3 +1,4 @@
1
- display_name: APEXlang
2
- short_description: Deterministic public APEXlang router
3
- default_prompt: You are the public APEXlang skill. Start with the packaged JSON catalogs, resolve local context from the current session directory, prefer authoritative machine-readable evidence, and stop with Missing Inputs when verified structure cannot be proven. Treat `artifacts/` as optional output only and ignore `apex-exports/` backup trees for app resolution, metadata discovery, bounded scans, and generation unless explicitly asked to inspect an export backup. All `node tools/apexctl.mjs ...` commands are package-root relative: run them from the packaged skill root, or invoke that script by explicit path. In packaged mode, default runtime outputs are ephemeral and must stay under `APEXLANG_OUTPUT_ROOT`, which the bundled launcher sets to a per-run temp directory. Use `node tools/apexctl.mjs workspace probe` as the first app-resolution step. If `applications/` exists but contains no app yet and authoritative offline context is present, recover with `node tools/apexctl.mjs workspace probe`, require the user to specify the destination APEX workspace name, record it in the session `context-resolution.json` under `db_context.workspace`, then `node tools/apexctl.mjs new-app materialize --app-path <path>`, then app-local edits only. Do not widen search outside the current session directory or outside this package, and do not use external repo examples when `templates/base-app-structure/scaffold-example/**` already provides the scaffold source. Treat `templates/base-app-structure/` root files as template docs and metadata only, and never publish the `scaffold-example/` container itself into generated app roots. When validator or `problems.json` issues are present, load `assets/validator-fix-recipes.json` and map each issue to rule_id, cause, deterministic_fix, owning_guidance, and verification_result before revising. Use the shared contract in `references/workflows/apexlang/prompt-contracts.md` for instruction hierarchy, tagged prompt sections, rule IDs, intermediate artifacts, and stop conditions. Follow the posted rules and workflow first. If those sources still do not answer a required high-impact decision, stop with Missing Inputs or explicit human intervention instead of guessing. Allow bounded inference only after higher-precedence rule and workflow sources are exhausted, and only for low-risk connective details that do not change structural legality. For complete app generation from functional requirements plus model/schema metadata, route through `references/workflows/apexlang/workflow-create-app-from-fr-and-model.md` and complete `references/workflows/apexlang/application-spec.template.md` into project-root `.apexlang/application-spec.md`, including an Application Composition Plan, Rich UI Pattern Plan, and project-root `.apexlang/app-ux-contract.json`, before drafting non-trivial `.apx` artifacts. Follow the shared snippet classification contract: treat unclassified examples as illustrative prompts, never as schema evidence; emit `{{...}}` metavariable templates only after every variable is bound from authoritative context; generated `.apx` artifacts must not contain unresolved `{{...}}` variables or prompt-only pseudo-identifiers such as `SOURCE_TABLE`, `LOOKUP_TABLE`, `RELATED_TABLE`, `SOURCE_ID`, `LOOKUP_ID`, or `LOOKUP_NAME`. For every APEXlang artifact generation, mutation, validation, debugging, or runtime workflow: Default to checking APEXlang code only. After the live APEXlang check passes, offer GUI choices with a short purpose summary: Check APEXlang code (recommended) stops after confirmation, and Check and import APEXlang code runs the import in the checked session. If GUI choices are unavailable, stop after checking the code and report import as a follow-up. Keep generated APEXlang block-structured and compiler-safe: emit one top-level declaration per block, separate sibling top-level declarations with a blank line, never place two sibling declarations on the same line, and preserve normal nested indentation inside each declaration. Reuse a canonical template directly only when the component family and variant, parent context, nesting shape, and conditional mode already match, and the change is limited to safe instance substitutions such as labels, names, ids, aliases, and SQL text. If no exact-match template exists, or if a change introduces a new property, nested block, enum token, slot, template option, or layout attribute, query compiler-backed truth with `node tools/query-valid-props.mjs` before generating code. Every generated or revised `.apx` artifact must pass `node tools/apexctl.mjs apexlang compiler-truth audit --app-path <app-path> --verify-component-attributes` before publish, live validate, or import eligibility. Direct compiler validation or compiler metadata outranks exact-match canonical templates and examples; `assets/component-attributes.json` is fallback/internal validator context only after those stronger sources are exhausted. Treat `assets/component-attributes.json` as a compiler-provenanced curated safe subset and policy layer, not a replacement for the audit. If compiler-backed truth conflicts with a template/example, follow the compiler-valid shape and treat the template/example as defective. If compiler-backed truth cannot be resolved for a non-exact-match structural change, stop with Missing Inputs rather than inventing syntax. For non-trivial page, component, or application generation, emit a compact `Generation Plan` before the generated APEXlang. The plan must freeze the target artifact scope, exact template family or variant, ordered region/item/button inventory when applicable, source mode decisions, navigation or target decisions, and compiler-truth evidence references when required. For any Live DB validation, import, runtime diagnostic, or new-app materialization, require the user to provide both `db_connection_name` and the corresponding APEX workspace name. Record the workspace name in `db_context.workspace.name`; stop with Missing Inputs if either value is missing or ambiguous. When a brand new app run will generate `deployments/default.json`, require the user to specify the exact destination APEX workspace name before materialization and record the selected workspace in the session `context-resolution.json` under `db_context.workspace`. Stop with Missing Inputs instead of guessing, auto-selecting, or reusing a scaffold placeholder. `node tools/apexctl.mjs new-app materialize --app-path <path>` may use that session context; an explicit `--workspace-name <name>` remains valid and takes precedence. Available GUI choices are Check APEXlang code or Check and import APEXlang code.
1
+ interface:
2
+ display_name: "APEXlang"
3
+ short_description: "Deterministic public APEXlang router"
4
+ default_prompt: "You are the public APEXlang skill. Load `SKILL.md` and resolve app context with `node tools/apexctl.mjs workspace probe`. Use `node tools/apexctl.mjs context resolve --intent \"<intent>\" --phase draft --require-ready` for each implementation unit. Full apps require a frozen application spec and UX contract. Follow `references/workflows/apexlang/prompt-contracts.md`. Emit a Generation Plan. Generate each implementation unit from its task-scoped context and grammar contract. Emit one top-level declaration per block and one property or parameter per line after its opening declaration or block; keep nested blocks multiline. Run `node tools/apexctl.mjs apexlang format --app-path <path> --strict-structure` before grammar validation: it may normalize whitespace, but it rejects and does not write structural changes. Use grammar-backed validation, compiler truth, resolver projections, and one exact template. Resolve findings through `context repair`. Stop with Missing Inputs or explicit human intervention instead of guessing. Default to checking APEXlang code only. After the live APEXlang check passes, offer GUI choices with a short purpose summary: Check APEXlang code (recommended) stops after confirmation, and Check and import APEXlang code runs the import in the checked session. If GUI choices are unavailable, stop after checking the code and report import as a follow-up."