@jahia/agentic 0.3.0 → 0.4.1

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 (398) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/claude/.claude/rules/jahia.md +13 -40
  3. package/dist/claude/.claude/skills/jahia-cnd-author/SKILL.md +94 -0
  4. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  5. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  6. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  7. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  8. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  9. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  10. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  11. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  12. package/dist/claude/.claude/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  13. package/dist/claude/.claude/skills/jahia-dev-accessibility/SKILL.md +5 -265
  14. package/dist/claude/.claude/skills/jahia-dev-build-component/SKILL.md +15 -7
  15. package/dist/claude/.claude/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  16. package/dist/claude/.claude/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  17. package/dist/claude/.claude/skills/jahia-dev-create-view/SKILL.md +3 -3
  18. package/dist/claude/.claude/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  19. package/dist/claude/.claude/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  20. package/dist/claude/.claude/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  21. package/dist/claude/.claude/skills/jahia-dev-site-review/SKILL.md +70 -0
  22. package/dist/claude/.claude/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  23. package/dist/claude/.claude/skills/jahia-dev-start-local/SKILL.md +18 -26
  24. package/dist/claude/CLAUDE.md +14 -41
  25. package/dist/codex/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  26. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  27. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  28. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  29. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  30. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  31. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  32. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  33. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  34. package/dist/codex/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  35. package/dist/codex/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  36. package/dist/codex/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
  37. package/dist/codex/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  38. package/dist/codex/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  39. package/dist/codex/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
  40. package/dist/codex/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  41. package/dist/codex/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  42. package/dist/codex/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  43. package/dist/codex/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
  44. package/dist/codex/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  45. package/dist/codex/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
  46. package/dist/codex/AGENTS.md +15 -42
  47. package/dist/copilot/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  48. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  49. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  50. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  51. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  52. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  53. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  54. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  55. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  56. package/dist/copilot/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  57. package/dist/copilot/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  58. package/dist/copilot/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
  59. package/dist/copilot/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  60. package/dist/copilot/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  61. package/dist/copilot/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
  62. package/dist/copilot/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  63. package/dist/copilot/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  64. package/dist/copilot/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  65. package/dist/copilot/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
  66. package/dist/copilot/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  67. package/dist/copilot/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
  68. package/dist/copilot/AGENTS.md +15 -42
  69. package/dist/cursor/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  70. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  71. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  72. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  73. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  74. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  75. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  76. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  77. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  78. package/dist/cursor/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  79. package/dist/cursor/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  80. package/dist/cursor/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
  81. package/dist/cursor/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  82. package/dist/cursor/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  83. package/dist/cursor/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
  84. package/dist/cursor/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  85. package/dist/cursor/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  86. package/dist/cursor/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  87. package/dist/cursor/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
  88. package/dist/cursor/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  89. package/dist/cursor/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
  90. package/dist/cursor/.cursor/rules/jahia.mdc +13 -40
  91. package/dist/gemini/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  92. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  93. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  94. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  95. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  96. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  97. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  98. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  99. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  100. package/dist/gemini/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  101. package/dist/gemini/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  102. package/dist/gemini/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
  103. package/dist/gemini/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  104. package/dist/gemini/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  105. package/dist/gemini/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
  106. package/dist/gemini/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  107. package/dist/gemini/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  108. package/dist/gemini/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  109. package/dist/gemini/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
  110. package/dist/gemini/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  111. package/dist/gemini/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
  112. package/dist/gemini/AGENTS.md +15 -42
  113. package/dist/gemini/GEMINI.md +2 -2
  114. package/dist/index.js +13 -0
  115. package/dist/opencode/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  116. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  117. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  118. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  119. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  120. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  121. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  122. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  123. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  124. package/dist/opencode/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  125. package/dist/opencode/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  126. package/dist/opencode/.agents/skills/jahia-dev-build-component/SKILL.md +15 -7
  127. package/dist/opencode/.agents/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  128. package/dist/opencode/.agents/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  129. package/dist/opencode/.agents/skills/jahia-dev-create-view/SKILL.md +3 -3
  130. package/dist/opencode/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  131. package/dist/opencode/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  132. package/dist/opencode/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  133. package/dist/opencode/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
  134. package/dist/opencode/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  135. package/dist/opencode/.agents/skills/jahia-dev-start-local/SKILL.md +18 -26
  136. package/dist/opencode/AGENTS.md +15 -42
  137. package/dist/windsurf/.windsurf/rules/jahia.md +13 -40
  138. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/SKILL.md +94 -0
  139. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  140. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  141. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  142. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  143. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  144. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  145. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  146. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  147. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  148. package/dist/windsurf/.windsurf/skills/jahia-dev-accessibility/SKILL.md +5 -265
  149. package/dist/windsurf/.windsurf/skills/jahia-dev-build-component/SKILL.md +15 -7
  150. package/dist/windsurf/.windsurf/skills/jahia-dev-create-page-template/SKILL.md +59 -21
  151. package/dist/windsurf/.windsurf/skills/jahia-dev-create-template-set/SKILL.md +20 -47
  152. package/dist/windsurf/.windsurf/skills/jahia-dev-create-view/SKILL.md +3 -3
  153. package/dist/windsurf/.windsurf/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  154. package/dist/windsurf/.windsurf/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  155. package/dist/windsurf/.windsurf/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  156. package/dist/windsurf/.windsurf/skills/jahia-dev-site-review/SKILL.md +70 -0
  157. package/dist/windsurf/.windsurf/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  158. package/dist/windsurf/.windsurf/skills/jahia-dev-start-local/SKILL.md +18 -26
  159. package/dist/windsurf/AGENTS.md +15 -42
  160. package/package.json +1 -1
  161. package/dist/claude/.claude/skills/jahia/SKILL.md +0 -144
  162. package/dist/claude/.claude/skills/jahia-content/SKILL.md +0 -157
  163. package/dist/claude/.claude/skills/jahia-content-create-content/SKILL.md +0 -359
  164. package/dist/claude/.claude/skills/jahia-content-explore-structure/SKILL.md +0 -255
  165. package/dist/claude/.claude/skills/jahia-content-media-upload/SKILL.md +0 -197
  166. package/dist/claude/.claude/skills/jahia-content-move-content/SKILL.md +0 -231
  167. package/dist/claude/.claude/skills/jahia-content-organize/SKILL.md +0 -209
  168. package/dist/claude/.claude/skills/jahia-content-publish/SKILL.md +0 -181
  169. package/dist/claude/.claude/skills/jahia-content-query-content/SKILL.md +0 -174
  170. package/dist/claude/.claude/skills/jahia-content-translate-content/SKILL.md +0 -226
  171. package/dist/claude/.claude/skills/jahia-dev/SKILL.md +0 -124
  172. package/dist/claude/.claude/skills/jahia-dev-apis/SKILL.md +0 -52
  173. package/dist/claude/.claude/skills/jahia-dev-apis/references/authentication.md +0 -484
  174. package/dist/claude/.claude/skills/jahia-dev-apis/references/graphql.md +0 -657
  175. package/dist/claude/.claude/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  176. package/dist/claude/.claude/skills/jahia-dev-apis/references/security.md +0 -541
  177. package/dist/claude/.claude/skills/jahia-dev-cypress/SKILL.md +0 -265
  178. package/dist/claude/.claude/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  179. package/dist/claude/.claude/skills/jahia-dev-java/SKILL.md +0 -110
  180. package/dist/claude/.claude/skills/jahia-dev-java/references/backend.md +0 -331
  181. package/dist/claude/.claude/skills/jahia-dev-java/references/content-types.md +0 -273
  182. package/dist/claude/.claude/skills/jahia-dev-java/references/modules.md +0 -218
  183. package/dist/claude/.claude/skills/jahia-dev-java/references/osgi.md +0 -208
  184. package/dist/claude/.claude/skills/jahia-dev-java/references/rendering.md +0 -191
  185. package/dist/claude/.claude/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  186. package/dist/claude/.claude/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  187. package/dist/claude/.claude/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  188. package/dist/claude/.claude/skills/jahia-java-concurrency/SKILL.md +0 -308
  189. package/dist/claude/.claude/skills/jahia-java-jcr/SKILL.md +0 -153
  190. package/dist/claude/.claude/skills/jahia-java-osgi/SKILL.md +0 -134
  191. package/dist/claude/.claude/skills/jahia-java-persistence/SKILL.md +0 -177
  192. package/dist/claude/.claude/skills/jahia-java-security/SKILL.md +0 -84
  193. package/dist/claude/.claude/skills/jahia-review-java/SKILL.md +0 -131
  194. package/dist/claude/.claude/skills/jahia-review-java/references/code-review-output.md +0 -121
  195. package/dist/codex/.agents/skills/jahia/SKILL.md +0 -144
  196. package/dist/codex/.agents/skills/jahia-content/SKILL.md +0 -157
  197. package/dist/codex/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  198. package/dist/codex/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  199. package/dist/codex/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  200. package/dist/codex/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  201. package/dist/codex/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  202. package/dist/codex/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  203. package/dist/codex/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  204. package/dist/codex/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  205. package/dist/codex/.agents/skills/jahia-dev/SKILL.md +0 -124
  206. package/dist/codex/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  207. package/dist/codex/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  208. package/dist/codex/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  209. package/dist/codex/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  210. package/dist/codex/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  211. package/dist/codex/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  212. package/dist/codex/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  213. package/dist/codex/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  214. package/dist/codex/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  215. package/dist/codex/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  216. package/dist/codex/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  217. package/dist/codex/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  218. package/dist/codex/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  219. package/dist/codex/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  220. package/dist/codex/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  221. package/dist/codex/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  222. package/dist/codex/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  223. package/dist/codex/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  224. package/dist/codex/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  225. package/dist/codex/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  226. package/dist/codex/.agents/skills/jahia-java-security/SKILL.md +0 -84
  227. package/dist/codex/.agents/skills/jahia-review-java/SKILL.md +0 -131
  228. package/dist/codex/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  229. package/dist/copilot/.agents/skills/jahia/SKILL.md +0 -144
  230. package/dist/copilot/.agents/skills/jahia-content/SKILL.md +0 -157
  231. package/dist/copilot/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  232. package/dist/copilot/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  233. package/dist/copilot/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  234. package/dist/copilot/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  235. package/dist/copilot/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  236. package/dist/copilot/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  237. package/dist/copilot/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  238. package/dist/copilot/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  239. package/dist/copilot/.agents/skills/jahia-dev/SKILL.md +0 -124
  240. package/dist/copilot/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  241. package/dist/copilot/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  242. package/dist/copilot/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  243. package/dist/copilot/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  244. package/dist/copilot/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  245. package/dist/copilot/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  246. package/dist/copilot/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  247. package/dist/copilot/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  248. package/dist/copilot/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  249. package/dist/copilot/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  250. package/dist/copilot/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  251. package/dist/copilot/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  252. package/dist/copilot/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  253. package/dist/copilot/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  254. package/dist/copilot/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  255. package/dist/copilot/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  256. package/dist/copilot/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  257. package/dist/copilot/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  258. package/dist/copilot/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  259. package/dist/copilot/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  260. package/dist/copilot/.agents/skills/jahia-java-security/SKILL.md +0 -84
  261. package/dist/copilot/.agents/skills/jahia-review-java/SKILL.md +0 -131
  262. package/dist/copilot/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  263. package/dist/cursor/.agents/skills/jahia/SKILL.md +0 -144
  264. package/dist/cursor/.agents/skills/jahia-content/SKILL.md +0 -157
  265. package/dist/cursor/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  266. package/dist/cursor/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  267. package/dist/cursor/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  268. package/dist/cursor/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  269. package/dist/cursor/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  270. package/dist/cursor/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  271. package/dist/cursor/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  272. package/dist/cursor/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  273. package/dist/cursor/.agents/skills/jahia-dev/SKILL.md +0 -124
  274. package/dist/cursor/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  275. package/dist/cursor/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  276. package/dist/cursor/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  277. package/dist/cursor/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  278. package/dist/cursor/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  279. package/dist/cursor/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  280. package/dist/cursor/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  281. package/dist/cursor/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  282. package/dist/cursor/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  283. package/dist/cursor/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  284. package/dist/cursor/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  285. package/dist/cursor/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  286. package/dist/cursor/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  287. package/dist/cursor/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  288. package/dist/cursor/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  289. package/dist/cursor/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  290. package/dist/cursor/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  291. package/dist/cursor/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  292. package/dist/cursor/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  293. package/dist/cursor/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  294. package/dist/cursor/.agents/skills/jahia-java-security/SKILL.md +0 -84
  295. package/dist/cursor/.agents/skills/jahia-review-java/SKILL.md +0 -131
  296. package/dist/cursor/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  297. package/dist/gemini/.agents/skills/jahia/SKILL.md +0 -144
  298. package/dist/gemini/.agents/skills/jahia-content/SKILL.md +0 -157
  299. package/dist/gemini/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  300. package/dist/gemini/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  301. package/dist/gemini/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  302. package/dist/gemini/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  303. package/dist/gemini/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  304. package/dist/gemini/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  305. package/dist/gemini/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  306. package/dist/gemini/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  307. package/dist/gemini/.agents/skills/jahia-dev/SKILL.md +0 -124
  308. package/dist/gemini/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  309. package/dist/gemini/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  310. package/dist/gemini/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  311. package/dist/gemini/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  312. package/dist/gemini/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  313. package/dist/gemini/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  314. package/dist/gemini/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  315. package/dist/gemini/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  316. package/dist/gemini/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  317. package/dist/gemini/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  318. package/dist/gemini/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  319. package/dist/gemini/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  320. package/dist/gemini/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  321. package/dist/gemini/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  322. package/dist/gemini/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  323. package/dist/gemini/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  324. package/dist/gemini/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  325. package/dist/gemini/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  326. package/dist/gemini/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  327. package/dist/gemini/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  328. package/dist/gemini/.agents/skills/jahia-java-security/SKILL.md +0 -84
  329. package/dist/gemini/.agents/skills/jahia-review-java/SKILL.md +0 -131
  330. package/dist/gemini/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  331. package/dist/opencode/.agents/skills/jahia/SKILL.md +0 -144
  332. package/dist/opencode/.agents/skills/jahia-content/SKILL.md +0 -157
  333. package/dist/opencode/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  334. package/dist/opencode/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  335. package/dist/opencode/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  336. package/dist/opencode/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  337. package/dist/opencode/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  338. package/dist/opencode/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  339. package/dist/opencode/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  340. package/dist/opencode/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  341. package/dist/opencode/.agents/skills/jahia-dev/SKILL.md +0 -124
  342. package/dist/opencode/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  343. package/dist/opencode/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  344. package/dist/opencode/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  345. package/dist/opencode/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  346. package/dist/opencode/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  347. package/dist/opencode/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  348. package/dist/opencode/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  349. package/dist/opencode/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  350. package/dist/opencode/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  351. package/dist/opencode/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  352. package/dist/opencode/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  353. package/dist/opencode/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  354. package/dist/opencode/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  355. package/dist/opencode/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  356. package/dist/opencode/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  357. package/dist/opencode/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  358. package/dist/opencode/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  359. package/dist/opencode/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  360. package/dist/opencode/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  361. package/dist/opencode/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  362. package/dist/opencode/.agents/skills/jahia-java-security/SKILL.md +0 -84
  363. package/dist/opencode/.agents/skills/jahia-review-java/SKILL.md +0 -131
  364. package/dist/opencode/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  365. package/dist/windsurf/.windsurf/skills/jahia/SKILL.md +0 -144
  366. package/dist/windsurf/.windsurf/skills/jahia-content/SKILL.md +0 -157
  367. package/dist/windsurf/.windsurf/skills/jahia-content-create-content/SKILL.md +0 -359
  368. package/dist/windsurf/.windsurf/skills/jahia-content-explore-structure/SKILL.md +0 -255
  369. package/dist/windsurf/.windsurf/skills/jahia-content-media-upload/SKILL.md +0 -197
  370. package/dist/windsurf/.windsurf/skills/jahia-content-move-content/SKILL.md +0 -231
  371. package/dist/windsurf/.windsurf/skills/jahia-content-organize/SKILL.md +0 -209
  372. package/dist/windsurf/.windsurf/skills/jahia-content-publish/SKILL.md +0 -181
  373. package/dist/windsurf/.windsurf/skills/jahia-content-query-content/SKILL.md +0 -174
  374. package/dist/windsurf/.windsurf/skills/jahia-content-translate-content/SKILL.md +0 -226
  375. package/dist/windsurf/.windsurf/skills/jahia-dev/SKILL.md +0 -124
  376. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/SKILL.md +0 -52
  377. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/authentication.md +0 -484
  378. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/graphql.md +0 -657
  379. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  380. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/security.md +0 -541
  381. package/dist/windsurf/.windsurf/skills/jahia-dev-cypress/SKILL.md +0 -265
  382. package/dist/windsurf/.windsurf/skills/jahia-dev-define-content-type/SKILL.md +0 -536
  383. package/dist/windsurf/.windsurf/skills/jahia-dev-java/SKILL.md +0 -110
  384. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/backend.md +0 -331
  385. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/content-types.md +0 -273
  386. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/modules.md +0 -218
  387. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/osgi.md +0 -208
  388. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/rendering.md +0 -191
  389. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  390. package/dist/windsurf/.windsurf/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  391. package/dist/windsurf/.windsurf/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  392. package/dist/windsurf/.windsurf/skills/jahia-java-concurrency/SKILL.md +0 -308
  393. package/dist/windsurf/.windsurf/skills/jahia-java-jcr/SKILL.md +0 -153
  394. package/dist/windsurf/.windsurf/skills/jahia-java-osgi/SKILL.md +0 -134
  395. package/dist/windsurf/.windsurf/skills/jahia-java-persistence/SKILL.md +0 -177
  396. package/dist/windsurf/.windsurf/skills/jahia-java-security/SKILL.md +0 -84
  397. package/dist/windsurf/.windsurf/skills/jahia-review-java/SKILL.md +0 -131
  398. package/dist/windsurf/.windsurf/skills/jahia-review-java/references/code-review-output.md +0 -121
@@ -1,536 +0,0 @@
1
- ---
2
- name: jahia-dev-define-content-type
3
- description: Creates a Jahia CND content type definition from a natural language description. Use when asked to model content, create a new content type, or define node types.
4
- allowed-tools: Bash, Read, Write, Edit
5
- ---
6
-
7
- ## Overview
8
-
9
- All Jahia development starts with content modeling. Content types are defined in **CND files** (Compact Node Definition). Each component follows the **Single Directory Component (SDC)** pattern: one folder per component, containing a `definition.cnd`, a view, and optional CSS.
10
-
11
- ---
12
-
13
- ## Step 0 — Write a spec before coding
14
-
15
- Before writing any CND, capture the content type spec. Ask the user to confirm:
16
-
17
- | Field | Answer |
18
- |---|---|
19
- | **Name** | e.g. `BlogPost` |
20
- | **Description** | What is this type for? |
21
- | **Fields** | name / type / i18n? / mandatory? |
22
- | **Views** | default only, or also: small / card / fullPage |
23
- | **Used where** | Inside an Area? Nested in another type? |
24
-
25
- Only proceed to the CND once this spec is agreed.
26
-
27
- ---
28
-
29
- ## Step 0b — Modeling decisions
30
-
31
- ### Semantic vs generic types
32
-
33
- | Use **semantic types** for… | Use **generic types** for… |
34
- |---|---|
35
- | Business entities: articles, team members, events | Visual composition: banners, feature rows |
36
- | Items that appear in listings | One-off sections, layout containers |
37
- | Anything reused across pages | Unique per-page UI blocks |
38
-
39
- ### Children vs weakreference
40
-
41
- | Use **child nodes** when… | Use **weakreference** when… |
42
- |---|---|
43
- | Parent is the visual container (e.g. CTA buttons inside a hero) | Linking to content managed elsewhere |
44
- | Children have no life outside the parent | Many-to-many relationships |
45
- | You always create the children together | Content editors need to reuse the referenced item |
46
-
47
- ### Mixins are the primary reuse mechanism
48
-
49
- **Mixins are how you share fields across multiple content types.** Whenever a set of properties appears on more than one type — a CTA block, a link, a badge, a price field — extract them into a mixin. This avoids duplication and keeps CND definitions focused.
50
-
51
- The module-level `settings/definitions.cnd` defines all mixins and base types. Component-level `definition.cnd` files define the content types that extend them.
52
-
53
- **Example: reusable CTA mixin**
54
-
55
- ```cnd
56
- // settings/definitions.cnd
57
- [nsmix:cta] mixin
58
- - ctaLabel (string) i18n
59
- - ctaType (string, choicelist[linkTypeInitializer]) = 'none' autocreated mandatory
60
- // j:linknode and j:url are injected automatically — do NOT declare them
61
- ```
62
-
63
- Any content type that needs a call-to-action simply extends `nsmix:cta`:
64
-
65
- ```cnd
66
- // src/components/Hero/definition.cnd
67
- [ns:hero] > jnt:content, nsmix:component, nsmix:cta
68
- - title (string) i18n mandatory primary
69
- - subtitle (string, textarea) i18n
70
- - backgroundImage (weakreference, picker[type='image']) < jmix:image
71
- ```
72
-
73
- The `ctaLabel`, `ctaType`, `j:linknode`, `j:url` fields are inherited and ready to use in the view without duplicating a single line of CND. Build your mixin library from day one — once two types need the same field, it belongs in a mixin.
74
-
75
- **Common reusable mixin patterns:**
76
-
77
- | Mixin | Properties it adds | When to use |
78
- |---|---|---|
79
- | `nsmix:cta` | `ctaLabel`, `ctaType` (+ injected `j:linknode`/`j:url`) | Any type with a button or link |
80
- | `nsmix:badge` | `badgeText`, `badgeColor` | Cards, teasers, any labelled content |
81
- | `nsmix:seo` | `metaTitle`, `metaDescription`, `seoKeywords` | Any `jmix:mainResource` type |
82
- | `nsmix:media` | `image` (weakreference), `imageAltText`, `imageCaption` | Any type with a visual asset |
83
- | `nsmix:trackable` | `analyticsId`, `trackingLabel` | Any CTA or interactive element |
84
-
85
- **Generic container — accept any droppable child:**
86
-
87
- ```cnd
88
- [ns:gridRow] > jnt:content, nsmix:component
89
- - columns (long) = '3' autocreated mandatory < '1', '2', '3', '4'
90
- + * (jmix:droppableContent) // ← accepts ANY droppable component as a child
91
- ```
92
-
93
- Use `+ * (jmix:droppableContent)` for layout containers that should not restrict which components editors can place inside them.
94
-
95
- ---
96
-
97
- ### Never use `jmix:droppableContent` directly
98
-
99
- Always define a custom component mixin for your module and extend it:
100
-
101
- ```cnd
102
- // In settings/definitions.cnd
103
- [namespacemix:component] > jmix:droppableContent, jmix:accessControllableContent mixin
104
- ```
105
-
106
- Then all component types extend `namespacemix:component` — **never** `jmix:droppableContent` directly. This is what controls which types appear in the content picker.
107
-
108
- > Add `jmix:accessControllableContent` to the base mixin — it enables per-component access control in jcontent, allowing editors to restrict who can see or edit individual components.
109
-
110
- ### Two-tier mixin system: `component` vs `pageComponent`
111
-
112
- If the module uses a custom area type with `pageComponent` (see `jahia-dev-create-page-template`), there are two tiers:
113
-
114
- ```cnd
115
- [namespacemix:component] > jmix:droppableContent mixin // general droppable
116
- [namespacemix:pageComponent] > namespacemix:component mixin // for page areas only
117
- ```
118
-
119
- **When creating a new content type, choose the right mixin:**
120
-
121
- | Component will be… | Extend |
122
- |---|---|
123
- | Dropped in page areas (hero, sections, cards on a page) | `namespacemix:pageComponent` |
124
- | Used only as a child of another component (e.g. CTA inside a hero) | `namespacemix:component` |
125
- | A `jmix:mainResource` type stored in a content folder and listed programmatically | `namespacemix:component` |
126
-
127
- > ⚠️ A component that extends only `namespacemix:component` **cannot be dropped in page areas** that use a `namespacemix:pageComponent` area type. This is the most common cause of editors not being able to contribute content to a new page.
128
-
129
- ---
130
-
131
- ## Step 1 — Identify the component location
132
-
133
- CND files can live in two places:
134
-
135
- - **Component-level** (preferred): `src/components/<Category>/<Name>/definition.cnd`
136
- - **Module-level**: `settings/definitions.cnd` (for mixins and shared base types)
137
-
138
- For a new standalone component, always create a component-level `definition.cnd`.
139
-
140
- ---
141
-
142
- ## Step 2 — Determine the namespace
143
-
144
- Check `settings/definitions.cnd` for the module's namespace declaration. It looks like:
145
-
146
- ```
147
- <ns = 'http://www.mymodule.com/...'>
148
- ```
149
-
150
- The short prefix (e.g. `ns`) is the namespace to use for all node types in this module.
151
-
152
- ---
153
-
154
- ## Step 3 — Write the CND definition
155
-
156
- ### Basic template
157
-
158
- ```cnd
159
- [namespace:typeName] > jnt:content, namespacemix:component
160
- - propertyName (type) [hints] [attributes] [< constraint]
161
- + childName (namespace:childType)
162
- ```
163
-
164
- ### Property types
165
-
166
- | Type | Usage |
167
- |---|---|
168
- | `string` | Single-line text |
169
- | `string, textarea` | Multi-line text |
170
- | `string, richtext` | Rich text editor |
171
- | `weakreference, picker[type='image']` | Image picker |
172
- | `weakreference multiple` | List of references (e.g. links to multiple pages) |
173
- | `string, choicelist[linkTypeInitializer]` | Link type discriminator (internal page / external URL / none) — **special initializer, not a value list** |
174
- | `string, choicelist` with `< 'val1', 'val2'` constraints | Dropdown with fixed choices (see below) |
175
- | `date` | Date picker |
176
- | `boolean` | Checkbox |
177
- | `double` | Decimal number (e.g. latitude/longitude) |
178
- | `long` | Integer number |
179
- | `string multiple` | List of strings |
180
-
181
- ### Fixed-choice dropdowns (constrained string)
182
-
183
- Use `(string, choicelist)` combined with value constraints (`< 'val1', 'val2'`) to render a dropdown in the editor. **Do NOT use `choicelist[val1,val2]`** — that syntax is invalid:
184
-
185
- ```cnd
186
- [namespace:article] > jnt:content
187
- - difficulty (string, choicelist) i18n < 'beginner', 'intermediate', 'advanced'
188
- - product (string, choicelist) i18n < 'jahia', 'jexperience', 'cloud'
189
- ```
190
-
191
- ### Choicelist initializer variants
192
-
193
- `choicelist[...]` takes an **initializer keyword**, not a value list. Valid initializers:
194
-
195
- | Initializer | What editor sees |
196
- |---|---|
197
- | `choicelist[linkTypeInitializer]` | Internal page / External URL / None link picker |
198
- | `choicelist[nodes=/path/to/folder;type=jnt:content]` | Picker populated from JCR nodes under a path |
199
- | `choicelist[componentTypes=jnt:page]` | Picker showing all registered views of a node type |
200
- | `choicelist[country]` | Country selector (ISO codes with localized labels) |
201
- | `choicelist[menus]` | Picker for existing menus defined on the site |
202
- | `choicelist[resourceBundle]` | Labels come from `.properties` file keys matching `ns_type.field.value` |
203
-
204
- ```cnd
205
- // Country picker — stores ISO code, shows localized country name in editor
206
- - country (string, choicelist[country]) i18n
207
-
208
- // Node picker — editor selects from nodes under a specific folder
209
- - template (string, choicelist[nodes=/sites/mySite/templates;type=jnt:content])
210
-
211
- // Component type picker — shows all views of jnt:page registered in the module
212
- - pageLayout (string, choicelist[componentTypes=jnt:page])
213
-
214
- // Resource bundle labels — values come from .properties keys
215
- - status (string, choicelist[resourceBundle]) i18n < 'draft', 'review', 'published'
216
- // In .properties: namespace_typeName.status.draft=Draft
217
- // namespace_typeName.status.review=In Review
218
- // namespace_typeName.status.published=Published
219
- ```
220
-
221
- > ⚠️ `choicelist[linkTypeInitializer]` is a **special initializer keyword** (not a value list) — see the link pattern section below. For fixed lists without dynamic labels, always use `(string, choicelist)` + `< 'val1', 'val2'`.
222
-
223
- Use `< "[-90,90]"` to restrict a numeric property to a range:
224
-
225
- ```cnd
226
- - latitude (double) mandatory < "[-90,90]"
227
- - longitude (double) mandatory < "[-180,180]"
228
- ```
229
-
230
- ### `weakreference multiple` vs child nodes
231
-
232
- | Use `weakreference multiple` when… | Use child nodes when… |
233
- |---|---|
234
- | Each item is just a reference (a page link, an image) | Each item has multiple properties (label + URL) |
235
- | The list is simpler to author and implement | Items need a rich editing interface |
236
-
237
- ```cnd
238
- // Simpler: list of page links (weakreference multiple)
239
- [namespace:footer] > jnt:content, namespacemix:component
240
- - links (weakreference) multiple < jnt:page
241
-
242
- // More flexible: each CTA has label + link (child nodes)
243
- [namespace:heroSection] > jnt:content, namespacemix:component
244
- + * (namespace:heroCallToAction)
245
- ```
246
-
247
- Render a `weakreference multiple` list in the view:
248
-
249
- ```tsx
250
- // links is JCRNodeWrapper[] | undefined
251
- {links?.filter(link => link !== null).map(link => (
252
- <a key={link.getPath()} href={buildNodeUrl(link)}>
253
- {link.getDisplayableName()}
254
- </a>
255
- ))}
256
- ```
257
-
258
- ### Common attributes
259
-
260
- | Attribute | Meaning |
261
- |---|---|
262
- | `i18n` | Translatable per language |
263
- | `mandatory` | Required field |
264
- | `multiple` | Allows a list of values |
265
- | `autocreated` | Auto-creates the property on node creation — always combine with a default: `= 'value'` |
266
- | `primary` | Marks the most important field — Jahia's editor UI highlights it. One per type only. |
267
- | `orderable` | Allows reordering child nodes |
268
-
269
- ```cnd
270
- [ns:blogPost] > jnt:content, nsmix:component
271
- - title (string) i18n mandatory primary // ← highlighted in the editor
272
- - country (string, choicelist[country]) = 'US' autocreated mandatory // ← pre-populated on create
273
- ```
274
-
275
- ### `linkTypeInitializer` — the full link pattern
276
-
277
- `choicelist[linkTypeInitializer]` creates a link picker where the editor selects *internal page*, *external URL*, or *none*. Declare **only the `j:linkType` field** in the CND — the companion fields `j:linknode` and `j:url` are **added automatically by Jahia's mixins** at runtime. Do NOT add them to your CND.
278
-
279
- ```cnd
280
- [namespace:callToAction] > jnt:content, namespacemix:component
281
- - label (string) i18n mandatory
282
- - j:linkType (string, choicelist[linkTypeInitializer]) mandatory
283
- // ✅ Stop here — j:linknode and j:url are injected by Jahia, not declared by you
284
- ```
285
-
286
- In `types.ts`, use a **discriminated union** — the mixin fields ARE available at runtime as props:
287
-
288
- ```ts
289
- import type { JCRNodeWrapper } from "org.jahia.services.content";
290
-
291
- export type Props =
292
- | { label?: string; "j:linkType": "none" }
293
- | { label?: string; "j:linkType": "internal"; "j:linknode"?: JCRNodeWrapper }
294
- | { label?: string; "j:linkType": "external"; "j:url"?: string; "j:linkTitle"?: string };
295
- ```
296
-
297
- In the view, use a `switch` on `props["j:linkType"]` (see `jahia-dev-create-view` skill).
298
-
299
- ### i18n rule
300
-
301
- **Default to `i18n` on every user-facing field** — titles, subtitles, body text, button labels, alt text, captions, people names. Even on monolingual sites, adding `i18n` from the start avoids costly CND migrations later.
302
-
303
- > ⚠️ **Child nodes do not support `i18n`.** The content tree is shared across all languages. If you need locale-specific child content, use per-language **visibility conditions** in the Jahia editor (Advanced Editing → Visibility → Languages) instead.
304
-
305
- > Under the hood: non-i18n fields are stored directly on the node; i18n fields are stored as properties of auto-created `jnt:translation_<language>` child nodes. You don't manage these directly, but knowing this helps when debugging missing translated values.
306
-
307
- ### Common mixins to extend
308
-
309
- | Mixin | Adds |
310
- |---|---|
311
- | `jnt:content` | Base type for all user content (always include) |
312
- | `namespacemix:component` | Makes this type available as a droppable component in Page Builder |
313
- | `mix:title` | Adds a `jcr:title` field |
314
- | `jmix:mainResource` | Makes the node accessible at its own URL — use only for content that needs **both a listing card AND a full detail page** (e.g. blog posts). Do not add to navigation-only or visual composition types. |
315
- | `jmix:hiddenType` | Hides a type from the Page Builder component picker (use for structural/container nodes editors should not add manually). Prefer over `jmix:studioOnly` which can cause silent rendering issues. |
316
- | `jmix:accessControllableContent` | Enables per-component access control in jcontent — add to the base module mixin |
317
- | `jmix:image` | Constraint: only image nodes |
318
- | `jmix:link` | Built-in link type |
319
-
320
- ### Constraints
321
-
322
- - `< jmix:image` — restricts a weakreference to image nodes only
323
- - `< namespace:typeName` — restricts child nodes to a specific type
324
-
325
- **Regex constraints** — validate a `string` field against a pattern:
326
-
327
- ```cnd
328
- // Email address (or empty — regex starts with ^$ to allow clearing the field)
329
- - contactEmail (string) < '^$|[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}'
330
-
331
- // URL-safe slug — lowercase letters, digits, hyphens only
332
- - slug (string) < '^[a-z0-9-]+$'
333
-
334
- // Must start with http:// or https://
335
- - externalUrl (string) < '^https?://'
336
- ```
337
-
338
- **Date-range constraints** — bound a `date` field to a window. Use `(` / `)` for exclusive bounds, `[` / `]` for inclusive. Leave either side empty for open-ended:
339
-
340
- ```cnd
341
- // Any date after 2020-01-01 (exclusive lower bound, no upper bound)
342
- - eventDate (date, datepicker) < '(2020-01-01T00:00:00.000,)'
343
-
344
- // From 2020 onwards inclusive (events can't be backdated before the platform launched)
345
- - startDate (date, datepicker) < '[2020-01-01T00:00:00.000,]'
346
-
347
- // Bounded window — exclusive on both sides
348
- - campaignDate (date, datepicker) < '(2020-01-01T00:00:00.000,2030-12-31T00:00:00.000)'
349
- ```
350
-
351
- ### Example — Hero Section with CTA (link pattern)
352
-
353
- ```cnd
354
- [ns:heroSection] > jnt:content, nsmix:component
355
- - title (string) i18n mandatory
356
- - subtitle (string, textarea) i18n mandatory
357
- - background (weakreference, picker[type='image']) mandatory < jmix:image
358
- + * (ns:heroCallToAction)
359
-
360
- [ns:heroCallToAction] > jnt:content, nsmix:component
361
- - title (string) i18n mandatory
362
- - j:linkType (string, choicelist[linkTypeInitializer]) mandatory
363
- // j:linknode and j:url are injected by Jahia — do not declare them
364
- ```
365
-
366
- ### Example — Blog Post
367
-
368
- ```cnd
369
- [ns:blogPost] > jnt:content, mix:title, jmix:mainResource, nsmix:component
370
- - subtitle (string) i18n mandatory
371
- - authors (string) multiple
372
- - cover (weakreference, picker[type='image']) mandatory < jmix:image
373
- - body (string, richtext) i18n mandatory
374
- - publicationDate (date)
375
- ```
376
-
377
- ---
378
-
379
- ## Step 4 — Create a `types.ts` file
380
-
381
- For each new content type, create a `types.ts` alongside the `definition.cnd` to define the TypeScript props interface. This will be imported by views.
382
-
383
- > ⚠️ **All props must use `?:` (optional)** — even mandatory CND fields. Jahia does not guarantee a value is present at render time (e.g. content created before a field was added, or incomplete saves). If a view uses a prop without guarding it, it will crash at runtime.
384
-
385
- ```ts
386
- import type { JCRNodeWrapper } from "org.jahia.services.content";
387
-
388
- export interface Props {
389
- title?: string;
390
- subtitle?: string;
391
- background?: JCRNodeWrapper;
392
- }
393
- ```
394
-
395
- Map CND types to TypeScript:
396
-
397
- | CND type | TypeScript type |
398
- |---|---|
399
- | `string` | `string` |
400
- | `string` multiple | `string[]` |
401
- | `weakreference` | `JCRNodeWrapper` |
402
- | `weakreference` multiple | `JCRNodeWrapper[]` |
403
- | `date` | `string` (ISO 8601) |
404
- | `boolean` | `boolean` |
405
- | `double` | `number` |
406
- | `long` | `number` |
407
-
408
- All fields use `?:` regardless of whether they are mandatory in the CND.
409
-
410
- ---
411
-
412
- ## Step 5 — Add UI translations and icon
413
-
414
- Editors see raw technical names without translations. Always add labels for every new content type.
415
-
416
- ### Translations
417
-
418
- Open `settings/resources/<module-name>.properties` (English) and `<module-name>_fr.properties` (French) and add:
419
-
420
- ```properties
421
- # Node type label (shown in the content picker and editor)
422
- namespace_typeName=Human-readable name
423
-
424
- # Field labels
425
- namespace_typeName.fieldName=Field label
426
- namespace_typeName.fieldName.ui.tooltip=Optional tooltip shown next to the field in the editor.
427
-
428
- # choicelist[resourceBundle] option labels
429
- namespace_typeName.fieldName.optionKey=Option label
430
- ```
431
-
432
- All `ui.tooltip` values support basic HTML. Escape `<` and `>` as `&lt;` and `&gt;`.
433
-
434
- > For `choicelist[resourceBundle]` fields, the constraint values (e.g. `< 'house', 'apartment'`) must match the property keys (e.g. `namespace_type.field.house=House`).
435
-
436
- ### Content editor forms (fieldsets)
437
-
438
- For fine-grained control over how fields appear in Jahia's content editor UI — changing a `string` to a radio button, reordering fields, grouping fields into sections — add a JSON fieldset definition:
439
-
440
- ```
441
- settings/content-editor-forms/fieldsets/<cnd-namespace>_<typeName>.json
442
- ```
443
-
444
- Example — override `ctaTarget` to render as a radio group and `ctaVariant` as a select:
445
-
446
- ```json
447
- {
448
- "nodeType": "ns:card",
449
- "priority": 1,
450
- "sections": [{
451
- "name": "content",
452
- "fieldSets": [{
453
- "name": "ns:card",
454
- "fields": [
455
- {
456
- "name": "ctaTarget",
457
- "selectorType": "RadioChoiceList"
458
- },
459
- {
460
- "name": "ctaVariant",
461
- "selectorType": "Choicelist",
462
- "selectorOptions": [{ "name": "context", "value": "true" }]
463
- }
464
- ]
465
- }]
466
- }]
467
- }
468
- ```
469
-
470
- `selectorType` overrides the default editor widget for the field. Common overrides:
471
-
472
- | `selectorType` | Use for |
473
- |---|---|
474
- | `RadioChoiceList` | Short fixed-value lists (2–4 options) |
475
- | `Choicelist` | Longer dropdowns, dynamic lists |
476
- | `RichText` | Force rich text editor on a `string, richtext` property |
477
- | `DateTimePicker` | Date + time (vs date only) |
478
- | `Tag` | Free-form tag input |
479
-
480
- Fieldset files are optional — only create them when the default editor rendering is insufficient.
481
-
482
- ### Icon
483
-
484
- Create a 32×32 PNG icon at:
485
-
486
- ```
487
- settings/content-types-icons/<cnd-namespace>_<typeName>.png
488
- ```
489
-
490
- The prefix is the **CND namespace** (e.g. `ns`, `nsmix`), **not** the module name. For example:
491
- - `ns_heroSection.png` ✅
492
- - `my-module_heroSection.png` ❌ (module name with hyphen — wrong)
493
-
494
- You can source free icons from [flaticon.com](https://www.flaticon.com/) (download at 32px). If no icon is available, copy an existing one as a placeholder — editors will see a blank space otherwise.
495
-
496
- ---
497
-
498
- ## Step 6 — Deploy to Jahia
499
-
500
- After creating or modifying a `definition.cnd`, build and deploy the module:
501
-
502
- ```bash
503
- # Always use this — never use yarn dev from an agent (it's interactive-only)
504
- yarn build && yarn jahia-deploy
505
- ```
506
-
507
- If Jahia rejects the type definition (e.g. breaking change), use the **Installed definitions browser** to remove the old definition first:
508
- > http://localhost:8080/modules/tools/definitionsBrowser.jsp
509
-
510
- ---
511
-
512
- ## Validation checklist
513
- - [ ] Spec confirmed before writing CND (name, fields, views, usage)
514
- - [ ] Namespace matches the module (check `settings/definitions.cnd`)
515
- - [ ] Extends `jnt:content` and appropriate mixins
516
- - [ ] Uses `namespacemix:component` or `namespacemix:pageComponent` — **never** `jmix:droppableContent` directly
517
- - [ ] All required properties have the `mandatory` attribute
518
- - [ ] All user-facing string/text fields have `i18n` (default to always)
519
- - [ ] Structural/container types have `jmix:hiddenType` (not shown in picker) — do NOT use `jmix:studioOnly`
520
- - [ ] `jmix:mainResource` only used for listing + detail content (not visual composition)
521
- - [ ] `types.ts` created with correct TypeScript types
522
- - [ ] Views handle null/missing values gracefully (mandatory does not guarantee a value)
523
- - [ ] Translation keys added to `.properties` files (EN + FR minimum)
524
- - [ ] Icon created at `settings/content-types-icons/<namespace>_<typeName>.png`
525
- - [ ] `yarn build && yarn jahia-deploy` run and type appears in Jahia content editor with correct label and icon
526
-
527
- ## Troubleshooting
528
- > https://academy.jahia.com/tutorials-get-started/front-end-developer/making-a-hero-section
529
-
530
- ## References
531
-
532
- - Native Jahia mixins & node types: https://github.com/Jahia/jahia/tree/master/war/src/main/webapp/WEB-INF/etc/repository/nodetypes
533
- - Developer training: https://github.com/Jahia/developer-training/blob/main/js-training/slides.md
534
- - JavaScript modules monorepo: https://github.com/Jahia/javascript-modules
535
-
536
- > For CND questions about native mixins (e.g. does `jmix:nolive` exist?), fetch the nodetypes directory above to verify before using.
@@ -1,110 +0,0 @@
1
- ---
2
- name: jahia-dev-java
3
- description: |
4
- Jahia 8.2 Java module development — creating OSGi modules, defining content types (CND),
5
- building JSP views, implementing backend logic (rules, actions, queries), and extending
6
- the Jahia UI (Content Editor, jContent, component registry).
7
- Trigger when the user is: creating or modifying a Java module, writing CND content type
8
- definitions, building JSP rendering views, implementing Jahia rules or actions, running
9
- JCR SQL2 queries, extending Content Editor or jContent UI, configuring OSGi services,
10
- or troubleshooting module deployment issues.
11
- allowed-tools: Read
12
- ---
13
-
14
- # Jahia 8.2 Java Developer Skill
15
-
16
- ## When to load which reference
17
-
18
- | Task | Reference |
19
- |------|-----------|
20
- | Creating a new module, Maven pom.xml, deployment, Java 11/17, static assets, deploy-free coding, troubleshooting bundle errors | `references/modules.md` |
21
- | Writing CND definitions, content type hierarchy, property types, choicelist initializers, modifying existing definitions | `references/content-types.md` |
22
- | JSP views, view selection, `@cache` tag, caching configuration, navigation menus, rendering filters, AMP | `references/rendering.md` |
23
- | Drools rules (DRL), JCR event listeners, JCR SQL2 queries, external data provider, permissions and roles | `references/backend.md` |
24
- | OSGi bundle lifecycle, Declarative Services, Blueprint XML, package Import/Export, service registry, Karaf tooling | `references/osgi.md` |
25
- | Content Editor JSON overrides, jContent UI extension points, component registry, custom selectors, settings pages, CKEditor | `references/ui-extensions.md` |
26
- | JCR session lifecycle, workspace, node names, SNS, mixins, locks, versioning — **correct patterns and pitfalls** | `/jahia-java-jcr` skill |
27
- | OSGi `@Component` state, `@Reference`, lifecycle side effects, Export-Package — **correct patterns and pitfalls** | `/jahia-java-osgi` skill |
28
- | Securing HTTP-reachable surfaces (servlets, GraphQL, filters) — Security Filter, CSRF Guard, ACLs | `/jahia-java-security` skill |
29
- | Relational persistence alongside JCR — N+1, timestamp consistency, entity model, transactional asymmetry | `/jahia-java-persistence` skill |
30
- | Thread safety in a multi-threaded webapp — `volatile`, locking, atomic variables, thread-safe collections, JCR session threading | `/jahia-java-concurrency` skill |
31
-
32
- ## Key Concepts Glossary
33
-
34
- **Bundle / Module**
35
- An OSGi JAR deployed into Jahia. Every Jahia module is an OSGi bundle. Jahia adds custom MANIFEST attributes (`Jahia-Module-Type`, `Jahia-Depends`, `Jahia-Root-Folder`) on top of standard OSGi headers.
36
-
37
- **CND (Compact Namespace and Node Type Definition)**
38
- Apache Jackrabbit standard file format (`definitions.cnd`) that declares content types. Lives at `src/main/resources/META-INF/definitions.cnd`.
39
-
40
- **JCR (Java Content Repository)**
41
- The underlying storage model. Content is a tree of nodes, each with a primary type and optional mixin types. Jahia uses Apache Jackrabbit Oak as the JCR implementation.
42
-
43
- **jnt: prefix**
44
- Jahia Node Types namespace (`http://www.jahia.org/jahia/nt/1.0`). Used for concrete content types like `jnt:content`, `jnt:page`, `jnt:file`.
45
-
46
- **jmix: prefix**
47
- Jahia Mixin namespace (`http://www.jahia.org/jahia/mix/1.0`). Used for abstract mixin types like `jmix:editorialContent`, `jmix:list`, `jmix:cache`.
48
-
49
- **jmix:editorialContent**
50
- Key mixin — makes a content type visible in jContent and enables content versioning. Required for any user-editable content type.
51
-
52
- **jmix:droppableContent**
53
- Base mixin for component categories. Types that inherit from this mixin create a component folder in the content picker sidebar.
54
-
55
- **Declarative Services (DS)**
56
- Preferred OSGi service mechanism in Jahia 8.2. Uses `@Component`, `@Activate`, `@Reference` annotations. Blueprint XML is deprecated as of Jahia 8.2.
57
-
58
- **jahia-depends**
59
- MANIFEST / pom.xml property declaring other module artifact IDs that this module requires. OSGi resolves dependencies before starting the bundle. Supports version ranges and optional dependencies.
60
-
61
- **Embed-Dependency**
62
- Felix Maven Bundle Plugin instruction to embed non-OSGi JARs inside the module JAR. Default scope: `compile|runtime`. Dependencies scoped `provided` are NOT embedded.
63
-
64
- **Deploy-free coding**
65
- Development workflow where source file changes (JSP, CSS, JS, CND) are picked up live without redeployment. Requires initial deploy and `Jahia-Source-Folders` MANIFEST attribute pointing to the project base directory.
66
-
67
- **jahia:deploy Maven goal**
68
- Deploys the compiled module JAR to a local Jahia server or Docker container. Usage: `mvn clean install jahia:deploy -P <profile>`.
69
-
70
- **Content Editor**
71
- Jahia's React-based form UI for creating/editing content. Forms are generated from CND definitions merged with JSON override files. Override files live in `META-INF/jahia-content-editor-forms/`.
72
-
73
- **jContent**
74
- Jahia's React-based content management UI. Extended via the component registry (`window.jahia.uiExtender.registry`). Used by editors to browse, create, and manage content.
75
-
76
- **Component Registry**
77
- JavaScript hashmap (`type + key → value`) used to inject UI elements (actions, accordions, nav items, selector types) into jContent and Content Editor at runtime. Access via `import {registry} from '@jahia/ui-extender'`.
78
-
79
- **DRL (Drools Rule Language)**
80
- Rule files placed at `META-INF/rules.drl` (all workspaces), `META-INF/default-rules.drl` (edit workspace only), or `META-INF/live-rules.drl` (live workspace only). Jahia provides a built-in DSL that simplifies rule conditions and consequences.
81
-
82
- **Workspace**
83
- Jahia has two JCR workspaces: `default` (edit/preview, where authors work) and `live` (what visitors see). Publication copies nodes from default to live.
84
-
85
- **Felix Web Console**
86
- OSGi administration UI at `http://localhost:8080/tools`. Shows bundle states, packages, services. Useful for diagnosing dependency issues.
87
-
88
- **Karaf SSH Shell**
89
- Command-line OSGi console accessible via `ssh -p 8101 jahia@localhost`. Key commands: `jahia:modules`, `bundle:requirements`, `jcr:query`.
90
-
91
- **JCR SQL2**
92
- Query language for the JCR. Syntax: `SELECT * FROM [nodetype] AS alias WHERE condition`. Use `ISDESCENDANTNODE(alias, '/path')` to scope queries. Do NOT query `nt:base` — use `jmix:searchable` instead for broad content queries.
93
-
94
- **choicelist initializer**
95
- Java class implementing `ModuleChoiceListInitializer` that populates dropdown values in Content Editor. Registered as an OSGi `@Component` service. Referenced in CND with `choicelist[keyName]` syntax.
96
-
97
- **Rendering filter**
98
- OSGi service implementing `RenderFilter`. Wraps every JSP/module render. Priority < 16 runs per-request; priority > 16 runs only on cache miss. Extend `AbstractFilter` to use condition setters.
99
-
100
- **Migration scripts**
101
- Groovy scripts in `src/main/resources/META-INF/patches/` that run once on module deployment to migrate JCR content or configuration.
102
-
103
- **Module types**
104
- `Jahia-Module-Type` MANIFEST value controls module behavior:
105
- - `module` — regular content module (default)
106
- - `system` — loaded early, provides system-level services
107
- - `templatesSet` — template set module that defines site templates
108
-
109
- **Static resources**
110
- JS/CSS/images declared in `Jahia-Static-Resources` MANIFEST header (e.g. `/css,/icons,/javascript`). Served directly from the OSGi bundle JAR under `src/main/resources/`.