Jahia Benchmark

Harness quality over time
Homepage screenshot
Oct 27, 2026, 05:34 PM UTC · 59m 01s
↑6.1K ↓196.8K · 202.9K total tokens · $14.73
A11y: 100%SEO: 100%Img: 100%Content: 67%CND: 100%
🏷 v0.10.0
  • Agents write for JavaScript Modules 1.3: <JImage> for images, useTranslation() for every translation, absolute URLs, client-only islands with children, and npm init @jahia/module with --yes.
Homepage screenshot
Oct 26, 2026, 04:18 PM UTC · 64m 08s
↑10.8K ↓216.7K · 227.5K total tokens · $19.51
A11y: 100%SEO: 100%Img: 100%Content: 67%CND: 100%
Homepage screenshot
Oct 23, 2026, 08:25 AM UTC · 38m 45s
↑2.0K ↓133.0K · 135.1K total tokens · $9.27
A11y: 100%SEO: 100%Img: 100%Content: 100%CND: 100%
🏷 v0.9.1
  • Agents now recognize a deploy that installed nothing, the page template example renders its <title>, and the review scripts run on Kiro.

  • Agents upload the images that the content needs with the media.upload.url tool of the Jahia MCP server.

  • Agents no longer hide <RenderChild> behind a condition, which removed the editor's add button.

  • /jahia-review stops once the site review passes and no critical code issue remains, and the site review fails when a page lost content.

  • The code review flags <Area> in a component view, which hides the children that editors add inside the component.

Homepage screenshot
Oct 14, 2026, 04:39 PM UTC · 36m 10s
↑1.7K ↓128.3K · 130.0K total tokens · $6.97
A11y: 100%SEO: 100%Img: 100%Content: 100%CND: 37%
Homepage screenshot
Oct 14, 2026, 02:10 PM UTC · 23m 36s
↑1.8K ↓96.7K · 98.5K total tokens · $7.93
A11y: 100%SEO: 100%Img: 0%Content: 100%CND: 100%
Homepage screenshot
Oct 14, 2026, 12:35 PM UTC · 35m 32s
↑1.7K ↓133.8K · 135.6K total tokens · $6.04
A11y: 100%SEO: 100%Img: 0%Content: 100%CND: 100%
Homepage screenshot
Oct 14, 2026, 11:11 AM UTC · 48m 53s
↑3.3K ↓219.1K · 222.3K total tokens · $11.31
A11y: 100%SEO: 100%Img: 0%Content: N/ACND: 100%
Homepage screenshot
Oct 14, 2026, 07:54 AM UTC · 30m 40s
↑160 ↓88.6K · 88.8K total tokens · $7.46
A11y: 100%SEO: 100%Img: 0%Content: N/ACND: 100%
🏷 v0.9.0

New Features

  • New jahia-dev-change-cnd skill: changing a content type that is already deployed.

  • New jahia-capture skill: agents offer to turn a task they repeat into a skill or an instruction of the project.

Bug Fixes

  • The skills now match the javascript-modules library and Jahia core, and check-cnd.mjs no longer reports valid definitions.
Homepage screenshot
Oct 13, 2026, 10:00 AM UTC · 22m 56s
↑114 ↓49.6K · 49.7K total tokens · $5.62
A11y: 100%SEO: 100%Img: 0%Content: N/ACND: 61%
Homepage screenshot
Oct 13, 2026, 09:56 AM UTC · 19m 51s
↑161 ↓66.4K · 66.6K total tokens · $6.52
A11y: 100%SEO: 100%Img: 0%Content: N/ACND: 14%
🏷 v0.8.1
  • The harness can now start a stack that spans several repositories: a site and the modules it runs on, cloned, built from source with one command and provisioned into an empty Jahia. jahia-dev-setup-environment carries the procedure in references/multi-repo-stack.md, and both environment skills now check that the pages of the site render, because a module can be ACTIVE while every page that uses it fails. The skills also cover three failures of modules older than the instance. Under Maven 3.9 or later, jahia-maven-plugin computes wrong imports: a JSP module loses its taglib imports, and the optional imports of an embedded library become mandatory, so the reference mise.toml now pins Maven 3.8. A pinned jahia-maven-plugin 6.7 cannot run. A signature that no longer covers the version uninstalls the module. The provisioning reference of jahia-dev-ops now uses the operations Jahia accepts, and the startup command of jahia-dev-run-module keeps the file: scheme.
Homepage screenshot
Oct 8, 2026, 03:47 PM UTC · 29m 08s
↑164 ↓84.3K · 84.5K total tokens · $7.34
A11y: 100%SEO: 100%Img: 0%Content: N/ACND: 100%
🏷 v0.8.0
  • New jahia-dev-migrate-ui-extension skill to help migrate from webpack to Vite. (#17)

  • Added the Java skills back: jahia-dev-java writes a Java module with an Action (a .do endpoint) from the POM to deployment, and jahia-java-osgi, jahia-java-jcr, jahia-java-security and jahia-review-java cover OSGi components, JCR access, access control and review. A new Java benchmark scenario checks that an agent can write and deploy such a module.

Homepage screenshot
Oct 7, 2026, 09:19 AM UTC · 23m 37s
↑117 ↓62.0K · 62.2K total tokens · $5.11
A11y: 100%SEO: 100%Img: 0%Content: N/ACND: 22%
Homepage screenshot
Oct 7, 2026, 09:02 AM UTC · 41m 35s
↑168 ↓115.1K · 115.3K total tokens · $8.69
A11y: 100%SEO: 100%Img: 100%Content: N/ACND: 1%
Homepage screenshot
Oct 7, 2026, 08:50 AM UTC · 29m 47s
↑145 ↓73.4K · 73.6K total tokens · $7.02
A11y: 100%SEO: 92%Img: 100%Content: N/ACND: 22%
Homepage screenshot
Oct 7, 2026, 08:45 AM UTC · 33m 02s
↑197 ↓82.2K · 82.4K total tokens · $9.36
A11y: 100%SEO: 91%Img: 0%Content: N/ACND: 61%
🏷 v0.7.0

New Features

  • Added the jahia-dev-run-module skill: running a Jahia module that already exists, on a local Jahia, when nobody documented how. It reads the repository to tell a Java module from a JavaScript module and to find the Jahia version, the dependencies and the JDK it needs, deploys one module or a monorepo in dependency order, and verifies every bundle reached ACTIVE before it reports success. It carries the recovery steps for a broken local environment, and the five differences that explain a build that passes locally and fails in the continuous integration. It also pushes the project towards an environment that lives in the repository: a Docker Compose file, a provisioning manifest and a mise.toml, offered back to the developer instead of a docker run command in one shell history. jahia-dev-start-local now states its scope, which is a project you just scaffolded, and points at the new skill for anything else.

  • Added the jahia-dev-setup-environment skill: writing the development environment of a Jahia project into its repository, so that every developer and the continuous integration start the same Jahia with one command. It reads what the project already has, pins the toolchain in a mise.toml, writes the Compose file and the provisioning manifest, and adds Elasticsearch, Augmented Search, jExperience and jCustomer as blocks to merge, each with the check that proves it works. The reference files were run end to end against Jahia 8.2.3.2, jCustomer 3.0.0 and jExperience 4.2.1. jahia-dev-run-module now hands the writing of an environment to it.

    jahia-dev-jexperience no longer writes its own jCustomer stack, which pinned jCustomer 2.6 and Elasticsearch 7.17, a stack jExperience 4.2 refuses. It takes the stack from jahia-dev-setup-environment and keeps what is its own: Kibana on the same Elasticsearch, the events, the dashboards and their packaging. It also states that the published dashboards modules accept jExperience 3.x only, and how to read the store for the release that accepts 4.x.

Bug Fixes

  • The harness now carries three lessons from the benchmark run of 2026-09-30, which spent 22 minutes rediscovering them. A sectioning component whose items editors drop inside it is modelled with a hidden list child type and rendered with AbsoluteArea, not with + * on the component and RenderChildren, and jahia-cnd-author, jahia-dev-build-component and jahia-dev-debug say so, with the refusal that names the wrong model. A namespace is declared once, in settings/definitions.cnd, because the engine merges every CND file into one and a second declaration breaks the module. And content is created as subtrees, with the children of content.create, not one call per node.
Homepage screenshot
Sep 30, 2026, 04:01 PM UTC · 37m 10s
↑198 ↓99.0K · 99.2K total tokens · $8.96
A11y: 61%SEO: 100%Img: 0%Content: N/ACND: 22%
Homepage screenshot
Sep 30, 2026, 02:40 PM UTC · 54m 01s
↑322 ↓160.2K · 160.5K total tokens · $13.47
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: 37%
🏷 v0.6.0
  • Added the jahia-dev-migrate-jsp skill: migrating an existing JSP/Java template set to a Jahia JavaScript module. It audits what is portable before any code is written, carries a tag-by-tag translation table, and names the parts that must stay in a companion Java bundle (skins, moduleMap-based list views, JQOM queries, choicelist initializers, render filters).
Homepage screenshot
Aug 18, 2026, 08:34 AM UTC · 45m 59s
↑1.8K ↓128.4K · 130.2K total tokens · $8.86
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: 61%
🏷 v0.5.1
  • Improved SEO and review skills.
Homepage screenshot
Jul 2, 2026, 12:57 PM UTC · 43m 09s
↑700 ↓124.8K · 125.5K total tokens · $7.75
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: 61%
Homepage screenshot
Jul 2, 2026, 11:36 AM UTC · 48m 56s
↑341 ↓120.6K · 120.9K total tokens · $12.23
A11y: 78%SEO: 100%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jul 2, 2026, 10:09 AM UTC · 48m 09s
↑1.8K ↓157.7K · 159.5K total tokens · $10.07
A11y: 61%SEO: 92%Img: N/AContent: N/ACND: 61%
Homepage screenshot
Jun 30, 2026, 02:46 PM UTC · 59m 09s
↑397 ↓163.1K · 163.5K total tokens · $16.06
A11y: 100%SEO: 82%Img: N/AContent: N/ACND: 100%
🏷 v0.5.0
  • Added support for Antigravity and Kiro agents.

  • Register MCP server on install.

🏷 v0.4.1
  • Added all Jahia mixins to the harness.
Homepage screenshot
Jun 30, 2026, 08:36 AM UTC · 30m 16s
↑236 ↓92.5K · 92.8K total tokens · $8.45
A11y: 29%SEO: 83%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 29, 2026, 04:03 PM UTC · 25m 57s
↑136 ↓84.1K · 84.2K total tokens · $5.29
A11y: 47%SEO: 83%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 29, 2026, 01:48 PM UTC · 15m 37s
↑100 ↓56.1K · 56.2K total tokens · $4.92
A11y: 100%SEO: 92%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 29, 2026, 01:00 PM UTC · 26m 42s
↑26 ↓4.8K · 4.8K total tokens · $7.39
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 29, 2026, 10:04 AM UTC · 29m 39s
↑26 ↓4.1K · 4.1K total tokens · $8.93
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 26, 2026, 04:14 PM UTC · 26m 35s
↑17 ↓2.9K · 2.9K total tokens · $7.36
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: 100%
🏷 v0.4.0
  • Specialized content modeling agent.
Homepage screenshot
Jun 26, 2026, 03:31 PM UTC · 38m 25s
↑25 ↓4.0K · 4.0K total tokens · $10.06
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 26, 2026, 02:22 PM UTC · 31m 33s
↑16 ↓3.4K · 3.4K total tokens · $9.15
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: 82%
Homepage screenshot
Jun 26, 2026, 12:59 PM UTC · 19m 27s
↑26 ↓4.0K · 4.0K total tokens · $5.16
A11y: 100%SEO: 91%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 26, 2026, 12:30 PM UTC · 14m 10s
↑17 ↓3.2K · 3.2K total tokens · $3.49
A11y: 61%SEO: 91%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 26, 2026, 09:32 AM UTC · 27m 28s
↑26 ↓4.7K · 4.8K total tokens · $6.65
A11y: 47%SEO: 91%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 25, 2026, 02:25 PM UTC · 23m 47s
↑21 ↓3.3K · 3.3K total tokens · $5.98
A11y: 37%SEO: 0%Img: N/AContent: N/ACND: 82%
Homepage screenshot
Jun 25, 2026, 01:05 PM UTC · 44m 44s
↑23 ↓3.6K · 3.6K total tokens · $13.87
A11y: 37%SEO: 0%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 25, 2026, 11:24 AM UTC · 33m 35s
↑22 ↓3.8K · 3.9K total tokens · $11.01
A11y: 61%SEO: 91%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 25, 2026, 09:29 AM UTC · 10m 36s
↑65 ↓39.7K · 39.7K total tokens · $2.16
A11y: 100%SEO: 91%Img: N/AContent: N/ACND: 2%
Homepage screenshot
Jun 24, 2026, 03:57 PM UTC · 55m 32s
↑1.0K ↓161.4K · 162.4K total tokens · $12.08
A11y: 61%SEO: 91%Img: N/AContent: N/ACND: 82%
No screenshot
Jun 24, 2026, 12:36 PM UTC · 27m 34s
↑18.1M ↓69.4K · 18.2M total tokens · $60.74
A11y: 17%SEO: 82%Img: N/AContent: N/ACND: 2%
Homepage screenshot
Jun 24, 2026, 12:27 PM UTC · 15m 48s
↑6.4M ↓43.4K · 6.4M total tokens · $21.74
A11y: 100%SEO: 91%Img: N/AContent: N/ACND: 100%
Homepage screenshot
Jun 24, 2026, 11:03 AM UTC · 22m 01s
↑13.3M ↓63.6K · 13.4M total tokens · $44.81
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: 1%
Homepage screenshot
Jun 24, 2026, 10:14 AM UTC · 21m 30s
↑13.0M ↓58.6K · 13.1M total tokens · $43.72
A11y: 100%SEO: 82%Img: N/AContent: N/ACND: 3%
🏷 v0.3.0
  • Replaced GraphQL with MCP for content operations. (#6)
Homepage screenshot
Jun 16, 2026, 10:16 AM UTC · 14m 15s
↑8.5M ↓42.5K · 8.5M total tokens · $28.66
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: N/A
Homepage screenshot
Jun 16, 2026, 09:46 AM UTC · 9m 29s
↑4.9M ↓30.0K · 4.9M total tokens · $16.59
A11y: 78%SEO: 100%Img: N/AContent: N/ACND: N/A
Homepage screenshot
Jun 16, 2026, 06:21 AM UTC · 8m 11s
↑4.5M ↓29.3K · 4.5M total tokens · $15.26
A11y: 100%SEO: 82%Img: N/AContent: N/ACND: N/A
Homepage screenshot
Jun 15, 2026, 10:01 PM UTC · 14m 17s
↑8.8M ↓47.2K · 8.8M total tokens · $29.72
A11y: 100%SEO: 91%Img: N/AContent: N/ACND: N/A
Homepage screenshot
Jun 15, 2026, 08:46 PM UTC · 26m 36s
↑0 ↓0 · 0 total tokens · $0.00
A11y: 61%SEO: 82%Img: N/AContent: N/ACND: N/A
Homepage screenshot
Jun 15, 2026, 07:30 PM UTC · 23m 50s
↑0 ↓0 · 0 total tokens · $0.00
A11y: 100%SEO: 82%Img: N/AContent: N/ACND: N/A
🏷 v0.2.0
  • Added Java reviewer and Jahia-specific skills with concurrency pattern. (#4)
Homepage screenshot
May 28, 2026, 02:10 PM UTC · 54m 58s
↑24.9M ↓121.8K · 25.0M total tokens · $83.88
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: N/A
Homepage screenshot
May 22, 2026, 03:00 PM UTC · 22m 30s
↑8.4M ↓64.5K · 8.5M total tokens · $28.66
A11y: 100%SEO: 100%Img: N/AContent: N/ACND: N/A
Homepage screenshot
May 22, 2026, 11:07 AM UTC · 14m 54s
↑5.3M ↓40.9K · 5.3M total tokens · $18.07
A11y: 61%SEO: 82%Img: N/AContent: N/ACND: N/A
🏷 v0.1.1
  • Fixed execution error because of a missing shebang in the JS binary. (#2)
🏷 v0.1.0

Initial release! 🎉

Homepage screenshot
May 21, 2026, 04:14 PM UTC · 16m 10s
↑5.5M ↓47.1K · 5.5M total tokens · $18.83
A11y: 37%SEO: 92%Img: N/AContent: N/ACND: N/A
Homepage screenshot
May 21, 2026, 03:53 PM UTC · 33m 49s
↑13.3M ↓93.5K · 13.4M total tokens · $45.23
A11y: 37%SEO: 0%Img: N/AContent: N/ACND: N/A
Homepage screenshot
May 21, 2026, 02:59 PM UTC · 34m 31s
↑9.9M ↓96.1K · 10.0M total tokens · $34.05
A11y: 37%SEO: 91%Img: N/AContent: N/ACND: N/A
Homepage screenshot
May 21, 2026, 01:11 PM UTC · 18m 59s
↑9.7M ↓51.5K · 9.8M total tokens · $32.75
A11y: 47%SEO: 82%Img: N/AContent: N/ACND: N/A