@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
@@ -0,0 +1,133 @@
1
+ # CND String & Selector Properties
2
+
3
+ ## String type variants
4
+
5
+ | Type declaration | Editor widget | When to use |
6
+ |---|---|---|
7
+ | `(string)` | Single-line text input | Short labels, IDs, slugs |
8
+ | `(string, textarea)` | Multi-line text area | Paragraphs, descriptions |
9
+ | `(string, richtext)` | Rich text editor (TinyMCE) | Body content, formatted text |
10
+ | `(string) multiple` | Tag input / list | Lists of plain strings |
11
+ | `(string, tag[autocomplete=<n>,separator='<char>']) multiple` | Tag input with autocomplete | Tagging, keywords |
12
+ | `(string, color)` | Color picker | Color values |
13
+ | `(string, cron)` | Cron expression editor | Scheduling |
14
+
15
+ ## Fixed-choice dropdowns
16
+
17
+ Use `(string, choicelist)` + `< 'val1', 'val2'` for a dropdown with a hard-coded list.
18
+ **Never use `choicelist[val1,val2]`** — the bracket syntax is for initializer keywords, not values.
19
+
20
+ ```cnd
21
+ - difficulty (string, choicelist) i18n < 'beginner', 'intermediate', 'advanced'
22
+ - variant (string, choicelist) < 'primary', 'secondary', 'ghost'
23
+ ```
24
+
25
+ ## `choicelist[...]` initializer variants
26
+
27
+ | Initializer | What it renders |
28
+ |---|---|
29
+ | `choicelist` | Dropdown from constraints list |
30
+ | `choicelist[componentTypes='<types>']` | Component types/mixins dropdown |
31
+ | `choicelist[country]` | Countries list (ISO codes, localized labels) |
32
+ | `choicelist[menus]` | Site menus |
33
+ | `choicelist[nodes='<path>;<type>;<property>']` | Nodes from a JCR path; supports `$currentSiteTemplatesSet` |
34
+ | `choicelist[nodetypes='<type>']` | Node types inheriting from `<type>`; special values: `PRIMARY;fromDependencies;useName`, `MIXIN;fromDependencies;useName` |
35
+ | `choicelist[permissions]` | Permissions list |
36
+ | `choicelist[renderModes]` | Render modes |
37
+ | `choicelist[resourceBundle]` | Keys as constraints, labels from resource bundle |
38
+ | `choicelist[sortableFieldnames]` | Sortable field names |
39
+ | `choicelist[subnodetypes='<type>']` | Similar to nodetypes |
40
+ | `choicelist[templates]` | Site templates; variants: `mainresource`, `reference`, `subnodes`, `<type>`, with optional `, dependentProperties='<property>'` |
41
+ | `choicelist[templatesNode]` | Node templates; variant: `pageTemplate` |
42
+ | `choicelist[workflow]` | Available workflows |
43
+ | `choicelist[linkTypeInitializer]` | Internal/external/none link picker (see below) |
44
+
45
+ ## `mix:title` instead of a title string property
46
+
47
+ **NEVER write `- title (string) i18n mandatory`.**
48
+ Extend `mix:title` instead — it adds `jcr:title`, which Jahia's UI, breadcrumbs, and search use natively.
49
+
50
+ ```cnd
51
+ // ✅ Correct
52
+ [ns:heroSection] > jnt:content, nsmix:component, mix:title
53
+
54
+ // ❌ Wrong — duplicates what mix:title already provides
55
+ [ns:heroSection] > jnt:content, nsmix:component
56
+ - title (string) i18n mandatory
57
+ ```
58
+
59
+ Access in the view as `props["jcr:title"]`.
60
+
61
+ ## Link picker — `choicelist[linkTypeInitializer]`
62
+
63
+ **NEVER use `(string)` for a link, URL, href, or path.**
64
+ Use `choicelist[linkTypeInitializer]` — it renders an internal/external/none picker in the editor.
65
+
66
+ **Declare ONLY `j:linkType` in the CND. Do NOT add `j:linknode` or `j:url` — Jahia injects them automatically.**
67
+
68
+ ```cnd
69
+ // ✅ Correct — bare minimum
70
+ [ns:callToAction] > jnt:content, nsmix:component
71
+ - label (string) i18n mandatory
72
+ - j:linkType (string, choicelist[linkTypeInitializer]) mandatory
73
+
74
+ // ❌ Wrong — do not declare companion fields
75
+ - j:linknode (weakreference) // injected by Jahia — remove this
76
+ - j:url (string) // injected by Jahia — remove this
77
+ ```
78
+
79
+ TypeScript discriminated union for the view:
80
+
81
+ ```ts
82
+ import type { JCRNodeWrapper } from "org.jahia.services.content";
83
+ export type Props =
84
+ | { label?: string; "j:linkType": "none" }
85
+ | { label?: string; "j:linkType": "internal"; "j:linknode"?: JCRNodeWrapper }
86
+ | { label?: string; "j:linkType": "external"; "j:url"?: string; "j:linkTitle"?: string };
87
+ ```
88
+
89
+ In the view, switch on `props["j:linkType"]`.
90
+
91
+ ## Weakreference picker variants
92
+
93
+ | Initializer | What it picks |
94
+ |---|---|
95
+ | `picker[type='image']` | Image from media library |
96
+ | `picker[type='editoriallink']` | Editorial content node |
97
+ | `picker[type='page']` | Page node |
98
+ | `picker[type='file']` | Any file asset |
99
+
100
+ ## Regex constraints on strings
101
+
102
+ ```cnd
103
+ - contactEmail (string) < '^$|[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}'
104
+ - slug (string) < '^[a-z0-9-]+$'
105
+ - externalUrl (string) < '^https?://'
106
+ ```
107
+
108
+ ## Modifiers / keywords
109
+
110
+ | Keyword | Description |
111
+ |---|---|
112
+ | `i18n` | Translatable per language — **default to always on user-facing fields** |
113
+ | `mandatory` | Required |
114
+ | `multiple` | List of values |
115
+ | `primary` | Highlighted field in editor (one per type) |
116
+ | `autocreated` | Auto-created on node creation; requires `= 'value'` |
117
+ | `indexed=no` | Excludes from indexing |
118
+ | `nofulltext` | Excludes from full-text search |
119
+ | `boost=<float>` | Multiplies full-text search score |
120
+ | `facetable` | Enables faceted search on this property |
121
+ | `protected` | Cannot be set by external tools |
122
+ | `hidden` | Hidden in editor |
123
+
124
+ ## Examples combining selectors and modifiers
125
+
126
+ ```cnd
127
+ - tags (string, tag[autocomplete=5,separator=',']) multiple
128
+ - color (string, color) = '#000000' autocreated
129
+ - template (string, choicelist[templates]) i18n
130
+ - nodes (weakreference, choicelist[nodes='/sites/systemsite/categories;jnt:category',sort]) multiple
131
+ - image (weakreference, picker[type='image'])
132
+ - page (weakreference, picker[type='page'])
133
+ ```
@@ -0,0 +1,119 @@
1
+ # CND Syntax Reference
2
+
3
+ ## Namespace declarations
4
+
5
+ | Pattern | Example |
6
+ |---|---|
7
+ | `<prefix = 'uri'>` | `<jnt = 'http://www.jahia.org/jahia/nt/1.0'>` |
8
+
9
+ Jahia built-in namespaces:
10
+
11
+ | Prefix | URI |
12
+ |---|---|
13
+ | `j` | `http://www.jahia.org/jahia/1.0` |
14
+ | `jnt` | `http://www.jahia.org/jahia/nt/1.0` |
15
+ | `jmix` | `http://www.jahia.org/jahia/mix/1.0` |
16
+
17
+ Module convention: declare two namespaces — one for node types (`ns`), one for mixins (`nsmix`). The prefix is read from the first `<…>` line in `settings/definitions.cnd`.
18
+
19
+ ---
20
+
21
+ ## Node type definition
22
+
23
+ ```cnd
24
+ [ns:nodeType] > ns:baseType, nsmix:mixin1, nsmix:mixin2
25
+ - property1 (type) = 'default' modifier1 modifier2
26
+ + childNode1 (ns:childType)
27
+ ```
28
+
29
+ Add `abstract` after supertypes to prevent direct instantiation:
30
+
31
+ ```cnd
32
+ [ns:abstractType] > jnt:content abstract
33
+ ```
34
+
35
+ All component node types must extend `nsmix:component`:
36
+
37
+ ```cnd
38
+ [ns:myComponent] > jnt:content, nsmix:component
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Mixin definition
44
+
45
+ ```cnd
46
+ [nsmix:myMixin] > jmix:templateMixin mixin
47
+ - property1 (type) = 'default'
48
+ ```
49
+
50
+ ---
51
+
52
+ ## Property anatomy
53
+
54
+ ```
55
+ - propertyName (type, visualHint) = 'default' modifier1 modifier2 < constraint1, constraint2
56
+ ```
57
+
58
+ | Part | Position | Example |
59
+ |---|---|---|
60
+ | Name | after `-` | `- title` |
61
+ | Type | first parens | `(string)` |
62
+ | Visual hint | after type, same parens | `(string, text)` |
63
+ | Default value | after `=` | `= 'Hello'` |
64
+ | Modifiers | after default | `i18n mandatory multiple autocreated primary` |
65
+ | Constraints | after `<` | `< 'en', 'fr', 'de'` |
66
+
67
+ ### Property types
68
+
69
+ | Type | Notes |
70
+ |---|---|
71
+ | `string` | Plain text |
72
+ | `richtext` | HTML rich text |
73
+ | `boolean` | `true` / `false` |
74
+ | `long` | Integer |
75
+ | `double` | Floating point |
76
+ | `decimal` | Exact decimal |
77
+ | `date` | ISO date/time |
78
+ | `weakreference` | Node reference |
79
+ | `uri` | URI string |
80
+
81
+ ### Common modifiers
82
+
83
+ | Modifier | Meaning |
84
+ |---|---|
85
+ | `i18n` | Translatable per language |
86
+ | `mandatory` | Must have a value |
87
+ | `multiple` | Multi-value property |
88
+ | `autocreated` | Created automatically |
89
+ | `primary` | Primary property of the node |
90
+ | `hidden` | Not shown in editor UI |
91
+ | `protected` | Not editable by users |
92
+
93
+ ### Common visual hints
94
+
95
+ | Hint | Editor widget |
96
+ |---|---|
97
+ | `text` | Single-line text |
98
+ | `textarea` | Multi-line text |
99
+ | `richtext` | Rich text editor |
100
+ | `picker` | Content picker |
101
+ | `color` | Color picker |
102
+ | `checkbox` | Checkbox |
103
+ | `radio` | Radio buttons |
104
+ | `choicelist` | Drop-down list |
105
+
106
+ ---
107
+
108
+ ## Minimal working example
109
+
110
+ ```cnd
111
+ <ns = 'http://www.example.org/ns/1.0'>
112
+ <nsmix = 'http://www.example.org/nsmix/1.0'>
113
+
114
+ [ns:card] > jnt:content, nsmix:component
115
+ - title (string, text) = '' i18n
116
+ - body (string, richtext) i18n
117
+ - ctaLabel (string, text) i18n
118
+ - ctaLink (weakreference, picker[type='page'])
119
+ ```
@@ -0,0 +1,73 @@
1
+ ## CND type → TypeScript mapping
2
+
3
+ | CND type | TypeScript type | Notes |
4
+ |---|---|---|
5
+ | `string` | `string` | |
6
+ | `string` + `multiple` | `string[]` | |
7
+ | `long` | `number` | 64-bit integer |
8
+ | `double` | `number` | 64-bit float |
9
+ | `boolean` | `boolean` | |
10
+ | `date` | `string` | ISO 8601 string |
11
+ | `weakreference` | `JCRNodeWrapper \| undefined` | Always optional |
12
+ | `weakreference` + `multiple` | `JCRNodeWrapper[]` | |
13
+
14
+ ## Required import
15
+ ```ts
16
+ import type { JCRNodeWrapper } from "org.jahia.services.content";
17
+ ```
18
+
19
+ ## mix:title
20
+ When a type extends `mix:title`, add `"jcr:title"?: string` to Props.
21
+
22
+ ## linkTypeInitializer discriminated union
23
+ When CND has `j:linkType (string, choicelist[linkTypeInitializer])`, use a discriminated union:
24
+ ```ts
25
+ export type Props =
26
+ | { "j:linkType": "none" }
27
+ | { "j:linkType": "internal"; "j:linknode"?: JCRNodeWrapper }
28
+ | { "j:linkType": "external"; "j:url"?: string; "j:linkTitle"?: string };
29
+ ```
30
+ Add other fields of the type to each union member.
31
+
32
+ ## Choicelist (fixed values)
33
+ Use a string literal union:
34
+ ```ts
35
+ variant?: "primary" | "secondary" | "ghost";
36
+ columns?: "1" | "2" | "3"; // long choicelist values come through as strings
37
+ ```
38
+
39
+ ## Full example
40
+ For a CND type:
41
+ ```cnd
42
+ [ns:card] > jnt:content, nsmix:component, mix:title
43
+ - subtitle (string) i18n
44
+ - body (string, richtext) i18n
45
+ - image (weakreference, picker[type='image']) < jmix:image
46
+ - variant (string, choicelist) < 'primary', 'secondary'
47
+ - j:linkType (string, choicelist[linkTypeInitializer]) mandatory
48
+ ```
49
+
50
+ The `types.ts`:
51
+ ```ts
52
+ import type { JCRNodeWrapper } from "org.jahia.services.content";
53
+
54
+ type CardBase = {
55
+ "jcr:title"?: string;
56
+ subtitle?: string;
57
+ body?: string;
58
+ image?: JCRNodeWrapper;
59
+ variant?: "primary" | "secondary";
60
+ };
61
+
62
+ export type Props = CardBase & (
63
+ | { "j:linkType": "none" }
64
+ | { "j:linkType": "internal"; "j:linknode"?: JCRNodeWrapper }
65
+ | { "j:linkType": "external"; "j:url"?: string; "j:linkTitle"?: string }
66
+ );
67
+ ```
68
+
69
+ ## Rules
70
+ - All properties are optional unless `mandatory` in CND (and even mandatory fields may be absent at runtime — always guard)
71
+ - `weakreference` is always `JCRNodeWrapper | undefined` regardless of `mandatory`
72
+ - Never add `j:linknode` or `j:url` to the CND — they appear in types.ts via the discriminated union because Jahia injects them
73
+ - `i18n` does not affect the TypeScript type
@@ -1,271 +1,11 @@
1
1
  ---
2
2
  name: jahia-dev-accessibility
3
- description: Audits a Jahia JS module for WCAG 2.1 AA accessibility violations using axe-core and Playwright. Runs automated checks against all live pages, reports violations by severity, and fixes them in the React views and CSS. Invoke after building components or before final review.
4
- allowed-tools: Bash, Read, Write, Edit
3
+ description: Audits a site for accessibility issues
4
+ argument-hint: "[live page]"
5
5
  ---
6
6
 
7
- # Skill: jahia-dev-accessibility
7
+ Run `npx pa11y [live page]` on all live pages to audit a site for accessibility issues.
8
8
 
9
- Runs a live accessibility audit against all published pages of the site, reports violations, and fixes them in the source code.
9
+ Fix all issues systematically, and re-run the audit until no issues remain.
10
10
 
11
- ---
12
-
13
- ## Step 1 — Confirm pages are live
14
-
15
- You need the list of public page URLs. Look for `pages.json` in the module root first:
16
-
17
- ```bash
18
- cat pages.json 2>/dev/null || echo "not found"
19
- ```
20
-
21
- If absent, derive URLs from the site structure or ask the user. All pages must be accessible at `http://localhost:8080`.
22
-
23
- ---
24
-
25
- ## Step 2 — Install audit tooling
26
-
27
- Check if `@axe-core/playwright` and `playwright` are available:
28
-
29
- ```bash
30
- node -e "require('@axe-core/playwright'); require('playwright'); console.log('ok')" 2>/dev/null || echo "missing"
31
- ```
32
-
33
- If missing, install temporarily (project-local, not committed):
34
-
35
- ```bash
36
- npm install --no-save @axe-core/playwright playwright
37
- npx playwright install chromium --with-deps
38
- ```
39
-
40
- ---
41
-
42
- ## Step 3 — Run the audit
43
-
44
- Save this script as `/tmp/a11y-audit.mjs` and run it:
45
-
46
- ```js
47
- import { chromium } from "playwright";
48
- import { AxeBuilder } from "@axe-core/playwright";
49
- import { readFileSync } from "fs";
50
-
51
- const urls = JSON.parse(readFileSync("pages.json", "utf-8"));
52
-
53
- const browser = await chromium.launch({ args: ["--no-sandbox"] });
54
- const page = await browser.newPage();
55
-
56
- for (const url of urls) {
57
- console.log(`\n${"=".repeat(60)}\nAuditing: ${url}\n${"=".repeat(60)}`);
58
- await page.goto(url, { waitUntil: "networkidle", timeout: 30_000 });
59
-
60
- const results = await new AxeBuilder({ page })
61
- .withTags(["wcag2a", "wcag2aa", "wcag21aa"])
62
- .analyze();
63
-
64
- if (results.violations.length === 0) {
65
- console.log("✅ No violations found.");
66
- continue;
67
- }
68
-
69
- for (const v of results.violations) {
70
- console.log(`\n[${v.impact?.toUpperCase()}] ${v.id}: ${v.description}`);
71
- console.log(`Help: ${v.helpUrl}`);
72
- for (const node of v.nodes) {
73
- console.log(` Target: ${node.target.join(" > ")}`);
74
- console.log(` HTML: ${node.html}`);
75
- if (node.failureSummary) {
76
- console.log(` Fix: ${node.failureSummary}`);
77
- }
78
- }
79
- }
80
- }
81
-
82
- await browser.close();
83
- ```
84
-
85
- ```bash
86
- node /tmp/a11y-audit.mjs 2>&1 | tee /tmp/a11y-report.txt
87
- ```
88
-
89
- ---
90
-
91
- ## Step 4 — Interpret results
92
-
93
- Group violations by impact. Focus on `critical` and `serious` first — they contribute most to a poor score.
94
-
95
- Common violations in Jahia JS modules and their fixes:
96
-
97
- ### 🔴 Critical / Serious
98
-
99
- **`color-contrast`** — text fails WCAG AA contrast ratio (4.5:1 for normal text, 3:1 for large text)
100
- ```css
101
- /* Bad */
102
- color: #aaa; background: #fff;
103
-
104
- /* Fix — use a contrast checker: https://webaim.org/resources/contrastchecker/ */
105
- color: #595959; /* 7:1 ratio on white */
106
- ```
107
-
108
- **`image-alt`** — `<img>` missing `alt` attribute
109
- ```tsx
110
- /* Bad */
111
- <img src={buildNodeUrl(props.image)} />
112
-
113
- /* Fix — use content from CND, fall back to empty string for decorative */
114
- <img src={buildNodeUrl(props.image)} alt={props.imageAlt ?? ""} />
115
- ```
116
- Add `- imageAlt (string) i18n` to the CND and `imageAlt?: string` to `types.ts`.
117
-
118
- **`button-name`** — `<button>` or `<a>` is empty (icon-only without label)
119
- ```tsx
120
- /* Bad */
121
- <button><svg>...</svg></button>
122
-
123
- /* Fix */
124
- <button aria-label="Open menu"><svg aria-hidden="true">...</svg></button>
125
- ```
126
-
127
- **`landmark-one-main`** — page has no `<main>` landmark
128
- ```tsx
129
- /* Fix — wrap page content in <main> */
130
- <main id="main-content">
131
- {/* page content */}
132
- </main>
133
- ```
134
-
135
- **`page-has-heading-one`** — page has no `<h1>` element
136
- ```tsx
137
- /* Fix — ensure the hero or first section renders an <h1> */
138
- <h1>{props.title}</h1>
139
- ```
140
-
141
- **`link-name`** — `<a>` with no accessible text
142
- ```tsx
143
- /* Bad */
144
- <a href={url}><img src="..." /></a>
145
-
146
- /* Fix */
147
- <a href={url}><img src="..." alt={props.linkLabel ?? "Learn more"} /></a>
148
- ```
149
-
150
- ### 🟡 Moderate
151
-
152
- **`heading-order`** — headings skip levels (e.g. `<h1>` → `<h3>`)
153
- ```tsx
154
- /* Review: the first heading in a component should be h2 (after the page h1) */
155
- /* Section titles: h2, subsections: h3 */
156
- ```
157
-
158
- **`region`** — content is outside landmark regions
159
- Wrap page sections in semantic elements: `<header>`, `<nav>`, `<main>`, `<footer>`, `<section aria-label="...">`.
160
-
161
- **`list`** — `<ul>` or `<ol>` contains elements other than `<li>`
162
- ```tsx
163
- /* Bad */
164
- <ul>
165
- <div>item</div>
166
- </ul>
167
-
168
- /* Fix */
169
- <ul>
170
- <li>item</li>
171
- </ul>
172
- ```
173
-
174
- **`html-has-lang`** — `<html>` element missing `lang` attribute
175
- This is set at the page template level. Verify the template registered in `src/templates/` includes `lang`:
176
- ```tsx
177
- /* In the page template */
178
- <html lang={currentLanguage ?? "en"}>
179
- ```
180
- Jahia provides the language via `useServerContext()`:
181
- ```tsx
182
- import { useServerContext } from "@jahia/javascript-modules-library";
183
- const { currentLanguage } = useServerContext();
184
- ```
185
-
186
- **`aria-required-children`** — ARIA role is missing required children
187
- Avoid misusing ARIA roles. Prefer native HTML elements (`<ul>/<li>`, `<table>/<tr>/<td>`).
188
-
189
- ---
190
-
191
- ## Step 5 — Fix in source
192
-
193
- For each violation:
194
-
195
- 1. Identify the component: match `node.target` HTML to a `.server.tsx` file
196
- 2. Edit the view to apply the fix
197
- 3. If the fix requires a new CND field (e.g. `imageAlt`), update `definition.cnd` and `types.ts`
198
- 4. Run `yarn build && yarn jahia-deploy`
199
-
200
- After all fixes:
201
-
202
- ```bash
203
- # Re-run the audit to verify violations are resolved
204
- node /tmp/a11y-audit.mjs 2>&1 | grep -E "(CRITICAL|SERIOUS|MODERATE|No violations)"
205
- ```
206
-
207
- Iterate until only `minor` violations remain (or none).
208
-
209
- ---
210
-
211
- ## Step 6 — Proactive checks beyond axe-core
212
-
213
- axe-core catches ~30–40% of WCAG issues automatically. Also check manually:
214
-
215
- - **Keyboard navigation**: can every interactive element (link, button, form field) be reached with Tab?
216
- - **Focus indicators**: is `:focus` visible on all interactive elements?
217
- ```css
218
- /* Ensure focus ring is never suppressed globally */
219
- /* Bad */
220
- * { outline: none; }
221
- /* Fix — use :focus-visible */
222
- :focus-visible { outline: 2px solid #0969da; outline-offset: 2px; }
223
- ```
224
- - **Skip link**: add a "Skip to main content" link as the first focusable element
225
- ```tsx
226
- <a href="#main-content" className={styles.skipLink}>Skip to main content</a>
227
- ```
228
- ```css
229
- .skipLink {
230
- position: absolute;
231
- top: -100%;
232
- left: 0;
233
- background: #000;
234
- color: #fff;
235
- padding: 8px 16px;
236
- z-index: 999;
237
- }
238
- .skipLink:focus { top: 0; }
239
- ```
240
- - **Motion**: if any CSS animation exists, wrap it in `@media (prefers-reduced-motion: no-preference)`
241
- - **Touch targets**: interactive elements should be at least 44×44px
242
-
243
- ---
244
-
245
- ## Step 7 — Report summary
246
-
247
- After fixing, report:
248
-
249
- ```
250
- ## Accessibility Audit Summary
251
-
252
- Pages audited: N
253
- Violations fixed:
254
- - [critical] color-contrast: 3 instances → fixed (updated CSS contrast ratios)
255
- - [serious] image-alt: 2 instances → fixed (added imageAlt CND field)
256
- - [serious] button-name: 1 instance → fixed (added aria-label to icon button)
257
- - [moderate] heading-order: 2 instances → fixed (restructured h2/h3 hierarchy)
258
-
259
- Remaining violations: N (all minor / informational)
260
-
261
- Axe tags checked: wcag2a, wcag2aa, wcag21aa
262
- ```
263
-
264
- ---
265
-
266
- ## References
267
-
268
- - WebAIM Contrast Checker: https://webaim.org/resources/contrastchecker/
269
- - axe-core rules: https://dequeuniversity.com/rules/axe/
270
- - WCAG 2.1 Quick Ref: https://www.w3.org/WAI/WCAG21/quickref/
271
- - MDN ARIA: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA
11
+ If available, use a subagent to fix issues, with the right amount of context.
@@ -43,15 +43,23 @@ Has children: <yes: ChildType / no>
43
43
 
44
44
  ---
45
45
 
46
- ## Step 2 — Invoke `jahia-dev-define-content-type`
46
+ ## Step 2 — REQUIRED: Invoke `@jahia-cnd-author`
47
47
 
48
- Use the instructions from the `jahia-dev-define-content-type` skill to:
48
+ **Do not write CND manually.** Jahia-specific patterns (`choicelist[linkTypeInitializer]`, `mix:title`, child nodes for CTAs) are not in LLM training data — writing from memory produces broken output.
49
49
 
50
- 1. Identify the namespace (check `settings/definitions.cnd`)
51
- 2. Create `src/components/<Category>/<Name>/definition.cnd`
52
- 3. Create `src/components/<Category>/<Name>/types.ts`
53
- 4. Run `yarn build && yarn jahia-deploy` to push the type to Jahia
54
- 5. Verify the content type appears in the Jahia content editor
50
+ Invoke `@jahia-cnd-author` as a sub-agent with the complete spec:
51
+
52
+ ```
53
+ Component: <PascalCase name>
54
+ Namespace prefix: <ns>
55
+ Module path: <absolute path to module root>
56
+ Fields:
57
+ - <fieldName>: <type description> [mandatory] [i18n] [multiple]
58
+ Children: <repeatable sub-items, e.g. "CTA buttons with label + link">
59
+ Usage: <where this component appears, e.g. "dropped in page areas">
60
+ ```
61
+
62
+ Wait for **PASS** before continuing. If it returns **FAIL**, send the issues back to `@jahia-cnd-author` to fix.
55
63
 
56
64
  ---
57
65