@jahia/agentic 0.4.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 (373) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/claude/.claude/rules/jahia.md +1 -37
  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-jahia-mixins.md +510 -0
  7. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  8. package/dist/{opencode/.opencode/agents → claude/.claude/skills/jahia-cnd-author/references}/cnd-numbers-dates.md +32 -1
  9. package/dist/{opencode/.opencode/agents → claude/.claude/skills/jahia-cnd-author/references}/cnd-string-selectors.md +49 -10
  10. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  11. package/dist/claude/.claude/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  12. package/dist/claude/.claude/skills/jahia-dev-accessibility/SKILL.md +5 -265
  13. package/dist/claude/.claude/skills/jahia-dev-build-component/SKILL.md +13 -8
  14. package/dist/claude/CLAUDE.md +2 -38
  15. package/dist/codex/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  16. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  17. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  18. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  19. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  20. package/dist/{claude/.claude/agents → codex/.agents/skills/jahia-cnd-author/references}/cnd-numbers-dates.md +32 -1
  21. package/dist/{cursor/.cursor/agents → codex/.agents/skills/jahia-cnd-author/references}/cnd-string-selectors.md +49 -10
  22. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  23. package/dist/codex/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  24. package/dist/codex/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  25. package/dist/codex/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
  26. package/dist/codex/AGENTS.md +2 -38
  27. package/dist/copilot/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  28. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  29. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  30. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  31. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  32. package/dist/{cursor/.cursor/agents → copilot/.agents/skills/jahia-cnd-author/references}/cnd-numbers-dates.md +32 -1
  33. package/dist/{claude/.claude/agents → copilot/.agents/skills/jahia-cnd-author/references}/cnd-string-selectors.md +49 -10
  34. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  35. package/dist/copilot/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  36. package/dist/copilot/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  37. package/dist/copilot/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
  38. package/dist/copilot/AGENTS.md +2 -38
  39. package/dist/cursor/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  40. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  41. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  42. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  43. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  44. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  45. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  46. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  47. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  48. package/dist/cursor/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  49. package/dist/cursor/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  50. package/dist/cursor/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
  51. package/dist/cursor/.cursor/rules/jahia.mdc +1 -37
  52. package/dist/gemini/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  53. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  54. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  55. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  56. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  57. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  58. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  59. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  60. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  61. package/dist/gemini/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  62. package/dist/gemini/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  63. package/dist/gemini/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
  64. package/dist/gemini/AGENTS.md +2 -38
  65. package/dist/opencode/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  66. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  67. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  68. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  69. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  70. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  71. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  72. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  73. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  74. package/dist/opencode/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  75. package/dist/opencode/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  76. package/dist/opencode/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
  77. package/dist/opencode/AGENTS.md +2 -38
  78. package/dist/windsurf/.windsurf/rules/jahia.md +1 -37
  79. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/SKILL.md +94 -0
  80. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  81. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  82. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  83. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  84. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  85. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  86. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  87. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  88. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  89. package/dist/windsurf/.windsurf/skills/jahia-dev-accessibility/SKILL.md +5 -265
  90. package/dist/windsurf/.windsurf/skills/jahia-dev-build-component/SKILL.md +13 -8
  91. package/dist/windsurf/AGENTS.md +2 -38
  92. package/package.json +1 -1
  93. package/dist/claude/.claude/agents/cnd-jahia-mixins.md +0 -113
  94. package/dist/claude/.claude/agents/jahia-cnd-author.md +0 -130
  95. package/dist/claude/.claude/agents/jahia-dev-worker.md +0 -264
  96. package/dist/claude/.claude/agents/jahia-reviewer.md +0 -105
  97. package/dist/claude/.claude/skills/jahia/SKILL.md +0 -148
  98. package/dist/claude/.claude/skills/jahia-content/SKILL.md +0 -157
  99. package/dist/claude/.claude/skills/jahia-content-create-content/SKILL.md +0 -359
  100. package/dist/claude/.claude/skills/jahia-content-explore-structure/SKILL.md +0 -255
  101. package/dist/claude/.claude/skills/jahia-content-media-upload/SKILL.md +0 -197
  102. package/dist/claude/.claude/skills/jahia-content-move-content/SKILL.md +0 -231
  103. package/dist/claude/.claude/skills/jahia-content-organize/SKILL.md +0 -209
  104. package/dist/claude/.claude/skills/jahia-content-publish/SKILL.md +0 -181
  105. package/dist/claude/.claude/skills/jahia-content-query-content/SKILL.md +0 -174
  106. package/dist/claude/.claude/skills/jahia-content-translate-content/SKILL.md +0 -226
  107. package/dist/claude/.claude/skills/jahia-dev/SKILL.md +0 -124
  108. package/dist/claude/.claude/skills/jahia-dev-apis/SKILL.md +0 -52
  109. package/dist/claude/.claude/skills/jahia-dev-apis/references/authentication.md +0 -484
  110. package/dist/claude/.claude/skills/jahia-dev-apis/references/graphql.md +0 -657
  111. package/dist/claude/.claude/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  112. package/dist/claude/.claude/skills/jahia-dev-apis/references/security.md +0 -541
  113. package/dist/claude/.claude/skills/jahia-dev-cypress/SKILL.md +0 -265
  114. package/dist/claude/.claude/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  115. package/dist/claude/.claude/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  116. package/dist/claude/.claude/skills/jahia-dev-java/SKILL.md +0 -110
  117. package/dist/claude/.claude/skills/jahia-dev-java/references/backend.md +0 -331
  118. package/dist/claude/.claude/skills/jahia-dev-java/references/content-types.md +0 -273
  119. package/dist/claude/.claude/skills/jahia-dev-java/references/modules.md +0 -218
  120. package/dist/claude/.claude/skills/jahia-dev-java/references/osgi.md +0 -208
  121. package/dist/claude/.claude/skills/jahia-dev-java/references/rendering.md +0 -191
  122. package/dist/claude/.claude/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  123. package/dist/claude/.claude/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  124. package/dist/claude/.claude/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  125. package/dist/claude/.claude/skills/jahia-java-concurrency/SKILL.md +0 -308
  126. package/dist/claude/.claude/skills/jahia-java-jcr/SKILL.md +0 -153
  127. package/dist/claude/.claude/skills/jahia-java-osgi/SKILL.md +0 -134
  128. package/dist/claude/.claude/skills/jahia-java-persistence/SKILL.md +0 -177
  129. package/dist/claude/.claude/skills/jahia-java-security/SKILL.md +0 -84
  130. package/dist/claude/.claude/skills/jahia-orchestrate/SKILL.md +0 -148
  131. package/dist/claude/.claude/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  132. package/dist/claude/.claude/skills/jahia-review-java/SKILL.md +0 -131
  133. package/dist/claude/.claude/skills/jahia-review-java/references/code-review-output.md +0 -121
  134. package/dist/codex/.agents/skills/jahia/SKILL.md +0 -148
  135. package/dist/codex/.agents/skills/jahia-content/SKILL.md +0 -157
  136. package/dist/codex/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  137. package/dist/codex/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  138. package/dist/codex/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  139. package/dist/codex/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  140. package/dist/codex/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  141. package/dist/codex/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  142. package/dist/codex/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  143. package/dist/codex/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  144. package/dist/codex/.agents/skills/jahia-dev/SKILL.md +0 -124
  145. package/dist/codex/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  146. package/dist/codex/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  147. package/dist/codex/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  148. package/dist/codex/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  149. package/dist/codex/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  150. package/dist/codex/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  151. package/dist/codex/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  152. package/dist/codex/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  153. package/dist/codex/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  154. package/dist/codex/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  155. package/dist/codex/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  156. package/dist/codex/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  157. package/dist/codex/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  158. package/dist/codex/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  159. package/dist/codex/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  160. package/dist/codex/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  161. package/dist/codex/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  162. package/dist/codex/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  163. package/dist/codex/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  164. package/dist/codex/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  165. package/dist/codex/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  166. package/dist/codex/.agents/skills/jahia-java-security/SKILL.md +0 -84
  167. package/dist/codex/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
  168. package/dist/codex/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  169. package/dist/codex/.agents/skills/jahia-review-java/SKILL.md +0 -131
  170. package/dist/codex/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  171. package/dist/codex/.codex/agents/cnd-child-nodes.toml +0 -3
  172. package/dist/codex/.codex/agents/cnd-jahia-mixins.toml +0 -3
  173. package/dist/codex/.codex/agents/cnd-numbers-dates.toml +0 -3
  174. package/dist/codex/.codex/agents/cnd-string-selectors.toml +0 -3
  175. package/dist/codex/.codex/agents/jahia-cnd-author.toml +0 -3
  176. package/dist/codex/.codex/agents/jahia-dev-worker.toml +0 -3
  177. package/dist/codex/.codex/agents/jahia-reviewer.toml +0 -3
  178. package/dist/copilot/.agents/skills/jahia/SKILL.md +0 -148
  179. package/dist/copilot/.agents/skills/jahia-content/SKILL.md +0 -157
  180. package/dist/copilot/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  181. package/dist/copilot/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  182. package/dist/copilot/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  183. package/dist/copilot/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  184. package/dist/copilot/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  185. package/dist/copilot/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  186. package/dist/copilot/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  187. package/dist/copilot/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  188. package/dist/copilot/.agents/skills/jahia-dev/SKILL.md +0 -124
  189. package/dist/copilot/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  190. package/dist/copilot/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  191. package/dist/copilot/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  192. package/dist/copilot/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  193. package/dist/copilot/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  194. package/dist/copilot/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  195. package/dist/copilot/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  196. package/dist/copilot/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  197. package/dist/copilot/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  198. package/dist/copilot/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  199. package/dist/copilot/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  200. package/dist/copilot/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  201. package/dist/copilot/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  202. package/dist/copilot/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  203. package/dist/copilot/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  204. package/dist/copilot/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  205. package/dist/copilot/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  206. package/dist/copilot/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  207. package/dist/copilot/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  208. package/dist/copilot/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  209. package/dist/copilot/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  210. package/dist/copilot/.agents/skills/jahia-java-security/SKILL.md +0 -84
  211. package/dist/copilot/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
  212. package/dist/copilot/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  213. package/dist/copilot/.agents/skills/jahia-review-java/SKILL.md +0 -131
  214. package/dist/copilot/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  215. package/dist/cursor/.agents/skills/jahia/SKILL.md +0 -148
  216. package/dist/cursor/.agents/skills/jahia-content/SKILL.md +0 -157
  217. package/dist/cursor/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  218. package/dist/cursor/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  219. package/dist/cursor/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  220. package/dist/cursor/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  221. package/dist/cursor/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  222. package/dist/cursor/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  223. package/dist/cursor/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  224. package/dist/cursor/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  225. package/dist/cursor/.agents/skills/jahia-dev/SKILL.md +0 -124
  226. package/dist/cursor/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  227. package/dist/cursor/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  228. package/dist/cursor/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  229. package/dist/cursor/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  230. package/dist/cursor/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  231. package/dist/cursor/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  232. package/dist/cursor/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  233. package/dist/cursor/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  234. package/dist/cursor/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  235. package/dist/cursor/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  236. package/dist/cursor/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  237. package/dist/cursor/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  238. package/dist/cursor/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  239. package/dist/cursor/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  240. package/dist/cursor/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  241. package/dist/cursor/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  242. package/dist/cursor/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  243. package/dist/cursor/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  244. package/dist/cursor/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  245. package/dist/cursor/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  246. package/dist/cursor/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  247. package/dist/cursor/.agents/skills/jahia-java-security/SKILL.md +0 -84
  248. package/dist/cursor/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
  249. package/dist/cursor/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  250. package/dist/cursor/.agents/skills/jahia-review-java/SKILL.md +0 -131
  251. package/dist/cursor/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  252. package/dist/cursor/.cursor/agents/cnd-jahia-mixins.md +0 -113
  253. package/dist/cursor/.cursor/agents/jahia-cnd-author.md +0 -130
  254. package/dist/cursor/.cursor/agents/jahia-dev-worker.md +0 -264
  255. package/dist/cursor/.cursor/agents/jahia-reviewer.md +0 -105
  256. package/dist/gemini/.agents/skills/jahia/SKILL.md +0 -148
  257. package/dist/gemini/.agents/skills/jahia-content/SKILL.md +0 -157
  258. package/dist/gemini/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  259. package/dist/gemini/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  260. package/dist/gemini/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  261. package/dist/gemini/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  262. package/dist/gemini/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  263. package/dist/gemini/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  264. package/dist/gemini/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  265. package/dist/gemini/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  266. package/dist/gemini/.agents/skills/jahia-dev/SKILL.md +0 -124
  267. package/dist/gemini/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  268. package/dist/gemini/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  269. package/dist/gemini/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  270. package/dist/gemini/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  271. package/dist/gemini/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  272. package/dist/gemini/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  273. package/dist/gemini/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  274. package/dist/gemini/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  275. package/dist/gemini/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  276. package/dist/gemini/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  277. package/dist/gemini/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  278. package/dist/gemini/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  279. package/dist/gemini/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  280. package/dist/gemini/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  281. package/dist/gemini/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  282. package/dist/gemini/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  283. package/dist/gemini/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  284. package/dist/gemini/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  285. package/dist/gemini/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  286. package/dist/gemini/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  287. package/dist/gemini/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  288. package/dist/gemini/.agents/skills/jahia-java-security/SKILL.md +0 -84
  289. package/dist/gemini/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
  290. package/dist/gemini/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  291. package/dist/gemini/.agents/skills/jahia-review-java/SKILL.md +0 -131
  292. package/dist/gemini/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  293. package/dist/opencode/.agents/skills/jahia/SKILL.md +0 -148
  294. package/dist/opencode/.agents/skills/jahia-content/SKILL.md +0 -157
  295. package/dist/opencode/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  296. package/dist/opencode/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  297. package/dist/opencode/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  298. package/dist/opencode/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  299. package/dist/opencode/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  300. package/dist/opencode/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  301. package/dist/opencode/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  302. package/dist/opencode/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  303. package/dist/opencode/.agents/skills/jahia-dev/SKILL.md +0 -124
  304. package/dist/opencode/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  305. package/dist/opencode/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  306. package/dist/opencode/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  307. package/dist/opencode/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  308. package/dist/opencode/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  309. package/dist/opencode/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  310. package/dist/opencode/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  311. package/dist/opencode/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  312. package/dist/opencode/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  313. package/dist/opencode/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  314. package/dist/opencode/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  315. package/dist/opencode/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  316. package/dist/opencode/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  317. package/dist/opencode/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  318. package/dist/opencode/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  319. package/dist/opencode/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  320. package/dist/opencode/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  321. package/dist/opencode/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  322. package/dist/opencode/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  323. package/dist/opencode/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  324. package/dist/opencode/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  325. package/dist/opencode/.agents/skills/jahia-java-security/SKILL.md +0 -84
  326. package/dist/opencode/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
  327. package/dist/opencode/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  328. package/dist/opencode/.agents/skills/jahia-review-java/SKILL.md +0 -131
  329. package/dist/opencode/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  330. package/dist/opencode/.opencode/agents/cnd-jahia-mixins.md +0 -113
  331. package/dist/opencode/.opencode/agents/jahia-cnd-author.md +0 -130
  332. package/dist/opencode/.opencode/agents/jahia-dev-worker.md +0 -264
  333. package/dist/opencode/.opencode/agents/jahia-reviewer.md +0 -105
  334. package/dist/windsurf/.windsurf/skills/jahia/SKILL.md +0 -148
  335. package/dist/windsurf/.windsurf/skills/jahia-content/SKILL.md +0 -157
  336. package/dist/windsurf/.windsurf/skills/jahia-content-create-content/SKILL.md +0 -359
  337. package/dist/windsurf/.windsurf/skills/jahia-content-explore-structure/SKILL.md +0 -255
  338. package/dist/windsurf/.windsurf/skills/jahia-content-media-upload/SKILL.md +0 -197
  339. package/dist/windsurf/.windsurf/skills/jahia-content-move-content/SKILL.md +0 -231
  340. package/dist/windsurf/.windsurf/skills/jahia-content-organize/SKILL.md +0 -209
  341. package/dist/windsurf/.windsurf/skills/jahia-content-publish/SKILL.md +0 -181
  342. package/dist/windsurf/.windsurf/skills/jahia-content-query-content/SKILL.md +0 -174
  343. package/dist/windsurf/.windsurf/skills/jahia-content-translate-content/SKILL.md +0 -226
  344. package/dist/windsurf/.windsurf/skills/jahia-dev/SKILL.md +0 -124
  345. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/SKILL.md +0 -52
  346. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/authentication.md +0 -484
  347. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/graphql.md +0 -657
  348. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  349. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/security.md +0 -541
  350. package/dist/windsurf/.windsurf/skills/jahia-dev-cypress/SKILL.md +0 -265
  351. package/dist/windsurf/.windsurf/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  352. package/dist/windsurf/.windsurf/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  353. package/dist/windsurf/.windsurf/skills/jahia-dev-java/SKILL.md +0 -110
  354. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/backend.md +0 -331
  355. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/content-types.md +0 -273
  356. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/modules.md +0 -218
  357. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/osgi.md +0 -208
  358. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/rendering.md +0 -191
  359. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  360. package/dist/windsurf/.windsurf/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  361. package/dist/windsurf/.windsurf/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  362. package/dist/windsurf/.windsurf/skills/jahia-java-concurrency/SKILL.md +0 -308
  363. package/dist/windsurf/.windsurf/skills/jahia-java-jcr/SKILL.md +0 -153
  364. package/dist/windsurf/.windsurf/skills/jahia-java-osgi/SKILL.md +0 -134
  365. package/dist/windsurf/.windsurf/skills/jahia-java-persistence/SKILL.md +0 -177
  366. package/dist/windsurf/.windsurf/skills/jahia-java-security/SKILL.md +0 -84
  367. package/dist/windsurf/.windsurf/skills/jahia-orchestrate/SKILL.md +0 -148
  368. package/dist/windsurf/.windsurf/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  369. package/dist/windsurf/.windsurf/skills/jahia-review-java/SKILL.md +0 -131
  370. package/dist/windsurf/.windsurf/skills/jahia-review-java/references/code-review-output.md +0 -121
  371. /package/dist/claude/.claude/{agents → skills/jahia-cnd-author/references}/cnd-child-nodes.md +0 -0
  372. /package/dist/{cursor/.cursor/agents → codex/.agents/skills/jahia-cnd-author/references}/cnd-child-nodes.md +0 -0
  373. /package/dist/{opencode/.opencode/agents → copilot/.agents/skills/jahia-cnd-author/references}/cnd-child-nodes.md +0 -0
@@ -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 the image node's jcr:title, fall back to empty string for decorative */
114
- <img src={buildNodeUrl(props.image)} alt={props.image?.getPropertyAsString("jcr:title") ?? ""} />
115
- ```
116
- The image node already has `jcr:title` (from `mix:title`). **Do not add `imageAlt (string) i18n`** to the CND.
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,18 +43,23 @@ Has children: <yes: ChildType / no>
43
43
 
44
44
  ---
45
45
 
46
- ## Step 2 — REQUIRED: Invoke `/jahia-dev-define-content-type`
46
+ ## Step 2 — REQUIRED: Invoke `@jahia-cnd-author`
47
47
 
48
- **Do not write CND manually.** Jahia-specific patterns (`choicelist[linkTypeInitializer]`, `mix:title`, child nodes for CTAs) are not in LLM training data — writing CND from memory always produces broken output. This skill delegates to `@jahia-cnd-author` which loads the correct reference files.
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
- Invoke `/jahia-dev-define-content-type` in a sub-agent job. Pass the component spec. Wait for it to confirm PASS before continuing.
50
+ Invoke `@jahia-cnd-author` as a sub-agent with the complete spec:
51
51
 
52
- The skill will:
53
- 1. Confirm the namespace (from `settings/definitions.cnd`)
54
- 2. Invoke `@jahia-cnd-author` to create `src/components/<Category>/<Name>/definition.cnd`
55
- 3. Invoke `@jahia-cnd-author` to create `src/components/<Category>/<Name>/types.ts`
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
+ ```
56
61
 
57
- **Do not proceed to Step 3 until the CND review is PASS.**
62
+ Wait for **PASS** before continuing. If it returns **FAIL**, send the issues back to `@jahia-cnd-author` to fix.
58
63
 
59
64
  ---
60
65