@jahia/agentic 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (451) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/antigravity/.agents/rules/jahia.md +51 -0
  3. package/dist/antigravity/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  4. package/dist/antigravity/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  5. package/dist/antigravity/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  6. package/dist/antigravity/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  7. package/dist/antigravity/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  8. package/dist/{opencode/.opencode/agents → antigravity/.agents/skills/jahia-cnd-author/references}/cnd-numbers-dates.md +32 -1
  9. package/dist/{opencode/.opencode/agents → antigravity/.agents/skills/jahia-cnd-author/references}/cnd-string-selectors.md +49 -10
  10. package/dist/antigravity/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  11. package/dist/antigravity/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  12. package/dist/antigravity/.agents/skills/jahia-dev-accessibility/SKILL.md +11 -0
  13. package/dist/antigravity/.agents/skills/jahia-dev-build-component/SKILL.md +133 -0
  14. package/dist/antigravity/.agents/skills/jahia-dev-create-page-template/SKILL.md +341 -0
  15. package/dist/antigravity/.agents/skills/jahia-dev-create-template-set/SKILL.md +205 -0
  16. package/dist/antigravity/.agents/skills/jahia-dev-create-view/SKILL.md +896 -0
  17. package/dist/antigravity/.agents/skills/jahia-dev-debug/SKILL.md +176 -0
  18. package/dist/antigravity/.agents/skills/jahia-dev-import-from/SKILL.md +244 -0
  19. package/dist/antigravity/.agents/skills/jahia-dev-jexperience/SKILL.md +269 -0
  20. package/dist/antigravity/.agents/skills/jahia-dev-ops/SKILL.md +50 -0
  21. package/dist/antigravity/.agents/skills/jahia-dev-ops/references/docker.md +151 -0
  22. package/dist/antigravity/.agents/skills/jahia-dev-ops/references/monitoring.md +195 -0
  23. package/dist/antigravity/.agents/skills/jahia-dev-ops/references/provisioning.md +269 -0
  24. package/dist/antigravity/.agents/skills/jahia-dev-properties/SKILL.md +147 -0
  25. package/dist/antigravity/.agents/skills/jahia-dev-properties/references/all-properties.md +231 -0
  26. package/dist/antigravity/.agents/skills/jahia-dev-query-content/SKILL.md +204 -0
  27. package/dist/antigravity/.agents/skills/jahia-dev-review/SKILL.md +228 -0
  28. package/dist/antigravity/.agents/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  29. package/dist/antigravity/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  30. package/dist/antigravity/.agents/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  31. package/dist/antigravity/.agents/skills/jahia-dev-screenshot/SKILL.md +177 -0
  32. package/dist/antigravity/.agents/skills/jahia-dev-site-review/SKILL.md +70 -0
  33. package/dist/antigravity/.agents/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  34. package/dist/antigravity/.agents/skills/jahia-dev-start-local/SKILL.md +121 -0
  35. package/dist/antigravity/.agents/skills/jahia-jcr-sql2/SKILL.md +258 -0
  36. package/dist/antigravity/AGENTS.md +62 -0
  37. package/dist/claude/.claude/rules/jahia.md +1 -37
  38. package/dist/claude/.claude/skills/jahia-cnd-author/SKILL.md +94 -0
  39. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  40. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  41. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  42. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  43. package/dist/claude/.claude/{agents → skills/jahia-cnd-author/references}/cnd-numbers-dates.md +32 -1
  44. package/dist/{cursor/.cursor/agents → claude/.claude/skills/jahia-cnd-author/references}/cnd-string-selectors.md +49 -10
  45. package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  46. package/dist/claude/.claude/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  47. package/dist/claude/.claude/skills/jahia-dev-accessibility/SKILL.md +5 -265
  48. package/dist/claude/.claude/skills/jahia-dev-build-component/SKILL.md +13 -8
  49. package/dist/claude/.mcp.json +11 -0
  50. package/dist/claude/CLAUDE.md +2 -38
  51. package/dist/codex/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  52. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  53. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  54. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  55. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  56. package/dist/{cursor/.cursor/agents → codex/.agents/skills/jahia-cnd-author/references}/cnd-numbers-dates.md +32 -1
  57. package/dist/{claude/.claude/agents → codex/.agents/skills/jahia-cnd-author/references}/cnd-string-selectors.md +49 -10
  58. package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  59. package/dist/codex/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  60. package/dist/codex/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  61. package/dist/codex/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
  62. package/dist/codex/AGENTS.md +2 -38
  63. package/dist/copilot/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  64. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  65. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  66. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  67. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  68. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  69. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  70. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  71. package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  72. package/dist/copilot/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  73. package/dist/copilot/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  74. package/dist/copilot/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
  75. package/dist/copilot/AGENTS.md +2 -38
  76. package/dist/cursor/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  77. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  78. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  79. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  80. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  81. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  82. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  83. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  84. package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  85. package/dist/cursor/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  86. package/dist/cursor/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  87. package/dist/cursor/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
  88. package/dist/cursor/.cursor/mcp.json +11 -0
  89. package/dist/cursor/.cursor/rules/jahia.mdc +1 -37
  90. package/dist/gemini/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  91. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  92. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  93. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  94. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  95. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  96. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  97. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  98. package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  99. package/dist/gemini/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  100. package/dist/gemini/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  101. package/dist/gemini/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
  102. package/dist/gemini/.gemini/settings.json +10 -0
  103. package/dist/gemini/AGENTS.md +2 -38
  104. package/dist/index.js +12 -0
  105. package/dist/kiro/.kiro/settings/mcp.json +10 -0
  106. package/dist/kiro/.kiro/skills/jahia-cnd-author/SKILL.md +94 -0
  107. package/dist/kiro/.kiro/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  108. package/dist/kiro/.kiro/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  109. package/dist/kiro/.kiro/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  110. package/dist/kiro/.kiro/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  111. package/dist/kiro/.kiro/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  112. package/dist/kiro/.kiro/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  113. package/dist/kiro/.kiro/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  114. package/dist/kiro/.kiro/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  115. package/dist/kiro/.kiro/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  116. package/dist/kiro/.kiro/skills/jahia-dev-accessibility/SKILL.md +11 -0
  117. package/dist/kiro/.kiro/skills/jahia-dev-build-component/SKILL.md +133 -0
  118. package/dist/kiro/.kiro/skills/jahia-dev-create-page-template/SKILL.md +341 -0
  119. package/dist/kiro/.kiro/skills/jahia-dev-create-template-set/SKILL.md +205 -0
  120. package/dist/kiro/.kiro/skills/jahia-dev-create-view/SKILL.md +896 -0
  121. package/dist/kiro/.kiro/skills/jahia-dev-debug/SKILL.md +176 -0
  122. package/dist/kiro/.kiro/skills/jahia-dev-import-from/SKILL.md +244 -0
  123. package/dist/kiro/.kiro/skills/jahia-dev-jexperience/SKILL.md +269 -0
  124. package/dist/kiro/.kiro/skills/jahia-dev-ops/SKILL.md +50 -0
  125. package/dist/kiro/.kiro/skills/jahia-dev-ops/references/docker.md +151 -0
  126. package/dist/kiro/.kiro/skills/jahia-dev-ops/references/monitoring.md +195 -0
  127. package/dist/kiro/.kiro/skills/jahia-dev-ops/references/provisioning.md +269 -0
  128. package/dist/kiro/.kiro/skills/jahia-dev-properties/SKILL.md +147 -0
  129. package/dist/kiro/.kiro/skills/jahia-dev-properties/references/all-properties.md +231 -0
  130. package/dist/kiro/.kiro/skills/jahia-dev-query-content/SKILL.md +204 -0
  131. package/dist/kiro/.kiro/skills/jahia-dev-review/SKILL.md +228 -0
  132. package/dist/kiro/.kiro/skills/jahia-dev-review-cnd/SKILL.md +79 -0
  133. package/dist/kiro/.kiro/skills/jahia-dev-review-cnd/scripts/check-cnd.d.mts +13 -0
  134. package/dist/kiro/.kiro/skills/jahia-dev-review-cnd/scripts/check-cnd.mjs +198 -0
  135. package/dist/kiro/.kiro/skills/jahia-dev-screenshot/SKILL.md +177 -0
  136. package/dist/kiro/.kiro/skills/jahia-dev-site-review/SKILL.md +70 -0
  137. package/dist/kiro/.kiro/skills/jahia-dev-site-review/scripts/review-pages.mjs +85 -0
  138. package/dist/kiro/.kiro/skills/jahia-dev-start-local/SKILL.md +121 -0
  139. package/dist/kiro/.kiro/skills/jahia-jcr-sql2/SKILL.md +258 -0
  140. package/dist/kiro/.kiro/steering/jahia.md +55 -0
  141. package/dist/kiro/AGENTS.md +62 -0
  142. package/dist/opencode/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
  143. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  144. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  145. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  146. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  147. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  148. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  149. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  150. package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  151. package/dist/opencode/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  152. package/dist/opencode/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
  153. package/dist/opencode/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
  154. package/dist/opencode/AGENTS.md +2 -38
  155. package/dist/opencode/opencode.json +12 -0
  156. package/dist/windsurf/.windsurf/rules/jahia.md +1 -37
  157. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/SKILL.md +94 -0
  158. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
  159. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
  160. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
  161. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
  162. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
  163. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
  164. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
  165. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
  166. package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
  167. package/dist/windsurf/.windsurf/skills/jahia-dev-accessibility/SKILL.md +5 -265
  168. package/dist/windsurf/.windsurf/skills/jahia-dev-build-component/SKILL.md +13 -8
  169. package/dist/windsurf/AGENTS.md +2 -38
  170. package/package.json +1 -1
  171. package/dist/claude/.claude/agents/cnd-jahia-mixins.md +0 -113
  172. package/dist/claude/.claude/agents/jahia-cnd-author.md +0 -130
  173. package/dist/claude/.claude/agents/jahia-dev-worker.md +0 -264
  174. package/dist/claude/.claude/agents/jahia-reviewer.md +0 -105
  175. package/dist/claude/.claude/skills/jahia/SKILL.md +0 -148
  176. package/dist/claude/.claude/skills/jahia-content/SKILL.md +0 -157
  177. package/dist/claude/.claude/skills/jahia-content-create-content/SKILL.md +0 -359
  178. package/dist/claude/.claude/skills/jahia-content-explore-structure/SKILL.md +0 -255
  179. package/dist/claude/.claude/skills/jahia-content-media-upload/SKILL.md +0 -197
  180. package/dist/claude/.claude/skills/jahia-content-move-content/SKILL.md +0 -231
  181. package/dist/claude/.claude/skills/jahia-content-organize/SKILL.md +0 -209
  182. package/dist/claude/.claude/skills/jahia-content-publish/SKILL.md +0 -181
  183. package/dist/claude/.claude/skills/jahia-content-query-content/SKILL.md +0 -174
  184. package/dist/claude/.claude/skills/jahia-content-translate-content/SKILL.md +0 -226
  185. package/dist/claude/.claude/skills/jahia-dev/SKILL.md +0 -124
  186. package/dist/claude/.claude/skills/jahia-dev-apis/SKILL.md +0 -52
  187. package/dist/claude/.claude/skills/jahia-dev-apis/references/authentication.md +0 -484
  188. package/dist/claude/.claude/skills/jahia-dev-apis/references/graphql.md +0 -657
  189. package/dist/claude/.claude/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  190. package/dist/claude/.claude/skills/jahia-dev-apis/references/security.md +0 -541
  191. package/dist/claude/.claude/skills/jahia-dev-cypress/SKILL.md +0 -265
  192. package/dist/claude/.claude/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  193. package/dist/claude/.claude/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  194. package/dist/claude/.claude/skills/jahia-dev-java/SKILL.md +0 -110
  195. package/dist/claude/.claude/skills/jahia-dev-java/references/backend.md +0 -331
  196. package/dist/claude/.claude/skills/jahia-dev-java/references/content-types.md +0 -273
  197. package/dist/claude/.claude/skills/jahia-dev-java/references/modules.md +0 -218
  198. package/dist/claude/.claude/skills/jahia-dev-java/references/osgi.md +0 -208
  199. package/dist/claude/.claude/skills/jahia-dev-java/references/rendering.md +0 -191
  200. package/dist/claude/.claude/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  201. package/dist/claude/.claude/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  202. package/dist/claude/.claude/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  203. package/dist/claude/.claude/skills/jahia-java-concurrency/SKILL.md +0 -308
  204. package/dist/claude/.claude/skills/jahia-java-jcr/SKILL.md +0 -153
  205. package/dist/claude/.claude/skills/jahia-java-osgi/SKILL.md +0 -134
  206. package/dist/claude/.claude/skills/jahia-java-persistence/SKILL.md +0 -177
  207. package/dist/claude/.claude/skills/jahia-java-security/SKILL.md +0 -84
  208. package/dist/claude/.claude/skills/jahia-orchestrate/SKILL.md +0 -148
  209. package/dist/claude/.claude/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  210. package/dist/claude/.claude/skills/jahia-review-java/SKILL.md +0 -131
  211. package/dist/claude/.claude/skills/jahia-review-java/references/code-review-output.md +0 -121
  212. package/dist/codex/.agents/skills/jahia/SKILL.md +0 -148
  213. package/dist/codex/.agents/skills/jahia-content/SKILL.md +0 -157
  214. package/dist/codex/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  215. package/dist/codex/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  216. package/dist/codex/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  217. package/dist/codex/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  218. package/dist/codex/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  219. package/dist/codex/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  220. package/dist/codex/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  221. package/dist/codex/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  222. package/dist/codex/.agents/skills/jahia-dev/SKILL.md +0 -124
  223. package/dist/codex/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  224. package/dist/codex/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  225. package/dist/codex/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  226. package/dist/codex/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  227. package/dist/codex/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  228. package/dist/codex/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  229. package/dist/codex/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  230. package/dist/codex/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  231. package/dist/codex/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  232. package/dist/codex/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  233. package/dist/codex/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  234. package/dist/codex/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  235. package/dist/codex/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  236. package/dist/codex/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  237. package/dist/codex/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  238. package/dist/codex/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  239. package/dist/codex/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  240. package/dist/codex/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  241. package/dist/codex/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  242. package/dist/codex/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  243. package/dist/codex/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  244. package/dist/codex/.agents/skills/jahia-java-security/SKILL.md +0 -84
  245. package/dist/codex/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
  246. package/dist/codex/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  247. package/dist/codex/.agents/skills/jahia-review-java/SKILL.md +0 -131
  248. package/dist/codex/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  249. package/dist/codex/.codex/agents/cnd-child-nodes.toml +0 -3
  250. package/dist/codex/.codex/agents/cnd-jahia-mixins.toml +0 -3
  251. package/dist/codex/.codex/agents/cnd-numbers-dates.toml +0 -3
  252. package/dist/codex/.codex/agents/cnd-string-selectors.toml +0 -3
  253. package/dist/codex/.codex/agents/jahia-cnd-author.toml +0 -3
  254. package/dist/codex/.codex/agents/jahia-dev-worker.toml +0 -3
  255. package/dist/codex/.codex/agents/jahia-reviewer.toml +0 -3
  256. package/dist/copilot/.agents/skills/jahia/SKILL.md +0 -148
  257. package/dist/copilot/.agents/skills/jahia-content/SKILL.md +0 -157
  258. package/dist/copilot/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  259. package/dist/copilot/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  260. package/dist/copilot/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  261. package/dist/copilot/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  262. package/dist/copilot/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  263. package/dist/copilot/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  264. package/dist/copilot/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  265. package/dist/copilot/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  266. package/dist/copilot/.agents/skills/jahia-dev/SKILL.md +0 -124
  267. package/dist/copilot/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  268. package/dist/copilot/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  269. package/dist/copilot/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  270. package/dist/copilot/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  271. package/dist/copilot/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  272. package/dist/copilot/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  273. package/dist/copilot/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  274. package/dist/copilot/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  275. package/dist/copilot/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  276. package/dist/copilot/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  277. package/dist/copilot/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  278. package/dist/copilot/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  279. package/dist/copilot/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  280. package/dist/copilot/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  281. package/dist/copilot/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  282. package/dist/copilot/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  283. package/dist/copilot/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  284. package/dist/copilot/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  285. package/dist/copilot/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  286. package/dist/copilot/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  287. package/dist/copilot/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  288. package/dist/copilot/.agents/skills/jahia-java-security/SKILL.md +0 -84
  289. package/dist/copilot/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
  290. package/dist/copilot/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  291. package/dist/copilot/.agents/skills/jahia-review-java/SKILL.md +0 -131
  292. package/dist/copilot/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  293. package/dist/cursor/.agents/skills/jahia/SKILL.md +0 -148
  294. package/dist/cursor/.agents/skills/jahia-content/SKILL.md +0 -157
  295. package/dist/cursor/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  296. package/dist/cursor/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  297. package/dist/cursor/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  298. package/dist/cursor/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  299. package/dist/cursor/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  300. package/dist/cursor/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  301. package/dist/cursor/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  302. package/dist/cursor/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  303. package/dist/cursor/.agents/skills/jahia-dev/SKILL.md +0 -124
  304. package/dist/cursor/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  305. package/dist/cursor/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  306. package/dist/cursor/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  307. package/dist/cursor/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  308. package/dist/cursor/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  309. package/dist/cursor/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  310. package/dist/cursor/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  311. package/dist/cursor/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  312. package/dist/cursor/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  313. package/dist/cursor/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  314. package/dist/cursor/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  315. package/dist/cursor/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  316. package/dist/cursor/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  317. package/dist/cursor/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  318. package/dist/cursor/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  319. package/dist/cursor/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  320. package/dist/cursor/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  321. package/dist/cursor/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  322. package/dist/cursor/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  323. package/dist/cursor/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  324. package/dist/cursor/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  325. package/dist/cursor/.agents/skills/jahia-java-security/SKILL.md +0 -84
  326. package/dist/cursor/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
  327. package/dist/cursor/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  328. package/dist/cursor/.agents/skills/jahia-review-java/SKILL.md +0 -131
  329. package/dist/cursor/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  330. package/dist/cursor/.cursor/agents/cnd-jahia-mixins.md +0 -113
  331. package/dist/cursor/.cursor/agents/jahia-cnd-author.md +0 -130
  332. package/dist/cursor/.cursor/agents/jahia-dev-worker.md +0 -264
  333. package/dist/cursor/.cursor/agents/jahia-reviewer.md +0 -105
  334. package/dist/gemini/.agents/skills/jahia/SKILL.md +0 -148
  335. package/dist/gemini/.agents/skills/jahia-content/SKILL.md +0 -157
  336. package/dist/gemini/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  337. package/dist/gemini/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  338. package/dist/gemini/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  339. package/dist/gemini/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  340. package/dist/gemini/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  341. package/dist/gemini/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  342. package/dist/gemini/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  343. package/dist/gemini/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  344. package/dist/gemini/.agents/skills/jahia-dev/SKILL.md +0 -124
  345. package/dist/gemini/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  346. package/dist/gemini/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  347. package/dist/gemini/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  348. package/dist/gemini/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  349. package/dist/gemini/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  350. package/dist/gemini/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  351. package/dist/gemini/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  352. package/dist/gemini/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  353. package/dist/gemini/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  354. package/dist/gemini/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  355. package/dist/gemini/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  356. package/dist/gemini/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  357. package/dist/gemini/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  358. package/dist/gemini/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  359. package/dist/gemini/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  360. package/dist/gemini/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  361. package/dist/gemini/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  362. package/dist/gemini/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  363. package/dist/gemini/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  364. package/dist/gemini/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  365. package/dist/gemini/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  366. package/dist/gemini/.agents/skills/jahia-java-security/SKILL.md +0 -84
  367. package/dist/gemini/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
  368. package/dist/gemini/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  369. package/dist/gemini/.agents/skills/jahia-review-java/SKILL.md +0 -131
  370. package/dist/gemini/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  371. package/dist/opencode/.agents/skills/jahia/SKILL.md +0 -148
  372. package/dist/opencode/.agents/skills/jahia-content/SKILL.md +0 -157
  373. package/dist/opencode/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
  374. package/dist/opencode/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
  375. package/dist/opencode/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
  376. package/dist/opencode/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
  377. package/dist/opencode/.agents/skills/jahia-content-organize/SKILL.md +0 -209
  378. package/dist/opencode/.agents/skills/jahia-content-publish/SKILL.md +0 -181
  379. package/dist/opencode/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
  380. package/dist/opencode/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
  381. package/dist/opencode/.agents/skills/jahia-dev/SKILL.md +0 -124
  382. package/dist/opencode/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
  383. package/dist/opencode/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
  384. package/dist/opencode/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
  385. package/dist/opencode/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  386. package/dist/opencode/.agents/skills/jahia-dev-apis/references/security.md +0 -541
  387. package/dist/opencode/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
  388. package/dist/opencode/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  389. package/dist/opencode/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  390. package/dist/opencode/.agents/skills/jahia-dev-java/SKILL.md +0 -110
  391. package/dist/opencode/.agents/skills/jahia-dev-java/references/backend.md +0 -331
  392. package/dist/opencode/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
  393. package/dist/opencode/.agents/skills/jahia-dev-java/references/modules.md +0 -218
  394. package/dist/opencode/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
  395. package/dist/opencode/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
  396. package/dist/opencode/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  397. package/dist/opencode/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  398. package/dist/opencode/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  399. package/dist/opencode/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
  400. package/dist/opencode/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
  401. package/dist/opencode/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
  402. package/dist/opencode/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
  403. package/dist/opencode/.agents/skills/jahia-java-security/SKILL.md +0 -84
  404. package/dist/opencode/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
  405. package/dist/opencode/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  406. package/dist/opencode/.agents/skills/jahia-review-java/SKILL.md +0 -131
  407. package/dist/opencode/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
  408. package/dist/opencode/.opencode/agents/cnd-jahia-mixins.md +0 -113
  409. package/dist/opencode/.opencode/agents/jahia-cnd-author.md +0 -130
  410. package/dist/opencode/.opencode/agents/jahia-dev-worker.md +0 -264
  411. package/dist/opencode/.opencode/agents/jahia-reviewer.md +0 -105
  412. package/dist/windsurf/.windsurf/skills/jahia/SKILL.md +0 -148
  413. package/dist/windsurf/.windsurf/skills/jahia-content/SKILL.md +0 -157
  414. package/dist/windsurf/.windsurf/skills/jahia-content-create-content/SKILL.md +0 -359
  415. package/dist/windsurf/.windsurf/skills/jahia-content-explore-structure/SKILL.md +0 -255
  416. package/dist/windsurf/.windsurf/skills/jahia-content-media-upload/SKILL.md +0 -197
  417. package/dist/windsurf/.windsurf/skills/jahia-content-move-content/SKILL.md +0 -231
  418. package/dist/windsurf/.windsurf/skills/jahia-content-organize/SKILL.md +0 -209
  419. package/dist/windsurf/.windsurf/skills/jahia-content-publish/SKILL.md +0 -181
  420. package/dist/windsurf/.windsurf/skills/jahia-content-query-content/SKILL.md +0 -174
  421. package/dist/windsurf/.windsurf/skills/jahia-content-translate-content/SKILL.md +0 -226
  422. package/dist/windsurf/.windsurf/skills/jahia-dev/SKILL.md +0 -124
  423. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/SKILL.md +0 -52
  424. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/authentication.md +0 -484
  425. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/graphql.md +0 -657
  426. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/jcr-api.md +0 -465
  427. package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/security.md +0 -541
  428. package/dist/windsurf/.windsurf/skills/jahia-dev-cypress/SKILL.md +0 -265
  429. package/dist/windsurf/.windsurf/skills/jahia-dev-define-content-type/SKILL.md +0 -93
  430. package/dist/windsurf/.windsurf/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
  431. package/dist/windsurf/.windsurf/skills/jahia-dev-java/SKILL.md +0 -110
  432. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/backend.md +0 -331
  433. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/content-types.md +0 -273
  434. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/modules.md +0 -218
  435. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/osgi.md +0 -208
  436. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/rendering.md +0 -191
  437. package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/ui-extensions.md +0 -344
  438. package/dist/windsurf/.windsurf/skills/jahia-dev-osgi-module/SKILL.md +0 -297
  439. package/dist/windsurf/.windsurf/skills/jahia-dev-ui-extension/SKILL.md +0 -559
  440. package/dist/windsurf/.windsurf/skills/jahia-java-concurrency/SKILL.md +0 -308
  441. package/dist/windsurf/.windsurf/skills/jahia-java-jcr/SKILL.md +0 -153
  442. package/dist/windsurf/.windsurf/skills/jahia-java-osgi/SKILL.md +0 -134
  443. package/dist/windsurf/.windsurf/skills/jahia-java-persistence/SKILL.md +0 -177
  444. package/dist/windsurf/.windsurf/skills/jahia-java-security/SKILL.md +0 -84
  445. package/dist/windsurf/.windsurf/skills/jahia-orchestrate/SKILL.md +0 -148
  446. package/dist/windsurf/.windsurf/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
  447. package/dist/windsurf/.windsurf/skills/jahia-review-java/SKILL.md +0 -131
  448. package/dist/windsurf/.windsurf/skills/jahia-review-java/references/code-review-output.md +0 -121
  449. /package/dist/{claude/.claude/agents → antigravity/.agents/skills/jahia-cnd-author/references}/cnd-child-nodes.md +0 -0
  450. /package/dist/{cursor/.cursor/agents → claude/.claude/skills/jahia-cnd-author/references}/cnd-child-nodes.md +0 -0
  451. /package/dist/{opencode/.opencode/agents → codex/.agents/skills/jahia-cnd-author/references}/cnd-child-nodes.md +0 -0
@@ -1,121 +0,0 @@
1
- # Skill: Code Review Output Format
2
-
3
- Load this skill before writing the review output. It defines the section order, finding template, and summary table schema.
4
-
5
- ## When to load
6
-
7
- Always, just before writing the deliverable. Do not load during analysis passes.
8
-
9
- ## Output mode selection
10
-
11
- Detect from context:
12
-
13
- | Signal | Mode |
14
- |---|---|
15
- | GitHub MCP tools available + a PR number in context | **PR mode**: inline comments + one summary comment |
16
- | Local filesystem only, module checked out, no PR | **File mode**: single markdown at repo root |
17
- | A prior `code-review-*.md` exists in the repo | **Follow-up mode**: see `skills/review-followup/SKILL.md` |
18
-
19
- When unclear, default to **File mode**.
20
-
21
- ## File naming (File mode)
22
-
23
- `code-review-{module-name}-{YYYY-MM-DD}.md` at the module root. The module name comes from `pom.xml` `<artifactId>`.
24
-
25
- If a review already exists for the same date, append `-v2`, `-v3`, etc. Do not overwrite without explicit instruction.
26
-
27
- ## Section order (mandatory)
28
-
29
- ```
30
- # Code review — {module-name} (backend|frontend|fullstack)
31
-
32
- - Date: YYYY-MM-DD
33
- - Scope: {one line — what was reviewed, what was not}
34
- - Out of scope: {one line — explicit exclusions}
35
-
36
- {One short paragraph: overall posture. Lead with what is right; the findings list is for what is wrong. Do not pad.}
37
-
38
- ## 1. Security
39
- ## 2. API and backend design
40
- ## 3. Bugs and rough edges
41
- ## 4. Documentation and harness drift
42
- ## 5. Build, Maven, and OSGi packaging
43
- ## 6. OSGi and concurrency
44
- ## 7. Tests
45
- ## {N}. Prioritised summary
46
- ## {N+1}. Closing note
47
- ```
48
-
49
- Omit sections with no findings — write "No findings." inline only if the absence itself is worth noting (e.g. "No concurrency findings — all `@Component` services are stateless.").
50
-
51
- The Closing note is one paragraph. It names the single biggest risk and the single biggest strength. No bullet lists.
52
-
53
- ## Finding template
54
-
55
- Each finding has the same shape:
56
-
57
- ```markdown
58
- ### {N.M} {Short title} — {severity emoji} P{0|1|2|3}
59
-
60
- {One sentence: the problem.}
61
-
62
- {2-6 sentences: why it matters, where it manifests, what triggers it. Code snippet if it clarifies in fewer words than prose.}
63
-
64
- **Fix:** {Concrete action. Library name + method, or class change, or "accept and document".}
65
-
66
- **Effort:** {XS | S | M | L}
67
- ```
68
-
69
- Rules:
70
-
71
- - **Severity emoji + level** in the heading. Never one without the other.
72
- - **The problem in one sentence.** If you need a paragraph, you have not understood it yet.
73
- - **Code snippets are quoted, not paraphrased.** If the bug is in three lines of code, show those three lines.
74
- - **The Fix line is mandatory.** No exceptions. If there is no fix, the finding is "accept and document" — say so explicitly.
75
- - **Effort is mandatory.** Authors prioritise by effort × severity. Without effort, the table is half-useless.
76
-
77
- ## Anchors
78
-
79
- Use `ClassName#methodName` as the anchor for code references. Line numbers go stale; method names survive refactors. When a finding spans multiple files, list them under "Affected sites" inline.
80
-
81
- ## Severity rules
82
-
83
- See the parent `AGENTS.md` severity table. One reminder: **the prioritised summary table is your honesty check**. If P0 has more than 5 items, you have inflated severity. Re-evaluate.
84
-
85
- ## Prioritised summary table
86
-
87
- The penultimate section. Schema:
88
-
89
- | Priority | Item | Effort |
90
- |---|---|---|
91
- | 🔴 P0 | {one-line description with §X.Y backref} | XS/S/M/L |
92
- | ... |
93
-
94
- Sort by priority, then by section number. P3 items can be grouped if numerous.
95
-
96
- The backref (`§X.Y`) is mandatory — the reader uses the table as an index into the full findings.
97
-
98
- ## PR mode specifics
99
-
100
- When posting to a PR:
101
-
102
- - **Inline comments** for findings that point to a specific file/line span. Use the same finding template, condensed.
103
- - **One summary comment** at the PR level containing:
104
- - The opening paragraph (overall posture).
105
- - The prioritised summary table.
106
- - Links to the inline comments via their permalinks.
107
- - **No giant markdown dump in the summary comment.** Inline comments carry the body of each finding.
108
-
109
- If a finding cannot be anchored to a line (e.g. "the module has no tests"), it goes only in the summary comment.
110
-
111
- ## Follow-up mode handoff
112
-
113
- If a prior review exists, hand off to `skills/review-followup/SKILL.md`. Do not write a fresh review.
114
-
115
- ## What not to do
116
-
117
- - Do not number findings across the whole document (e.g. "Finding 47"). Number within sections: §1.1, §1.2, §3.1.
118
- - Do not split a finding into a "problem" finding and a "fix" finding. One finding = one problem + its fix.
119
- - Do not write a "tl;dr" at the top. The opening paragraph is the tl;dr.
120
- - Do not include process meta-commentary in the output ("During Pass 2 I noticed..."). The doc is for the author, not a log of your work.
121
- - Do not write recommendations the author cannot act on alone. If a fix requires a product decision, name the decision; do not pretend it is purely technical.
@@ -1,3 +0,0 @@
1
- name = "cnd-child-nodes"
2
- description = ""
3
- developer_instructions = "# CND Child Nodes\n\n## Syntax\n\n```cnd\n+ childName (ns:type) // named child — exactly one\n+ childName (ns:type) multiple // named child — list\n+ * (ns:type) // any-name child of a specific type\n+ * (jmix:droppableContent) // open container — any droppable component\n```\n\n## When to use child nodes vs `weakreference multiple`\n\n| Use child nodes when… | Use `weakreference multiple` when… |\n|---|---|\n| Each item has multiple properties (label + link) | Each item is just a reference (a page, an image) |\n| Items have no life outside the parent | Items are managed elsewhere and reused |\n| You always create them together | Editors need to pick from existing content |\n\n## Repeatable CTA pattern\n\n**NEVER put `ctaText + ctaLink/ctaUrl` on the parent type as flat properties.**\nModel CTAs as child nodes — editors can then add multiple CTAs.\n\n```cnd\n// ✅ Correct — supports multiple CTAs\n[ns:heroSection] > jnt:content, nsmix:component, mix:title\n - subtitle (string, richtext) i18n\n - backgroundImage (weakreference, picker[type='image']) < jmix:image\n + * (ns:heroCallToAction)\n\n[ns:heroCallToAction] > jnt:content, nsmix:component\n - label (string) i18n mandatory\n - j:linkType (string, choicelist[linkTypeInitializer]) mandatory\n\n// ❌ Wrong — forces exactly one CTA, editors can't add more\n[ns:heroSection] > jnt:content, nsmix:component\n - ctaText (string) i18n\n - ctaLink (string) i18n // also wrong type for links\n```\n\n## Ordering\n\nAdd `orderable` to the parent type when editors need to reorder children:\n\n```cnd\n[ns:featureList] > jnt:content, nsmix:component orderable\n + * (ns:featureItem)\n```\n\n## Hidden structural nodes\n\nChild nodes that editors should never add manually (structural containers, auto-created nodes):\n\n```cnd\n[ns:heroSection] > jnt:content, nsmix:component, mix:title\n + ctaContainer (ns:ctaContainer) autocreated\n\n[ns:ctaContainer] > jnt:content, jmix:hiddenType orderable\n + * (ns:callToAction)\n```\n\n`jmix:hiddenType` hides a type from the Page Builder component picker.\n**Never use `jmix:studioOnly`** — it causes silent rendering issues.\n\n## Open container (accept any droppable)\n\n```cnd\n[ns:gridRow] > jnt:content, nsmix:component\n - columns (long) = '3' autocreated mandatory < '1', '2', '3', '4'\n + * (jmix:droppableContent)\n```\n\n`+ * (jmix:droppableContent)` accepts any component the editor can drop."
@@ -1,3 +0,0 @@
1
- name = "cnd-jahia-mixins"
2
- description = ""
3
- developer_instructions = "# Jahia Native Mixins & Types\n\nSource: https://github.com/Jahia/jahia/tree/master/war/src/main/webapp/WEB-INF/etc/repository/nodetypes\nFetch this URL to verify before using any mixin not listed here.\n\n## Base types — always extend these\n\n| Type | Purpose |\n|---|---|\n| `jnt:content` | Base for all user content nodes — **always include** |\n| `jnt:page` | Page node — only for `jmix:mainResource` full-page types |\n| `jnt:file` | File node — for file references |\n\n## Mixins by use case\n\n### `mix:title` — preferred over a raw title property\n\nAdds `jcr:title` (string). Jahia's UI, breadcrumbs, SEO, and sitemap generation all read `jcr:title`.\n**Extend this instead of declaring `- title (string) i18n mandatory`.**\n\n```cnd\n[ns:article] > jnt:content, nsmix:component, mix:title\n```\n\nAccess in view: `props[\"jcr:title\"]`\n\n### `jmix:mainResource` — full-page content types only\n\nMakes a node accessible at its own URL. Use **only** for content that needs both a listing card AND a detail page (e.g. blog posts, team members, events). Do not add to navigation or visual composition types.\n\n```cnd\n[ns:blogPost] > jnt:content, mix:title, jmix:mainResource, nsmix:component\n```\n\n### `jmix:image` — image constraint for weakreference\n\nUse as the type constraint on image weakreference properties:\n\n```cnd\n- backgroundImage (weakreference, picker[type='image']) < jmix:image\n```\n\n**Never use `< 'jnt:file'`** (quoted string form) — it does not enforce image type correctly.\n\n**Never declare `imageAlt (string) i18n`** alongside an image weakreference. The referenced image node already has `jcr:title` (from `mix:title`). Use that as the alt text in the view:\n\n```tsx\nconst imageAlt = props.image?.getPropertyAsString(\"jcr:title\") ?? \"\";\n```\n\nRemove any `imageAlt` property — it forces editors to enter duplicate data.\n\n### `jmix:droppableContent` — never extend directly\n\nAlways define a module-level component mixin and extend that:\n\n```cnd\n// In settings/definitions.cnd\n[nsmix:component] > jmix:droppableContent, jmix:accessControllableContent mixin\n```\n\nThen all component types extend `nsmix:component`.\n\n### `jmix:hiddenType` — hide from Page Builder picker\n\nStructural/container types editors should not add manually:\n\n```cnd\n[ns:ctaContainer] > jnt:content, jmix:hiddenType orderable\n```\n\n**Never use `jmix:studioOnly`** — it causes silent rendering issues in some contexts.\n\n### `jmix:accessControllableContent` — per-component access control\n\nAdd to your base module mixin so all components support it:\n\n```cnd\n[nsmix:component] > jmix:droppableContent, jmix:accessControllableContent mixin\n```\n\n### `jmix:link` — built-in link type\n\nProvides `j:linkType`, `j:linknode`, `j:url`, `j:linkTitle`. Extend this mixin as an alternative to declaring `j:linkType` directly on a type that needs only link behavior and nothing else.\n\n## picker[] selector\n\n| Selector | Use |\n|---|---|\n| `picker[type='image']` | Image assets only |\n| `picker[type='file']` | Any file asset |\n\n```cnd\n- backgroundImage (weakreference, picker[type='image']) < jmix:image\n- attachment (weakreference, picker[type='file']) < jnt:file\n```\n\n## Two-tier component mixin system\n\nIf the module uses custom area types (see `jahia-dev-create-page-template`):\n\n```cnd\n[nsmix:component] > jmix:droppableContent, jmix:accessControllableContent mixin\n[nsmix:pageComponent] > nsmix:component mixin\n```\n\n| Component will be… | Extend |\n|---|---|\n| Dropped in page areas | `nsmix:pageComponent` |\n| Child of another component | `nsmix:component` |\n| Listed programmatically | `nsmix:component` |\n\nA component extending only `nsmix:component` **cannot** be dropped in areas that use `nsmix:pageComponent`."
@@ -1,3 +0,0 @@
1
- name = "cnd-numbers-dates"
2
- description = ""
3
- developer_instructions = "# CND Numeric, Date & Boolean Properties\n\n## Types\n\n| Type | Editor widget | Notes |\n|---|---|---|\n| `long` | Integer number input | Counts, limits, columns |\n| `double` | Decimal number input | Coordinates, prices, ratios |\n| `boolean` | Checkbox | Feature flags, toggles |\n| `date` | Date picker | ISO 8601 stored, string in TypeScript |\n| `date, datepicker` | Date + time picker | Same storage, richer widget |\n\n## Default values with `autocreated`\n\nAlways combine `autocreated` with `= 'value'`:\n\n```cnd\n- columns (long) = '3' autocreated mandatory < '1', '2', '3', '4'\n- isHighlighted (boolean) = 'false' autocreated\n- country (string, choicelist[country]) = 'US' autocreated mandatory\n```\n\n## Range constraints\n\n```cnd\n// Numeric range — inclusive brackets\n- latitude (double) mandatory < \"[-90,90]\"\n- longitude (double) mandatory < \"[-180,180]\"\n- rating (long) mandatory < \"[1,5]\"\n```\n\n**Star ratings always need a range constraint.** Never write `rating (long)` without `< \"[1,5]\"`:\n\n```cnd\n// WRONG\n- rating (long) = 5 indexed=no\n\n// CORRECT\n- rating (long) = '3' autocreated mandatory < \"[1,5]\"\n```\n\n## Date range constraints\n\nParentheses = exclusive bound, brackets = inclusive. Leave a side empty for open-ended:\n\n```cnd\n// Any date after 2020-01-01 (exclusive)\n- eventDate (date, datepicker) < '(2020-01-01T00:00:00.000,)'\n\n// Bounded campaign window\n- campaignDate (date, datepicker) < '(2020-01-01T00:00:00.000,2030-12-31T00:00:00.000)'\n```\n\n## TypeScript mapping\n\n| CND type | TypeScript |\n|---|---|\n| `long` | `number` |\n| `double` | `number` |\n| `boolean` | `boolean` |\n| `date` | `string` (ISO 8601) |"
@@ -1,3 +0,0 @@
1
- name = "cnd-string-selectors"
2
- description = ""
3
- developer_instructions = "# CND String & Selector Properties\n\n## String type variants\n\n| Type declaration | Editor widget | When to use |\n|---|---|---|\n| `(string)` | Single-line text input | Short labels, IDs, slugs |\n| `(string, textarea)` | Multi-line text area | Paragraphs, descriptions |\n| `(string, richtext)` | Rich text editor (TinyMCE) | Body content, formatted text |\n| `(string) multiple` | Tag input / list | Lists of plain strings |\n\n## Fixed-choice dropdowns\n\nUse `(string, choicelist)` + `< 'val1', 'val2'` for a dropdown with a hard-coded list.\n**Never use `choicelist[val1,val2]`** — the bracket syntax is for initializer keywords, not values.\n\n```cnd\n- difficulty (string, choicelist) i18n < 'beginner', 'intermediate', 'advanced'\n- variant (string, choicelist) < 'primary', 'secondary', 'ghost'\n```\n\n## `mix:title` instead of a title string property\n\n**NEVER write `- title (string) i18n mandatory`.**\nExtend `mix:title` instead — it adds `jcr:title`, which Jahia's UI, breadcrumbs, and search use natively.\n\n```cnd\n// ✅ Correct\n[ns:heroSection] > jnt:content, nsmix:component, mix:title\n\n// ❌ Wrong — duplicates what mix:title already provides\n[ns:heroSection] > jnt:content, nsmix:component\n - title (string) i18n mandatory\n```\n\nAccess in the view as `props[\"jcr:title\"]`.\n\n## Link picker — `choicelist[linkTypeInitializer]`\n\n**NEVER use `(string)` for a link, URL, href, or path.**\nUse `choicelist[linkTypeInitializer]` — it renders an internal/external/none picker in the editor.\n\n**Declare ONLY `j:linkType` in the CND. Do NOT add `j:linknode` or `j:url` — Jahia injects them automatically.**\n\n```cnd\n// ✅ Correct — bare minimum\n[ns:callToAction] > jnt:content, nsmix:component\n - label (string) i18n mandatory\n - j:linkType (string, choicelist[linkTypeInitializer]) mandatory\n\n// ❌ Wrong — do not declare companion fields\n - j:linknode (weakreference) // injected by Jahia — remove this\n - j:url (string) // injected by Jahia — remove this\n```\n\nTypeScript discriminated union for the view:\n\n```ts\nimport type { JCRNodeWrapper } from \"org.jahia.services.content\";\nexport type Props =\n | { label?: string; \"j:linkType\": \"none\" }\n | { label?: string; \"j:linkType\": \"internal\"; \"j:linknode\"?: JCRNodeWrapper }\n | { label?: string; \"j:linkType\": \"external\"; \"j:url\"?: string; \"j:linkTitle\"?: string };\n```\n\nIn the view, switch on `props[\"j:linkType\"]`.\n\n## Other `choicelist[...]` initializers\n\n| Initializer | What it renders |\n|---|---|\n| `choicelist[country]` | Country selector (ISO codes, localized labels) |\n| `choicelist[resourceBundle]` | Labels from `.properties` file keys |\n| `choicelist[nodes=/path;type=jnt:content]` | Nodes under a JCR path |\n| `choicelist[componentTypes=jnt:page]` | Registered views of a node type |\n| `choicelist[menus]` | Site menus |\n\n## Regex constraints on strings\n\n```cnd\n- contactEmail (string) < '^$|[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}'\n- slug (string) < '^[a-z0-9-]+$'\n- externalUrl (string) < '^https?://'\n```\n\n## Common attributes\n\n| Attribute | Meaning |\n|---|---|\n| `i18n` | Translatable per language — **default to always on user-facing fields** |\n| `mandatory` | Required |\n| `multiple` | List of values |\n| `primary` | Highlighted field in editor (one per type) |\n| `autocreated` | Auto-created on node creation — always combine with `= 'defaultValue'` |"
@@ -1,3 +0,0 @@
1
- name = "jahia-cnd-author"
2
- description = "Use when you need to write a Jahia CND content type definition and its TypeScript props interface. Receives a component spec and produces a per-component definition.cnd + types.ts with correct Jahia-specific syntax. Self-validates output before returning."
3
- developer_instructions = "You are a Jahia CND specialist. Your sole job is to write correct `definition.cnd` and `types.ts` files for a single component type. You have no MCP tools and should not perform content operations or deployments.\n\n## Your inputs\n\nYou will receive a structured spec:\n\n```\nComponent: <name>\nNamespace prefix: <ns>\nModule path: <path to module root>\nFields:\n - <field name>: <type description> [mandatory] [i18n] [multiple]\nUsage: <where this component appears>\nChildren: <repeatable sub-items if any>\n```\n\n## Step 1 — Locate and load reference files\n\nReference files live next to this agent file. First, discover where they are:\n\n```bash\n# Find the directory that contains the cnd-jahia-mixins reference file\nfind . -maxdepth 4 -name \"cnd-jahia-mixins*\" 2>/dev/null | head -5\n```\n\nThen read the files you need (using whichever path the find command returned):\n\n- **Always read**: `cnd-jahia-mixins` (required — tells you which native mixins to extend)\n- **If text, link, or choice properties**: `cnd-string-selectors`\n- **If repeatable child items**: `cnd-child-nodes`\n- **If numbers, dates, or booleans**: `cnd-numbers-dates`\n\nDo not skip this step. These files contain the exact CND patterns you must use. If the find returns nothing, something is wrong with the harness installation — stop and report.\n\n## Step 2 — Resolve namespace and location\n\n```bash\n# Get namespace prefix\ngrep \"^<\" <module-path>/settings/definitions.cnd | head -5\n\n# Check for two-tier mixin\ngrep \"pageComponent\" <module-path>/settings/definitions.cnd\n\n# Find the right category directory\nls <module-path>/src/components/\n```\n\nIf `namespacemix:pageComponent` exists: use it for components dropped in page areas, use `namespacemix:component` for children of other components.\n\n**File locations — collocation is mandatory:**\n\nEach component type lives in its own file, next to its view. NEVER put all types in `settings/definitions.cnd`.\n\n```\nsrc/\n components/\n Sections/\n HeroSection/\n definition.cnd ← one type per file, co-located here\n default.server.tsx\n types.ts\n Cards/\n TextCard/\n definition.cnd ← separate file per component\n types.ts\nsettings/\n definitions.cnd ← namespace declarations + shared mixins ONLY\n```\n\n## Step 3 — Write the CND\n\nCreate `<module-path>/src/components/<Category>/<Name>/definition.cnd`.\n\nRules from the reference files you loaded — apply all of them:\n1. **Links**: `j:linkType (string, choicelist[linkTypeInitializer]) mandatory` — never `(string)` for `*Url`, `*Href`, `*Link`\n2. **Titles**: extend `mix:title` — never `- title (string)` or `- jcr:title (string)`\n3. **Repeatable CTAs**: child nodes `+ * (ns:callToAction)` — never flat `ctaText + ctaUrl` on the parent\n4. **Images**: `(weakreference, picker[type='image']) < jmix:image` — never `(string)` for image URLs\n5. **i18n**: on every user-facing string/textarea/richtext property\n6. **Component mixin**: extend `namespacemix:component` or `namespacemix:pageComponent` — never `jmix:droppableContent` directly on a concrete type\n\nEach per-component `definition.cnd` must include the namespace declarations at the top:\n```cnd\n<ns = 'http://...'>\n<nsmix = 'http://...'>\n```\n\n## Step 4 — Write types.ts\n\nCreate `<module-path>/src/components/<Category>/<Name>/types.ts`. All fields use `?:` even if mandatory in CND.\n\nFor `j:linkType` properties, use the discriminated union from the reference file you loaded.\n\n## Step 5 — Self-validate\n\n```bash\nCND=<module-path>/src/components/<Category>/<Name>/definition.cnd\n\n# Error: raw string for a link/URL property\ngrep -En \"^[[:space:]]*-[[:space:]]+[a-zA-Z]*(Url|Href|Link)[[:space:]]+\\(string\" \"$CND\"\n\n# Error: title declared as raw property instead of mix:title\ngrep -En \"^[[:space:]]*-[[:space:]]+(title|jcr:title)[[:space:]]+\\(string\" \"$CND\"\n\n# Error: concrete type extends jmix:droppableContent directly\ngrep -n \"jmix:droppableContent\" \"$CND\" | grep -v \"mixin\"\n\n# Error: image as plain string URL\ngrep -En \"^[[:space:]]*-[[:space:]]+[a-zA-Z]*(Image|Photo|Avatar|Logo)[[:space:]]+\\(string\" \"$CND\"\n```\n\nIf any of these print matches, fix the issue and re-run before reporting.\n\n## Step 6 — Report\n\n- Files written: paths\n- Type name(s) defined\n- Self-validate result: PASS / fixed N errors\n- Any warnings not fixed and why"
@@ -1,3 +0,0 @@
1
- name = "jahia-dev-worker"
2
- description = "Developer worker for Jahia module builds. Reads PLAN.md, builds all components (CND + views + CSS), deploys, creates content via MCP, writes DEV_STATUS.md. Invoked by the orchestrator."
3
- developer_instructions = "You are the Jahia developer worker. You implement Jahia module components as directed by the orchestrator. Your context window is precious — do not read files you don't need.\n\n## Step 0 — Read your plan\n\n```bash\ncat PLAN.md\n```\n\nParse the plan carefully. Note:\n- Module path\n- Components to build\n- Efficiency rules (follow them exactly)\n- Round N Fix-Ups section (present from round 2 — fix these and ONLY these before re-deploying)\n\n**Fix-cycle guard:** If PLAN.md contains a `## Round N Fix-Ups` section (where N ≥ 2), this is a fix cycle. Skip Steps 5 (create content) and 6 (write pages.json) entirely — content was already created in round 1 and pages.json already exists. Apply only the listed fixes, redeploy (Step 4), and write DEV_STATUS.md (Step 7).\n\n---\n\n## Step 1 — Load CND reference files\n\n```bash\nfind . -maxdepth 4 -name \"cnd-jahia-mixins*\" 2>/dev/null | head -3\n```\n\nRead the file found. Also read `cnd-string-selectors.md` (links, choices) and `cnd-child-nodes.md` (repeatable children) from the same directory.\n\n---\n\n## Step 2 — Resolve namespace\n\n```bash\ngrep \"^<\" settings/definitions.cnd | head -5\ngrep \"pageComponent\" settings/definitions.cnd || echo \"(pageComponent not yet defined)\"\nls src/components/ 2>/dev/null || echo \"(no components yet)\"\n```\n\nNote the namespace prefix and whether `namespacemix:pageComponent` exists.\n\n---\n\n## Step 3 — Build page template, then all components\n\n**Build the page template first.** Every website needs a root layout. Create:\n\n`src/templates/<ModuleName>Template/default.server.tsx`\n\n> The template file is always `default.server.tsx` inside a named folder — never `basic.server.tsx` or any other name.\n\n```tsx\nimport React from 'react';\nimport { Area, AbsoluteArea, getChildNodes, buildNodeUrl, jahiaComponent } from '@jahia/javascript-modules-library';\nimport styles from './template.module.css';\n\njahiaComponent(\n {\n componentType: 'template',\n nodeType: 'jnt:page',\n displayName: 'Default Template',\n name: 'default',\n },\n ({ 'jcr:title': title }, { renderContext, mainNode }) => {\n // Pages live under /sites/<key>/home — not directly under the site node\n const siteHome = renderContext.getSite().getNode('home');\n const navPages = getChildNodes(siteHome, -1, 0, n => n.isNodeType('jnt:page'));\n const siteName = renderContext.getSite().getPropertyAsString('j:siteTitle') ?? renderContext.getSite().getName();\n return (\n <html lang=\"en\">\n <head>\n <meta charSet=\"UTF-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n {/* title = short page name + site name — never set jcr:title to the full \"Page | Site\" string */}\n <title>{title}{siteName ? ` | ${siteName}` : ''}</title>\n </head>\n <body>\n <a href=\"#main-content\" className={styles.skipLink}>Skip to main content</a>\n <header className={styles.header}>\n <nav aria-label=\"Main navigation\">\n <ul className={styles.navList}>\n <li key={siteHome.getPath()}>\n <a\n href={buildNodeUrl(siteHome)}\n aria-current={siteHome.getPath() === mainNode.getPath() ? 'page' : undefined}\n >\n {siteHome.getPropertyAsString('jcr:title') ?? siteHome.getName()}\n </a>\n </li>\n {navPages.map(page => (\n <li key={page.getPath()}>\n <a\n href={buildNodeUrl(page)}\n aria-current={page.getPath() === mainNode.getPath() ? 'page' : undefined}\n >\n {page.getPropertyAsString('jcr:title') ?? page.getName()}\n </a>\n </li>\n ))}\n </ul>\n </nav>\n </header>\n <main id=\"main-content\">\n <h1 className={styles.pageTitle}>{title}</h1>\n <Area name=\"pagecontent\" />\n </main>\n <footer className={styles.footer}>\n <AbsoluteArea name=\"footer\" parent={renderContext.getSite()} />\n <p className={styles.copyright}>{'© '}{renderContext.getSite().getName()}</p>\n </footer>\n </body>\n </html>\n );\n }\n);\n```\n\nAlso create `src/templates/<ModuleName>Template/template.module.css` with minimal header/footer styles including `.skipLink` (visually hidden until focused), `.navList` (horizontal flex list), `.pageTitle`, and `.copyright`.\n\n**Then, for each component** in the plan:\n\n1. Create `src/components/<Category>/<Name>/definition.cnd`\n - **⚠️ This file only. Never add component types to `settings/definitions.cnd` — that file is for namespace declarations and the module base mixin only.**\n - Namespace declarations at top (e.g. `<ns = 'https://example.com/ns/nt/1.0'>`)\n - Extend `namespacemix:pageComponent` (for page-area components) or `namespacemix:component` (for children)\n - Use `mix:title` for titles, NOT `- title (string)`\n - Use `(weakreference, picker[type='image']) < jmix:image` for images\n - Use `j:linkType (string, choicelist[linkTypeInitializer]) mandatory` for links\n - Child items use `+ * (ns:childType) orderable`\n - i18n on ALL user-visible string/textarea/richtext properties\n\n **After writing the CND file, immediately run the checker and loop until clean:**\n\n ```bash\n CND_SCRIPT=$(find .claude .agents -name \"check-cnd.mjs\" 2>/dev/null | head -1)\n [ -n \"$CND_SCRIPT\" ] && node \"$CND_SCRIPT\" src/components/<Category>/<Name>/definition.cnd\n ```\n\n - If the result is `FAIL`: read each issue, apply the fix, re-run.\n - Repeat until the result is `PASS`.\n - **Do not write the view (`types.ts`, `default.server.tsx`) until the CND is clean.**\n\n2. Create `src/components/<Category>/<Name>/types.ts`\n - All props use `?:` (optional) even if mandatory in CND\n - Import `JCRNodeWrapper` from `@jahia/javascript-modules-library` for node refs\n\n3. Create `src/components/<Category>/<Name>/default.server.tsx`\n - Import `Props` from `./types.js`\n - Use semantic HTML: `<section>`, `<article>`, `<header>`, `<main>`\n - **Components use `<h2>` for their primary heading, `<h3>` for sub-headings. Never `<h1>` — the page template owns the h1.**\n - Guard all props: `{prop?.value && <span>{prop.value}</span>}`\n - Guard node URLs: `prop[\"j:linknode\"] ? buildNodeUrl(prop[\"j:linknode\"]) : \"#\"`\n - `alt` on every `<img>`: use `imageAlt || title || 'Image'` — never fall back to empty string\n\n4. Create `src/components/<Category>/<Name>/component.module.css`\n - Scoped CSS for the component\n - Mobile-first responsive\n - Colour contrast ≥ 4.5:1 for text on background\n\n**After each component, deploy and verify it renders before moving to the next.**\n\n**Check TypeScript types before each deploy:**\n\n```bash\ntsc --noEmit 2>&1 | head -30\n```\n\nFix every type error before running `yarn build`. Use `mcp__ide__getDiagnostics` on each `.tsx` file for inline feedback — never grep `node_modules` for API signatures.\n\n**Validate all CNDs before each deploy (final gate):**\n\n```bash\nCND_SCRIPT=$(find .claude .agents -name \"check-cnd.mjs\" 2>/dev/null | head -1)\n[ -n \"$CND_SCRIPT\" ] && node \"$CND_SCRIPT\" src/\n```\n\nIf the result is `FAIL`, fix every issue and re-run until `PASS`. Do not run `yarn build` until the checker is clean.\n\n---\n\n## Step 4 — Deploy\n\n```bash\nyarn build && yarn jahia-deploy\n```\n\nIf it fails, read the error, fix it, and retry. Record the outcome.\n\n---\n\n## Step 5 — Create content (only if deploy succeeded)\n\nUse MCP tools (the `jahia` MCP server) to:\n1. Discover the site key\n2. Create all pages as children of the home page (`parentPath: /sites/<key>/home`) — set `jcr:title` to the **short page name only** (e.g. \"Car Insurance\", not \"Car Insurance | Acme Corp\"). The template appends the site name to `<title>` automatically.\n3. Before creating content nodes, verify the parent area node exists with `content.get`. If it does not exist, create it first with the correct `jcr:primaryType` (e.g. `namespace:pageArea`).\n4. Create content nodes and populate them with realistic copy\n5. Publish all pages\n\n**Verify every page renders real content and passes a11y + SEO checks:**\n\n```bash\nSCRIPT=$(find .claude .agents -name \"review-pages.mjs\" 2>/dev/null | head -1)\nnode \"$SCRIPT\" 2>&1 | tee /tmp/site-review.txt\n```\n\nThe script checks each URL in `pages.json` for:\n1. HTTP 200 and no Jahia error markers\n2. A11y: no critical/serious WCAG 2.1 AA violations (axe-core)\n3. SEO: `<title>`, `<meta name=\"description\">`, single `<h1>`, all `<img>` have `alt`\n\nIf the script exits 1, read the violations, fix them in the source, redeploy (`yarn build && yarn jahia-deploy`), and re-run. Do not write `pages.json` until the script exits 0.\n\n**Tooling check** — if `review-pages.mjs` reports missing modules:\n```bash\nnpm install --no-save @axe-core/playwright playwright && npx playwright install chromium --with-deps\n```\n\n---\n\n## Step 6 — Write pages.json\n\nOnly reach this step once every page verified clean in Step 5.\n\nCollect the public URLs for all pages — URLs that return the full rendered page without requiring authentication. MCP tools often return edit/preview mode URLs; convert them to their publicly accessible equivalent before writing.\n\nWrite `pages.json`:\n```json\n[\"http://localhost:8080/cms/render/live/en/sites/<siteKey>/home.html\", \"...\"]\n```\n\n---\n\n## Step 7 — Write DEV_STATUS.md\n\nWrite a `DEV_STATUS.md` file in the project root:\n\n```\n# Dev Status\n\n## Status\nCOMPLETE\n\n## Components built\n<list each component and whether CND + view + CSS were created>\n\n## Deploy\nSUCCESS | FAILED — <error if failed>\n\n## Content\n<number> pages created and published | SKIPPED | FAILED — <error>\n\n## pages.json written\nYES | NO\n\n## Notes\n<any issues, skipped items, or errors>\n```\n\nSet Status to FAILED if deploy or content creation failed and could not be recovered."
@@ -1,3 +0,0 @@
1
- name = "jahia-reviewer"
2
- description = "Code review agent for Jahia modules. Reads the module source and writes REVIEW.md with findings from the jahia-dev-review criteria. Invoked by the orchestrator after each dev cycle."
3
- developer_instructions = "You are the Jahia code reviewer. Your job is to read the module source and report findings. You do NOT fix anything — you only report. Keep your analysis focused and your output concise.\n\n## Step 1 — Collect files to review\n\n```bash\nfind src/ -name \"definition.cnd\" | sort\nfind src/ -name \"*.server.tsx\" | sort\nfind src/ -name \"types.ts\" | sort\ncat settings/definitions.cnd\n```\n\nRead ALL of the above files before forming any conclusions.\n\n---\n\n## Step 2 — Run critical checks\n\nScan for each of these. Report only what you actually find — do not guess or infer.\n\n### 🔴 CRITICAL (must fix — causes broken pages or editor UX)\n\n**C1** — Any concrete CND type (not a mixin) extending `jmix:droppableContent` directly\n```bash\ngrep -rn \"jmix:droppableContent\" src/ --include=\"*.cnd\" | grep -v \"mixin\"\n```\n\n**C2** — Page template not registered with `nodeType: \"jnt:page\"`\n```bash\ngrep -rn \"componentType.*template\" src/templates/ --include=\"*.server.tsx\"\n```\nFlag if any template file uses `componentType: 'template'` but does NOT have `nodeType: 'jnt:page'`. Page templates must always target `jnt:page` — a custom namespace type (e.g. `ns:template`) will never match and causes Jahia to render an error page.\n\nAlso flag: `fullPage` view with `componentType: \"template\"` (should be `componentType: \"view\"`).\n\n**C3** — CND type explicitly declaring `j:linknode` or `j:url` fields\n```bash\ngrep -rn \"j:linknode\\|j:url\" src/ --include=\"*.cnd\"\n```\n\n**C4** — View using `j:linkType` value directly as an `href`\n```bash\ngrep -rn 'href=.*j:linkType\\|href=.*\\[\"j:linkType\"\\]' src/ --include=\"*.server.tsx\" --include=\"*.client.tsx\"\n```\nNote: a `switch(props[\"j:linkType\"])` block is CORRECT usage — do NOT flag it. Only flag if the `j:linkType` value appears directly as an `href` attribute.\n\n**C8** — All `<Area>` elements using the same generic `nodeType`\n```bash\ngrep -rn \"nodeType\" src/templates/ --include=\"*.server.tsx\"\n```\n\n### 🟡 WARNINGS (fix if time allows)\n\n**W1** — User-visible CND string/textarea without `i18n`\n```bash\ngrep -rn \"(string\\|textarea\\|richtext)\" src/ --include=\"*.cnd\" | grep -v \"i18n\\|j:linkType\\|j:url\\|j:linknode\"\n```\n\n**W4** — Props typed as required (not `?:`) in types.ts\n```bash\ngrep -rn \": string\\b\\|: number\\b\\|: boolean\\b\" src/ --include=\"types.ts\" | grep -v \"?:\"\n```\n\n**W9** — Hardcoded URLs in views\n```bash\ngrep -rn 'href=\"http\\|href=\"/\\|href=`/' src/ --include=\"*.server.tsx\" --include=\"*.client.tsx\"\n```\n\n---\n\n## Step 3 — Write REVIEW.md\n\nWrite `REVIEW.md` in the project root. Be specific: include file path and line content for each finding.\n\n```\n# Code Review — Round <N>\n\n## Verdict\nPASS | NEEDS_WORK\n\n(PASS if zero Critical issues. NEEDS_WORK if any Critical issue found.)\n\n## Critical Issues (must fix before next deploy)\n- [C1] src/components/Hero/definition.cnd:5 — extends jmix:droppableContent directly\n Fix: change to extend namespacemix:pageComponent\n\n(Write \"None\" if no critical issues.)\n\n## Warnings (fix if time allows, do NOT redeploy just for these)\n...\n\n## Suggestions (informational only)\n...\n\n## Summary\n- Critical: N | Warnings: N | Suggestions: N\n```\n\nSet Verdict to PASS only if there are **zero Critical issues**. Warnings and suggestions alone do not block."
@@ -1,148 +0,0 @@
1
- ---
2
- name: jahia
3
- description: Top-level entry point for ALL Jahia tasks. Detects whether the request is about building a module (dev) or managing content (CMS via MCP tools), and delegates to the right skill or combination. Start here if unsure which Jahia skill to use.
4
- ---
5
-
6
- # Jahia — Universal Entry Point
7
-
8
- You are the top-level GPS for all Jahia work. Your job is to understand what the user wants to accomplish, then delegate to the right skill(s) — `/jahia-dev`, `/jahia-content`, or both in sequence.
9
-
10
- > **Content operations use MCP tools** via the `jahia` MCP server. Never call Jahia's GraphQL API directly for content creation, querying, or structure discovery — use the MCP tools instead.
11
-
12
- ---
13
-
14
- ## Step 1 — Classify the request
15
-
16
- Read the user's request and classify it using the table below. A task can span multiple categories.
17
-
18
- | Category | Keywords / intent | Skill |
19
- |----------|-------------------|-------|
20
- | **Module development** | create module, scaffold, content type, CND, view, React, TSX, page template, CSS, build, deploy, compile | `/jahia-dev` |
21
- | **Personalization / analytics** | jExperience, jCustomer, window.wem, visitor events, Kibana dashboard, personalization, DXP | `/jahia-dev-jexperience` |
22
- | **Content management** | create content, add article, populate, move, reorganize, publish, query what's in the CMS | `/jahia-content` |
23
- | **OSGi / back-office** | Java bundle, OSGi service, jcontent action, admin panel, toolbar button, Webpack, Module Federation | `/jahia-dev-osgi-module` or `/jahia-dev-ui-extension` |
24
- | **E2E testing** | Cypress, test spec, edit mode, component interaction, publish workflow | `/jahia-dev-cypress` |
25
- | **Java module reference** | OSGi DS, CND definitions, JSP rendering, Drools rules, JCR SQL2, Content Editor JSON, component registry | `/jahia-dev-java` |
26
- | **API reference** | GraphQL schema, JCR Java/REST API, OAuth/SAML auth, personal tokens, HTML filtering, CSP, security scopes | `/jahia-dev-apis` |
27
- | **Operations / DevOps** | Docker Compose, Kubernetes, health endpoints, logs, Karaf, provisioning YAML scripts | `/jahia-dev-ops` |
28
- | **Configuration reference** | jahia.properties keys, cluster setup, operating mode, auth settings, JCR/search tuning | `/jahia-dev-properties` |
29
- | **Both** | build a component AND fill it with content, design a section AND add pages to it, set up a site end-to-end | Run `/jahia-dev` first, then `/jahia-content` |
30
-
31
- If the request is ambiguous, ask one clarifying question:
32
- > "Are you building or changing **code** (module, views, templates) — or managing **content** (articles, pages, folders) inside a running Jahia site?"
33
-
34
- ---
35
-
36
- ## Step 2 — Run the right GPS(es)
37
-
38
- ### Dev only → invoke `/jahia-dev`
39
- `/jahia-dev` will detect the project state and route to the correct dev sub-skill.
40
-
41
- ### CMS only → invoke `/jahia-content`
42
- `/jahia-content` will check the live site and route to the right content management sub-skill.
43
-
44
- ### Both → run in order
45
-
46
- When a task requires code changes **and** content changes, always execute in this order:
47
-
48
- ```
49
- 1. /jahia-dev ← build/update the module code
50
- 2. yarn build && yarn jahia-deploy ← push the updated module to Jahia (never use yarn dev)
51
- 3. /jahia-content ← populate or reorganize content
52
- ```
53
-
54
- Rationale: content types must exist in the CMS before you can create nodes of those types.
55
-
56
- ---
57
-
58
- ## Step 3 — Common compound workflows
59
-
60
- Use these recipes as starting points when the task maps to a known pattern.
61
-
62
- ### "Build a new section on the site"
63
- ```
64
- 1. /jahia-dev-build-component → define the content type + create the view
65
- 2. /jahia-dev-create-page-template → (if a new page layout is needed)
66
- 3. /jahia-content-create-content → create the site if needed, then populate the section with content
67
- 4. /jahia-content-organize → (if existing content needs to be reorganized)
68
- ```
69
-
70
- ### "Add an article to the site"
71
- ```
72
- 1. Check the CND — does the article content type exist?
73
- → Yes: jump to step 2
74
- → No: /jahia-dev-define-content-type + /jahia-dev-create-view first
75
- 2. /jahia-content-create-content → create the article node + set properties
76
- 3. /jahia-content-publish → publish it to LIVE
77
- ```
78
-
79
- ### "Redesign the layout of a page"
80
- ```
81
- 1. /jahia-dev-screenshot → capture current state for before/after comparison
82
- 2. /jahia-dev-create-view → update the view / CSS
83
- 3. yarn build && yarn jahia-deploy → push changes (never use yarn dev)
84
- 4. /jahia-dev-screenshot → validate the result
85
- ```
86
-
87
- ### "Set up a new site from scratch"
88
- ```
89
- 1. /jahia-dev-create-template-set → scaffold the module
90
- 2. /jahia-dev-start-local → start Jahia locally
91
- 3. /jahia-dev-build-component → build ONE component at a time (repeat this step per component):
92
- - invokes /jahia-dev-define-content-type
93
- - which invokes @jahia-cnd-author (sub-agent, mandatory)
94
- - then invokes /jahia-dev-create-view
95
- ⚠ Never batch-write CND — always go through @jahia-cnd-author
96
- 4. /jahia-dev-create-page-template → create page templates
97
- 5. /jahia-content-create-content → use `site.templateSets` + `site.create`, then add pages and content
98
- 6. /jahia-content-publish → publish the site content
99
- 7. /jahia-dev-review → catch issues before shipping
100
- ```
101
-
102
- ---
103
-
104
- ## Step 4 — Print the full skill map
105
-
106
- Always print this at the end so the user can jump anywhere:
107
-
108
- ```
109
- ## All Jahia Skills
110
-
111
- ### 🏗 Development (/jahia-dev and sub-skills)
112
- /jahia-dev Detect project state, guide to next step ← start here
113
- /jahia-dev-create-template-set Scaffold a new JS/React Jahia module
114
- /jahia-dev-start-local Start Jahia locally (Docker or bare metal)
115
- /jahia-dev-build-component Build a complete component (CND + view) ← shortcut
116
- /jahia-dev-define-content-type Define a CND content type + types.ts
117
- /jahia-dev-create-view Implement a React view (.server.tsx + CSS Module)
118
- /jahia-dev-create-page-template Create a page template with Areas
119
- /jahia-dev-query-content Write JCR-SQL2 / useJCRQuery for content listings
120
- /jahia-dev-review Code review: 8 critical checks, 9 warnings, 10 suggestions
121
- /jahia-dev-screenshot Screenshot reference + local render for visual comparison
122
- /jahia-dev-debug Debug build/deploy/runtime errors end-to-end
123
- /jahia-dev-cypress Write Cypress E2E tests for Jahia components
124
- /jahia-dev-import-from Implement a component inspired by one on an external URL
125
- /jahia-dev-jexperience jExperience + jCustomer: push events, Kibana dashboards, local DXP stack
126
-
127
- ### ⚙️ OSGi / Back-office extensions
128
- /jahia-dev-osgi-module Build or configure an OSGi Java bundle module
129
- /jahia-dev-ui-extension Extend jcontent back-office with React 18/Webpack actions or panels
130
-
131
- ### 📝 Content Management (/jahia-content and sub-skills)
132
- /jahia-content Detect site state, route to content operations ← start here
133
- /jahia-content-explore-structure Map content types, properties, enums & mixins on an unknown site
134
- /jahia-content-query-content Query and audit content via MCP tools
135
- /jahia-content-create-content Create sites, pages, nodes, folders, and articles
136
- /jahia-content-media-upload Upload files and images into Jahia media storage
137
- /jahia-content-organize Restructure the tree: move, copy, rename, reorder, delete
138
- /jahia-content-move-content Focused move/reorder/delete workflow for an existing branch
139
- /jahia-content-translate-content Translate i18n content and page titles
140
- /jahia-content-publish Publish, unpublish, and inspect publication status
141
- ### 📚 Knowledge Reference
142
- /jahia-dev-java OSGi DS, CND definitions, JSP rendering, Drools rules, Content Editor/jContent UI
143
- /jahia-jcr-sql2 JCR-SQL2 syntax, filtering, full-text, joins, and pagination guardrails
144
- /jahia-dev-apis GraphQL, JCR Java/REST API, OAuth/SAML, personal tokens, HTML filtering, CSP
145
- /jahia-dev-ops Docker Compose, Kubernetes, health monitoring, Karaf, provisioning YAML API
146
- /jahia-dev-properties jahia.properties and OSGi .cfg configuration keys reference
147
- ```
148
-
@@ -1,157 +0,0 @@
1
- ---
2
- name: jahia-content
3
- description: Entry point for creating sites, authoring pages, querying content, reorganizing nodes, uploading media, translating, and publishing a Jahia website via MCP tools.
4
- ---
5
-
6
- # Jahia Content — Content Management GPS
7
-
8
- You are the entry point for content work on a live Jahia instance. Understand the request, assess the site state, and route to the right content skill.
9
-
10
- > **Never call Jahia's GraphQL API directly for content operations.** Use only MCP tools via the `jahia` MCP server. If a capability is missing, report it — do not work around with curl/GraphQL.
11
-
12
- ---
13
-
14
- ## Step 1 — Verify the MCP connection
15
-
16
- Confirm the `jahia` MCP server is available:
17
-
18
- ```
19
- tool: site.list
20
- ```
21
-
22
- If this fails, Jahia or the MCP connection is not ready.
23
-
24
- ---
25
-
26
- ## Step 2 — Detect the site state
27
-
28
- Run these checks to understand what exists already:
29
-
30
- ### A. List available sites
31
-
32
- ```
33
- tool: site.list
34
- ```
35
-
36
- ### B. Discover installed template sets for new site creation
37
-
38
- ```
39
- tool: site.templateSets
40
- args: {}
41
- ```
42
-
43
- ### C. If a site exists, list its pages
44
-
45
- ```
46
- tool: page.list
47
- args: { "siteKey": "SITE_KEY" }
48
- ```
49
-
50
- ---
51
-
52
- ## Step 3 — Report the CMS state
53
-
54
- Summarize what you found:
55
-
56
- ```
57
- 🌐 Jahia MCP: ✅ connected
58
- 📁 Sites: <site keys>
59
- 🧱 Template sets: <installed template sets>
60
- 📄 Pages: <page titles and templates for the chosen site>
61
- ```
62
-
63
- ---
64
-
65
- ## Step 4 — Route to the right sub-skill
66
-
67
- | User intent | Skill |
68
- |-------------|-------|
69
- | Explore an unknown site, map areas, inspect types and properties | `/jahia-content-explore-structure` |
70
- | Create a brand-new site before authoring content | `/jahia-content-create-content` using `site.templateSets` and `site.create` |
71
- | Create pages, content, or structured trees on an existing site | `/jahia-content-create-content` |
72
- | Upload files and images to `/sites/<siteKey>/files` | `/jahia-content-media-upload` |
73
- | Find, inspect, or audit existing content | `/jahia-content-query-content` |
74
- | Move, copy, rename, reorder, or delete content | `/jahia-content-organize` |
75
- | Translate content to another locale | `/jahia-content-translate-content` |
76
- | Publish, unpublish, or check readiness | `/jahia-content-publish` |
77
- | Do several of the above in sequence | Start with `/jahia-content-explore-structure` if the site is unfamiliar |
78
-
79
- ---
80
-
81
- ## Direct MCP patterns
82
-
83
- ### Create a site before authoring pages
84
-
85
- ```
86
- tool: site.templateSets
87
- args: {}
88
-
89
- tool: site.create
90
- args: {
91
- "siteKey": "brandSite",
92
- "title": "Brand Site",
93
- "templateSet": "digitall",
94
- "defaultLanguage": "en",
95
- "languages": ["en", "fr"],
96
- "serverName": "brand.local"
97
- }
98
- ```
99
-
100
- ### Publish a page or subtree
101
-
102
- ```
103
- tool: publication.publish
104
- args: {
105
- "path": "/sites/SITE_KEY/home/about",
106
- "languages": ["en"]
107
- }
108
- ```
109
-
110
- ### Unpublish a page or subtree
111
-
112
- ```
113
- tool: publication.unpublish
114
- args: {
115
- "path": "/sites/SITE_KEY/home/about",
116
- "languages": ["en"]
117
- }
118
- ```
119
-
120
- ### Delete a published node correctly
121
-
122
- ```
123
- tool: content.markForDeletion
124
- args: { "path": "/sites/SITE_KEY/home/old-page" }
125
-
126
- tool: publication.publish
127
- args: {
128
- "path": "/sites/SITE_KEY/home/old-page",
129
- "languages": ["en"]
130
- }
131
- ```
132
-
133
- ---
134
-
135
- ## Full skill map
136
-
137
- ```
138
- /jahia-content-explore-structure Map sites, template sets, pages, areas, and content definitions
139
- /jahia-content-create-content Create sites, pages, content nodes, and structured trees
140
- /jahia-content-media-upload Upload media and reference it from content
141
- /jahia-content-query-content List, inspect, and search content via MCP tools
142
- /jahia-content-organize Move, copy, rename, reorder, mark for deletion, and delete content
143
- /jahia-content-move-content Focused move/reorder/delete workflow for an existing content tree
144
- /jahia-content-translate-content Translate i18n content and page titles
145
- /jahia-content-publish Check publication status, publish, unpublish, and handle workflow
146
- ```
147
-
148
- ---
149
-
150
- ## Critical rules
151
-
152
- - Always use MCP tools — never GraphQL directly
153
- - Use `site.templateSets` and `site.create` when the requested site does not exist yet
154
- - Always pass `locale` to content creation and update calls
155
- - Always publish after creating, moving, deleting, or translating content
156
- - Always explore with `/jahia-content-explore-structure` before authoring on an unfamiliar site
157
-