pi-apexlang 0.1.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 (797) hide show
  1. package/LICENSE +35 -0
  2. package/README.md +159 -0
  3. package/THIRD_PARTY_NOTICES.md +15 -0
  4. package/UPSTREAM.json +8 -0
  5. package/extensions/apexlang/index.ts +426 -0
  6. package/extensions/lib/apexlang-cli.d.mts +111 -0
  7. package/extensions/lib/apexlang-cli.mjs +810 -0
  8. package/package.json +64 -0
  9. package/skills/apexlang/README.md +105 -0
  10. package/skills/apexlang/RELEASE-NOTES.md +3 -0
  11. package/skills/apexlang/SKILL.md +77 -0
  12. package/skills/apexlang/agents/openai.yaml +3 -0
  13. package/skills/apexlang/assets/apex-generation/components.registry.json +2340 -0
  14. package/skills/apexlang/assets/apexlang/domains-catalog.json +136 -0
  15. package/skills/apexlang/assets/component-attributes.json +1422 -0
  16. package/skills/apexlang/assets/component-policies.json +530 -0
  17. package/skills/apexlang/assets/context-adapters.json +109 -0
  18. package/skills/apexlang/assets/context-schema.json +28 -0
  19. package/skills/apexlang/assets/domains/business-logic/computations-prompt.md +32 -0
  20. package/skills/apexlang/assets/domains/business-logic/validations-prompt.md +30 -0
  21. package/skills/apexlang/assets/domains/page-components/buttons/button-actions.md +19 -0
  22. package/skills/apexlang/assets/domains/page-components/buttons/buttons.md +17 -0
  23. package/skills/apexlang/assets/domains/page-components/page-patterns/server-side-conditions-prompt.md +141 -0
  24. package/skills/apexlang/assets/domains/shared-components/translations/default-config.json +19 -0
  25. package/skills/apexlang/assets/domains/shared-components/translations/languages.json +147 -0
  26. package/skills/apexlang/assets/domains/shared-components/translations/prompts.json +29 -0
  27. package/skills/apexlang/assets/domains/template-components/button-actions-prompt.md +18 -0
  28. package/skills/apexlang/assets/domains/template-components/help-text-prompt.md +73 -0
  29. package/skills/apexlang/assets/domains/universal-attr-config/help_text.md +73 -0
  30. package/skills/apexlang/assets/domains/universal-attr-config/translations.prompts.json +29 -0
  31. package/skills/apexlang/assets/orchestration.manifest.json +18 -0
  32. package/skills/apexlang/assets/routing-assets-index.json +36 -0
  33. package/skills/apexlang/assets/routing-catalog-main.json +179 -0
  34. package/skills/apexlang/assets/routing-load-policy.json +88 -0
  35. package/skills/apexlang/assets/rules-mapping.json +777 -0
  36. package/skills/apexlang/assets/validator-fix-recipes.json +503 -0
  37. package/skills/apexlang/assets/workspace-intelligence.json +179 -0
  38. package/skills/apexlang/manifest.json +3269 -0
  39. package/skills/apexlang/references/domains/README.md +565 -0
  40. package/skills/apexlang/references/domains/business-logic/computations/workflow-computations-batch.md +40 -0
  41. package/skills/apexlang/references/domains/business-logic/dynamic-actions/workflow-dynamic-actions-batch.md +46 -0
  42. package/skills/apexlang/references/domains/business-logic/dynamic-actions/workflow-dynamic-actions-plsql-batch.md +35 -0
  43. package/skills/apexlang/references/domains/business-logic/dynamic-actions/workflow-dynamic-actions.md +45 -0
  44. package/skills/apexlang/references/domains/business-logic/processes/workflow-page-processes-batch.md +45 -0
  45. package/skills/apexlang/references/domains/business-logic/registry.md +10 -0
  46. package/skills/apexlang/references/domains/business-logic/reusable-prompts/computations.md +30 -0
  47. package/skills/apexlang/references/domains/business-logic/reusable-prompts/validations.md +30 -0
  48. package/skills/apexlang/references/domains/business-logic/templates.md +26 -0
  49. package/skills/apexlang/references/domains/business-logic/validations/README.md +25 -0
  50. package/skills/apexlang/references/domains/debugging/apex-debug-messages.md +161 -0
  51. package/skills/apexlang/references/domains/debugging/checks-and-commands.md +177 -0
  52. package/skills/apexlang/references/domains/debugging/example-scenarios.md +101 -0
  53. package/skills/apexlang/references/domains/debugging/failure-map.md +40 -0
  54. package/skills/apexlang/references/domains/debugging/fix-patterns.md +66 -0
  55. package/skills/apexlang/references/domains/debugging/owning-surfaces.md +37 -0
  56. package/skills/apexlang/references/domains/debugging/runtime-ui-verification.md +60 -0
  57. package/skills/apexlang/references/domains/page-components/business-logic.md +5 -0
  58. package/skills/apexlang/references/domains/page-components/buttons/registry.md +14 -0
  59. package/skills/apexlang/references/domains/page-components/buttons/reusable-prompts.md +11 -0
  60. package/skills/apexlang/references/domains/page-components/buttons/templates.md +25 -0
  61. package/skills/apexlang/references/domains/page-components/buttons/workflow-button-actions-batch.md +44 -0
  62. package/skills/apexlang/references/domains/page-components/buttons/workflow-button-batch.md +58 -0
  63. package/skills/apexlang/references/domains/page-components/buttons.md +67 -0
  64. package/skills/apexlang/references/domains/page-components/page-items/registry.md +23 -0
  65. package/skills/apexlang/references/domains/page-components/page-items/templates.md +37 -0
  66. package/skills/apexlang/references/domains/page-components/page-items.md +68 -0
  67. package/skills/apexlang/references/domains/page-components/page-patterns/registry.md +11 -0
  68. package/skills/apexlang/references/domains/page-components/page-patterns/templates.md +35 -0
  69. package/skills/apexlang/references/domains/page-components/page-patterns.md +119 -0
  70. package/skills/apexlang/references/domains/page-components/regions/calendar/workflow-calendar-link-targets.md +39 -0
  71. package/skills/apexlang/references/domains/page-components/regions/chart/workflow-charts.md +30 -0
  72. package/skills/apexlang/references/domains/page-components/regions/dashboard/workflow-dashboard.md +51 -0
  73. package/skills/apexlang/references/domains/page-components/regions/form/workflow-modal-crud-form.md +46 -0
  74. package/skills/apexlang/references/domains/page-components/regions/interactive-report/workflow-interactive-report.md +56 -0
  75. package/skills/apexlang/references/domains/page-components/regions/registry.md +16 -0
  76. package/skills/apexlang/references/domains/page-components/regions/templates.md +47 -0
  77. package/skills/apexlang/references/domains/page-components/regions.md +170 -0
  78. package/skills/apexlang/references/domains/page-components/screenshot-to-layout/component-mapping.md +119 -0
  79. package/skills/apexlang/references/domains/page-components/screenshot-to-layout/workflow.md +95 -0
  80. package/skills/apexlang/references/domains/page-components/screenshot-to-layout.md +204 -0
  81. package/skills/apexlang/references/domains/shared-components/reusable-prompts/translations.md +40 -0
  82. package/skills/apexlang/references/domains/shared-components/templates.md +58 -0
  83. package/skills/apexlang/references/domains/shared-components/workflow-translations-batch.md +82 -0
  84. package/skills/apexlang/references/domains/shared-components/workflow-translations.md +72 -0
  85. package/skills/apexlang/references/domains/template-components/registry.md +13 -0
  86. package/skills/apexlang/references/domains/template-components/templates.md +29 -0
  87. package/skills/apexlang/references/domains/template-components/workflow-items-templates.md +37 -0
  88. package/skills/apexlang/references/domains/universal-attr-config/reusable-prompts/help_text.md +22 -0
  89. package/skills/apexlang/references/domains/universal-attr-config/templates.md +16 -0
  90. package/skills/apexlang/references/domains/universal-attr-config/workflow-help-text-batch.md +48 -0
  91. package/skills/apexlang/references/domains/universal-attr-config/workflow-page-sequencing.md +18 -0
  92. package/skills/apexlang/references/domains/universal-attr-config/workflow-server-side-conditions-batch.md +42 -0
  93. package/skills/apexlang/references/ops/one-message-router-contract.md +97 -0
  94. package/skills/apexlang/references/ops/reusable-prompts/orchestration-master-generic.md +21 -0
  95. package/skills/apexlang/references/ops/reusable-prompts/server-side-conditions.md +80 -0
  96. package/skills/apexlang/references/ops/runtime-gates/01-direct-sqlcl-import.md +53 -0
  97. package/skills/apexlang/references/ops/runtime-gates/02-direct-sqlcl-validate-gate.md +77 -0
  98. package/skills/apexlang/references/ops/runtime-gates.md +104 -0
  99. package/skills/apexlang/references/ops/shared-reference-index.md +16 -0
  100. package/skills/apexlang/references/ops/sqlcl-agents/00-connection-gate.md +59 -0
  101. package/skills/apexlang/references/ops/sqlcl.md +109 -0
  102. package/skills/apexlang/references/policies/apexlang-dsl-reference.md +136 -0
  103. package/skills/apexlang/references/policies/compiler-prop-map.md +41 -0
  104. package/skills/apexlang/references/policies/context-overview.md +78 -0
  105. package/skills/apexlang/references/policies/governance/00-governance.md +160 -0
  106. package/skills/apexlang/references/policies/governance/apex-spec-standards.md +118 -0
  107. package/skills/apexlang/references/policies/governance/prompt-normalization.md +23 -0
  108. package/skills/apexlang/references/policies/memory-bank/00-guard/ai.guard.md +935 -0
  109. package/skills/apexlang/references/policies/memory-bank/10-global/apex.acronyms.md +10 -0
  110. package/skills/apexlang/references/policies/memory-bank/10-global/apex.global.md +177 -0
  111. package/skills/apexlang/references/policies/memory-bank/20-data/apex.logic.md +499 -0
  112. package/skills/apexlang/references/policies/memory-bank/20-data/apex.schema-modeling.md +180 -0
  113. package/skills/apexlang/references/policies/memory-bank/20-data/apex.sql.md +215 -0
  114. package/skills/apexlang/references/policies/memory-bank/20-data/db.connection.md +93 -0
  115. package/skills/apexlang/references/policies/memory-bank/20-data/utplsql.rules.md +44 -0
  116. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.blank-page.md +13 -0
  117. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.calendar.md +35 -0
  118. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.chart-page.md +47 -0
  119. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.classic-report.md +65 -0
  120. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.dashboard.md +245 -0
  121. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.faceted-search.md +61 -0
  122. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.form.md +166 -0
  123. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.interactive-grid-page.md +51 -0
  124. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.interactive-report.md +71 -0
  125. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.layout.md +135 -0
  126. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.login-page.md +24 -0
  127. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.map-page.md +29 -0
  128. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.page.md +239 -0
  129. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.report-column-rendering.md +58 -0
  130. package/skills/apexlang/references/policies/memory-bank/30-pages/apex.smart-filter-search.md +107 -0
  131. package/skills/apexlang/references/policies/memory-bank/40-components/README.md +73 -0
  132. package/skills/apexlang/references/policies/memory-bank/40-components/apex.buttons.md +346 -0
  133. package/skills/apexlang/references/policies/memory-bank/40-components/apex.items.md +154 -0
  134. package/skills/apexlang/references/policies/memory-bank/40-components/apex.region-contracts.md +26 -0
  135. package/skills/apexlang/references/policies/memory-bank/40-components/apex.region-data-source.md +25 -0
  136. package/skills/apexlang/references/policies/memory-bank/40-components/apex.region-interactions.md +43 -0
  137. package/skills/apexlang/references/policies/memory-bank/40-components/apex.region-media.md +31 -0
  138. package/skills/apexlang/references/policies/memory-bank/40-components/apex.templates.md +240 -0
  139. package/skills/apexlang/references/policies/memory-bank/systemPatterns.md +70 -0
  140. package/skills/apexlang/references/workflows/apex-generation/agents/20-agent-draft.md +264 -0
  141. package/skills/apexlang/references/workflows/apex-generation/agents/30-agent-critique.md +472 -0
  142. package/skills/apexlang/references/workflows/apex-generation/agents/40-agent-revision.md +255 -0
  143. package/skills/apexlang/references/workflows/apex-generation/apexlang-skeleton-prompt.md +288 -0
  144. package/skills/apexlang/references/workflows/apex-generation/nlu/nlu-routing-test-matrix.md +264 -0
  145. package/skills/apexlang/references/workflows/apex-generation/nlu/nlu-routing-validation-notes.md +171 -0
  146. package/skills/apexlang/references/workflows/apex-generation/registry.md +14 -0
  147. package/skills/apexlang/references/workflows/apex-generation/templates.md +49 -0
  148. package/skills/apexlang/references/workflows/apex-generation/workflow-manifests/apex-generation-agent-suite.md +40 -0
  149. package/skills/apexlang/references/workflows/apex-generation/workflow-manifests/apex-generation-master-workflow.md +38 -0
  150. package/skills/apexlang/references/workflows/apex-generation.md +65 -0
  151. package/skills/apexlang/references/workflows/apexlang/apexlang-execution-model.md +53 -0
  152. package/skills/apexlang/references/workflows/apexlang/application-spec.template.md +370 -0
  153. package/skills/apexlang/references/workflows/apexlang/prompt-contracts.md +590 -0
  154. package/skills/apexlang/references/workflows/apexlang/workflow-create-app-from-fr-and-model.md +94 -0
  155. package/skills/apexlang/release-notes.html +710 -0
  156. package/skills/apexlang/release-notes.json +173 -0
  157. package/skills/apexlang/runtime/internal/python/validate_apexlang.py +9520 -0
  158. package/skills/apexlang/runtime/internal/python/validate_apexlang_vocab.py +281 -0
  159. package/skills/apexlang/runtime/internal/python/validate_validations.py +289 -0
  160. package/skills/apexlang/runtime/internal/python/validator_common.py +149 -0
  161. package/skills/apexlang/runtime/lib/common.mjs +340 -0
  162. package/skills/apexlang/runtime/runtime.bundle.mjs +5052 -0
  163. package/skills/apexlang/runtime/runtime_resolution.mjs +234 -0
  164. package/skills/apexlang/runtime/sqlcl_preflight.mjs +277 -0
  165. package/skills/apexlang/templates/README.md +72 -0
  166. package/skills/apexlang/templates/_common_variables.template.md +27 -0
  167. package/skills/apexlang/templates/base-app-structure/README.md +121 -0
  168. package/skills/apexlang/templates/base-app-structure/base-app-runtime-seed.manifest.json +43 -0
  169. package/skills/apexlang/templates/base-app-structure/base-app-structure._common.md +267 -0
  170. package/skills/apexlang/templates/base-app-structure/base-app-structure._index.md +26 -0
  171. package/skills/apexlang/templates/base-app-structure/base-app-structure.registry.json +39 -0
  172. package/skills/apexlang/templates/base-app-structure/scaffold-example/.apex/apexlang.json +3 -0
  173. package/skills/apexlang/templates/base-app-structure/scaffold-example/application.apx +57 -0
  174. package/skills/apexlang/templates/base-app-structure/scaffold-example/deployments/default.json +5 -0
  175. package/skills/apexlang/templates/base-app-structure/scaffold-example/page-groups.apx +4 -0
  176. package/skills/apexlang/templates/base-app-structure/scaffold-example/pages/p00000-global-page.apx +4 -0
  177. package/skills/apexlang/templates/base-app-structure/scaffold-example/pages/p00001-home.apx +35 -0
  178. package/skills/apexlang/templates/base-app-structure/scaffold-example/pages/p09999-login.apx +254 -0
  179. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/authentications.apx +5 -0
  180. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/authorizations.apx +10 -0
  181. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/breadcrumbs.apx +18 -0
  182. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/build-options.apx +4 -0
  183. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/component-settings.apx +92 -0
  184. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/lists.apx +81 -0
  185. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/lovs.apx +20 -0
  186. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/static-files/icons/app-icon-144-rounded.png +0 -0
  187. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/static-files/icons/app-icon-192.png +0 -0
  188. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/static-files/icons/app-icon-256-rounded.png +0 -0
  189. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/static-files/icons/app-icon-32.png +0 -0
  190. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/static-files/icons/app-icon-512.png +0 -0
  191. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/static-files.apx +25 -0
  192. package/skills/apexlang/templates/base-app-structure/scaffold-example/shared-components/themes/universal-theme/theme.apx +56 -0
  193. package/skills/apexlang/templates/base-app-structure/scaffold-example/supporting-objects/deinstall-script.sql +0 -0
  194. package/skills/apexlang/templates/base-app-structure/scaffold-example/supporting-objects/supporting-objects.apx +9 -0
  195. package/skills/apexlang/templates/business-logic/business-logic.registry.json +32 -0
  196. package/skills/apexlang/templates/business-logic/computations/README.md +26 -0
  197. package/skills/apexlang/templates/business-logic/computations/computations._common.md +199 -0
  198. package/skills/apexlang/templates/business-logic/computations/computations._index.md +18 -0
  199. package/skills/apexlang/templates/business-logic/computations/computations.date.md +34 -0
  200. package/skills/apexlang/templates/business-logic/computations/computations.execute.md +43 -0
  201. package/skills/apexlang/templates/business-logic/computations/computations.expression.md +54 -0
  202. package/skills/apexlang/templates/business-logic/computations/computations.function-body.md +37 -0
  203. package/skills/apexlang/templates/business-logic/computations/computations.set-from-item.md +76 -0
  204. package/skills/apexlang/templates/business-logic/computations/computations.sql-multi.md +67 -0
  205. package/skills/apexlang/templates/business-logic/computations/computations.sql.md +66 -0
  206. package/skills/apexlang/templates/business-logic/computations/computations.static-value.md +76 -0
  207. package/skills/apexlang/templates/business-logic/computations/computations.time.md +36 -0
  208. package/skills/apexlang/templates/business-logic/dynamic-actions/README.md +57 -0
  209. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions._common.md +286 -0
  210. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions._index.md +18 -0
  211. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.add-remove-class-item.md +92 -0
  212. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.add-remove-class.md +80 -0
  213. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.alert-confirm-cancel.md +76 -0
  214. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.cancel-dialog.md +139 -0
  215. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.close-dialog.md +127 -0
  216. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.delete-with-notification.md +104 -0
  217. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.enable-disable-items.md +74 -0
  218. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.execute-server-side-code.md +72 -0
  219. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.execution-debounce-throttle.md +79 -0
  220. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.generate-text-ai.md +289 -0
  221. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.refresh-region-after-api.md +72 -0
  222. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.refresh-region-after-dialog.md +74 -0
  223. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.refresh-region-on-change.md +70 -0
  224. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.set-focus-on-ready.md +68 -0
  225. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.set-value-javascript-expression.md +75 -0
  226. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.set-value-plsql-function.md +79 -0
  227. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.set-value-sql.md +80 -0
  228. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.set-value-static.md +76 -0
  229. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.show-ai-assistant.md +109 -0
  230. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.show-error-message.md +67 -0
  231. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.show-hide-items.md +87 -0
  232. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.show-success-message.md +68 -0
  233. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.submit-page.md +143 -0
  234. package/skills/apexlang/templates/business-logic/dynamic-actions/dynamic-actions.view-document-inline.md +77 -0
  235. package/skills/apexlang/templates/business-logic/processes/processes._common.md +109 -0
  236. package/skills/apexlang/templates/business-logic/processes/processes._index.md +18 -0
  237. package/skills/apexlang/templates/business-logic/processes/processes.close-dialog.md +48 -0
  238. package/skills/apexlang/templates/business-logic/processes/processes.execute-code.md +44 -0
  239. package/skills/apexlang/templates/business-logic/processes/processes.form-automatic-row-processing.md +59 -0
  240. package/skills/apexlang/templates/business-logic/processes/processes.form-initialization.md +54 -0
  241. package/skills/apexlang/templates/business-logic/processes/processes.human-task.md +43 -0
  242. package/skills/apexlang/templates/business-logic/processes/processes.interactive-grid-automatic-row-processing.md +43 -0
  243. package/skills/apexlang/templates/business-logic/processes/processes.invoke-api.md +63 -0
  244. package/skills/apexlang/templates/business-logic/processes/processes.send-email.md +71 -0
  245. package/skills/apexlang/templates/business-logic/processes/processes.view-document.md +51 -0
  246. package/skills/apexlang/templates/business-logic/validations/README.md +24 -0
  247. package/skills/apexlang/templates/business-logic/validations/validations._common.md +118 -0
  248. package/skills/apexlang/templates/business-logic/validations/validations._index.md +60 -0
  249. package/skills/apexlang/templates/business-logic/validations/validations.expression.md +106 -0
  250. package/skills/apexlang/templates/business-logic/validations/validations.function-body.md +75 -0
  251. package/skills/apexlang/templates/business-logic/validations/validations.item.md +175 -0
  252. package/skills/apexlang/templates/business-logic/validations/validations.plsql-error.md +42 -0
  253. package/skills/apexlang/templates/business-logic/validations/validations.sql.md +75 -0
  254. package/skills/apexlang/templates/buttons/README.md +31 -0
  255. package/skills/apexlang/templates/buttons/buttons._common.md +159 -0
  256. package/skills/apexlang/templates/buttons/buttons._index.md +29 -0
  257. package/skills/apexlang/templates/buttons/buttons.appearance-icon.md +29 -0
  258. package/skills/apexlang/templates/buttons/buttons.confirmation.md +17 -0
  259. package/skills/apexlang/templates/buttons/buttons.defined-by-da.md +36 -0
  260. package/skills/apexlang/templates/buttons/buttons.menu.md +43 -0
  261. package/skills/apexlang/templates/buttons/buttons.redirect-other-app.md +35 -0
  262. package/skills/apexlang/templates/buttons/buttons.redirect-this-app.md +41 -0
  263. package/skills/apexlang/templates/buttons/buttons.registry.json +33 -0
  264. package/skills/apexlang/templates/buttons/buttons.server-side-condition.md +22 -0
  265. package/skills/apexlang/templates/buttons/buttons.submit.md +39 -0
  266. package/skills/apexlang/templates/buttons/buttons.trigger-action.md +37 -0
  267. package/skills/apexlang/templates/items/checkbox/checkbox._common.md +121 -0
  268. package/skills/apexlang/templates/items/checkbox/checkbox._index.md +25 -0
  269. package/skills/apexlang/templates/items/checkbox/checkbox.columns.md +80 -0
  270. package/skills/apexlang/templates/items/checkbox/checkbox.compact-template.md +79 -0
  271. package/skills/apexlang/templates/items/checkbox/checkbox.explicit-defaults.md +84 -0
  272. package/skills/apexlang/templates/items/checkbox/checkbox.lov-shared.md +81 -0
  273. package/skills/apexlang/templates/items/checkbox/checkbox.minimal.md +73 -0
  274. package/skills/apexlang/templates/items/color-picker/color-picker._common.md +100 -0
  275. package/skills/apexlang/templates/items/color-picker/color-picker._index.md +18 -0
  276. package/skills/apexlang/templates/items/color-picker/standard.md +93 -0
  277. package/skills/apexlang/templates/items/combobox/combobox._common.md +134 -0
  278. package/skills/apexlang/templates/items/combobox/combobox._index.md +25 -0
  279. package/skills/apexlang/templates/items/combobox/combobox.compact-template.md +79 -0
  280. package/skills/apexlang/templates/items/combobox/combobox.explicit-defaults.md +88 -0
  281. package/skills/apexlang/templates/items/combobox/combobox.lov-shared.md +81 -0
  282. package/skills/apexlang/templates/items/combobox/combobox.minimal.md +73 -0
  283. package/skills/apexlang/templates/items/combobox/combobox.width-placeholder.md +80 -0
  284. package/skills/apexlang/templates/items/date-picker/date-picker._common.md +116 -0
  285. package/skills/apexlang/templates/items/date-picker/date-picker._index.md +25 -0
  286. package/skills/apexlang/templates/items/date-picker/date-picker.compact-template.md +79 -0
  287. package/skills/apexlang/templates/items/date-picker/date-picker.date-format.md +78 -0
  288. package/skills/apexlang/templates/items/date-picker/date-picker.explicit-defaults.md +88 -0
  289. package/skills/apexlang/templates/items/date-picker/date-picker.minimal.md +73 -0
  290. package/skills/apexlang/templates/items/date-picker/date-picker.width-placeholder.md +80 -0
  291. package/skills/apexlang/templates/items/display-only/display-only._common.md +79 -0
  292. package/skills/apexlang/templates/items/display-only/display-only._index.md +18 -0
  293. package/skills/apexlang/templates/items/display-only/standard.md +199 -0
  294. package/skills/apexlang/templates/items/file-upload/file-upload._common.md +125 -0
  295. package/skills/apexlang/templates/items/file-upload/file-upload._index.md +23 -0
  296. package/skills/apexlang/templates/items/file-upload/file-upload.compact-template.md +79 -0
  297. package/skills/apexlang/templates/items/file-upload/file-upload.explicit-defaults.md +88 -0
  298. package/skills/apexlang/templates/items/file-upload/file-upload.minimal.md +73 -0
  299. package/skills/apexlang/templates/items/hidden-item/hidden-item._common.md +93 -0
  300. package/skills/apexlang/templates/items/hidden-item/hidden-item._index.md +22 -0
  301. package/skills/apexlang/templates/items/hidden-item/hidden-item.explicit-defaults.md +75 -0
  302. package/skills/apexlang/templates/items/hidden-item/hidden-item.minimal.md +68 -0
  303. package/skills/apexlang/templates/items/image-upload/image-upload._common.md +106 -0
  304. package/skills/apexlang/templates/items/image-upload/image-upload._index.md +23 -0
  305. package/skills/apexlang/templates/items/image-upload/image-upload.compact-template.md +79 -0
  306. package/skills/apexlang/templates/items/image-upload/image-upload.explicit-defaults.md +80 -0
  307. package/skills/apexlang/templates/items/image-upload/image-upload.minimal.md +73 -0
  308. package/skills/apexlang/templates/items/items._common.md +179 -0
  309. package/skills/apexlang/templates/items/items._index.md +54 -0
  310. package/skills/apexlang/templates/items/items.registry.json +148 -0
  311. package/skills/apexlang/templates/items/list-manager/list-manager._common.md +122 -0
  312. package/skills/apexlang/templates/items/list-manager/list-manager._index.md +24 -0
  313. package/skills/apexlang/templates/items/list-manager/list-manager.compact-template.md +79 -0
  314. package/skills/apexlang/templates/items/list-manager/list-manager.explicit-defaults.md +86 -0
  315. package/skills/apexlang/templates/items/list-manager/list-manager.lov-shared.md +81 -0
  316. package/skills/apexlang/templates/items/list-manager/list-manager.minimal.md +73 -0
  317. package/skills/apexlang/templates/items/markdown-editor/markdown-editor._common.md +107 -0
  318. package/skills/apexlang/templates/items/markdown-editor/markdown-editor._index.md +23 -0
  319. package/skills/apexlang/templates/items/markdown-editor/markdown-editor.compact-template.md +79 -0
  320. package/skills/apexlang/templates/items/markdown-editor/markdown-editor.explicit-defaults.md +86 -0
  321. package/skills/apexlang/templates/items/markdown-editor/markdown-editor.minimal.md +73 -0
  322. package/skills/apexlang/templates/items/number-field/number-field._common.md +120 -0
  323. package/skills/apexlang/templates/items/number-field/number-field._index.md +25 -0
  324. package/skills/apexlang/templates/items/number-field/number-field.compact-template.md +79 -0
  325. package/skills/apexlang/templates/items/number-field/number-field.explicit-defaults.md +88 -0
  326. package/skills/apexlang/templates/items/number-field/number-field.format-mask.md +82 -0
  327. package/skills/apexlang/templates/items/number-field/number-field.minimal.md +73 -0
  328. package/skills/apexlang/templates/items/number-field/number-field.width-placeholder.md +80 -0
  329. package/skills/apexlang/templates/items/popup-lov/popup-lov._common.md +148 -0
  330. package/skills/apexlang/templates/items/popup-lov/popup-lov._index.md +26 -0
  331. package/skills/apexlang/templates/items/popup-lov/popup-lov.compact-template.md +79 -0
  332. package/skills/apexlang/templates/items/popup-lov/popup-lov.explicit-defaults.md +88 -0
  333. package/skills/apexlang/templates/items/popup-lov/popup-lov.lov-display-null.md +83 -0
  334. package/skills/apexlang/templates/items/popup-lov/popup-lov.lov-shared.md +81 -0
  335. package/skills/apexlang/templates/items/popup-lov/popup-lov.minimal.md +73 -0
  336. package/skills/apexlang/templates/items/popup-lov/popup-lov.width-placeholder.md +80 -0
  337. package/skills/apexlang/templates/items/radio-group/radio-group._common.md +121 -0
  338. package/skills/apexlang/templates/items/radio-group/radio-group._index.md +25 -0
  339. package/skills/apexlang/templates/items/radio-group/radio-group.columns.md +80 -0
  340. package/skills/apexlang/templates/items/radio-group/radio-group.compact-template.md +79 -0
  341. package/skills/apexlang/templates/items/radio-group/radio-group.explicit-defaults.md +84 -0
  342. package/skills/apexlang/templates/items/radio-group/radio-group.lov-shared.md +81 -0
  343. package/skills/apexlang/templates/items/radio-group/radio-group.minimal.md +73 -0
  344. package/skills/apexlang/templates/items/rich-text-editor/rich-text-editor._common.md +112 -0
  345. package/skills/apexlang/templates/items/rich-text-editor/rich-text-editor._index.md +23 -0
  346. package/skills/apexlang/templates/items/rich-text-editor/rich-text-editor.compact-template.md +79 -0
  347. package/skills/apexlang/templates/items/rich-text-editor/rich-text-editor.explicit-defaults.md +88 -0
  348. package/skills/apexlang/templates/items/rich-text-editor/rich-text-editor.minimal.md +73 -0
  349. package/skills/apexlang/templates/items/select-list/select-list._common.md +136 -0
  350. package/skills/apexlang/templates/items/select-list/select-list._index.md +25 -0
  351. package/skills/apexlang/templates/items/select-list/select-list.compact-template.md +79 -0
  352. package/skills/apexlang/templates/items/select-list/select-list.explicit-defaults.md +84 -0
  353. package/skills/apexlang/templates/items/select-list/select-list.lov-display-null.md +83 -0
  354. package/skills/apexlang/templates/items/select-list/select-list.lov-shared.md +81 -0
  355. package/skills/apexlang/templates/items/select-list/select-list.minimal.md +73 -0
  356. package/skills/apexlang/templates/items/select-many/select-many._common.md +120 -0
  357. package/skills/apexlang/templates/items/select-many/select-many._index.md +18 -0
  358. package/skills/apexlang/templates/items/select-many/standard.md +148 -0
  359. package/skills/apexlang/templates/items/select-one/select-one._common.md +115 -0
  360. package/skills/apexlang/templates/items/select-one/select-one._index.md +18 -0
  361. package/skills/apexlang/templates/items/select-one/standard.md +141 -0
  362. package/skills/apexlang/templates/items/shuttle/shuttle._common.md +121 -0
  363. package/skills/apexlang/templates/items/shuttle/shuttle._index.md +24 -0
  364. package/skills/apexlang/templates/items/shuttle/shuttle.compact-template.md +79 -0
  365. package/skills/apexlang/templates/items/shuttle/shuttle.explicit-defaults.md +84 -0
  366. package/skills/apexlang/templates/items/shuttle/shuttle.lov-shared.md +81 -0
  367. package/skills/apexlang/templates/items/shuttle/shuttle.minimal.md +73 -0
  368. package/skills/apexlang/templates/items/star-rating/standard.md +95 -0
  369. package/skills/apexlang/templates/items/star-rating/star-rating._common.md +104 -0
  370. package/skills/apexlang/templates/items/star-rating/star-rating._index.md +18 -0
  371. package/skills/apexlang/templates/items/switch/switch._common.md +111 -0
  372. package/skills/apexlang/templates/items/switch/switch._index.md +23 -0
  373. package/skills/apexlang/templates/items/switch/switch.compact-template.md +79 -0
  374. package/skills/apexlang/templates/items/switch/switch.explicit-defaults.md +88 -0
  375. package/skills/apexlang/templates/items/switch/switch.minimal.md +73 -0
  376. package/skills/apexlang/templates/items/text-area/text-area._common.md +119 -0
  377. package/skills/apexlang/templates/items/text-area/text-area._index.md +25 -0
  378. package/skills/apexlang/templates/items/text-area/text-area.compact-template.md +79 -0
  379. package/skills/apexlang/templates/items/text-area/text-area.explicit-defaults.md +88 -0
  380. package/skills/apexlang/templates/items/text-area/text-area.minimal.md +73 -0
  381. package/skills/apexlang/templates/items/text-area/text-area.required-length.md +84 -0
  382. package/skills/apexlang/templates/items/text-area/text-area.width-placeholder.md +80 -0
  383. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete._common.md +147 -0
  384. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete._index.md +26 -0
  385. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.compact-template.md +79 -0
  386. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.explicit-defaults.md +96 -0
  387. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.lov-shared.md +81 -0
  388. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.minimal.md +73 -0
  389. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.required-length.md +84 -0
  390. package/skills/apexlang/templates/items/text-autocomplete/text-autocomplete.width-placeholder.md +80 -0
  391. package/skills/apexlang/templates/items/text-field/text-field._common.md +121 -0
  392. package/skills/apexlang/templates/items/text-field/text-field._index.md +25 -0
  393. package/skills/apexlang/templates/items/text-field/text-field.compact-template.md +79 -0
  394. package/skills/apexlang/templates/items/text-field/text-field.explicit-defaults.md +88 -0
  395. package/skills/apexlang/templates/items/text-field/text-field.minimal.md +73 -0
  396. package/skills/apexlang/templates/items/text-field/text-field.required-length.md +84 -0
  397. package/skills/apexlang/templates/items/text-field/text-field.width-placeholder.md +80 -0
  398. package/skills/apexlang/templates/page-examples/README.md +49 -0
  399. package/skills/apexlang/templates/page-examples/blank-page/blank-page._common.md +19 -0
  400. package/skills/apexlang/templates/page-examples/blank-page/blank-page._index.md +12 -0
  401. package/skills/apexlang/templates/page-examples/blank-page/blank-page.example.md +52 -0
  402. package/skills/apexlang/templates/page-examples/calendar-page/calendar-page._common.md +19 -0
  403. package/skills/apexlang/templates/page-examples/calendar-page/calendar-page._index.md +12 -0
  404. package/skills/apexlang/templates/page-examples/calendar-page/calendar-page.example.md +104 -0
  405. package/skills/apexlang/templates/page-examples/chatbot-page/chatbot-page._common.md +21 -0
  406. package/skills/apexlang/templates/page-examples/chatbot-page/chatbot-page._index.md +12 -0
  407. package/skills/apexlang/templates/page-examples/chatbot-page/chatbot-page.example.md +96 -0
  408. package/skills/apexlang/templates/page-examples/classic-report-page/classic-report-page._common.md +19 -0
  409. package/skills/apexlang/templates/page-examples/classic-report-page/classic-report-page._index.md +12 -0
  410. package/skills/apexlang/templates/page-examples/classic-report-page/classic-report-page.example.md +275 -0
  411. package/skills/apexlang/templates/page-examples/dashboard-page/dashboard-page._common.md +48 -0
  412. package/skills/apexlang/templates/page-examples/dashboard-page/dashboard-page._index.md +13 -0
  413. package/skills/apexlang/templates/page-examples/dashboard-page/dashboard-page.example.md +433 -0
  414. package/skills/apexlang/templates/page-examples/faceted-search/faceted-search._common.md +19 -0
  415. package/skills/apexlang/templates/page-examples/faceted-search/faceted-search._index.md +12 -0
  416. package/skills/apexlang/templates/page-examples/faceted-search/faceted-search.example.md +303 -0
  417. package/skills/apexlang/templates/page-examples/form-page/form-page._common.md +31 -0
  418. package/skills/apexlang/templates/page-examples/form-page/form-page._index.md +12 -0
  419. package/skills/apexlang/templates/page-examples/form-page/form-page.example.md +709 -0
  420. package/skills/apexlang/templates/page-examples/global_page_0/global_page_0._common.md +21 -0
  421. package/skills/apexlang/templates/page-examples/global_page_0/global_page_0._index.md +12 -0
  422. package/skills/apexlang/templates/page-examples/global_page_0/global_page_0.example.md +22 -0
  423. package/skills/apexlang/templates/page-examples/home-page/home-page._common.md +19 -0
  424. package/skills/apexlang/templates/page-examples/home-page/home-page._index.md +12 -0
  425. package/skills/apexlang/templates/page-examples/home-page/home-page.example.md +52 -0
  426. package/skills/apexlang/templates/page-examples/interactive-grid/interactive-grid._common.md +19 -0
  427. package/skills/apexlang/templates/page-examples/interactive-grid/interactive-grid._index.md +12 -0
  428. package/skills/apexlang/templates/page-examples/interactive-grid/interactive-grid.example.md +393 -0
  429. package/skills/apexlang/templates/page-examples/interactive-report-page/interactive-report-page._common.md +31 -0
  430. package/skills/apexlang/templates/page-examples/interactive-report-page/interactive-report-page._index.md +12 -0
  431. package/skills/apexlang/templates/page-examples/interactive-report-page/interactive-report-page.example.md +551 -0
  432. package/skills/apexlang/templates/page-examples/login-page/login-page._common.md +19 -0
  433. package/skills/apexlang/templates/page-examples/login-page/login-page._index.md +12 -0
  434. package/skills/apexlang/templates/page-examples/login-page/login-page.example.md +271 -0
  435. package/skills/apexlang/templates/page-examples/map-page/map-page._common.md +66 -0
  436. package/skills/apexlang/templates/page-examples/map-page/map-page._index.md +22 -0
  437. package/skills/apexlang/templates/page-examples/map-page/map-page.example.md +113 -0
  438. package/skills/apexlang/templates/page-examples/page-examples.registry.json +110 -0
  439. package/skills/apexlang/templates/page-examples/task-definition-initiated-tasks-page/task-definition-initiated-tasks-page._common.md +31 -0
  440. package/skills/apexlang/templates/page-examples/task-definition-initiated-tasks-page/task-definition-initiated-tasks-page._index.md +12 -0
  441. package/skills/apexlang/templates/page-examples/task-definition-initiated-tasks-page/task-definition-initiated-tasks-page.example.md +841 -0
  442. package/skills/apexlang/templates/page-examples/task-definition-my-tasks-page/task-definition-my-tasks-page._common.md +31 -0
  443. package/skills/apexlang/templates/page-examples/task-definition-my-tasks-page/task-definition-my-tasks-page._index.md +12 -0
  444. package/skills/apexlang/templates/page-examples/task-definition-my-tasks-page/task-definition-my-tasks-page.example.md +1182 -0
  445. package/skills/apexlang/templates/page-examples/task-definition-task-details/task-definition-task-details._common.md +31 -0
  446. package/skills/apexlang/templates/page-examples/task-definition-task-details/task-definition-task-details._index.md +12 -0
  447. package/skills/apexlang/templates/page-examples/task-definition-task-details/task-definition-task-details.example.md +3281 -0
  448. package/skills/apexlang/templates/page-layout-templates/README.md +123 -0
  449. package/skills/apexlang/templates/page-layout-templates/_shared/README.md +24 -0
  450. package/skills/apexlang/templates/page-layout-templates/_shared/page.common.md +81 -0
  451. package/skills/apexlang/templates/page-layout-templates/_shared/page.drawer.common.md +88 -0
  452. package/skills/apexlang/templates/page-layout-templates/_shared/page.modal-dialog.common.md +74 -0
  453. package/skills/apexlang/templates/page-layout-templates/blank/README.md +18 -0
  454. package/skills/apexlang/templates/page-layout-templates/blank/blank._common.md +59 -0
  455. package/skills/apexlang/templates/page-layout-templates/blank/blank._index.md +18 -0
  456. package/skills/apexlang/templates/page-layout-templates/blank/blank.basic.md +42 -0
  457. package/skills/apexlang/templates/page-layout-templates/drawer/README.md +18 -0
  458. package/skills/apexlang/templates/page-layout-templates/drawer/drawer._common.md +65 -0
  459. package/skills/apexlang/templates/page-layout-templates/drawer/drawer._index.md +18 -0
  460. package/skills/apexlang/templates/page-layout-templates/drawer/drawer.basic.md +56 -0
  461. package/skills/apexlang/templates/page-layout-templates/left-and-right-side-columns/README.md +18 -0
  462. package/skills/apexlang/templates/page-layout-templates/left-and-right-side-columns/left-and-right-side-columns._common.md +85 -0
  463. package/skills/apexlang/templates/page-layout-templates/left-and-right-side-columns/left-and-right-side-columns._index.md +18 -0
  464. package/skills/apexlang/templates/page-layout-templates/left-and-right-side-columns/left-and-right-side-columns.basic.md +63 -0
  465. package/skills/apexlang/templates/page-layout-templates/left-side-column/README.md +18 -0
  466. package/skills/apexlang/templates/page-layout-templates/left-side-column/left-side-column._common.md +78 -0
  467. package/skills/apexlang/templates/page-layout-templates/left-side-column/left-side-column._index.md +18 -0
  468. package/skills/apexlang/templates/page-layout-templates/left-side-column/left-side-column.basic.md +54 -0
  469. package/skills/apexlang/templates/page-layout-templates/login/README.md +18 -0
  470. package/skills/apexlang/templates/page-layout-templates/login/login._common.md +71 -0
  471. package/skills/apexlang/templates/page-layout-templates/login/login._index.md +18 -0
  472. package/skills/apexlang/templates/page-layout-templates/login/login.basic.md +45 -0
  473. package/skills/apexlang/templates/page-layout-templates/marquee/README.md +18 -0
  474. package/skills/apexlang/templates/page-layout-templates/marquee/marquee._common.md +74 -0
  475. package/skills/apexlang/templates/page-layout-templates/marquee/marquee._index.md +18 -0
  476. package/skills/apexlang/templates/page-layout-templates/marquee/marquee.basic.md +54 -0
  477. package/skills/apexlang/templates/page-layout-templates/minimal-no-navigation/README.md +18 -0
  478. package/skills/apexlang/templates/page-layout-templates/minimal-no-navigation/minimal-no-navigation._common.md +65 -0
  479. package/skills/apexlang/templates/page-layout-templates/minimal-no-navigation/minimal-no-navigation._index.md +18 -0
  480. package/skills/apexlang/templates/page-layout-templates/minimal-no-navigation/minimal-no-navigation.basic.md +45 -0
  481. package/skills/apexlang/templates/page-layout-templates/modal-dialog/README.md +18 -0
  482. package/skills/apexlang/templates/page-layout-templates/modal-dialog/modal-dialog._common.md +62 -0
  483. package/skills/apexlang/templates/page-layout-templates/modal-dialog/modal-dialog._index.md +18 -0
  484. package/skills/apexlang/templates/page-layout-templates/modal-dialog/modal-dialog.basic.md +53 -0
  485. package/skills/apexlang/templates/page-layout-templates/page-layout-template-family-registry.json +92 -0
  486. package/skills/apexlang/templates/page-layout-templates/right-side-column/README.md +18 -0
  487. package/skills/apexlang/templates/page-layout-templates/right-side-column/right-side-column._common.md +74 -0
  488. package/skills/apexlang/templates/page-layout-templates/right-side-column/right-side-column._index.md +18 -0
  489. package/skills/apexlang/templates/page-layout-templates/right-side-column/right-side-column.basic.md +54 -0
  490. package/skills/apexlang/templates/page-layout-templates/standard/README.md +18 -0
  491. package/skills/apexlang/templates/page-layout-templates/standard/standard._common.md +77 -0
  492. package/skills/apexlang/templates/page-layout-templates/standard/standard._index.md +18 -0
  493. package/skills/apexlang/templates/page-layout-templates/standard/standard.basic.md +54 -0
  494. package/skills/apexlang/templates/page-layout-templates/wizard-modal-dialog/README.md +20 -0
  495. package/skills/apexlang/templates/page-layout-templates/wizard-modal-dialog/wizard-modal-dialog._common.md +80 -0
  496. package/skills/apexlang/templates/page-layout-templates/wizard-modal-dialog/wizard-modal-dialog._index.md +18 -0
  497. package/skills/apexlang/templates/page-layout-templates/wizard-modal-dialog/wizard-modal-dialog.basic.md +62 -0
  498. package/skills/apexlang/templates/page-layout-templates/wizard-modal-dialog/wizard-modal-dialog.buttons.md +97 -0
  499. package/skills/apexlang/templates/page-layout-templates/wizard-modal-dialog/wizard-modal-dialog.multi-step.md +92 -0
  500. package/skills/apexlang/templates/region-components/LEGACY.md +23 -0
  501. package/skills/apexlang/templates/region-components/README.md +55 -0
  502. package/skills/apexlang/templates/region-components/breadcrumb/README.md +21 -0
  503. package/skills/apexlang/templates/region-components/breadcrumb/breadcrumb._common.md +27 -0
  504. package/skills/apexlang/templates/region-components/breadcrumb/breadcrumb._index.md +18 -0
  505. package/skills/apexlang/templates/region-components/breadcrumb/breadcrumb._template_options.md +13 -0
  506. package/skills/apexlang/templates/region-components/breadcrumb/breadcrumb.page-header-nav.md +13 -0
  507. package/skills/apexlang/templates/region-components/breadcrumb/breadcrumb.standard.md +33 -0
  508. package/skills/apexlang/templates/region-components/calendar/README.md +32 -0
  509. package/skills/apexlang/templates/region-components/calendar/calendar._common.md +168 -0
  510. package/skills/apexlang/templates/region-components/calendar/calendar._index.md +18 -0
  511. package/skills/apexlang/templates/region-components/calendar/calendar.client-events.md +126 -0
  512. package/skills/apexlang/templates/region-components/calendar/calendar.create-event-on-select.md +122 -0
  513. package/skills/apexlang/templates/region-components/calendar/calendar.custom-drag-drop-handlers.md +155 -0
  514. package/skills/apexlang/templates/region-components/calendar/calendar.custom-navigation.md +128 -0
  515. package/skills/apexlang/templates/region-components/calendar/calendar.custom-styling.md +150 -0
  516. package/skills/apexlang/templates/region-components/calendar/calendar.delete-or-copy-on-click.md +122 -0
  517. package/skills/apexlang/templates/region-components/calendar/calendar.faceted-search.md +189 -0
  518. package/skills/apexlang/templates/region-components/calendar/calendar.fullcalendar-init.md +77 -0
  519. package/skills/apexlang/templates/region-components/calendar/calendar.report-synchronized.md +131 -0
  520. package/skills/apexlang/templates/region-components/calendar/calendar.schedule-builder.md +149 -0
  521. package/skills/apexlang/templates/region-components/calendar/calendar.standard-monthly.md +129 -0
  522. package/skills/apexlang/templates/region-components/calendar/calendar.status-tracking.md +129 -0
  523. package/skills/apexlang/templates/region-components/calendar/calendar.weekly-conference.md +109 -0
  524. package/skills/apexlang/templates/region-components/calendar/calendar.weekly-drag-drop.md +130 -0
  525. package/skills/apexlang/templates/region-components/calendar/calendar.weekly-time-format-toggle.md +107 -0
  526. package/skills/apexlang/templates/region-components/cards/README.md +28 -0
  527. package/skills/apexlang/templates/region-components/cards/cards._common.md +236 -0
  528. package/skills/apexlang/templates/region-components/cards/cards._index.md +18 -0
  529. package/skills/apexlang/templates/region-components/cards/cards._template_options.md +15 -0
  530. package/skills/apexlang/templates/region-components/cards/cards.rest-source.md +78 -0
  531. package/skills/apexlang/templates/region-components/cards/cards.standard.md +156 -0
  532. package/skills/apexlang/templates/region-components/chart/README.md +80 -0
  533. package/skills/apexlang/templates/region-components/chart/_configuration-modules.md +26 -0
  534. package/skills/apexlang/templates/region-components/chart/chart._axis._common.md +67 -0
  535. package/skills/apexlang/templates/region-components/chart/chart._common.md +119 -0
  536. package/skills/apexlang/templates/region-components/chart/chart._index.md +62 -0
  537. package/skills/apexlang/templates/region-components/chart/chart._series._common.md +92 -0
  538. package/skills/apexlang/templates/region-components/chart/chart.area-custom-legend.md +78 -0
  539. package/skills/apexlang/templates/region-components/chart/chart.area.md +80 -0
  540. package/skills/apexlang/templates/region-components/chart/chart.bar.md +81 -0
  541. package/skills/apexlang/templates/region-components/chart/chart.bubble.md +53 -0
  542. package/skills/apexlang/templates/region-components/chart/chart.dashboard-combination.md +59 -0
  543. package/skills/apexlang/templates/region-components/chart/chart.donut.md +36 -0
  544. package/skills/apexlang/templates/region-components/chart/chart.gantt.md +50 -0
  545. package/skills/apexlang/templates/region-components/chart/chart.line-with-area.md +57 -0
  546. package/skills/apexlang/templates/region-components/chart/chart.line.md +80 -0
  547. package/skills/apexlang/templates/region-components/chart/chart.pie.md +72 -0
  548. package/skills/apexlang/templates/region-components/chart/chart.scatter.md +51 -0
  549. package/skills/apexlang/templates/region-components/chart/chart.status-meter-gauge.md +51 -0
  550. package/skills/apexlang/templates/region-components/chart/chart.stock.md +52 -0
  551. package/skills/apexlang/templates/region-components/chart/config/README.md +19 -0
  552. package/skills/apexlang/templates/region-components/chart/features/chart.feature-3d-effect.md +36 -0
  553. package/skills/apexlang/templates/region-components/chart/features/chart.feature-chart-links.md +53 -0
  554. package/skills/apexlang/templates/region-components/chart/features/chart.feature-combination.md +78 -0
  555. package/skills/apexlang/templates/region-components/chart/features/chart.feature-custom-tooltip.md +34 -0
  556. package/skills/apexlang/templates/region-components/chart/features/chart.feature-data-densification.md +40 -0
  557. package/skills/apexlang/templates/region-components/chart/features/chart.feature-declarative-font.md +29 -0
  558. package/skills/apexlang/templates/region-components/chart/features/chart.feature-legend-plug-in.md +55 -0
  559. package/skills/apexlang/templates/region-components/chart/features/chart.feature-series-color.md +43 -0
  560. package/skills/apexlang/templates/region-components/chart/features/chart.feature-zoom-scroll.md +30 -0
  561. package/skills/apexlang/templates/region-components/classic-report/README.md +32 -0
  562. package/skills/apexlang/templates/region-components/classic-report/classic-report._columns._common.md +160 -0
  563. package/skills/apexlang/templates/region-components/classic-report/classic-report._columns.format-template.md +181 -0
  564. package/skills/apexlang/templates/region-components/classic-report/classic-report._common.md +140 -0
  565. package/skills/apexlang/templates/region-components/classic-report/classic-report._index.md +22 -0
  566. package/skills/apexlang/templates/region-components/classic-report/classic-report.ao-notifications.md +111 -0
  567. package/skills/apexlang/templates/region-components/classic-report/classic-report.context-info-column-based.md +106 -0
  568. package/skills/apexlang/templates/region-components/classic-report/classic-report.contextual-info-row-based.md +106 -0
  569. package/skills/apexlang/templates/region-components/classic-report/classic-report.contextual-info.md +78 -0
  570. package/skills/apexlang/templates/region-components/classic-report/classic-report.percent-graph-columns.md +95 -0
  571. package/skills/apexlang/templates/region-components/classic-report/classic-report.rest-data-source-and-query-param.md +109 -0
  572. package/skills/apexlang/templates/region-components/classic-report/classic-report.rest-data-source.md +98 -0
  573. package/skills/apexlang/templates/region-components/classic-report/classic-report.standard.md +119 -0
  574. package/skills/apexlang/templates/region-components/classic-report/classic-report.suggestions-simple-list.md +110 -0
  575. package/skills/apexlang/templates/region-components/collapsible-region/README.md +20 -0
  576. package/skills/apexlang/templates/region-components/collapsible-region/collapsible-region._common.md +21 -0
  577. package/skills/apexlang/templates/region-components/collapsible-region/collapsible-region._index.md +18 -0
  578. package/skills/apexlang/templates/region-components/collapsible-region/collapsible-region._template_options.md +39 -0
  579. package/skills/apexlang/templates/region-components/collapsible-region/collapsible-region.standard.md +29 -0
  580. package/skills/apexlang/templates/region-components/dynamic-content/README.md +18 -0
  581. package/skills/apexlang/templates/region-components/dynamic-content/dynamic-content._common.md +21 -0
  582. package/skills/apexlang/templates/region-components/dynamic-content/dynamic-content._index.md +18 -0
  583. package/skills/apexlang/templates/region-components/dynamic-content/dynamic-content.standard.md +31 -0
  584. package/skills/apexlang/templates/region-components/faceted-search/README.md +22 -0
  585. package/skills/apexlang/templates/region-components/faceted-search/faceted-search._common.md +179 -0
  586. package/skills/apexlang/templates/region-components/faceted-search/faceted-search._index.md +19 -0
  587. package/skills/apexlang/templates/region-components/faceted-search/faceted-search.button-bar.md +43 -0
  588. package/skills/apexlang/templates/region-components/faceted-search/faceted-search.standard.md +46 -0
  589. package/skills/apexlang/templates/region-components/form/README.md +26 -0
  590. package/skills/apexlang/templates/region-components/form/form._common.md +112 -0
  591. package/skills/apexlang/templates/region-components/form/form._index.md +23 -0
  592. package/skills/apexlang/templates/region-components/form/form._items._common.md +102 -0
  593. package/skills/apexlang/templates/region-components/form/form._processes._common.md +39 -0
  594. package/skills/apexlang/templates/region-components/form/form._template_options.md +24 -0
  595. package/skills/apexlang/templates/region-components/form/form.basic.md +106 -0
  596. package/skills/apexlang/templates/region-components/form/form.dialog-buttons.md +45 -0
  597. package/skills/apexlang/templates/region-components/form/form.rest-source.md +88 -0
  598. package/skills/apexlang/templates/region-components/help-text/README.md +18 -0
  599. package/skills/apexlang/templates/region-components/help-text/help-text._common.md +29 -0
  600. package/skills/apexlang/templates/region-components/help-text/help-text._index.md +18 -0
  601. package/skills/apexlang/templates/region-components/help-text/help-text.standard.md +44 -0
  602. package/skills/apexlang/templates/region-components/interactive-grid/README.md +31 -0
  603. package/skills/apexlang/templates/region-components/interactive-grid/interactive-grid._columns._common.md +101 -0
  604. package/skills/apexlang/templates/region-components/interactive-grid/interactive-grid._common.md +239 -0
  605. package/skills/apexlang/templates/region-components/interactive-grid/interactive-grid._index.md +22 -0
  606. package/skills/apexlang/templates/region-components/interactive-grid/interactive-grid._saved-report._common.md +68 -0
  607. package/skills/apexlang/templates/region-components/interactive-grid/interactive-grid.region.md +281 -0
  608. package/skills/apexlang/templates/region-components/interactive-grid/interactive-grid.standard.md +260 -0
  609. package/skills/apexlang/templates/region-components/interactive-report/README.md +30 -0
  610. package/skills/apexlang/templates/region-components/interactive-report/interactive-report._columns._common.md +139 -0
  611. package/skills/apexlang/templates/region-components/interactive-report/interactive-report._columns.format-template.md +145 -0
  612. package/skills/apexlang/templates/region-components/interactive-report/interactive-report._common.md +171 -0
  613. package/skills/apexlang/templates/region-components/interactive-report/interactive-report._index.md +21 -0
  614. package/skills/apexlang/templates/region-components/interactive-report/interactive-report._template_options.md +13 -0
  615. package/skills/apexlang/templates/region-components/interactive-report/interactive-report.nl2ir.md +109 -0
  616. package/skills/apexlang/templates/region-components/interactive-report/interactive-report.page-header-actions.md +154 -0
  617. package/skills/apexlang/templates/region-components/interactive-report/interactive-report.rest-data-source-parameter.md +155 -0
  618. package/skills/apexlang/templates/region-components/interactive-report/interactive-report.rest-data-source.md +105 -0
  619. package/skills/apexlang/templates/region-components/interactive-report/interactive-report.secondary.md +104 -0
  620. package/skills/apexlang/templates/region-components/interactive-report/interactive-report.standard.md +140 -0
  621. package/skills/apexlang/templates/region-components/list/README.md +22 -0
  622. package/skills/apexlang/templates/region-components/list/list._common.md +47 -0
  623. package/skills/apexlang/templates/region-components/list/list._index.md +18 -0
  624. package/skills/apexlang/templates/region-components/list/list.cards.md +36 -0
  625. package/skills/apexlang/templates/region-components/list/list.media-list.md +36 -0
  626. package/skills/apexlang/templates/region-components/map/README.md +51 -0
  627. package/skills/apexlang/templates/region-components/map/map._common.md +152 -0
  628. package/skills/apexlang/templates/region-components/map/map._index.md +54 -0
  629. package/skills/apexlang/templates/region-components/map/map.backgrounds.md +78 -0
  630. package/skills/apexlang/templates/region-components/map/map.geojson.md +36 -0
  631. package/skills/apexlang/templates/region-components/map/map.layer._common.md +171 -0
  632. package/skills/apexlang/templates/region-components/map/map.layer.extruded-polygons.md +74 -0
  633. package/skills/apexlang/templates/region-components/map/map.layer.heat-map.md +73 -0
  634. package/skills/apexlang/templates/region-components/map/map.layer.lines.md +71 -0
  635. package/skills/apexlang/templates/region-components/map/map.layer.points.function-body.md +52 -0
  636. package/skills/apexlang/templates/region-components/map/map.layer.points.md +127 -0
  637. package/skills/apexlang/templates/region-components/map/map.layer.points.sql-query.md +53 -0
  638. package/skills/apexlang/templates/region-components/map/map.layer.polygons.md +83 -0
  639. package/skills/apexlang/templates/region-components/map/map.longitude-latitude.md +38 -0
  640. package/skills/apexlang/templates/region-components/map/map.region.background-custom.md +71 -0
  641. package/skills/apexlang/templates/region-components/map/map.region.background-shared.md +66 -0
  642. package/skills/apexlang/templates/region-components/map/map.region.bbox-sql.md +74 -0
  643. package/skills/apexlang/templates/region-components/map/map.region.bbox-static.md +66 -0
  644. package/skills/apexlang/templates/region-components/map/map.region.browser-location.md +66 -0
  645. package/skills/apexlang/templates/region-components/map/map.region.init-position-sql.md +77 -0
  646. package/skills/apexlang/templates/region-components/map/map.runtime-api.md +102 -0
  647. package/skills/apexlang/templates/region-components/map/map.sdo-geometry.md +36 -0
  648. package/skills/apexlang/templates/region-components/map/map.standard.md +120 -0
  649. package/skills/apexlang/templates/region-components/region-components.registry.json +117 -0
  650. package/skills/apexlang/templates/region-components/region-display-selector/README.md +18 -0
  651. package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector._common.md +20 -0
  652. package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector._index.md +18 -0
  653. package/skills/apexlang/templates/region-components/region-display-selector/region-display-selector.standard.md +14 -0
  654. package/skills/apexlang/templates/region-components/search-config/README.md +18 -0
  655. package/skills/apexlang/templates/region-components/search-config/search-config._common.md +22 -0
  656. package/skills/apexlang/templates/region-components/search-config/search-config._index.md +18 -0
  657. package/skills/apexlang/templates/region-components/search-config/search-config.standard.md +28 -0
  658. package/skills/apexlang/templates/region-components/smart-filter-search/README.md +18 -0
  659. package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search._common.md +74 -0
  660. package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search._index.md +18 -0
  661. package/skills/apexlang/templates/region-components/smart-filter-search/smart-filter-search.standard.md +29 -0
  662. package/skills/apexlang/templates/region-components/static-content/README.md +32 -0
  663. package/skills/apexlang/templates/region-components/static-content/static-content._button._common.md +68 -0
  664. package/skills/apexlang/templates/region-components/static-content/static-content._common.md +62 -0
  665. package/skills/apexlang/templates/region-components/static-content/static-content._index.md +22 -0
  666. package/skills/apexlang/templates/region-components/static-content/static-content._nested-region._common.md +67 -0
  667. package/skills/apexlang/templates/region-components/static-content/static-content._template_options.md +227 -0
  668. package/skills/apexlang/templates/region-components/static-content/static-content.accordion.md +56 -0
  669. package/skills/apexlang/templates/region-components/static-content/static-content.blank-with-attributes.md +49 -0
  670. package/skills/apexlang/templates/region-components/static-content/static-content.buttons.md +50 -0
  671. package/skills/apexlang/templates/region-components/static-content/static-content.cards.md +48 -0
  672. package/skills/apexlang/templates/region-components/static-content/static-content.collapsible.md +48 -0
  673. package/skills/apexlang/templates/region-components/static-content/static-content.collection-toolbar.md +48 -0
  674. package/skills/apexlang/templates/region-components/static-content/static-content.dividers.md +48 -0
  675. package/skills/apexlang/templates/region-components/static-content/static-content.empty-state.md +48 -0
  676. package/skills/apexlang/templates/shared-components/README.md +46 -0
  677. package/skills/apexlang/templates/shared-components/acl-roles/acl-roles._common.md +31 -0
  678. package/skills/apexlang/templates/shared-components/acl-roles/acl-roles._index.md +18 -0
  679. package/skills/apexlang/templates/shared-components/acl-roles/acl-roles.standard.md +29 -0
  680. package/skills/apexlang/templates/shared-components/ai-agents/ai-agents._common.md +77 -0
  681. package/skills/apexlang/templates/shared-components/ai-agents/ai-agents._index.md +19 -0
  682. package/skills/apexlang/templates/shared-components/ai-agents/ai-agents.ai-tools.augment-system-prompt.md +71 -0
  683. package/skills/apexlang/templates/shared-components/ai-agents/ai-agents.ai-tools.execute-code-client-js.md +87 -0
  684. package/skills/apexlang/templates/shared-components/ai-agents/ai-agents.ai-tools.execute-code-server-js.md +70 -0
  685. package/skills/apexlang/templates/shared-components/ai-agents/ai-agents.ai-tools.execute-code-server-plsql.md +92 -0
  686. package/skills/apexlang/templates/shared-components/ai-agents/ai-agents.ai-tools.md +36 -0
  687. package/skills/apexlang/templates/shared-components/ai-agents/ai-agents.ai-tools.retrieve-data-sql.md +99 -0
  688. package/skills/apexlang/templates/shared-components/ai-agents/ai-agents.at-tools.parameters.md +171 -0
  689. package/skills/apexlang/templates/shared-components/ai-agents/ai-agents.system-prompt.md +43 -0
  690. package/skills/apexlang/templates/shared-components/app-computations.md +141 -0
  691. package/skills/apexlang/templates/shared-components/app-items.md +77 -0
  692. package/skills/apexlang/templates/shared-components/app-processes/app-processes._common.md +122 -0
  693. package/skills/apexlang/templates/shared-components/app-processes/app-processes._index.md +18 -0
  694. package/skills/apexlang/templates/shared-components/app-processes/app-processes.after-authentication.md +61 -0
  695. package/skills/apexlang/templates/shared-components/app-processes/app-processes.after-footer.md +61 -0
  696. package/skills/apexlang/templates/shared-components/app-processes/app-processes.after-header.md +66 -0
  697. package/skills/apexlang/templates/shared-components/app-processes/app-processes.after-regions.md +66 -0
  698. package/skills/apexlang/templates/shared-components/app-processes/app-processes.after-submit.md +65 -0
  699. package/skills/apexlang/templates/shared-components/app-processes/app-processes.ajax-callback.md +63 -0
  700. package/skills/apexlang/templates/shared-components/app-processes/app-processes.before-header.md +67 -0
  701. package/skills/apexlang/templates/shared-components/app-processes/app-processes.before-regions.md +64 -0
  702. package/skills/apexlang/templates/shared-components/app-processes/app-processes.new-session.md +64 -0
  703. package/skills/apexlang/templates/shared-components/app-processes/app-processes.processing.md +64 -0
  704. package/skills/apexlang/templates/shared-components/authentications/authentications._common.md +35 -0
  705. package/skills/apexlang/templates/shared-components/authentications/authentications._index.md +18 -0
  706. package/skills/apexlang/templates/shared-components/authentications/authentications.apex.md +44 -0
  707. package/skills/apexlang/templates/shared-components/authentications/authentications.builder.md +45 -0
  708. package/skills/apexlang/templates/shared-components/authentications/authentications.social.md +70 -0
  709. package/skills/apexlang/templates/shared-components/authorizations/authorizations._common.md +44 -0
  710. package/skills/apexlang/templates/shared-components/authorizations/authorizations._index.md +18 -0
  711. package/skills/apexlang/templates/shared-components/authorizations/authorizations.exists.query.md +66 -0
  712. package/skills/apexlang/templates/shared-components/authorizations/authorizations.plsql.boolean.md +69 -0
  713. package/skills/apexlang/templates/shared-components/authorizations/authorizations.role.md +75 -0
  714. package/skills/apexlang/templates/shared-components/breadcrumbs/breadcrumb-entries.md +88 -0
  715. package/skills/apexlang/templates/shared-components/breadcrumbs/breadcrumbs.md +53 -0
  716. package/skills/apexlang/templates/shared-components/build-options.md +73 -0
  717. package/skills/apexlang/templates/shared-components/component-settings/component-settings._common.md +20 -0
  718. package/skills/apexlang/templates/shared-components/component-settings/component-settings._index.md +18 -0
  719. package/skills/apexlang/templates/shared-components/component-settings/component-settings.standard.md +9 -0
  720. package/skills/apexlang/templates/shared-components/component-settings.example.md +128 -0
  721. package/skills/apexlang/templates/shared-components/email-templates/email-templates._common.md +75 -0
  722. package/skills/apexlang/templates/shared-components/email-templates/email-templates._index.md +20 -0
  723. package/skills/apexlang/templates/shared-components/email-templates.example.md +93 -0
  724. package/skills/apexlang/templates/shared-components/lists/list-entries.md +116 -0
  725. package/skills/apexlang/templates/shared-components/lists/lists.md +53 -0
  726. package/skills/apexlang/templates/shared-components/lovs/lovs.dynamic.query.md +131 -0
  727. package/skills/apexlang/templates/shared-components/lovs/lovs.dynamic.table.md +124 -0
  728. package/skills/apexlang/templates/shared-components/lovs/lovs.static.md +70 -0
  729. package/skills/apexlang/templates/shared-components/rest-data-sources/example_rest_data_source.example.md +386 -0
  730. package/skills/apexlang/templates/shared-components/rest-data-sources/rest-data-sources._common.md +20 -0
  731. package/skills/apexlang/templates/shared-components/rest-data-sources/rest-data-sources._index.md +18 -0
  732. package/skills/apexlang/templates/shared-components/rest-data-sources/rest-data-sources.http-paginated-example.md +9 -0
  733. package/skills/apexlang/templates/shared-components/shared-components.registry.json +110 -0
  734. package/skills/apexlang/templates/shared-components/task-definitions/action-task.example.md +164 -0
  735. package/skills/apexlang/templates/shared-components/task-definitions/approve-request.example.md +196 -0
  736. package/skills/apexlang/templates/shared-components/task-definitions/task-definitions._common.md +62 -0
  737. package/skills/apexlang/templates/shared-components/task-definitions/task-definitions._index.md +19 -0
  738. package/skills/apexlang/templates/shared-components/task-definitions/task-definitions.action-task.md +9 -0
  739. package/skills/apexlang/templates/shared-components/task-definitions/task-definitions.approve-request.md +9 -0
  740. package/skills/apexlang/templates/shared-components/translations/translations._common.md +31 -0
  741. package/skills/apexlang/templates/shared-components/translations/translations._index.md +50 -0
  742. package/skills/apexlang/templates/shared-components/translations/translations.text-messages._common.md +80 -0
  743. package/skills/apexlang/templates/shared-components/translations/translations.text-messages.consumption.example.md +69 -0
  744. package/skills/apexlang/templates/shared-components/translations/translations.text-messages.permutations.example.md +81 -0
  745. package/skills/apexlang/templates/template-components/README.md +57 -0
  746. package/skills/apexlang/templates/template-components/actions/README.md +23 -0
  747. package/skills/apexlang/templates/template-components/actions/actions._common.md +66 -0
  748. package/skills/apexlang/templates/template-components/actions/actions._index.md +19 -0
  749. package/skills/apexlang/templates/template-components/actions/actions._template_options.md +16 -0
  750. package/skills/apexlang/templates/template-components/actions/actions.inline-button.md +31 -0
  751. package/skills/apexlang/templates/template-components/actions/actions.menu-trigger.md +33 -0
  752. package/skills/apexlang/templates/template-components/actions/actions.nested-group.md +35 -0
  753. package/skills/apexlang/templates/template-components/avatar._template_options.md +23 -0
  754. package/skills/apexlang/templates/template-components/badge._template_options.md +20 -0
  755. package/skills/apexlang/templates/template-components/button/README.md +24 -0
  756. package/skills/apexlang/templates/template-components/button/button._common.md +76 -0
  757. package/skills/apexlang/templates/template-components/button/button._index.md +19 -0
  758. package/skills/apexlang/templates/template-components/button/button._template_options.md +26 -0
  759. package/skills/apexlang/templates/template-components/button/button.hot-icon.md +32 -0
  760. package/skills/apexlang/templates/template-components/button/button.menu-trigger.md +27 -0
  761. package/skills/apexlang/templates/template-components/button/button.navigation.md +29 -0
  762. package/skills/apexlang/templates/template-components/comments._template_options.md +24 -0
  763. package/skills/apexlang/templates/template-components/content-row/README.md +36 -0
  764. package/skills/apexlang/templates/template-components/content-row/content-row._common.md +225 -0
  765. package/skills/apexlang/templates/template-components/content-row/content-row._index.md +49 -0
  766. package/skills/apexlang/templates/template-components/content-row/content-row._template_options.md +27 -0
  767. package/skills/apexlang/templates/template-components/content-row/content-row.partial-minimal.md +33 -0
  768. package/skills/apexlang/templates/template-components/content-row/content-row.partial-rich-content.md +64 -0
  769. package/skills/apexlang/templates/template-components/content-row/content-row.report-appearance-variants.md +33 -0
  770. package/skills/apexlang/templates/template-components/content-row/content-row.report-avatar-badge.md +57 -0
  771. package/skills/apexlang/templates/template-components/content-row/content-row.report-explicit-defaults.md +29 -0
  772. package/skills/apexlang/templates/template-components/content-row/content-row.report-grouping-selection.md +306 -0
  773. package/skills/apexlang/templates/template-components/content-row/content-row.report-link-positions.md +31 -0
  774. package/skills/apexlang/templates/template-components/content-row/content-row.report-master-detail-full-row-link.md +70 -0
  775. package/skills/apexlang/templates/template-components/content-row/content-row.report-minimal.md +31 -0
  776. package/skills/apexlang/templates/template-components/content-row/content-row.report-primary-actions-menu.md +67 -0
  777. package/skills/apexlang/templates/template-components/content-row/manifest.json +165 -0
  778. package/skills/apexlang/templates/template-components/flexbox-container._template_options.md +20 -0
  779. package/skills/apexlang/templates/template-components/media-list._template_options.md +22 -0
  780. package/skills/apexlang/templates/template-components/metric-card/README.md +38 -0
  781. package/skills/apexlang/templates/template-components/metric-card/metric-card._common.md +193 -0
  782. package/skills/apexlang/templates/template-components/metric-card/metric-card._index.md +17 -0
  783. package/skills/apexlang/templates/template-components/metric-card/metric-card._template_options.md +23 -0
  784. package/skills/apexlang/templates/template-components/template-component-profiles.json +4632 -0
  785. package/skills/apexlang/templates/template-components/template-components.registry.json +50 -0
  786. package/skills/apexlang/templates/template-components/timeline._template_options.md +23 -0
  787. package/skills/apexlang/templates/template-family-registry.json +66 -0
  788. package/skills/apexlang/templates/workspace-components/credentials/credentials-for-open-ai.example.md +24 -0
  789. package/skills/apexlang/templates/workspace-components/generative-ai-services/open-ai.example.md +32 -0
  790. package/skills/apexlang/templates/workspace-components/rest-data-source-servers/sample-rest-api.example.md +23 -0
  791. package/skills/apexlang/templates/workspace-components/workspace-components.registry.json +12 -0
  792. package/skills/apexlang/tools/apexctl.mjs +519 -0
  793. package/skills/apexlang/tools/compiler-truth-audit.mjs +510 -0
  794. package/skills/apexlang/tools/query-valid-props-normalize.mjs +191 -0
  795. package/skills/apexlang/tools/query-valid-props-runtime.mjs +319 -0
  796. package/skills/apexlang/tools/query-valid-props-template-components.mjs +330 -0
  797. package/skills/apexlang/tools/query-valid-props.mjs +601 -0
@@ -0,0 +1,935 @@
1
+ > All `node tools/apexctl.mjs ...` commands are package-root relative: run them from the packaged skill root, or invoke that script by explicit path.
2
+
3
+ # AI tooling Guard — Precedence and Conflict Handling
4
+
5
+ AI tooling must always prefer `.md` files over inferred behavior.
6
+ If a prompt conflicts with memory rules, ask for clarification before proceeding.
7
+
8
+ ## Prompt Normalization Gate (NON-NEGOTIABLE)
9
+
10
+ Scope
11
+ - Applies to all repo-routed tasks, regardless of domain.
12
+
13
+ Rules (Hard Requirements)
14
+ - MUST accept free-form user input by default, including shorthand, fragments, noun lists, broken grammar, partial identifiers, and mixed imperative phrases.
15
+ - MUST normalize explicit intent and identifiers before asking follow-up questions.
16
+ - MUST ask follow-up questions only for critical blockers that affect routing, target scope, safety gates, or emitted artifacts.
17
+ - MUST use short simple-English follow-up prompts.
18
+ - MUST allow at most one clarification round before either proceeding or stopping.
19
+ - MUST NOT require the user to restate the request as a structured payload merely because the original prompt was informal.
20
+ - MUST NOT reject or defer a task only because the user wrote tersely, informally, or with rough wording.
21
+ - MUST stop with `Missing Inputs` when critical ambiguity remains after one clarification round.
22
+
23
+ Error Code
24
+ - `PROMPT_NORMALIZATION_REQUIRED_001`
25
+
26
+ ## Tooling Rewrite Safety (NON-NEGOTIABLE)
27
+
28
+ Scope
29
+ - Applies to automated or manual repo rewrites of APEXlang DSL values.
30
+
31
+ Rules (Hard Requirements)
32
+ - MUST NOT use Perl one-liners for rewrites that include APEXlang `@...` aliases such as `@mustNotBePublicUser` unless every `@` is explicitly escaped.
33
+ - MUST prefer Python or Node rewrite tooling for `@...` alias fixes so values are treated as literal text.
34
+ - MUST treat unescaped Perl replacements containing `@alias` as unsafe because Perl interpolates `@name` as an array and can erase the emitted value.
35
+
36
+ Error Code
37
+ - `TOOLING_REWRITE_ALIAS_LITERAL_REQUIRED_001`
38
+
39
+ ## Oracle DB Skills Delegation Boundary (NON-NEGOTIABLE)
40
+
41
+ Scope
42
+ - Applies whenever APEXlang work touches Oracle Database, PL/SQL, SQLcl, or utPLSQL topics.
43
+ - Applies to both this source repo and the public `dist/apexlang` skill bundle.
44
+
45
+ Rules (Hard Requirements)
46
+ - MUST treat Oracle upstream DB skills at `https://github.com/oracle/skills/tree/main/db` as the source of truth for generic Oracle Database, PL/SQL, SQLcl, and utPLSQL best practices.
47
+ - MUST keep APEXlang ownership limited to APEX artifact safety and APEXlang workflow integration:
48
+ - DB object evidence before APEX artifact generation
49
+ - APEX page process and application process shape
50
+ - inline SQL/PLSQL size gates inside APEX artifacts
51
+ - `invokeApi` versus `executeCode` routing for APEX processes
52
+ - extracted APEX artifact logic package naming
53
+ - SQLcl adapter behavior needed for APEXlang validate/import/export roundtrips
54
+ - MUST route standalone or generic Oracle Database, PL/SQL, SQLcl, and utPLSQL authoring, tuning, style, installation, execution, reporting, and testing requests to the upstream DB skills when those skills are installed.
55
+ - MUST NOT recreate upstream DB skill guidance inside APEXlang when upstream DB skills are absent.
56
+ - MUST continue APEXlang-specific generation and runtime-safety workflows without requiring a locally installed copy of the upstream DB skills.
57
+ - MUST stop with `Missing Inputs` or a short `Oracle DB skills required` notice for standalone generic Oracle Database, PL/SQL, SQLcl, or utPLSQL requests when the upstream DB skills are not available.
58
+ - MUST NOT bundle generic PL/SQL tutorials, SQLcl tutorials, utPLSQL install/run/reporting guidance, or DB administration guidance in the public APEXlang package.
59
+
60
+ Error Code
61
+ - `ORACLE_DB_SKILLS_DELEGATION_REQUIRED_001`
62
+
63
+ ## Generated Application Security Baseline (NON-NEGOTIABLE)
64
+
65
+ Scope
66
+ - Applies to generated business applications and templates. Intentional reference/demo applications are not hard-fail targets unless the task explicitly asks to migrate them.
67
+
68
+ Rules (Hard Requirements)
69
+ - MUST make Session State Protection explicit for every generated app by emitting `sessionStateProtection { checksumSalt: ... }` at the application root and `pageAccessProtection: argumentsMustHaveChecksum` on every concrete non-Page 0 page.
70
+ - MUST keep Page 0 (`p00000-global-page.apx`) on the canonical minimal global-page skeleton unless the user explicitly requests components that render on every page.
71
+ - MUST NOT emit `security`, `authorizationScheme`, `authentication`, `pageAccessProtection`, `formAutoComplete`, or page-level session/security properties on Page 0. If any validator or template demands those properties on Page 0, treat the validator/template as defective and fix that source instead of changing Page 0.
72
+ - MUST make `mustNotBePublicUser` the default page authorization reference for every non-login, non-Page 0 generated page unless functional requirements select a stricter existing authorization scheme; built-in `mustNotBePublicUser` is emitted bare, while custom schemes use `@<static-id>` such as `@administration-rights`.
73
+ - MUST treat the login page as the only default public page. Any other public page requires explicit security-review rationale in comments and MUST be reported in validation findings.
74
+ - MUST emit application session defaults `maxSessionIdleTime: 3600` and `maxSessionLength: 28800` for generated business applications.
75
+ - MUST apply `sessionStateProtection: checksumRequiredSessionLevel` to hidden items and ID-style page items by default.
76
+ - MUST treat hidden items as one of two classes only:
77
+ - protected hidden data: initial-render or submit-time server values only; use `sessionStateProtection: checksumRequiredSessionLevel`
78
+ - client-owned hidden UI state: values intentionally changed after render by dynamic actions, `itemsToReturn`, `setValue`, or initialization JavaScript; use `sessionStateProtection: unrestricted`
79
+ - MUST allow unrestricted hidden items only when the item is populated solely by same-page client-side code such as dynamic actions or initialization JavaScript and the item carries an explicit comments rationale.
80
+ - MUST NOT keep checksum-based item protection on hidden items whose value is intentionally changed during same-page client-side show processing, Ajax return flows, `itemsToReturn`, `setValue`, or Ajax initialization flows; use `sessionStateProtection: unrestricted` for that client-side-owned hidden state or APEX can raise `ORA-20987` when the browser attempts to save the item without a session checksum.
81
+ - MUST describe unrestricted hidden-item ownership in comments using the canonical rationale shape:
82
+ - `Same-page dynamic-action ownership: this hidden item is updated after render via itemsToReturn or setValue and is used only as UI state, so checksum-based SSP would block the intended flow.`
83
+ - MUST make validator behavior ownership-aware: if a hidden item is detected in dynamic-action `itemsToReturn` or as a `setValue` target, treat it as post-render client-owned state and require `sessionStateProtection: unrestricted` plus the comments rationale.
84
+ - MUST keep report/grid column escaping enabled by default. Do not disable escaping except for reviewed declarative `columnFormatting.htmlExpression` patterns that use escaped substitutions.
85
+ - MUST reject arbitrary URLs, `javascript:`, `data:`, inline event handlers, and unallowlisted icon/enum/identifier/format-mask values when parsing blueprint input.
86
+ - MUST NOT invent unsupported APEXlang attributes for secure cookies. If secure-cookie DSL support cannot be proven by the live APEXlang check, emit a blocking validation finding instead of generating speculative syntax.
87
+
88
+ Error Codes
89
+ - `SECURITY_BASELINE_REQUIRED_001`
90
+ - `PUBLIC_PAGE_REVIEW_REQUIRED_001`
91
+ - `HIDDEN_ITEM_SSP_REQUIRED_001`
92
+ - `REPORT_ESCAPE_REQUIRED_001`
93
+ - `SECURE_COOKIE_DSL_UNVERIFIED_001`
94
+
95
+ - MUST: When the user requests specific regions/items/buttons, source the implementation from templates/** (region-components, template-components, etc.) and cite the exact template used.
96
+ - MUST: Treat `templates/**` as the only active pattern and scaffold source for APEXlang generation.
97
+ - MUST: When generation uses any template under `templates/**`, emit the final DSL from that template's declared output structure exactly.
98
+ - MUST: Run and preserve compiler-truth diagnostics for every generated or revised `.apx` artifact before publish, live validate, or import eligibility.
99
+ - MUST: Treat compiler-truth diagnostics as component-contract evidence, but do not let them override a live APEX validation pass.
100
+ - MUST: Treat live APEX validate output from the selected target build as the primary validation gate for generated applications.
101
+ - MUST: Record `LIVE_RUNTIME_VALIDATION_REQUIRED_001` and block completion when required runtime inputs or live APEX validation evidence are missing.
102
+ - MUST: Record VS Code Problems snapshots as diagnostics when provided; missing snapshots are `not_provided` and do not block a live pass.
103
+ - MUST: Use `problems.json` as the compact review interface for live validation findings. Sort findings by file, line, severity, compiler type, and message.
104
+ - MUST: Treat local lint and broad policy/template prose as syntax hygiene or fallback guidance only when they cannot contradict the selected target build.
105
+ - MUST NOT: Mark validation complete, publish, or offer import based only on local validators, template prose, memory-bank policy, VS Code Problems snapshots, or terminal transcript inspection when live runtime validation evidence is unresolved.
106
+ - MUST: Preserve the template's emitted DSL tokens exactly, including component `type` values, block names, property names, nesting, and variant-specific syntax.
107
+ - MUST NOT: infer or normalize emitted DSL from folder names, `templateId`, `canonicalDslType`, headings, registry labels, or prose when they conflict with the template's output structure.
108
+ - MUST: If a selected template does not contain an explicit output block, use the nearest concrete emitted example in the same template family; do not invent syntax from metadata alone.
109
+ - MUST: Treat conflicts between template metadata/prose and emitted output structure as template defects to be fixed separately; until corrected, generated output must follow the template's emitted structure.
110
+ - MUST NOT: Use `applications/**` as an example library, scaffold source, syntax source, pattern corpus, or fallback reference when selecting templates, page patterns, region structures, or DSL shape.
111
+ - MUST: Restrict reads of the resolved target app under `applications/<target-app>/` to integration facts only, such as existing artifact paths, shared-component identifiers, page ids, aliases, navigation entries, breadcrumb entries, and other concrete wiring details.
112
+ - MUST NOT: Infer layout, composition, naming conventions, DSL blocks, or reusable patterns from the resolved target app. Those decisions must come from `templates/**` plus the loaded memory-bank guidance.
113
+ - MUST: Treat `artifacts/` as optional output only. Create it lazily only when a workflow writes logs, reports, validation evidence, or export backups.
114
+ - MUST NOT: Read or scan `artifacts/**` as app source, schema evidence, template source, example corpus, or startup context.
115
+ - MUST: Treat every `apex-exports` path segment as backup/export material and ignore it for app resolution, metadata discovery, bounded scans, template/source selection, and generation.
116
+ - MUST NOT: Use `apex-exports/**` as generated source unless the user explicitly requests read-only export inspection, migration, or recovery analysis.
117
+ - MUST: For brand new applications, materialize only named runtime artifacts into `applications/<app>/`: `.apex/`, `application.apx`, `deployments/`, `page-groups.apx`, `pages/`, `shared-components/`, and `supporting-objects/`.
118
+ - MUST NOT: Copy the whole `templates/base-app-structure/` directory into a generated app root.
119
+ - MUST NOT: Publish template-only root docs or metadata from `base-app-structure/` into `applications/<app>/`, including `README.md`, `base-app-structure._common.md`, `base-app-structure._index.md`, `base-app-structure.registry.json`, and `base-app-runtime-seed.manifest.json`.
120
+ - MUST NOT: Publish the `base-app-structure/scaffold-example/` directory itself into `applications/<app>/`.
121
+ - MUST: When applying `serverSideCondition {}` to any component, select the `type` from the canonical catalog defined in references/policies/memory-bank/20-data/apex.logic.md and include only the attributes required for that type. Use the embedded examples in that file for syntax; never invent new condition types.
122
+ - MUST: Treat user-correctable submit failures as validation problems first, not page-process errors.
123
+ - MUST: Before adding `raise_application_error` or other user-facing failure logic to a page process, first try native APEX validations in this order:
124
+ - declarative item validation
125
+ - declarative expression validation
126
+ - SQL validation
127
+ - validation function body only when declarative validation cannot express the rule
128
+ - MUST NOT: Raise user-facing “choose/fill/select/enter” submit errors from page processes when the same rule can be enforced by validations before the process runs.
129
+ - MUST: Reserve page-process `raise_application_error` for runtime/business failures that validations cannot safely pre-check, such as optimistic-lock conflicts, packaged API business exceptions, or post-validation DML invariants.
130
+ - MUST: When moving a rule from process logic to validations, keep the page process update-only or orchestration-only whenever feasible.
131
+
132
+ Error Code
133
+ - `APP_TEMPLATE_ARTIFACT_LEAK_001`
134
+
135
+ ## APEXlang Line Ending Gate (NON-NEGOTIABLE)
136
+
137
+ Scope
138
+ - Applies to every generated or revised `.apx` artifact.
139
+
140
+ Rules (Hard Requirements)
141
+ - MUST write `.apx` artifacts with LF line endings only.
142
+ - MUST NOT publish or validate `.apx` files that contain CRLF line endings.
143
+ - MUST treat Windows default CRLF conversion as a source-control/tooling defect for `.apx` files and normalize those files to LF before validation or handoff.
144
+
145
+ Error Code
146
+ - `APEXLANG_LF_LINE_ENDINGS_REQUIRED_001`
147
+
148
+ ## Calendar Link Target Resolution Gate (NON-NEGOTIABLE)
149
+
150
+ Scope
151
+ - Applies whenever a calendar region uses or is being asked to use `settings.createLink` or `settings.viewEditLink`.
152
+
153
+ Rules (Hard Requirements)
154
+ - MUST: For calendar `settings.createLink`, ask the user whether there is an existing form page to use or whether a new form page should be created on the same base table/view as the calendar source.
155
+ - MUST: If the user chooses an existing form page for `createLink`, require the explicit target page identifier and target item mapping for any values passed from the calendar.
156
+ - MUST: If the user chooses a new form page for `createLink`, treat the target as a modal form page on the same base table/view as the calendar source and route to the modal form workflow.
157
+ - MUST NOT: Infer a `createLink` form target from page aliases, page titles, naming similarity, or existing app structure.
158
+ - MUST: For calendar `settings.viewEditLink`, ask the user whether there is an existing report page to use or whether a new report page should be created.
159
+ - MUST: If the user chooses an existing report page for `viewEditLink`, require the explicit target page identifier plus the page item that receives the calendar primary key.
160
+ - MUST: If the user chooses a new report page for `viewEditLink`, ask which report type to create every time. Valid choices are Interactive Report and Classic Report.
161
+ - MUST NOT: Default the report type for a new `viewEditLink` report page.
162
+ - MUST NOT: Infer a `viewEditLink` report target from page aliases, page titles, naming similarity, or existing app structure.
163
+ - MUST: For any new report page created for `viewEditLink`, create a dedicated page item to hold the calendar primary key and filter the report SQL with that page item.
164
+ - MUST: If the required create-link or view-link choice remains unresolved after the single clarification round, stop with `Missing Inputs`.
165
+
166
+ Error Code
167
+ - `CALENDAR_CREATE_LINK_TARGET_REQUIRED_001`
168
+ - `CALENDAR_VIEW_LINK_TARGET_REQUIRED_001`
169
+ - `CALENDAR_REPORT_TYPE_REQUIRED_001`
170
+ - `CALENDAR_REPORT_PK_FILTER_REQUIRED_001`
171
+
172
+ ## Structure-First UI Composition Gate (NON-NEGOTIABLE)
173
+
174
+ Scope
175
+ - Applies whenever routing or generation changes visual composition for Oracle APEX pages, regions, buttons, reports, or items.
176
+
177
+ Rules (Hard Requirements)
178
+ - MUST treat `references/policies/memory-bank/40-components/apex.templates.md` as the single active owner for page template, region template, item-template, template-option, and default composition decisions.
179
+ - MUST solve layout, framing, disclosure, density, label treatment, header behavior, and report alignment through native templates, template options, slots, and layout/alignment attributes first.
180
+ - MUST keep page-region grid scope separate from item-grid scope. Child item spans are validated only within their parent item region.
181
+ - MUST omit explicit `column` / `columnSpan` for equal-width sibling rows and use `startNewRow: false` on second-and-later siblings.
182
+ - MUST NOT invent CSS classes or selector-level styling to solve structural layout problems.
183
+ - MUST NOT route active generation through archived skinning packages.
184
+
185
+ Hard stop
186
+ - If a requested visual outcome cannot be achieved through the active template/template-option contract without inventing CSS or changing structure assumptions, stop and ask for clarification rather than improvising class-based styling.
187
+
188
+ Error Code
189
+ - `COMPOSITION_CONTRACT_REQUIRED_001`
190
+ - `GRID_SCOPE_REQUIRED_001`
191
+ - `CSS_CLASS_INVENTION_FORBIDDEN_001`
192
+
193
+ ## DB Metadata Prerequisite Gate (NON-NEGOTIABLE)
194
+
195
+ Scope
196
+ - Applies to repo DB-backed workflows before APEX artifact generation, PL/SQL maintenance/testing, or schema-modeling validation routing.
197
+ - Applies to Oracle APEX build requests that generate or modify application artifacts (for example: applications, pages, regions, items, buttons, logic, or orchestration under `applications/**`).
198
+ - Does not apply to specification-only requests that do not enter DB-backed workflows.
199
+
200
+ Rules (Hard Requirements)
201
+ - MUST: Resolve prerequisite metadata source before any DB-backed generation, review, revision, or validation routing.
202
+ - MUST: Read `assets/workspace-intelligence.json` and scan saved SQLcl connections before asking the user anything about DB mode or connection knowledge for interactive DB-backed workflows.
203
+ - MUST: Before drafting or revising object-specific SQL or any DB-object reference, resolve one machine-readable evidence state for each referenced object:
204
+ - `object_evidence_source: schema_doc`
205
+ - `object_evidence_source: live_db`
206
+ - `object_evidence_source: user_asserted`
207
+ - `object_evidence_source: unresolved`
208
+ - MUST: Treat tables, views, packages, functions, procedures, sequences, and referenced columns as DB objects for this gate.
209
+ - MUST NOT: Generate, modify, or preserve object-specific SQL when any required referenced object remains `object_evidence_source: unresolved`.
210
+ - MUST NOT: Treat templates, memory-bank examples, sample apps, compiler metadata labels, runtime errors, or prior guessed code as proof that a schema object exists.
211
+ - MUST: Treat explicit user-provided object names as `object_evidence_source: user_asserted` only for the objects the user actually named.
212
+ - MUST: Use this simple-English prompt as the final object-evidence clarification fallback when object-specific SQL is still unresolved after deterministic discovery: `I need schema evidence before writing object-specific SQL. Provide db_connection_name and the corresponding APEX workspace name for live DB confirmation, or provide the exact object names to use.`
213
+ - MUST: Treat a schema dictionary as eligible only when:
214
+ - it is registered in `assets/workspace-intelligence.json`
215
+ - the referenced `workspace schema dictionaries discovered by `node tools/apexctl.mjs workspace probe`` file exists
216
+ - its frontmatter declares `status: active`
217
+ - its frontmatter declares `metadata_mode: offline_dictionary`
218
+ - its frontmatter declares `covers_columns: true`
219
+ - MUST: If `db_mode: offline` is selected, read `assets/workspace-intelligence.json` before selecting any schema dictionary for offline metadata reasoning.
220
+ - MUST: If exactly one eligible schema dictionary exists, auto-select it and continue with `prereq_source: schema_doc`.
221
+ - MUST: If multiple eligible schema dictionaries exist, present the choices to the user and require a schema selection before continuing.
222
+ - MUST: Use authoritative schema dictionaries as the preferred metadata evidence source when they exist, even if a live DB connection is also resolved.
223
+ - MUST: If exactly one saved SQLcl connection alias is discovered, present it as the default candidate, but still require the user to specify or confirm `db_connection_name` and the corresponding APEX workspace name before live DB work.
224
+ - MUST NOT: Auto-pick among multiple saved SQLcl connection aliases.
225
+ - MUST: If multiple saved SQLcl connection aliases are discovered, present the discovered choices and require a selection before continuing with live DB work.
226
+ - MUST: Use this simple-English prompt only as the final live-connection clarification fallback when deterministic discovery still leaves live DB context unresolved: `Provide db_connection_name and the corresponding APEX workspace name for this workflow.`
227
+ - MUST: Record one machine-readable prerequisite state before generation:
228
+ - `prereq_source: schema_doc`
229
+ - `prereq_source: saved_connection`
230
+ - `prereq_source: user_prompt`
231
+ - `prereq_source: unresolved`
232
+ - MUST: Record one machine-readable connection-resolution state before live runtime work:
233
+ - `connection_source: saved_connection`
234
+ - `connection_source: user_prompt`
235
+ - `connection_source: unresolved`
236
+ - MUST: Record one machine-readable DB mode state before any live runtime work:
237
+ - `db_mode: online`
238
+ - `db_mode: offline`
239
+ - MUST: Record `selected_schema_name` and `selected_schema_doc_path` when `prereq_source: schema_doc`.
240
+ - MUST: Treat `db_mode: online` as valid only when the user provides or confirms `db_connection_name` and the corresponding APEX workspace name.
241
+ - MUST: Treat `db_mode: offline` as valid only when the user explicitly chooses offline mode.
242
+ - MUST NOT: Ask the user to choose between `offline` and `live DB` before offline-schema discovery and saved-connection discovery have both run.
243
+ - MUST: Allow at most one clarification round when deterministic discovery cannot resolve `db_mode`, `db_connection_name`, or the corresponding APEX workspace name.
244
+ - MUST: Stop with `Missing Inputs` when prerequisite routing remains unresolved after deterministic discovery, any required schema or connection selection attempt, and the final manual-entry clarification round.
245
+ - MUST: Stop with `Missing Inputs` when object-specific SQL still has any `object_evidence_source: unresolved` reference after deterministic discovery and the final object-evidence clarification round.
246
+ - MUST: Treat `prereq_source: schema_doc` as sufficient for offline metadata reasoning only.
247
+ - MUST: Allow offline mode for planning and offline draft work only.
248
+ - MUST NOT: Run live metadata validation, `apex validate`, or `apex import` in offline mode.
249
+ - MUST: For APEX runtime work in online mode, require runtime capability probing before any same-session validate/import execution.
250
+ - MUST: Probe both supported runtime paths when possible: resolved build-root runtime first, then PATH SQLcl fallback.
251
+ - MUST: Ask for an explicit local APEX build path only when the user explicitly wants a local-build diagnostic or override and PATH SQLcl capability probing is not sufficient for the runtime task.
252
+ - MUST: Default interactive APEX artifact workflows to checking APEXlang code; run the local first-pass check and the live APEXlang check through `apex validate -input` when `db_connection_name` and the app path are resolved.
253
+ - MUST: After the live APEXlang check passes, offer GUI/clickable choices for the next action using plain language: `Check APEXlang code` (recommended) or `Check and import APEXlang code`. Include a short purpose summary and do not ask users to type import intent.
254
+ - MUST: If GUI/clickable choices are unavailable, stop after validate-only and report that import can be requested as a separate follow-up.
255
+ - MUST: Treat an explicit post-check GUI import choice as the only interactive authority for import; do not infer it from initial prompt wording or public runtime CLI flags.
256
+ - MUST: For any existing-app `validate-and-import` run, resolve the intended live application before import and preserve its numeric application id as the canonical session authority.
257
+ - MUST: Bound every import-authorized target-resolution run to one intended workspace before deciding whether the run is `update-existing` or `create-new`.
258
+ - MUST: Produce exactly one bounded target-resolution outcome for import-authorized work: `resolved_existing_app`, `not_found_in_workspace`, `ambiguous_candidates`, or `identity_uncertain`.
259
+ - MUST: Reuse that preserved canonical application id for every later workspace-resolution and import step in the same session.
260
+ - MUST NOT: Treat a target-resolution timeout or failure as permission to bypass the wrapper with direct SQLcl import; live validate success is not target-identity evidence.
261
+ - MUST NOT: Treat alias similarity alone as proof of target identity after the canonical live application id is known.
262
+ - MUST: When staged deployment metadata does not match the preserved canonical live application id, reconcile the staged deployment app id to the canonical target before import.
263
+ - MUST: If an import-authorized run later resolves or reports a different application id than the preserved canonical target, block the run, record the mismatch, and treat the reported target as an accidental duplicate or wrong target.
264
+ - MUST: Treat `update-existing` as the default import-authorized mode and hard-block the run when the bounded resolver returns `not_found_in_workspace`; create-new requires explicit confirmation.
265
+ - MUST NOT: Auto-fall through from `update-existing` to `create-new`.
266
+ - MUST: Allow `create-new` imports only when the bounded resolver returns `not_found_in_workspace`.
267
+ - MUST NOT: Allow `create-new` imports when the bounded resolver returns `ambiguous_candidates` or `identity_uncertain`.
268
+
269
+ ## Validation Deferral Prevention Gate (NON-NEGOTIABLE)
270
+
271
+ Scope
272
+ - Applies to all Oracle APEX build requests that generate or modify APEX artifacts.
273
+ - Applies at every phase of the development workflow: planning, implementation, review, and handoff.
274
+ - Applies whenever `db_connection_name` is resolved and a local `resolved_app_path` is available.
275
+
276
+ Rules (Hard Requirements)
277
+ - MUST NOT: Leave live validation as a deferred note, TODO, or optional follow-up step when `db_connection_name` is resolved and `resolved_app_path` is available.
278
+ - MUST: Treat the default check-only path plus `apex validate -input` as the mandatory in-workflow step in the canonical sequence: plan → implement → review → local first-pass check → live APEXlang check → offer GUI import choice.
279
+ - MUST: Immediately route to checks upon completing implementation and review; import remains a separate post-check GUI choice.
280
+ - MUST: Treat the resolved build-root runtime path as the preferred same-session runtime path when available, with PATH SQLcl as the supported fallback.
281
+ - MUST: Record SQLcl version for reporting, but MUST NOT treat version alone as proof that runtime commands are available.
282
+ - MUST: When build-root runtime is selected, run the roundtrip from the resolved local APEX build directory using `apex sql`.
283
+ - MUST: When the local first-pass check already passed and a build-root runtime attempt fails before real `apex validate` / `apex import` output due to sandbox-only filesystem/setup errors (for example `EPERM`, `ENOENT`, or build-root `workdir/*` write failures), treat that result as an execution-environment blocker rather than an app defect.
284
+ - MUST: After detecting that sandbox-only build-root blocker, stop sandbox runtime retries for that run and immediately continue with the real live build-root roundtrip in an execution context that can write the required build-root work files.
285
+ - MUST NOT: Spend additional sandbox retries, debugging loops, or failure-attempt budget on sandbox-only build-root filesystem/setup errors once the blocker pattern is established.
286
+ - MUST: When PATH SQLcl runtime is selected, start the authenticated SQLcl session by trying `sql <db_connection_name>` first and falling back to `sql /nolog` plus `connect <db_connection_name>` when the direct alias entrypoint fails.
287
+ - MUST: If the active SQLcl session explicitly reports multiple-workspace ambiguity, automatically resolve the workspace id for the active `db_connection_name` and re-run the same real-SQLcl validate/import path immediately with a run-scoped explicit workspace override.
288
+ - MUST NOT: Accept user requests to "mark validation for later" or "skip validation this session" when the live connection and app path are available.
289
+ - MUST NOT: Auto-run `apex import` unless the user explicitly chose import through the post-check GUI flow for that run.
290
+ - MUST NOT: Treat manual override local imports as strict guarantee runs.
291
+ - MUST: Hard-stop and redirect to the mandatory validation workflow if the user attempts to close or defer the workflow without validation completing.
292
+
293
+ ## APEX Artifact Completion Gate (NON-NEGOTIABLE)
294
+
295
+ Scope
296
+ - Applies to all Oracle APEX build requests that execute a live SQLcl roundtrip.
297
+
298
+ Rules (Hard Requirements)
299
+ - MUST NOT: Mark the run complete or present completion wording unless the same `resolved_app_path` passed direct SQLcl `apex validate`.
300
+ - MUST: Treat completion as allowed when:
301
+ - the default runtime action is check-only and the live APEXlang check succeeded for that app path
302
+ - the post-check GUI choice resolved to import and live check/import both succeeded for that app path in the same authenticated SQLcl user session
303
+ - MUST: Treat validate/import session continuity as part of runtime eligibility only when the resolved runtime action includes import.
304
+ - MUST NOT: Treat bridge or wrapper execution as completion evidence when it disagrees with the equivalent real PATH SQLcl session for the same connection and app path.
305
+ - MUST: If validate and import do not occur in the same authenticated SQLcl user session for a `validate-and-import` run, completion remains blocked until validation is re-run and import succeeds in that same session.
306
+
307
+ Enforcement IDs
308
+ - `DB_MODE_PROMPT_REQUIRED_001`
309
+ - `RUNTIME_GATE_COMPLETION_REQUIRED_001`
310
+ - `ONLINE_IMPORT_CONDITIONAL_001`
311
+
312
+ ## APEXlang Vocabulary Compatibility Gate (NON-NEGOTIABLE)
313
+
314
+ Scope
315
+ - Applies to baseline APEXlang artifacts under the resolved app path:
316
+ - `application.apx`
317
+ - `shared-components/themes/**/theme.apx`
318
+ - `shared-components/component-settings.example.md`
319
+ - `shared-components/breadcrumbs.apx`
320
+ - `pages/p00001-*.apx`
321
+ - `pages/p09999-*.apx`
322
+
323
+ Rules (Hard Requirements)
324
+ - MUST: Resolve target DSL version from `<app_path>/.apex/apexlang.json` (`mmdVersion`).
325
+ - MUST: Treat `26.1.0+3102` as the supported APEXlang build for generation and validation.
326
+ - MUST: Fail when `.apex/apexlang.json` is missing for an existing app being validated.
327
+ - MUST: Fail when `mmdVersion` does not resolve exactly to `26.1.0+3102`.
328
+ - MUST: For `mmdVersion` `26.1.0+3102`, enforce canonical vocabulary for known legacy aliases.
329
+ - MUST: Execute a vocabulary compatibility preflight before the DSL/schema gate.
330
+ - MUST: Auto-normalize deterministic aliases and emit a machine-readable compatibility report.
331
+ - MUST: Hard-fail when unresolved vocabulary mismatches remain after normalization.
332
+ - MUST: Hard-fail when any legacy alias remains in baseline app/shared-component scaffold files after normalization.
333
+ - MUST: Hard-fail when mixed legacy and canonical vocabulary appears in the same app.
334
+ - MUST NOT: Mark runtime gate pass when vocabulary compatibility preflight fails.
335
+
336
+ Error Code
337
+ - `DSL_VOCAB_CONTRACT_FAILED`
338
+
339
+ ## APEXlang Build Refresh Discipline Gate (NON-NEGOTIABLE)
340
+
341
+ Scope
342
+ - Applies whenever repo docs, templates, validators, or packaged skill outputs are being refreshed for a newer Oracle APEX packaged build.
343
+
344
+ Rules (Hard Requirements)
345
+ - MUST: Verify whether the packaged-build delta is broad DSL drift or a narrow metadata delta before changing source guidance.
346
+ - MUST: Treat a build refresh as narrow by default unless packaged metadata proves added, removed, or renamed APEXlang-facing syntax, compiler parameter names, or import API parameter names.
347
+ - MUST: Keep build-pinned upgrade facts in canonical docs, templates, validators, or packaged outputs that already own the affected behavior.
348
+ - MUST NOT: Leave active upgrade guidance only in a standalone audit or temporary working note.
349
+ - MUST NOT: Generalize a component-local metadata delta into unrelated page, region, shared-component, or runtime guidance.
350
+ - MUST: When the packaged metadata changes only defaults or conditional values, describe the default behavior as implicit unless explicit emission is required by the DSL contract.
351
+
352
+ Error Code
353
+ - `APEXLANG_BUILD_REFRESH_SCOPE_REQUIRED_001`
354
+
355
+ ## NL2IR Context Source Resolution (NON‑NEGOTIABLE)
356
+
357
+ Scope
358
+ - Applies whenever an Interactive Report has `genAI { naturalLanguageSupport: true }`.
359
+
360
+ Rules (Hard Requirements)
361
+ - MUST: Determine `genAI.reportContext` and each column `genAI.columnContext` **only** by connecting to the target database and reading the table/view + column metadata from the data dictionary for the Interactive Report’s source object.
362
+ - MUST: Resolve `genAI.reportContext` with this precedence: table/view annotation `report_context` -> table/view annotation `description` -> table/view comment -> omit.
363
+ - MUST: Resolve each column `genAI.columnContext` with this precedence: column annotation `column_context` -> column annotation `ai_context` -> column annotation `description` -> column comment -> omit.
364
+ - MUST NOT: Query or inspect the table/view data (rows) to infer NL2IR context (no sampling, profiling, distinct values, min/max, etc.).
365
+ - MUST: Scan the annotation dictionary views for the target object/column before concluding that NL2IR context annotations are absent; do not rely on a single-key probe alone.
366
+ - MUST: Fetch report-level annotations using Oracle annotation dictionary views such as:
367
+ ```sql
368
+ select annotation_name,
369
+ annotation_value
370
+ from user_annotations_usage
371
+ where object_name = upper(<table_name>)
372
+ and column_name is null
373
+ and annotation_name in ('REPORT_CONTEXT', 'DESCRIPTION')
374
+ ```
375
+ - MUST: Fetch column-level annotations using Oracle annotation dictionary views such as:
376
+ ```sql
377
+ select column_name,
378
+ annotation_name,
379
+ annotation_value
380
+ from all_annotations_usage
381
+ where object_name = upper(<table_name>)
382
+ and annotation_owner = upper(<schema>)
383
+ and annotation_name in ('COLUMN_CONTEXT', 'AI_CONTEXT', 'DESCRIPTION')
384
+ ```
385
+ - MUST: Fetch the table/view comment using a data dictionary query like:
386
+ ```sql
387
+ select comments
388
+ from user_tab_comments
389
+ where table_name = upper(<table_name>)
390
+ ```
391
+ - MUST: Fetch the column comments using a data dictionary query like:
392
+ ```sql
393
+ select column_name,
394
+ comments
395
+ from all_col_comments
396
+ where table_name = upper(<table_name>)
397
+ and owner = upper(<schema>)
398
+ ```
399
+ - MUST: If the target database/schema (or connection) is not known, STOP and ask the user to provide `db_connection_name` required to read annotations/comments.
400
+ - MUST NOT: Use table names, column names, headings, or inferred meanings as context.
401
+ - MUST: Treat blank/null annotation values as unavailable and continue down the precedence chain.
402
+ - MUST: Resolve report-level and column-level context independently; do not synthesize one from the other.
403
+ - If the table/view annotations and comment are all missing/null, omit `genAI.reportContext` (do not set a fallback value).
404
+ - If the column annotations and comment are all missing/null, omit that column’s `genAI.columnContext` (do not set a fallback value).
405
+
406
+ ## Local Database Source Metadata Gate (NON-NEGOTIABLE)
407
+
408
+ Scope
409
+ - Applies whenever APEX artifacts use `source { location: localDatabase type: sqlQuery }`.
410
+ - Includes faceted search, classic report, interactive report, interactive grid, form sources, LOV SQL, and facet `source.databaseColumn`.
411
+
412
+ Rules (Hard Requirements)
413
+ - MUST: If SQL references a real table/view, require metadata evidence from either the selected offline schema dictionary or a live `db_connection_name` before generating final output.
414
+ - MUST: Use metadata-verified columns only for SELECT lists, report columns, and facet `databaseColumn` mappings.
415
+ - MUST NOT: Invent or infer table/view column names from memory, prior pages, or examples.
416
+ - MUST: Validate every referenced column exists in the target object metadata.
417
+ - MUST: If object owner is unclear, resolve owner via metadata before drafting.
418
+
419
+ Hard stop
420
+ - If `prereq_source` is unresolved for real DB object references, STOP and resolve the prerequisite metadata source first.
421
+ - If `prereq_source = schema_doc` and the selected schema dictionary does not document the referenced object/columns, STOP and return Missing Inputs or ask for live DB context.
422
+ - If `prereq_source = saved_connection` or `prereq_source = user_prompt`, and live metadata verification is required, STOP when `db_connection_name` is missing/ambiguous.
423
+ - If `db_mode = offline` and no selected schema dictionary can verify the requested object/columns, STOP before final SQL/facet output unless the user explicitly requested offline mock output.
424
+ - Do not emit final SQL/facet definitions against unverified columns.
425
+
426
+ Error Code
427
+ - `DB_METADATA_REQUIRED_REPORT_001`
428
+
429
+ ## Object Evidence Gate (NON-NEGOTIABLE)
430
+
431
+ Scope
432
+ - Applies to any request that creates, edits, reviews, or preserves object-specific SQL or DB-object references in APEX artifacts, PL/SQL, schema work, validations, computations, LOVs, or report sources.
433
+
434
+ Rules (Hard Requirements)
435
+ - MUST: Verify each referenced table, view, package, function, procedure, sequence, and referenced column from one of:
436
+ - the selected offline schema dictionary
437
+ - live DB metadata resolved through `db_connection_name`
438
+ - explicit user assertion naming the object
439
+ - MUST: Carry `object_evidence_source` as required input to the internal generate/review/fix loop whenever code references real DB objects.
440
+ - MUST NOT: Substitute demo/sample object names such as `EMP`, `DEPT`, `EMPLOYEES`, or similar placeholders for unresolved real-schema references in existing-app work.
441
+ - MUST NOT: replace one failing guessed object name with another guessed object name after a runtime or validation error.
442
+ - MUST: If runtime or validation output shows that a referenced object does not exist and no alternate verified evidence source is available, stop and request schema evidence instead of guessing a replacement.
443
+ - MUST: When `object_evidence_source = user_asserted`, preserve that status only for the exact objects asserted by the user; all other referenced objects still require their own evidence state.
444
+
445
+ Hard stop
446
+ - If any required object remains `object_evidence_source: unresolved`, STOP before generating or revising final SQL.
447
+ - If a runtime error disproves a guessed object name and no other verified evidence source exists, STOP and return `Missing Inputs`.
448
+
449
+ Error Code
450
+ - `DB_OBJECT_EVIDENCE_REQUIRED_001`
451
+
452
+ ## Report DB Metadata Verification Gate (NON-NEGOTIABLE)
453
+
454
+ Scope
455
+ - Applies to Classic Report and Interactive Report generation when the report source uses `localDatabase` (`source.location: localDatabase`) and SQL/table references real database objects.
456
+
457
+ Rules (Hard Requirements)
458
+ - MUST: Verify source object existence, selected columns, and sort column(s) using either the selected schema dictionary or the provided `db_connection_name` before drafting report SQL.
459
+ - MUST: Treat metadata evidence as required input to the internal generate/review/fix loop for report SQL.
460
+ - MUST NOT: Assume or invent table names, column names, or `ORDER BY` columns.
461
+ - MUST: If requested columns or sort column are not found in metadata, stop and return Missing Inputs with corrective guidance.
462
+
463
+ Hard stop
464
+ - If `prereq_source` is unresolved for Classic/Interactive report tasks against real DB objects, STOP and resolve the prerequisite metadata source first.
465
+ - If `prereq_source = schema_doc` and the selected schema dictionary cannot verify the requested report object/columns/sort columns, STOP and return Missing Inputs or ask for live DB context.
466
+ - If `prereq_source = saved_connection` or `prereq_source = user_prompt`, and live metadata verification is required, STOP when `db_connection_name` is missing/ambiguous.
467
+ - If `db_mode = offline` and no selected schema dictionary can verify the requested report SQL, STOP before verified report SQL draft unless the user explicitly requested offline mock output.
468
+ - If metadata cannot be verified from the available connection/context, STOP and return Missing Inputs; do not emit final SQL.
469
+
470
+ Error Code
471
+ - `DB_METADATA_REQUIRED_REPORT_001`
472
+
473
+ ## Pre-Generation DB Verification Gate (NON-NEGOTIABLE)
474
+
475
+ Scope
476
+ - Applies to requests that create or modify APEX artifacts referencing real database objects.
477
+ - Includes pages, regions, forms, reports, LOV SQL, and any `localDatabase` SQL source.
478
+
479
+ Rules (Hard Requirements)
480
+ - MUST NOT generate or modify DB-backed APEX artifacts until both conditions are satisfied:
481
+ 1) `prereq_source` is explicitly resolved, and
482
+ 2) metadata validation confirms source object existence and required columns (including sort/order columns where used) from either the selected schema dictionary or live DB metadata.
483
+ - MUST resolve prerequisite metadata source first per `DB_MODE_PROMPT_REQUIRED_001` before build-specific clarifications.
484
+ - MUST treat metadata evidence as required input per `DB_METADATA_REQUIRED_REPORT_001` before SQL drafting for DB-backed artifacts.
485
+ - MUST NOT infer table/view names or column lists from prompt wording, examples, or prior artifacts.
486
+ - MUST return Missing Inputs and halt when connection or metadata validation is unavailable/ambiguous.
487
+ - MUST allow `db_mode = offline` only for explicit offline/mock output and never as an inferred fallback.
488
+
489
+ Hard stop
490
+ - If `prereq_source` is unresolved, STOP before draft generation.
491
+ - If `prereq_source = schema_doc` and the selected schema dictionary cannot verify the referenced DB objects, STOP before final draft generation unless the user explicitly requests offline mock output.
492
+ - If `prereq_source = saved_connection` or `prereq_source = user_prompt`, and the request requires live metadata/runtime work, STOP before draft generation when `db_connection_name` is missing.
493
+ - If `db_mode = offline` and the request depends on verified real DB objects not covered by the selected schema dictionary, STOP before final draft generation unless the user explicitly requested offline mock output.
494
+ - If live metadata validation is required and missing for referenced DB objects, STOP before draft generation.
495
+
496
+ Error Code
497
+ - `DB_VERIFY_BEFORE_GENERATION_001`
498
+
499
+ ## Report SQL/PLSQL HTML Literal Gate (NON-NEGOTIABLE)
500
+
501
+ Scope
502
+ - Applies to report-generation workflows (Classic Report, Interactive Report, Interactive Grid) when SQL/PLSQL source blocks are generated or revised.
503
+ - Includes report `source.sqlQuery` and any related SQL/PLSQL source snippets used for report rendering concerns.
504
+
505
+ Rules (Hard Requirements)
506
+ - MUST NOT embed HTML literals in report SQL/PLSQL source blocks for presentation behavior (for example badges, styled currency, status chips, highlighted values).
507
+ - MUST return raw data values/flags from SQL and perform presentation rendering only through the canonical report-column rendering contract in `references/policies/memory-bank/30-pages/apex.report-column-rendering.md`.
508
+ - MUST treat SQL/PLSQL output as data, not markup, for report UI rendering.
509
+ - MUST hard-fail critique when report SQL/PLSQL contains HTML-tag literals intended for UI rendering.
510
+
511
+ Hard stop
512
+ - If HTML literals are detected in report SQL/PLSQL presentation logic, STOP finalization and emit required revisions per `apex.report-column-rendering.md`.
513
+
514
+ Error Code
515
+ - `REPORT_SQL_HTML_LITERAL_FORBIDDEN_001`
516
+
517
+ ## Static-ID WHERE Comparison Normalization Gate (NON-NEGOTIABLE)
518
+
519
+ Scope
520
+ - Applies to SQL/PLSQL `WHERE` predicates that compare columns ending with `_static_id` to values/binds.
521
+ - Applies across report SQL, LOV SQL, authorization SQL/PLSQL, and server-side condition SQL/PLSQL snippets.
522
+
523
+ Rules (Hard Requirements)
524
+ - MUST normalize `_static_id` value comparisons using `LOWER()` in one of these canonical forms:
525
+ - `lower(col_static_id) = lower(<value_or_bind>)`
526
+ - `lower(col_static_id) != lower(<value_or_bind>)`
527
+ - `lower(col_static_id) in ('lowercase','values')`
528
+ - MUST NOT emit case-sensitive or mixed-case direct comparisons on `_static_id` columns (for example `col_static_id = 'ROLE_ADMIN'`).
529
+ - MUST normalize during revision when legacy artifacts contain non-normalized `_static_id` predicates.
530
+ - MUST hard-fail critique when non-normalized `_static_id` predicates remain.
531
+
532
+ Error Code
533
+ - `STATIC_ID_WHERE_LOWER_REQUIRED_001`
534
+
535
+ ## ACL Role Declaration Dependency Gate (NON-NEGOTIABLE)
536
+
537
+ Scope
538
+ - Applies when shared-component authorizations use role membership checks via:
539
+ - SQL/PLSQL predicates against `role_static_id` (for example `apex_appl_acl_user_roles`), or
540
+ - Authorization scheme types `isInRoleOrGroup` / `isNotInRoleOrGroup` with role names.
541
+
542
+ Rules (Hard Requirements)
543
+ - MUST declare application ACL roles in `applications/<app>/shared-components/acl-roles.apx` whenever role-based authorization checks are emitted.
544
+ - MUST ensure every role referenced by authorization checks is declared exactly once in the acl-roles artifact (`role <static-id> (...)`).
545
+ - MUST use lowercase kebab-case for role static IDs (`[a-z0-9]+(?:-[a-z0-9]+)*`).
546
+ - MUST hard-fail critique/validation when:
547
+ - the acl-roles artifact is missing while role-based authorization checks exist,
548
+ - any referenced role is not declared, or
549
+ - any declared/referenced role static ID is not lowercase kebab-case.
550
+
551
+ Error Code
552
+ - `ACL_ROLE_DECLARATION_REQUIRED_001`
553
+
554
+
555
+ ## REST Data Source Standards (Non-Negotiable)
556
+ Purpose
557
+ - Ensure every REST-based region/process/LOV uses APEXlang `restSource` references consistently.
558
+ - Prevent guessed aliases and unvalidated dataProfiles.
559
+
560
+ Scope
561
+ These rules apply to any work that:
562
+ - Creates or modifies a REST Data Source
563
+ - Creates or modifies a REST Data Source Remote Server
564
+ - Creates or modifies any page/region/LOV/process whose source is REST (REST Data Source / REST Source)
565
+
566
+ Hard stop
567
+ - If any requirement below cannot be met, STOP and clearly report what is blocked and why (for example: “Cannot perform REST call for discovery/validation in this environment”).
568
+
569
+ Terminology
570
+ - APEX UI “REST Data Source” maps to APEXlang references via `restSource: @<rest-data-source-alias>`.
571
+
572
+ ## REST Source Canonical Reference Rule (NON‑NEGOTIABLE)
573
+
574
+ Hard requirements
575
+ - For page processes with `type: invokeApi`, MUST use `invoke { type: restSource ... }`.
576
+ - MUST NOT use `invoke { type: restDataSource ... }` even if the user says “REST Data Source”.
577
+ - For any REST-based region/LOV source, `source.location` MUST be `restSource`.
578
+ - Regions/processes/LOVs MUST reference the REST Data Source using `restSource` (NOT `restDataSource`).
579
+ - Required (region/LOV):
580
+ - `source { location: restSource restSource: @<rest-data-source-alias> }`
581
+ - Required (process):
582
+ - `invoke { type: restSource restSource: @<rest-data-source-alias> ... }`
583
+ - Prohibited:
584
+ - `source { location: restSource restDataSource: @<...> }`
585
+
586
+ ## REST Data Source Alias Mapping (NON‑NEGOTIABLE)
587
+
588
+ Purpose
589
+ - Prevent ambiguous “REST Data Source name” references from being guessed.
590
+ - Ensure `invokeApi` and REST regions always reference the real APEX REST Data Source alias.
591
+
592
+ Rules (Hard Requirements)
593
+ - When the user asks to use a “REST Data Source” named like “abc”, you MUST NOT guess the APEXlang alias.
594
+ - You MUST locate the actual REST Data Source shared component under:
595
+ - `applications/<APP_NAME>/shared-components/rest-data-sources/`
596
+ - You MUST use the discovered shared component alias as the `restSource` reference.
597
+ - If multiple REST Data Sources appear to match the user’s name OR no matching alias is found:
598
+ - STOP and ask the user which REST Data Source alias to use.
599
+ - Do not proceed with placeholders (e.g. `@abc`) or inferred mappings.
600
+
601
+ ## Required folder layout (do not deviate) for Remote Servers of REST Data Source (Non-Negotiable)
602
+ Scope
603
+ Verify this folder exists (create if missing):
604
+ - applications/<APP_NAME>/workspace-components/rest-data-source-servers/
605
+ Store Remote Server artifact(s) only in:
606
+ - applications/<APP_NAME>/workspace-components/rest-data-source-servers/
607
+
608
+ ## Required folder layout (do not deviate) for REST Data Source (Non-Negotiable)
609
+ Verify this folder exists (create if missing):
610
+ - applications/<APP_NAME>/shared-components/rest-data-sources/
611
+ Store REST Data Source artifact(s) only in:
612
+ - applications/<APP_NAME>/shared-components/rest-data-sources/
613
+
614
+ ## Remote Server “single origin” rule for REST Data Source (NON-NEGOTIABLE)
615
+ A restDataSourceServer MUST represent exactly one origin:
616
+ - scheme + host + optional base path
617
+ - DO NOT split the hostname between different attributes (for example, never put part of the hostname in endpointUrl and part in urlPathPrefix).
618
+ - If REST Data Sources use different hostnames, you MUST create one Remote Server per hostname and ensure each REST Data Source references the correct Remote Server.
619
+
620
+ ## Templates of REST Data Source, REST Data Source Remote Servers and REST Source as Page/Region Source are examples only (NON-NEGOTIABLE)
621
+ The following are reference examples only:
622
+ - templates/workspace-components/rest-data-source-servers/
623
+ - templates/shared-components/rest-data-sources
624
+ - templates/region-components/
625
+ - MUST NOT copy these templates “as-is”. They may only be used as guidance after performing discovery and validation (see below).
626
+
627
+ ### REST synchronization attributes in examples are placeholders (NON-NEGOTIABLE)
628
+ In `templates/shared-components/rest-data-sources/rest-data-sources._common.md`, the example values for:
629
+ - `localTableOwner`
630
+ - `localTableName`
631
+ - `schedule`
632
+ - `httpRequestLimit`
633
+ are **reference placeholders only**.
634
+
635
+ Rules:
636
+ - MUST NOT reuse these example values as-is.
637
+ - If the user asks to enable REST synchronization or change or update the synchronization `type` and does not specify a schedule, STOP and ask for the schedule requirements before making changes.
638
+ - Schedule requirements MUST include: frequency (FREQ), interval, hour (BYHOUR), minute (BYMINUTE), second (BYSECOND).
639
+ - If a change touches `restSynchronization` and the user did not specify `schedule` (and optionally `httpRequestLimit`), STOP and ask for the exact values; do not apply template example values.
640
+ - Synchronization type mapping (NON-NEGOTIABLE):
641
+ - If the user requests synchronization type `append`, DO NOT emit a `type` attribute in `restSynchronization`.
642
+ - Rationale: `append` is the APEX default and omitting `type` keeps output deterministic.
643
+ - If the user requests synchronization type `replace`, STOP and ask if user wants fullRefreshDelete or fullRefreshTruncate and then use `type: fullRefreshDelete` or `type: fullRefreshTruncate` respectively (not `type: replace`).
644
+ - If the user requests synchronization type `merge`, you MUST emit `type: merge`.
645
+ - If REST synchronization is requested:
646
+ - MUST set `localTableOwner` to the user’s requested target schema (or ask if we can use the same schema where app is present else STOP and ask if not provided).
647
+ - MUST set `localTableName` to the user’s requested target table (or STOP and ask if not provided).
648
+ - MUST set `schedule` and `httpRequestLimit` based on explicit user requirements (or STOP and ask if not provided).
649
+
650
+ ## REST Data Source dataProfile requirements (NON-NEGOTIABLE)
651
+
652
+ Minimum acceptable discovery inputs
653
+ To create/update a REST Data Source dataProfile, at least one of the following MUST be available:
654
+ - A successful REST execution from this environment, OR
655
+ - User-provided OpenAPI/Postman/spec, OR
656
+ - User-provided sample response body (for each operation) and required request body examples.
657
+
658
+ When creating/updating a REST Data Source, you MUST:
659
+ - Perform a complete rediscovery for the REST Data Source.
660
+ - Enumerate all available operations on the REST Data Source.
661
+ - Generate a dataProfile that includes every field/column present in the REST response.
662
+ - Include the full hierarchical structure of nested objects/arrays (not flattened or partial unless explicitly required).
663
+
664
+ POST operation rules
665
+ - If there is a POST operation and there is also a GET operation:
666
+ - Generate a request body in JSON format based on the columns/shape retrieved via GET.
667
+ - If there is only a POST operation and no GET operation:
668
+ - STOP until the user provides the POST request body (schema or example).
669
+
670
+ Validation
671
+ - Validate the dataProfile by executing the configured operation (or by comparing against a user-provided response body/spec).
672
+ - Compare the discovered profile vs the actual response body.
673
+
674
+ Hard stop on missing validation
675
+ - If you cannot make a successful REST call and no acceptable discovery inputs are provided, you MUST:
676
+ - Stop before creating dependent regions/pages/LOVs/processes
677
+ - Explain clearly that discovery/validation could not be completed
678
+ - Do not proceed with “best guesses” or placeholder profiles
679
+
680
+ ## REST Source page/region requirements (NON-NEGOTIABLE)
681
+ When creating or modifying any page region whose data source is a REST Data Source:
682
+ - You MUST follow the canonical page/region templates under `templates/region-components/` for overall structure. Templates are guidance only; do not copy “as-is”.
683
+ - The region MUST follow the REST Source Canonical Reference Rule.
684
+ - The `restSource` reference MUST point to a REST Data Source defined under `applications/<APP_NAME>/shared-components/rest-data-sources/`.
685
+ - Remote server configuration is defined ONLY inside the REST Data Source shared component (via its `source.remoteServer`), not inside the page region `source` block.
686
+ - Do NOT add `remoteServer` / `remoteServers` attributes under the region `source` block unless a separate, explicit canonical template + rule exists for that structure.
687
+ - DO NOT assume response shape, fields, or nesting.
688
+ - The region’s columns MUST match the REST Data Source dataProfile.
689
+ - Include all columns from the dataProfile unless the user explicitly restricts columns.
690
+ - Synchronize/refresh columns so the region is consistent with the profile.
691
+
692
+ Pagination
693
+ - Default to pagination type `pageSizeAndFetchOffset` (per `rest-data-sources._common.md`).
694
+ - Only change `paginationType` when the user explicitly requests a different mode or when endpoint constraints are explicitly known.
695
+
696
+ - Always create a navigation menu entry to a new page created unless asked explicitly by user not to.
697
+
698
+ ## REST Source process requirements (NON-NEGOTIABLE)
699
+ When creating or modifying any page process whose type is restSource follow the below without fail.
700
+ - The process MUST follow the REST Source Canonical Reference Rule.
701
+ - In the process, do not use the template provided in `templates/business-logic/processes/processes._common.md` as-is.
702
+ - Derive the parameters based on the dataProfile and the operation’s parameter definitions (or STOP if those are not discoverable/validated).
703
+
704
+ ## REST Source Shared Component LOVs (Non-Negotiable)
705
+ When asked to create an LOV with source as REST Data Source/REST Source:
706
+ - Follow the structure from `lovs.apx` under templates using:
707
+ - `source { location: restSource restSource: @<rest-data-source-alias> }`
708
+ - Enforce that LOV display/return columns exist in the REST Data Source dataProfile (or STOP).
709
+
710
+
711
+ # Report Region Link Target Resolution Gate (Non-Negotiable)
712
+
713
+ Purpose
714
+ - Prevent ambiguous or overly indirect navigation patterns in report-like regions and force an explicit link-mode decision before generation.
715
+
716
+ Scope
717
+ - Applies whenever a Classic Report, Interactive Report, or Interactive Grid is asked to create or revise navigation at the region, row, or column level.
718
+
719
+ Rules (Hard Requirements)
720
+ - MUST: Ask the user which link mode is intended every time report-region navigation is created or changed.
721
+ - Valid choices are:
722
+ - redirect to a page in the same application
723
+ - redirect to a page in another application
724
+ - redirect with a URL
725
+ - MUST: If the required link-mode choice remains unresolved after the single clarification round, stop with `Missing Inputs`.
726
+ - MUST: When the user chooses a page in the same application and the DSL supports a declarative page target, use the declarative target object (`page`, `items`, `clearCache`, and related properties) instead of a URL string.
727
+ - MUST NOT: Default same-application report links to `type: url`, `f?p=...`, or SQL-computed `apex_page.get_url(...)` when the component DSL can express the target declaratively.
728
+ - MUST: Reserve URL targets for explicit URL redirects and component families that genuinely require a URL/string target.
729
+ - MUST: Treat page redirects into another application as a separate explicit mode; do not infer them from a URL-looking string when the user has not chosen the cross-application option.
730
+
731
+ # Button Same-App Target Resolution Gate (Non-Negotiable)
732
+
733
+ Purpose
734
+ - Keep page button navigation declarative for same-application redirects.
735
+
736
+ Scope
737
+ - Applies whenever a page button uses `behavior.action: redirectThisApp`.
738
+
739
+ Rules (Hard Requirements)
740
+ - MUST: Render `redirectThisApp` targets with the declarative `target { page, items, clearCache, action, request }` object.
741
+ - MUST NOT: Render `redirectThisApp` targets as scalar URL strings such as `f?p=...`.
742
+ - MUST: Reserve scalar URL strings for explicit URL redirects or cross-application behavior that cannot be expressed as `redirectThisApp`.
743
+
744
+ Enforcement (Agents & Workflows)
745
+ - Draft: ask the link-mode question before drafting Classic Report, Interactive Report, or Interactive Grid navigation.
746
+ - Critique: hard-fail same-app report links and `redirectThisApp` buttons that use URL/string targets when declarative page-target syntax is available and the user did not explicitly choose URL mode.
747
+ - Revision: normalize same-app report links and `redirectThisApp` buttons to declarative page-target syntax when the target page and item mapping are known.
748
+
749
+
750
+ # Process Type Policy — invokeApi Preferred with Thin Wrapper Exception (Non‑Negotiable)
751
+
752
+ Purpose
753
+ - Keep APEX page process execution declarative and safely routed through APEX artifact orchestration.
754
+
755
+ Scope
756
+ - Applies to all page `process` blocks that call PL/SQL package procedures/functions.
757
+ - Application processes `appProcess` follow a separate hard rule: `type: executeCode` only.
758
+ - Dynamic Content regions using `plsqlFunctionBody` for rendering are out of scope (allowed), but must not perform DML.
759
+ - Does not define generic PL/SQL package design, coding style, tuning, or testing best practices; those belong to the upstream Oracle DB skills.
760
+
761
+ Rules (Hard Requirements)
762
+ - MUST: When a user asks to create a process without explicitly specifying scope, first evaluate whether it should be an application process (`appProcess`). Default to `appProcess` when feasible; use page process only when page-context coupling is required or the user explicitly requests page-level placement.
763
+ - MUST: Prefer declarative shapes over PL/SQL when the workflow can be expressed through supported native APEX DSL/process constructs.
764
+ - MUST: Prefer `type: invokeApi` for page-process calls to packaged procedures/functions when the page can map inputs and outputs declaratively with reliable runtime behavior.
765
+ - Provide `invoke { package: <PKG_NAME> procedureOrFunction: <PROC_OR_FUNC> }`.
766
+ - Provide one `parameter ( ... )` block per argument with proper `direction` (in | out | in out) and value mapping:
767
+ - value { item: Pn_X } for item-based values
768
+ - value { type: expression plsqlExpression: ... } for expressions when needed
769
+ - Include `parameter { dataType: boolean, hasDefault: true }` where the API signature requires it (see login example).
770
+ - MUST: Allow `type: executeCode` for a thin page-level orchestration wrapper when all of the following are true:
771
+ - the business logic remains in a packaged API,
772
+ - the anonymous block is a small named-notation package call only,
773
+ - direct page-item assignment is required for reliable runtime behavior, page-context coupling, or before-header branch gating.
774
+ - MUST NOT: Treat the thin-wrapper exception as permission to move business logic back into the page process.
775
+ - MUST NOT: Use `type: executeCode` for packaged page-process calls when `invokeApi` can express the same behavior safely and declaratively.
776
+ - MUST: For `appProcess`, use `type: executeCode` only.
777
+ - `appProcess` MUST NOT use `type: invokeApi`.
778
+ - If invoking packaged logic from `appProcess`, call the package in `source.plsqlCode` using named notation.
779
+ - SHOULD: Keep generated APEX pages as orchestration surfaces; use the upstream DB skills for generic PL/SQL package design guidance.
780
+
781
+ Exceptions (Narrow)
782
+ - If a required API does not exist, `executeCode` may be used temporarily for glue-only logic (no complex business rules).
783
+ - This MUST be justified in comments and will be flagged by critique until replaced by an API.
784
+ - If `invokeApi` output mapping is runtime-unsafe for a page-coupled loader or branch-gated flow, a thin wrapper is allowed without being treated as a violation.
785
+
786
+ Enforcement (Agents & Workflows)
787
+ - Agent 2 (Critique): For page processes, flag `executeCode` package calls unless the block is a thin orchestration wrapper that only invokes packaged logic with named notation and directly maps page-context values/items.
788
+ - Outcome: Require conversion to `invokeApi` when the wrapper exception does not apply.
789
+ - Agent 2 (Critique): For `appProcess`, hard-fail when `type: invokeApi` appears.
790
+ - Agent 3 (Revision): Convert non-compliant `appProcess type: invokeApi` blocks to `type: executeCode` with named-notation PL/SQL package calls in `source.plsqlCode`.
791
+ - Master Workflow: Pre‑Agent 0 activates this policy; do not bypass.
792
+
793
+ Notes
794
+ - Dynamic Content `plsqlFunctionBody` remains allowed for HTML rendering only (no DML, no commits).
795
+ - This guard supersedes older patterns that encouraged inline `plsqlCode` for packaged calls.
796
+ - Documentation/demo templates may retain inline CSS or JavaScript inside page-level attributes only when the behavior being demonstrated cannot be expressed through existing static files or declarative settings; the snippet must precede with a Markdown-style comment explaining its instructional purpose (for example, `/* docs: demonstrates legend icon override */`). Remove unused inline styling rather than migrating it to shared static files when it is not required for the permutation being documented.
797
+
798
+ # SQL/PLSQL Inline Size and DB Object Connection Gate — Non‑Negotiable
799
+
800
+ Purpose
801
+ - Hard-stop oversized inline SQL/PLSQL in APEX artifacts and enforce explicit DB connection confirmation before any database object creation/update.
802
+
803
+ Scope
804
+ - Applies to all PL/SQL text blocks in APEX artifacts, including:
805
+ - process `source.plsqlCode`
806
+ - dynamic action `executeServerSideCode` PL/SQL bodies
807
+ - validation/computation PL/SQL bodies (`plsqlExpression`, function-body variants)
808
+ - fenced ```plsql``` blocks in generated APEXlang artifacts
809
+ - Applies to all SQL text blocks in APEX artifacts, including:
810
+ - region/report/form/LOV `sqlQuery`
811
+ - computation `sqlQuery`
812
+ - fenced ```sql``` blocks in generated APEXlang artifacts
813
+ - Applies to any request that creates or updates database objects (for example packages, procedures, functions, tables, views, triggers, types).
814
+ - Does not define generic SQL or PL/SQL best practices; it only bounds APEX artifact payloads and DB-object safety for APEXlang workflows.
815
+
816
+ Rules (Hard Requirements)
817
+ - Character-count method is the raw body text inside the SQL/PLSQL block, including whitespace, blank lines, and comments.
818
+ - MUST NOT emit inline PL/SQL bodies longer than 4000 characters.
819
+ - MUST NOT emit inline SQL bodies longer than 4000 characters.
820
+ - If PL/SQL exceeds 4000 characters, MUST extract to a package API (default `app_process_api` unless justified) and reference it through the page-process policy (`type: invokeApi` by default, or a justified thin `executeCode` wrapper; `type: executeCode` for appProcess).
821
+ - If SQL exceeds 4000 characters, MUST extract to a secure view and have the page/region/LOV/computation reference that view instead of embedding the full query inline.
822
+ - If package/view identity or metadata is missing, MUST return Missing Inputs rather than inventing database object definitions.
823
+ - Before creating or updating any database object, MUST resolve prerequisite metadata source first.
824
+ - Before live create/update work against a database, MUST resolve `db_mode`.
825
+ - If `db_mode = online`, MUST resolve `db_connection_name` before creating or updating any database object.
826
+ - MUST NOT generate or apply DB object DDL or DML changes when `db_mode` is unresolved, or when `db_mode = online` and `db_connection_name` is missing or ambiguous.
827
+
828
+ Enforcement (Agents & Workflows)
829
+ - Agent 2 (Critique): hard-fail `PLSQL_INLINE_BLOCK_001` when inline PL/SQL body length > 4000 characters.
830
+ - Agent 2 (Critique): hard-fail `SQL_INLINE_BLOCK_001` when inline SQL body length > 4000 characters.
831
+ - Agent 2 (Critique): hard-fail `DB_CONN_REQUIRED_001` when DB object creation or update is attempted without `db_connection_name`.
832
+ - Agent 3 (Revision): block finals until all findings are resolved.
833
+
834
+ # Computation Type Guardrail — Non‑Negotiable
835
+
836
+ Purpose
837
+ - Prevent invalid computation bodies by enforcing the correct computation type for SQL vs PL/SQL.
838
+
839
+ Scope
840
+ - Applies to all APEX page/item computations (Before Header, After Submit, and item defaults).
841
+
842
+ Rules (Hard Requirements)
843
+ - MUST: Use `type: expression` only for valid PL/SQL expressions (no `select`).
844
+ - MUST: Use `type: sqlQuery` when the body starts with a SQL `select` statement.
845
+ - SHOULD: Prefer a single Before Header process when setting multiple items from the same query.
846
+ - MUST NOT: Place a SQL query inside `plsqlExpression` or `type: expression`.
847
+
848
+ Validation Heuristics
849
+ - If the body begins with `select`, it is SQL → `type: sqlQuery` or a process.
850
+ - If the body contains `from`, it is likely SQL → do not use `type: expression`.
851
+
852
+ Enforcement (Agents & Workflows)
853
+ - Draft: Emit computations with the correct type for the body.
854
+ - Critique: Fail if `type: expression` contains `select` or `from`.
855
+ - Revision: Convert invalid computations to `type: sqlQuery` or move into a single process.
856
+
857
+ # APEX Artifact PL/SQL Call Safety — Non‑Negotiable
858
+
859
+ Purpose
860
+ - Keep generated APEX artifact PL/SQL calls explicit when APEXlang must emit PL/SQL text.
861
+
862
+ Scope
863
+ - Applies to PL/SQL text emitted in Oracle APEX artifacts: processes, dynamic actions, validations, page/item computations, and generated APEXlang fenced PL/SQL blocks.
864
+ - Applies to APEX_* calls and custom application package calls inside generated APEX artifact PL/SQL text.
865
+ - Does not define generic PL/SQL coding standards for standalone packages or SQL Workshop scripts; use upstream DB skills for that guidance.
866
+ - Parameterless routines may be called without arguments.
867
+ - Overloaded routines must always be called with named notation.
868
+
869
+ Rules (Hard Requirements)
870
+ - MUST: Use named notation `param_name => value` for every argument when a routine has parameters.
871
+ - MUST NOT: Use positional arguments.
872
+ - MUST NOT: Mix named and positional notation in the same call.
873
+ - Applies inside APEX artifact PL/SQL text contexts we generate or revise:
874
+ - `plsqlCode`, `plsqlFunctionBody`, and `plsqlExpression`.
875
+ - Note: `invokeApi` process parameter blocks are inherently “named”; this policy governs PL/SQL text calls.
876
+
877
+ APEX artifact examples
878
+ - Correct:
879
+ ```
880
+ APEX_MAIL.SEND(
881
+ p_to => 'user@example.com',
882
+ p_from => 'no-reply@example.com',
883
+ p_subj => 'Welcome',
884
+ p_body => 'Hello!'
885
+ );
886
+ APEX_JSON.INITIALIZE_CLOB_OUTPUT(p_preserve => true);
887
+ APEX_JSON.WRITE(p_name => 'status', p_value => 'ok');
888
+ APEX_UTIL.SET_SESSION_STATE(p_name => 'P10_FLAG', p_value => 'Y');
889
+ v_cnt := APEX_STRING.SPLIT_COUNT(p_str => :P10_LIST, p_separator => ',');
890
+ app_process_api.save_order(p_order_id => :P10_ORDER_ID, p_status => :P10_STATUS);
891
+ ```
892
+ - Incorrect:
893
+ ```
894
+ APEX_MAIL.SEND('user@example.com', 'no-reply@example.com', 'Welcome', 'Hello!');
895
+ APEX_JSON.INITIALIZE_CLOB_OUTPUT(true);
896
+ APEX_UTIL.SET_SESSION_STATE('P10_FLAG', 'Y');
897
+ f(p_x => x, y); -- mixing named and positional (not allowed)
898
+ ```
899
+
900
+ Enforcement (Agents & Workflows)
901
+ - Draft: Generators must emit named notation for every call with arguments in PL/SQL text.
902
+ - Critique: Flag any call with arguments lacking `=>` (positional) or mixing `=>` with bare arguments.
903
+ - Revision: Do not auto‑convert without a known signature catalog; require explicit rewrites (list offending calls and suggested patterns).
904
+
905
+ Tags: process, invokeApi, executeCode, package, procedure, function, parameters, critique, revision, named-notation
906
+
907
+ # PL/SQL Consolidation and Package Naming Guardrail — Non‑Negotiable
908
+
909
+ Purpose
910
+ - Keep extracted APEX artifact logic deterministic and avoid page-scoped package proliferation.
911
+
912
+ Scope
913
+ - Applies only when APEXlang extracts oversized or reusable PL/SQL out of APEX artifacts.
914
+ - Does not define generic PL/SQL package architecture; route generic package-design decisions to upstream DB skills.
915
+
916
+ Rules (Hard Requirements)
917
+ - Default single package: app_process_api for all extracted inline PL/SQL across an application scope.
918
+ - Disallowed names: any package name tied to page numbers or IDs (e.g., ^p[0-9]+_ or names referencing page IDs).
919
+ - Modularization exceptions: Allowed only with explicit justification and review; names must be neutral/domain-oriented, never page-based.
920
+ - Critique must hard-fail violations; Revision must block generation until naming is corrected.
921
+
922
+ Enforcement (Agents & Workflows)
923
+ - Routers and masters must load this guard and apply it as a gate. Pre‑Agent 0 records intended package name; Agent 3 verifies naming and emits design with app_process_api by default.
924
+ - Acceptance criteria must include “No page-number-based package names” and “Consolidation into single app_process_api unless justified”.
925
+
926
+ # utPLSQL Boundary for Extracted APEX Artifact Logic
927
+
928
+ Policy
929
+ - APEXlang may identify extracted `app_process_api` procedures as candidates for tests when a workflow extracts APEX artifact logic.
930
+ - APEXlang must not define generic utPLSQL authoring, installation, execution, reporting, suite selection, or CI policy.
931
+ - Generic utPLSQL rules and execution details belong to the upstream Oracle DB skills.
932
+
933
+ # Login Process Boundary Guardrail — Non‑Negotiable
934
+
935
+ For login flows, page-level processes must be restricted to authentication primitives only (`APEX_AUTHENTICATION.LOGIN` and optional `APEX_AUTHENTICATION.SEND_LOGIN_USERNAME_COOKIE`); any other behavior (audit logging, telemetry, routing, notifications, or business logic) is mandatory at application level via `appProcess`, unless the user explicitly asks for page-level placement, and critique/revision must fail and relocate non-compliant logic automatically.