@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.
- package/CHANGELOG.md +4 -0
- package/dist/claude/.claude/rules/jahia.md +1 -37
- package/dist/claude/.claude/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/{opencode/.opencode/agents → claude/.claude/skills/jahia-cnd-author/references}/cnd-numbers-dates.md +32 -1
- package/dist/{opencode/.opencode/agents → claude/.claude/skills/jahia-cnd-author/references}/cnd-string-selectors.md +49 -10
- package/dist/claude/.claude/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/claude/.claude/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/claude/.claude/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/claude/.claude/skills/jahia-dev-build-component/SKILL.md +13 -8
- package/dist/claude/CLAUDE.md +2 -38
- package/dist/codex/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/{claude/.claude/agents → codex/.agents/skills/jahia-cnd-author/references}/cnd-numbers-dates.md +32 -1
- package/dist/{cursor/.cursor/agents → codex/.agents/skills/jahia-cnd-author/references}/cnd-string-selectors.md +49 -10
- package/dist/codex/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/codex/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/codex/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/codex/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
- package/dist/codex/AGENTS.md +2 -38
- package/dist/copilot/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/{cursor/.cursor/agents → copilot/.agents/skills/jahia-cnd-author/references}/cnd-numbers-dates.md +32 -1
- package/dist/{claude/.claude/agents → copilot/.agents/skills/jahia-cnd-author/references}/cnd-string-selectors.md +49 -10
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/copilot/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/copilot/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/copilot/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
- package/dist/copilot/AGENTS.md +2 -38
- package/dist/cursor/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/cursor/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/cursor/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/cursor/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
- package/dist/cursor/.cursor/rules/jahia.mdc +1 -37
- package/dist/gemini/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/gemini/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/gemini/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/gemini/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
- package/dist/gemini/AGENTS.md +2 -38
- package/dist/opencode/.agents/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/opencode/.agents/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/opencode/.agents/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/opencode/.agents/skills/jahia-dev-build-component/SKILL.md +13 -8
- package/dist/opencode/AGENTS.md +2 -38
- package/dist/windsurf/.windsurf/rules/jahia.md +1 -37
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/SKILL.md +94 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-area-types.md +55 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-authoring-experience.md +92 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-child-nodes.md +74 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-jahia-mixins.md +510 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-modeling-decisions.md +87 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-numbers-dates.md +92 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-string-selectors.md +133 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/cnd-syntax.md +119 -0
- package/dist/windsurf/.windsurf/skills/jahia-cnd-author/references/types-ts-mapping.md +73 -0
- package/dist/windsurf/.windsurf/skills/jahia-dev-accessibility/SKILL.md +5 -265
- package/dist/windsurf/.windsurf/skills/jahia-dev-build-component/SKILL.md +13 -8
- package/dist/windsurf/AGENTS.md +2 -38
- package/package.json +1 -1
- package/dist/claude/.claude/agents/cnd-jahia-mixins.md +0 -113
- package/dist/claude/.claude/agents/jahia-cnd-author.md +0 -130
- package/dist/claude/.claude/agents/jahia-dev-worker.md +0 -264
- package/dist/claude/.claude/agents/jahia-reviewer.md +0 -105
- package/dist/claude/.claude/skills/jahia/SKILL.md +0 -148
- package/dist/claude/.claude/skills/jahia-content/SKILL.md +0 -157
- package/dist/claude/.claude/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/claude/.claude/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/claude/.claude/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/claude/.claude/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/claude/.claude/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/claude/.claude/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/claude/.claude/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/claude/.claude/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/claude/.claude/skills/jahia-dev/SKILL.md +0 -124
- package/dist/claude/.claude/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/claude/.claude/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/claude/.claude/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/claude/.claude/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/claude/.claude/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/claude/.claude/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/claude/.claude/skills/jahia-dev-define-content-type/SKILL.md +0 -93
- package/dist/claude/.claude/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
- package/dist/claude/.claude/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/claude/.claude/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/claude/.claude/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/claude/.claude/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/claude/.claude/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/claude/.claude/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/claude/.claude/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/claude/.claude/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/claude/.claude/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/claude/.claude/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/claude/.claude/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/claude/.claude/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/claude/.claude/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/claude/.claude/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/claude/.claude/skills/jahia-orchestrate/SKILL.md +0 -148
- package/dist/claude/.claude/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
- package/dist/claude/.claude/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/claude/.claude/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/codex/.agents/skills/jahia/SKILL.md +0 -148
- package/dist/codex/.agents/skills/jahia-content/SKILL.md +0 -157
- package/dist/codex/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/codex/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/codex/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/codex/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/codex/.agents/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/codex/.agents/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/codex/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/codex/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/codex/.agents/skills/jahia-dev/SKILL.md +0 -124
- package/dist/codex/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/codex/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/codex/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/codex/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/codex/.agents/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/codex/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/codex/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
- package/dist/codex/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
- package/dist/codex/.agents/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/codex/.agents/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/codex/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/codex/.agents/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/codex/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/codex/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/codex/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/codex/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/codex/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/codex/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/codex/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/codex/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/codex/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/codex/.agents/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/codex/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
- package/dist/codex/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
- package/dist/codex/.agents/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/codex/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/codex/.codex/agents/cnd-child-nodes.toml +0 -3
- package/dist/codex/.codex/agents/cnd-jahia-mixins.toml +0 -3
- package/dist/codex/.codex/agents/cnd-numbers-dates.toml +0 -3
- package/dist/codex/.codex/agents/cnd-string-selectors.toml +0 -3
- package/dist/codex/.codex/agents/jahia-cnd-author.toml +0 -3
- package/dist/codex/.codex/agents/jahia-dev-worker.toml +0 -3
- package/dist/codex/.codex/agents/jahia-reviewer.toml +0 -3
- package/dist/copilot/.agents/skills/jahia/SKILL.md +0 -148
- package/dist/copilot/.agents/skills/jahia-content/SKILL.md +0 -157
- package/dist/copilot/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/copilot/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/copilot/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/copilot/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/copilot/.agents/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/copilot/.agents/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/copilot/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/copilot/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/copilot/.agents/skills/jahia-dev/SKILL.md +0 -124
- package/dist/copilot/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/copilot/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/copilot/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/copilot/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/copilot/.agents/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/copilot/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/copilot/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
- package/dist/copilot/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
- package/dist/copilot/.agents/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/copilot/.agents/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/copilot/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/copilot/.agents/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/copilot/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/copilot/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/copilot/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/copilot/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/copilot/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/copilot/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/copilot/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/copilot/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/copilot/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/copilot/.agents/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/copilot/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
- package/dist/copilot/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
- package/dist/copilot/.agents/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/copilot/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/cursor/.agents/skills/jahia/SKILL.md +0 -148
- package/dist/cursor/.agents/skills/jahia-content/SKILL.md +0 -157
- package/dist/cursor/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/cursor/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/cursor/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/cursor/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/cursor/.agents/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/cursor/.agents/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/cursor/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/cursor/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/cursor/.agents/skills/jahia-dev/SKILL.md +0 -124
- package/dist/cursor/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/cursor/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/cursor/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/cursor/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/cursor/.agents/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/cursor/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/cursor/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
- package/dist/cursor/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
- package/dist/cursor/.agents/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/cursor/.agents/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/cursor/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/cursor/.agents/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/cursor/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/cursor/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/cursor/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/cursor/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/cursor/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/cursor/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/cursor/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/cursor/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/cursor/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/cursor/.agents/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/cursor/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
- package/dist/cursor/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
- package/dist/cursor/.agents/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/cursor/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/cursor/.cursor/agents/cnd-jahia-mixins.md +0 -113
- package/dist/cursor/.cursor/agents/jahia-cnd-author.md +0 -130
- package/dist/cursor/.cursor/agents/jahia-dev-worker.md +0 -264
- package/dist/cursor/.cursor/agents/jahia-reviewer.md +0 -105
- package/dist/gemini/.agents/skills/jahia/SKILL.md +0 -148
- package/dist/gemini/.agents/skills/jahia-content/SKILL.md +0 -157
- package/dist/gemini/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/gemini/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/gemini/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/gemini/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/gemini/.agents/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/gemini/.agents/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/gemini/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/gemini/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/gemini/.agents/skills/jahia-dev/SKILL.md +0 -124
- package/dist/gemini/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/gemini/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/gemini/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/gemini/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/gemini/.agents/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/gemini/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/gemini/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
- package/dist/gemini/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
- package/dist/gemini/.agents/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/gemini/.agents/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/gemini/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/gemini/.agents/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/gemini/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/gemini/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/gemini/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/gemini/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/gemini/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/gemini/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/gemini/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/gemini/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/gemini/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/gemini/.agents/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/gemini/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
- package/dist/gemini/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
- package/dist/gemini/.agents/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/gemini/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/opencode/.agents/skills/jahia/SKILL.md +0 -148
- package/dist/opencode/.agents/skills/jahia-content/SKILL.md +0 -157
- package/dist/opencode/.agents/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/opencode/.agents/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/opencode/.agents/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/opencode/.agents/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/opencode/.agents/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/opencode/.agents/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/opencode/.agents/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/opencode/.agents/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/opencode/.agents/skills/jahia-dev/SKILL.md +0 -124
- package/dist/opencode/.agents/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/opencode/.agents/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/opencode/.agents/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/opencode/.agents/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/opencode/.agents/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/opencode/.agents/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/opencode/.agents/skills/jahia-dev-define-content-type/SKILL.md +0 -93
- package/dist/opencode/.agents/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
- package/dist/opencode/.agents/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/opencode/.agents/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/opencode/.agents/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/opencode/.agents/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/opencode/.agents/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/opencode/.agents/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/opencode/.agents/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/opencode/.agents/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/opencode/.agents/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/opencode/.agents/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/opencode/.agents/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/opencode/.agents/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/opencode/.agents/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/opencode/.agents/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/opencode/.agents/skills/jahia-orchestrate/SKILL.md +0 -148
- package/dist/opencode/.agents/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
- package/dist/opencode/.agents/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/opencode/.agents/skills/jahia-review-java/references/code-review-output.md +0 -121
- package/dist/opencode/.opencode/agents/cnd-jahia-mixins.md +0 -113
- package/dist/opencode/.opencode/agents/jahia-cnd-author.md +0 -130
- package/dist/opencode/.opencode/agents/jahia-dev-worker.md +0 -264
- package/dist/opencode/.opencode/agents/jahia-reviewer.md +0 -105
- package/dist/windsurf/.windsurf/skills/jahia/SKILL.md +0 -148
- package/dist/windsurf/.windsurf/skills/jahia-content/SKILL.md +0 -157
- package/dist/windsurf/.windsurf/skills/jahia-content-create-content/SKILL.md +0 -359
- package/dist/windsurf/.windsurf/skills/jahia-content-explore-structure/SKILL.md +0 -255
- package/dist/windsurf/.windsurf/skills/jahia-content-media-upload/SKILL.md +0 -197
- package/dist/windsurf/.windsurf/skills/jahia-content-move-content/SKILL.md +0 -231
- package/dist/windsurf/.windsurf/skills/jahia-content-organize/SKILL.md +0 -209
- package/dist/windsurf/.windsurf/skills/jahia-content-publish/SKILL.md +0 -181
- package/dist/windsurf/.windsurf/skills/jahia-content-query-content/SKILL.md +0 -174
- package/dist/windsurf/.windsurf/skills/jahia-content-translate-content/SKILL.md +0 -226
- package/dist/windsurf/.windsurf/skills/jahia-dev/SKILL.md +0 -124
- package/dist/windsurf/.windsurf/skills/jahia-dev-apis/SKILL.md +0 -52
- package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/authentication.md +0 -484
- package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/graphql.md +0 -657
- package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/jcr-api.md +0 -465
- package/dist/windsurf/.windsurf/skills/jahia-dev-apis/references/security.md +0 -541
- package/dist/windsurf/.windsurf/skills/jahia-dev-cypress/SKILL.md +0 -265
- package/dist/windsurf/.windsurf/skills/jahia-dev-define-content-type/SKILL.md +0 -93
- package/dist/windsurf/.windsurf/skills/jahia-dev-define-content-type/references/modeling-decisions.md +0 -52
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/SKILL.md +0 -110
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/backend.md +0 -331
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/content-types.md +0 -273
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/modules.md +0 -218
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/osgi.md +0 -208
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/rendering.md +0 -191
- package/dist/windsurf/.windsurf/skills/jahia-dev-java/references/ui-extensions.md +0 -344
- package/dist/windsurf/.windsurf/skills/jahia-dev-osgi-module/SKILL.md +0 -297
- package/dist/windsurf/.windsurf/skills/jahia-dev-ui-extension/SKILL.md +0 -559
- package/dist/windsurf/.windsurf/skills/jahia-java-concurrency/SKILL.md +0 -308
- package/dist/windsurf/.windsurf/skills/jahia-java-jcr/SKILL.md +0 -153
- package/dist/windsurf/.windsurf/skills/jahia-java-osgi/SKILL.md +0 -134
- package/dist/windsurf/.windsurf/skills/jahia-java-persistence/SKILL.md +0 -177
- package/dist/windsurf/.windsurf/skills/jahia-java-security/SKILL.md +0 -84
- package/dist/windsurf/.windsurf/skills/jahia-orchestrate/SKILL.md +0 -148
- package/dist/windsurf/.windsurf/skills/jahia-orchestrate/scripts/verify-pages.mjs +0 -59
- package/dist/windsurf/.windsurf/skills/jahia-review-java/SKILL.md +0 -131
- package/dist/windsurf/.windsurf/skills/jahia-review-java/references/code-review-output.md +0 -121
- /package/dist/claude/.claude/{agents → skills/jahia-cnd-author/references}/cnd-child-nodes.md +0 -0
- /package/dist/{cursor/.cursor/agents → codex/.agents/skills/jahia-cnd-author/references}/cnd-child-nodes.md +0 -0
- /package/dist/{opencode/.opencode/agents → copilot/.agents/skills/jahia-cnd-author/references}/cnd-child-nodes.md +0 -0
package/dist/windsurf/AGENTS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# AGENTS.md
|
|
2
2
|
<!-- Generated by APM CLI from distributed .apm/ primitives -->
|
|
3
|
-
<!-- Build ID:
|
|
3
|
+
<!-- Build ID: f8784ff296c9 -->
|
|
4
4
|
<!-- APM Version: 0.21.0 -->
|
|
5
5
|
|
|
6
6
|
## Global Instructions
|
|
@@ -31,40 +31,6 @@ You are helping develop a **Jahia JavaScript Module** — a React-based template
|
|
|
31
31
|
12. **Always build a page template first** — every website needs a root template at `src/templates/<ModuleName>Template/default.server.tsx`. It must include: a skip link, a `<nav>` built inline from children of the site's home node using `getChildNodes(renderContext.getSite().getNode('home'), -1, 0, n => n.isNodeType('jnt:page'))` (pages live under `home`, not directly under the site), a `<main id="main-content">` with `<h1>{title}</h1>` and Areas, and a `<footer>` that is never empty. The `<title>` tag must be `{title} | {siteName}` — never set `jcr:title` to the full `Page | Site` string; `jcr:title` is always just the short page name (e.g. "Car Insurance"). Build and deploy before any page-specific components.
|
|
32
32
|
13. **SEO baseline** — every page template must render a `<title>` tag, all `<img>` must have descriptive `alt` text, all links must have visible text (no icon-only links without `aria-label`), and pages must have a single `<h1>` matching the page title.
|
|
33
33
|
|
|
34
|
-
## Skill Map
|
|
35
|
-
|
|
36
|
-
Start with `/jahia` if unsure where to begin.
|
|
37
|
-
|
|
38
|
-
### Development
|
|
39
|
-
|
|
40
|
-
| Skill | Purpose |
|
|
41
|
-
|-------|---------|
|
|
42
|
-
| `/jahia-dev` | Entry point — detect project state, guide to next step |
|
|
43
|
-
| `/jahia-dev-create-template-set` | Scaffold a new Jahia JS module |
|
|
44
|
-
| `/jahia-dev-start-local` | Start Jahia locally (Docker or bare metal) |
|
|
45
|
-
| `/jahia-dev-build-component` | Build a complete component (CND + view) — start here |
|
|
46
|
-
| `/jahia-dev-define-content-type` | Define a CND content type + types.ts |
|
|
47
|
-
| `/jahia-dev-review-cnd` | Validate a CND file for antipatterns — run after writing any CND |
|
|
48
|
-
| `/jahia-dev-create-view` | Implement a React view (.server.tsx + CSS Module) |
|
|
49
|
-
| `/jahia-dev-create-page-template` | Create a page template with Areas |
|
|
50
|
-
| `/jahia-dev-query-content` | Write JCR-SQL2 queries and useJCRQuery |
|
|
51
|
-
| `/jahia-dev-review` | Code review: 8 critical checks, 9 warnings, 11 suggestions |
|
|
52
|
-
| `/jahia-dev-site-review` | Scored a11y + SEO report on live pages — use after every deploy |
|
|
53
|
-
| `/jahia-dev-accessibility` | Deep WCAG 2.1 AA audit with fixes — use for targeted a11y work |
|
|
54
|
-
| `/jahia-dev-screenshot` | Screenshot reference + local render for visual comparison |
|
|
55
|
-
| `/jahia-dev-debug` | Debug build/deploy/runtime errors end-to-end |
|
|
56
|
-
|
|
57
|
-
### Content Management
|
|
58
|
-
|
|
59
|
-
| Skill | Purpose |
|
|
60
|
-
|-------|---------|
|
|
61
|
-
| `/jahia-content` | Entry point — detect site state, route to content operations |
|
|
62
|
-
| `/jahia-content-explore-structure` | Map content types, properties, enums on an unknown site |
|
|
63
|
-
| `/jahia-content-query-content` | List and inspect content via GraphQL |
|
|
64
|
-
| `/jahia-content-create-content` | Create nodes, folders, articles, bulk-populate |
|
|
65
|
-
| `/jahia-content-move-content` | Restructure the content tree |
|
|
66
|
-
| `/jahia-content-translate-content` | Translate existing nodes to a new language and publish |
|
|
67
|
-
|
|
68
34
|
## Canonical References
|
|
69
35
|
|
|
70
36
|
Always fetch these when uncertain about version-sensitive topics:
|
|
@@ -87,9 +53,7 @@ Always fetch these when uncertain about version-sensitive topics:
|
|
|
87
53
|
When Jahia is running at `http://localhost:8080` (default credentials: `root` / `root1234`):
|
|
88
54
|
|
|
89
55
|
- **Login**: http://localhost:8080/cms/login
|
|
90
|
-
- **
|
|
91
|
-
- **jContent**: http://localhost:8080/jahia/jcontent
|
|
92
|
-
- **GraphQL playground**: http://localhost:8080/modules/graphql
|
|
56
|
+
- **GraphQL playground**: http://localhost:8080/modules/graphql-dxm-provider/tools/graphql-workspace.jsp
|
|
93
57
|
- **JCR browser**: http://localhost:8080/modules/tools/jcrBrowser.jsp
|
|
94
58
|
- **Definitions browser**: http://localhost:8080/modules/tools/definitionsBrowser.jsp
|
|
95
59
|
|
package/package.json
CHANGED
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
# Jahia Native Mixins & Types
|
|
2
|
-
|
|
3
|
-
Source: https://github.com/Jahia/jahia/tree/master/war/src/main/webapp/WEB-INF/etc/repository/nodetypes
|
|
4
|
-
Fetch this URL to verify before using any mixin not listed here.
|
|
5
|
-
|
|
6
|
-
## Base types — always extend these
|
|
7
|
-
|
|
8
|
-
| Type | Purpose |
|
|
9
|
-
|---|---|
|
|
10
|
-
| `jnt:content` | Base for all user content nodes — **always include** |
|
|
11
|
-
| `jnt:page` | Page node — only for `jmix:mainResource` full-page types |
|
|
12
|
-
| `jnt:file` | File node — for file references |
|
|
13
|
-
|
|
14
|
-
## Mixins by use case
|
|
15
|
-
|
|
16
|
-
### `mix:title` — preferred over a raw title property
|
|
17
|
-
|
|
18
|
-
Adds `jcr:title` (string). Jahia's UI, breadcrumbs, SEO, and sitemap generation all read `jcr:title`.
|
|
19
|
-
**Extend this instead of declaring `- title (string) i18n mandatory`.**
|
|
20
|
-
|
|
21
|
-
```cnd
|
|
22
|
-
[ns:article] > jnt:content, nsmix:component, mix:title
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
Access in view: `props["jcr:title"]`
|
|
26
|
-
|
|
27
|
-
### `jmix:mainResource` — full-page content types only
|
|
28
|
-
|
|
29
|
-
Makes 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.
|
|
30
|
-
|
|
31
|
-
```cnd
|
|
32
|
-
[ns:blogPost] > jnt:content, mix:title, jmix:mainResource, nsmix:component
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
### `jmix:image` — image constraint for weakreference
|
|
36
|
-
|
|
37
|
-
Use as the type constraint on image weakreference properties:
|
|
38
|
-
|
|
39
|
-
```cnd
|
|
40
|
-
- backgroundImage (weakreference, picker[type='image']) < jmix:image
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
**Never use `< 'jnt:file'`** (quoted string form) — it does not enforce image type correctly.
|
|
44
|
-
|
|
45
|
-
**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:
|
|
46
|
-
|
|
47
|
-
```tsx
|
|
48
|
-
const imageAlt = props.image?.getPropertyAsString("jcr:title") ?? "";
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
Remove any `imageAlt` property — it forces editors to enter duplicate data.
|
|
52
|
-
|
|
53
|
-
### `jmix:droppableContent` — never extend directly
|
|
54
|
-
|
|
55
|
-
Always define a module-level component mixin and extend that:
|
|
56
|
-
|
|
57
|
-
```cnd
|
|
58
|
-
// In settings/definitions.cnd
|
|
59
|
-
[nsmix:component] > jmix:droppableContent, jmix:accessControllableContent mixin
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Then all component types extend `nsmix:component`.
|
|
63
|
-
|
|
64
|
-
### `jmix:hiddenType` — hide from Page Builder picker
|
|
65
|
-
|
|
66
|
-
Structural/container types editors should not add manually:
|
|
67
|
-
|
|
68
|
-
```cnd
|
|
69
|
-
[ns:ctaContainer] > jnt:content, jmix:hiddenType orderable
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
**Never use `jmix:studioOnly`** — it causes silent rendering issues in some contexts.
|
|
73
|
-
|
|
74
|
-
### `jmix:accessControllableContent` — per-component access control
|
|
75
|
-
|
|
76
|
-
Add to your base module mixin so all components support it:
|
|
77
|
-
|
|
78
|
-
```cnd
|
|
79
|
-
[nsmix:component] > jmix:droppableContent, jmix:accessControllableContent mixin
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### `jmix:link` — built-in link type
|
|
83
|
-
|
|
84
|
-
Provides `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.
|
|
85
|
-
|
|
86
|
-
## picker[] selector
|
|
87
|
-
|
|
88
|
-
| Selector | Use |
|
|
89
|
-
|---|---|
|
|
90
|
-
| `picker[type='image']` | Image assets only |
|
|
91
|
-
| `picker[type='file']` | Any file asset |
|
|
92
|
-
|
|
93
|
-
```cnd
|
|
94
|
-
- backgroundImage (weakreference, picker[type='image']) < jmix:image
|
|
95
|
-
- attachment (weakreference, picker[type='file']) < jnt:file
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## Two-tier component mixin system
|
|
99
|
-
|
|
100
|
-
If the module uses custom area types (see `jahia-dev-create-page-template`):
|
|
101
|
-
|
|
102
|
-
```cnd
|
|
103
|
-
[nsmix:component] > jmix:droppableContent, jmix:accessControllableContent mixin
|
|
104
|
-
[nsmix:pageComponent] > nsmix:component mixin
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
| Component will be… | Extend |
|
|
108
|
-
|---|---|
|
|
109
|
-
| Dropped in page areas | `nsmix:pageComponent` |
|
|
110
|
-
| Child of another component | `nsmix:component` |
|
|
111
|
-
| Listed programmatically | `nsmix:component` |
|
|
112
|
-
|
|
113
|
-
A component extending only `nsmix:component` **cannot** be dropped in areas that use `nsmix:pageComponent`.
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: jahia-cnd-author
|
|
3
|
-
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.
|
|
4
|
-
allowed-tools: Read, Write, Edit, Bash
|
|
5
|
-
tools:
|
|
6
|
-
Read: true
|
|
7
|
-
Write: true
|
|
8
|
-
Edit: true
|
|
9
|
-
Bash: true
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
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.
|
|
13
|
-
|
|
14
|
-
## Your inputs
|
|
15
|
-
|
|
16
|
-
You will receive a structured spec:
|
|
17
|
-
|
|
18
|
-
```
|
|
19
|
-
Component: <name>
|
|
20
|
-
Namespace prefix: <ns>
|
|
21
|
-
Module path: <path to module root>
|
|
22
|
-
Fields:
|
|
23
|
-
- <field name>: <type description> [mandatory] [i18n] [multiple]
|
|
24
|
-
Usage: <where this component appears>
|
|
25
|
-
Children: <repeatable sub-items if any>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
## Step 1 — Locate and load reference files
|
|
29
|
-
|
|
30
|
-
Reference files live next to this agent file. First, discover where they are:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
# Find the directory that contains the cnd-jahia-mixins reference file
|
|
34
|
-
find . -maxdepth 4 -name "cnd-jahia-mixins*" 2>/dev/null | head -5
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Then read the files you need (using whichever path the find command returned):
|
|
38
|
-
|
|
39
|
-
- **Always read**: `cnd-jahia-mixins` (required — tells you which native mixins to extend)
|
|
40
|
-
- **If text, link, or choice properties**: `cnd-string-selectors`
|
|
41
|
-
- **If repeatable child items**: `cnd-child-nodes`
|
|
42
|
-
- **If numbers, dates, or booleans**: `cnd-numbers-dates`
|
|
43
|
-
|
|
44
|
-
Do 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.
|
|
45
|
-
|
|
46
|
-
## Step 2 — Resolve namespace and location
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
# Get namespace prefix
|
|
50
|
-
grep "^<" <module-path>/settings/definitions.cnd | head -5
|
|
51
|
-
|
|
52
|
-
# Check for two-tier mixin
|
|
53
|
-
grep "pageComponent" <module-path>/settings/definitions.cnd
|
|
54
|
-
|
|
55
|
-
# Find the right category directory
|
|
56
|
-
ls <module-path>/src/components/
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
If `namespacemix:pageComponent` exists: use it for components dropped in page areas, use `namespacemix:component` for children of other components.
|
|
60
|
-
|
|
61
|
-
**File locations — collocation is mandatory:**
|
|
62
|
-
|
|
63
|
-
Each component type lives in its own file, next to its view. NEVER put all types in `settings/definitions.cnd`.
|
|
64
|
-
|
|
65
|
-
```
|
|
66
|
-
src/
|
|
67
|
-
components/
|
|
68
|
-
Sections/
|
|
69
|
-
HeroSection/
|
|
70
|
-
definition.cnd ← one type per file, co-located here
|
|
71
|
-
default.server.tsx
|
|
72
|
-
types.ts
|
|
73
|
-
Cards/
|
|
74
|
-
TextCard/
|
|
75
|
-
definition.cnd ← separate file per component
|
|
76
|
-
types.ts
|
|
77
|
-
settings/
|
|
78
|
-
definitions.cnd ← namespace declarations + shared mixins ONLY
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## Step 3 — Write the CND
|
|
82
|
-
|
|
83
|
-
Create `<module-path>/src/components/<Category>/<Name>/definition.cnd`.
|
|
84
|
-
|
|
85
|
-
Rules from the reference files you loaded — apply all of them:
|
|
86
|
-
1. **Links**: `j:linkType (string, choicelist[linkTypeInitializer]) mandatory` — never `(string)` for `*Url`, `*Href`, `*Link`
|
|
87
|
-
2. **Titles**: extend `mix:title` — never `- title (string)` or `- jcr:title (string)`
|
|
88
|
-
3. **Repeatable CTAs**: child nodes `+ * (ns:callToAction)` — never flat `ctaText + ctaUrl` on the parent
|
|
89
|
-
4. **Images**: `(weakreference, picker[type='image']) < jmix:image` — never `(string)` for image URLs
|
|
90
|
-
5. **i18n**: on every user-facing string/textarea/richtext property
|
|
91
|
-
6. **Component mixin**: extend `namespacemix:component` or `namespacemix:pageComponent` — never `jmix:droppableContent` directly on a concrete type
|
|
92
|
-
|
|
93
|
-
Each per-component `definition.cnd` must include the namespace declarations at the top:
|
|
94
|
-
```cnd
|
|
95
|
-
<ns = 'http://...'>
|
|
96
|
-
<nsmix = 'http://...'>
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## Step 4 — Write types.ts
|
|
100
|
-
|
|
101
|
-
Create `<module-path>/src/components/<Category>/<Name>/types.ts`. All fields use `?:` even if mandatory in CND.
|
|
102
|
-
|
|
103
|
-
For `j:linkType` properties, use the discriminated union from the reference file you loaded.
|
|
104
|
-
|
|
105
|
-
## Step 5 — Self-validate
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
CND=<module-path>/src/components/<Category>/<Name>/definition.cnd
|
|
109
|
-
|
|
110
|
-
# Error: raw string for a link/URL property
|
|
111
|
-
grep -En "^[[:space:]]*-[[:space:]]+[a-zA-Z]*(Url|Href|Link)[[:space:]]+\(string" "$CND"
|
|
112
|
-
|
|
113
|
-
# Error: title declared as raw property instead of mix:title
|
|
114
|
-
grep -En "^[[:space:]]*-[[:space:]]+(title|jcr:title)[[:space:]]+\(string" "$CND"
|
|
115
|
-
|
|
116
|
-
# Error: concrete type extends jmix:droppableContent directly
|
|
117
|
-
grep -n "jmix:droppableContent" "$CND" | grep -v "mixin"
|
|
118
|
-
|
|
119
|
-
# Error: image as plain string URL
|
|
120
|
-
grep -En "^[[:space:]]*-[[:space:]]+[a-zA-Z]*(Image|Photo|Avatar|Logo)[[:space:]]+\(string" "$CND"
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
If any of these print matches, fix the issue and re-run before reporting.
|
|
124
|
-
|
|
125
|
-
## Step 6 — Report
|
|
126
|
-
|
|
127
|
-
- Files written: paths
|
|
128
|
-
- Type name(s) defined
|
|
129
|
-
- Self-validate result: PASS / fixed N errors
|
|
130
|
-
- Any warnings not fixed and why
|
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: jahia-dev-worker
|
|
3
|
-
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.
|
|
4
|
-
allowed-tools: Read, Write, Edit, Bash
|
|
5
|
-
# MCP tools (jahia server) are also required — no tools: block so Claude Code allows all
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
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.
|
|
9
|
-
|
|
10
|
-
## Step 0 — Read your plan
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
cat PLAN.md
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
Parse the plan carefully. Note:
|
|
17
|
-
- Module path
|
|
18
|
-
- Components to build
|
|
19
|
-
- Efficiency rules (follow them exactly)
|
|
20
|
-
- Round N Fix-Ups section (present from round 2 — fix these and ONLY these before re-deploying)
|
|
21
|
-
|
|
22
|
-
**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).
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## Step 1 — Load CND reference files
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
find . -maxdepth 4 -name "cnd-jahia-mixins*" 2>/dev/null | head -3
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Read the file found. Also read `cnd-string-selectors.md` (links, choices) and `cnd-child-nodes.md` (repeatable children) from the same directory.
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## Step 2 — Resolve namespace
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
grep "^<" settings/definitions.cnd | head -5
|
|
40
|
-
grep "pageComponent" settings/definitions.cnd || echo "(pageComponent not yet defined)"
|
|
41
|
-
ls src/components/ 2>/dev/null || echo "(no components yet)"
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
Note the namespace prefix and whether `namespacemix:pageComponent` exists.
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Step 3 — Build page template, then all components
|
|
49
|
-
|
|
50
|
-
**Build the page template first.** Every website needs a root layout. Create:
|
|
51
|
-
|
|
52
|
-
`src/templates/<ModuleName>Template/default.server.tsx`
|
|
53
|
-
|
|
54
|
-
> The template file is always `default.server.tsx` inside a named folder — never `basic.server.tsx` or any other name.
|
|
55
|
-
|
|
56
|
-
```tsx
|
|
57
|
-
import React from 'react';
|
|
58
|
-
import { Area, AbsoluteArea, getChildNodes, buildNodeUrl, jahiaComponent } from '@jahia/javascript-modules-library';
|
|
59
|
-
import styles from './template.module.css';
|
|
60
|
-
|
|
61
|
-
jahiaComponent(
|
|
62
|
-
{
|
|
63
|
-
componentType: 'template',
|
|
64
|
-
nodeType: 'jnt:page',
|
|
65
|
-
displayName: 'Default Template',
|
|
66
|
-
name: 'default',
|
|
67
|
-
},
|
|
68
|
-
({ 'jcr:title': title }, { renderContext, mainNode }) => {
|
|
69
|
-
// Pages live under /sites/<key>/home — not directly under the site node
|
|
70
|
-
const siteHome = renderContext.getSite().getNode('home');
|
|
71
|
-
const navPages = getChildNodes(siteHome, -1, 0, n => n.isNodeType('jnt:page'));
|
|
72
|
-
const siteName = renderContext.getSite().getPropertyAsString('j:siteTitle') ?? renderContext.getSite().getName();
|
|
73
|
-
return (
|
|
74
|
-
<html lang="en">
|
|
75
|
-
<head>
|
|
76
|
-
<meta charSet="UTF-8" />
|
|
77
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
78
|
-
{/* title = short page name + site name — never set jcr:title to the full "Page | Site" string */}
|
|
79
|
-
<title>{title}{siteName ? ` | ${siteName}` : ''}</title>
|
|
80
|
-
</head>
|
|
81
|
-
<body>
|
|
82
|
-
<a href="#main-content" className={styles.skipLink}>Skip to main content</a>
|
|
83
|
-
<header className={styles.header}>
|
|
84
|
-
<nav aria-label="Main navigation">
|
|
85
|
-
<ul className={styles.navList}>
|
|
86
|
-
<li key={siteHome.getPath()}>
|
|
87
|
-
<a
|
|
88
|
-
href={buildNodeUrl(siteHome)}
|
|
89
|
-
aria-current={siteHome.getPath() === mainNode.getPath() ? 'page' : undefined}
|
|
90
|
-
>
|
|
91
|
-
{siteHome.getPropertyAsString('jcr:title') ?? siteHome.getName()}
|
|
92
|
-
</a>
|
|
93
|
-
</li>
|
|
94
|
-
{navPages.map(page => (
|
|
95
|
-
<li key={page.getPath()}>
|
|
96
|
-
<a
|
|
97
|
-
href={buildNodeUrl(page)}
|
|
98
|
-
aria-current={page.getPath() === mainNode.getPath() ? 'page' : undefined}
|
|
99
|
-
>
|
|
100
|
-
{page.getPropertyAsString('jcr:title') ?? page.getName()}
|
|
101
|
-
</a>
|
|
102
|
-
</li>
|
|
103
|
-
))}
|
|
104
|
-
</ul>
|
|
105
|
-
</nav>
|
|
106
|
-
</header>
|
|
107
|
-
<main id="main-content">
|
|
108
|
-
<h1 className={styles.pageTitle}>{title}</h1>
|
|
109
|
-
<Area name="pagecontent" />
|
|
110
|
-
</main>
|
|
111
|
-
<footer className={styles.footer}>
|
|
112
|
-
<AbsoluteArea name="footer" parent={renderContext.getSite()} />
|
|
113
|
-
<p className={styles.copyright}>{'© '}{renderContext.getSite().getName()}</p>
|
|
114
|
-
</footer>
|
|
115
|
-
</body>
|
|
116
|
-
</html>
|
|
117
|
-
);
|
|
118
|
-
}
|
|
119
|
-
);
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
Also 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`.
|
|
123
|
-
|
|
124
|
-
**Then, for each component** in the plan:
|
|
125
|
-
|
|
126
|
-
1. Create `src/components/<Category>/<Name>/definition.cnd`
|
|
127
|
-
- **⚠️ This file only. Never add component types to `settings/definitions.cnd` — that file is for namespace declarations and the module base mixin only.**
|
|
128
|
-
- Namespace declarations at top (e.g. `<ns = 'https://example.com/ns/nt/1.0'>`)
|
|
129
|
-
- Extend `namespacemix:pageComponent` (for page-area components) or `namespacemix:component` (for children)
|
|
130
|
-
- Use `mix:title` for titles, NOT `- title (string)`
|
|
131
|
-
- Use `(weakreference, picker[type='image']) < jmix:image` for images
|
|
132
|
-
- Use `j:linkType (string, choicelist[linkTypeInitializer]) mandatory` for links
|
|
133
|
-
- Child items use `+ * (ns:childType) orderable`
|
|
134
|
-
- i18n on ALL user-visible string/textarea/richtext properties
|
|
135
|
-
|
|
136
|
-
**After writing the CND file, immediately run the checker and loop until clean:**
|
|
137
|
-
|
|
138
|
-
```bash
|
|
139
|
-
CND_SCRIPT=$(find .claude .agents -name "check-cnd.mjs" 2>/dev/null | head -1)
|
|
140
|
-
[ -n "$CND_SCRIPT" ] && node "$CND_SCRIPT" src/components/<Category>/<Name>/definition.cnd
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
- If the result is `FAIL`: read each issue, apply the fix, re-run.
|
|
144
|
-
- Repeat until the result is `PASS`.
|
|
145
|
-
- **Do not write the view (`types.ts`, `default.server.tsx`) until the CND is clean.**
|
|
146
|
-
|
|
147
|
-
2. Create `src/components/<Category>/<Name>/types.ts`
|
|
148
|
-
- All props use `?:` (optional) even if mandatory in CND
|
|
149
|
-
- Import `JCRNodeWrapper` from `@jahia/javascript-modules-library` for node refs
|
|
150
|
-
|
|
151
|
-
3. Create `src/components/<Category>/<Name>/default.server.tsx`
|
|
152
|
-
- Import `Props` from `./types.js`
|
|
153
|
-
- Use semantic HTML: `<section>`, `<article>`, `<header>`, `<main>`
|
|
154
|
-
- **Components use `<h2>` for their primary heading, `<h3>` for sub-headings. Never `<h1>` — the page template owns the h1.**
|
|
155
|
-
- Guard all props: `{prop?.value && <span>{prop.value}</span>}`
|
|
156
|
-
- Guard node URLs: `prop["j:linknode"] ? buildNodeUrl(prop["j:linknode"]) : "#"`
|
|
157
|
-
- `alt` on every `<img>`: use `imageAlt || title || 'Image'` — never fall back to empty string
|
|
158
|
-
|
|
159
|
-
4. Create `src/components/<Category>/<Name>/component.module.css`
|
|
160
|
-
- Scoped CSS for the component
|
|
161
|
-
- Mobile-first responsive
|
|
162
|
-
- Colour contrast ≥ 4.5:1 for text on background
|
|
163
|
-
|
|
164
|
-
**After each component, deploy and verify it renders before moving to the next.**
|
|
165
|
-
|
|
166
|
-
**Check TypeScript types before each deploy:**
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
tsc --noEmit 2>&1 | head -30
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
Fix 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.
|
|
173
|
-
|
|
174
|
-
**Validate all CNDs before each deploy (final gate):**
|
|
175
|
-
|
|
176
|
-
```bash
|
|
177
|
-
CND_SCRIPT=$(find .claude .agents -name "check-cnd.mjs" 2>/dev/null | head -1)
|
|
178
|
-
[ -n "$CND_SCRIPT" ] && node "$CND_SCRIPT" src/
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
If the result is `FAIL`, fix every issue and re-run until `PASS`. Do not run `yarn build` until the checker is clean.
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
## Step 4 — Deploy
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
yarn build && yarn jahia-deploy
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
If it fails, read the error, fix it, and retry. Record the outcome.
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
## Step 5 — Create content (only if deploy succeeded)
|
|
196
|
-
|
|
197
|
-
Use MCP tools (the `jahia` MCP server) to:
|
|
198
|
-
1. Discover the site key
|
|
199
|
-
2. 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.
|
|
200
|
-
3. 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`).
|
|
201
|
-
4. Create content nodes and populate them with realistic copy
|
|
202
|
-
5. Publish all pages
|
|
203
|
-
|
|
204
|
-
**Verify every page renders real content and passes a11y + SEO checks:**
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
SCRIPT=$(find .claude .agents -name "review-pages.mjs" 2>/dev/null | head -1)
|
|
208
|
-
node "$SCRIPT" 2>&1 | tee /tmp/site-review.txt
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
The script checks each URL in `pages.json` for:
|
|
212
|
-
1. HTTP 200 and no Jahia error markers
|
|
213
|
-
2. A11y: no critical/serious WCAG 2.1 AA violations (axe-core)
|
|
214
|
-
3. SEO: `<title>`, `<meta name="description">`, single `<h1>`, all `<img>` have `alt`
|
|
215
|
-
|
|
216
|
-
If 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.
|
|
217
|
-
|
|
218
|
-
**Tooling check** — if `review-pages.mjs` reports missing modules:
|
|
219
|
-
```bash
|
|
220
|
-
npm install --no-save @axe-core/playwright playwright && npx playwright install chromium --with-deps
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
---
|
|
224
|
-
|
|
225
|
-
## Step 6 — Write pages.json
|
|
226
|
-
|
|
227
|
-
Only reach this step once every page verified clean in Step 5.
|
|
228
|
-
|
|
229
|
-
Collect 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.
|
|
230
|
-
|
|
231
|
-
Write `pages.json`:
|
|
232
|
-
```json
|
|
233
|
-
["http://localhost:8080/cms/render/live/en/sites/<siteKey>/home.html", "..."]
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
---
|
|
237
|
-
|
|
238
|
-
## Step 7 — Write DEV_STATUS.md
|
|
239
|
-
|
|
240
|
-
Write a `DEV_STATUS.md` file in the project root:
|
|
241
|
-
|
|
242
|
-
```
|
|
243
|
-
# Dev Status
|
|
244
|
-
|
|
245
|
-
## Status
|
|
246
|
-
COMPLETE
|
|
247
|
-
|
|
248
|
-
## Components built
|
|
249
|
-
<list each component and whether CND + view + CSS were created>
|
|
250
|
-
|
|
251
|
-
## Deploy
|
|
252
|
-
SUCCESS | FAILED — <error if failed>
|
|
253
|
-
|
|
254
|
-
## Content
|
|
255
|
-
<number> pages created and published | SKIPPED | FAILED — <error>
|
|
256
|
-
|
|
257
|
-
## pages.json written
|
|
258
|
-
YES | NO
|
|
259
|
-
|
|
260
|
-
## Notes
|
|
261
|
-
<any issues, skipped items, or errors>
|
|
262
|
-
```
|
|
263
|
-
|
|
264
|
-
Set Status to FAILED if deploy or content creation failed and could not be recovered.
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: jahia-reviewer
|
|
3
|
-
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.
|
|
4
|
-
allowed-tools: Read, Bash
|
|
5
|
-
# No tools: block — consistent with other agents; Claude Code allows all by default
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
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.
|
|
9
|
-
|
|
10
|
-
## Step 1 — Collect files to review
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
find src/ -name "definition.cnd" | sort
|
|
14
|
-
find src/ -name "*.server.tsx" | sort
|
|
15
|
-
find src/ -name "types.ts" | sort
|
|
16
|
-
cat settings/definitions.cnd
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Read ALL of the above files before forming any conclusions.
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Step 2 — Run critical checks
|
|
24
|
-
|
|
25
|
-
Scan for each of these. Report only what you actually find — do not guess or infer.
|
|
26
|
-
|
|
27
|
-
### 🔴 CRITICAL (must fix — causes broken pages or editor UX)
|
|
28
|
-
|
|
29
|
-
**C1** — Any concrete CND type (not a mixin) extending `jmix:droppableContent` directly
|
|
30
|
-
```bash
|
|
31
|
-
grep -rn "jmix:droppableContent" src/ --include="*.cnd" | grep -v "mixin"
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
**C2** — Page template not registered with `nodeType: "jnt:page"`
|
|
35
|
-
```bash
|
|
36
|
-
grep -rn "componentType.*template" src/templates/ --include="*.server.tsx"
|
|
37
|
-
```
|
|
38
|
-
Flag 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.
|
|
39
|
-
|
|
40
|
-
Also flag: `fullPage` view with `componentType: "template"` (should be `componentType: "view"`).
|
|
41
|
-
|
|
42
|
-
**C3** — CND type explicitly declaring `j:linknode` or `j:url` fields
|
|
43
|
-
```bash
|
|
44
|
-
grep -rn "j:linknode\|j:url" src/ --include="*.cnd"
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
**C4** — View using `j:linkType` value directly as an `href`
|
|
48
|
-
```bash
|
|
49
|
-
grep -rn 'href=.*j:linkType\|href=.*\["j:linkType"\]' src/ --include="*.server.tsx" --include="*.client.tsx"
|
|
50
|
-
```
|
|
51
|
-
Note: 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.
|
|
52
|
-
|
|
53
|
-
**C8** — All `<Area>` elements using the same generic `nodeType`
|
|
54
|
-
```bash
|
|
55
|
-
grep -rn "nodeType" src/templates/ --include="*.server.tsx"
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
### 🟡 WARNINGS (fix if time allows)
|
|
59
|
-
|
|
60
|
-
**W1** — User-visible CND string/textarea without `i18n`
|
|
61
|
-
```bash
|
|
62
|
-
grep -rn "(string\|textarea\|richtext)" src/ --include="*.cnd" | grep -v "i18n\|j:linkType\|j:url\|j:linknode"
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
**W4** — Props typed as required (not `?:`) in types.ts
|
|
66
|
-
```bash
|
|
67
|
-
grep -rn ": string\b\|: number\b\|: boolean\b" src/ --include="types.ts" | grep -v "?:"
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
**W9** — Hardcoded URLs in views
|
|
71
|
-
```bash
|
|
72
|
-
grep -rn 'href="http\|href="/\|href=`/' src/ --include="*.server.tsx" --include="*.client.tsx"
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Step 3 — Write REVIEW.md
|
|
78
|
-
|
|
79
|
-
Write `REVIEW.md` in the project root. Be specific: include file path and line content for each finding.
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
# Code Review — Round <N>
|
|
83
|
-
|
|
84
|
-
## Verdict
|
|
85
|
-
PASS | NEEDS_WORK
|
|
86
|
-
|
|
87
|
-
(PASS if zero Critical issues. NEEDS_WORK if any Critical issue found.)
|
|
88
|
-
|
|
89
|
-
## Critical Issues (must fix before next deploy)
|
|
90
|
-
- [C1] src/components/Hero/definition.cnd:5 — extends jmix:droppableContent directly
|
|
91
|
-
Fix: change to extend namespacemix:pageComponent
|
|
92
|
-
|
|
93
|
-
(Write "None" if no critical issues.)
|
|
94
|
-
|
|
95
|
-
## Warnings (fix if time allows, do NOT redeploy just for these)
|
|
96
|
-
...
|
|
97
|
-
|
|
98
|
-
## Suggestions (informational only)
|
|
99
|
-
...
|
|
100
|
-
|
|
101
|
-
## Summary
|
|
102
|
-
- Critical: N | Warnings: N | Suggestions: N
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Set Verdict to PASS only if there are **zero Critical issues**. Warnings and suggestions alone do not block.
|