Install any skill in seconds. Free to start, no credit card required.
Get Started Free →camunda/engine-expert
Use when implementing, fixing, or reviewing Zeebe engine code in zeebe/engine/ — BPMN process execution, DMN decision evaluation, job lifecycle, user/identity management, batch operations, variables, deployments, signals, messages, timers, multi-tenancy, or authorization. Also when modifying or reviewing processors, event appliers, state classes, record value types, intents, or engine tests.
Passed 20 of 23 test cases with the skill, and 6 of 23 without it.
and 16 more in the full report
14 fixed6 passed either way3 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 14 test cases the skill fixed. Same model, same prompt, with and without the skill.
I modified a Java class in zeebe/engine and need to clean up code formatting and license headers before creating a pull request. What exact Maven command should I run?
| Checked | Without skill | With skill |
|---|---|---|
| Specifies running ./mvnw license:format spotless:apply -T1C for code formatting and license header checks. | Missed | Passed |
The instructions your model reads when the skill loads.
Reference for making changes to the Zeebe workflow engine with confidence. The engine processes thousands of commands per second on a single thread, state is rebuilt from the log on every restart, and partitions communicate over an unreliable network. Mistakes here cause leader/follower divergence, upgrade-path breakage, or production performance regressions. This skill exists to prevent the well-known classes of mistake.
These are summaries. The reference files (linked below) are authoritative — they carry the rationale, exceptions, and worked examples.
Mutable*State interface or anything transitively called from an applier — must not change in logic. Add a new version/method instead. Cosmetic changes (formatting, imports, comments, behavior-equivalent renames) are fine. No golden file protects state class methods — extra care required.event-appliers.md.ColumnFamily.get(...) / state reads are backed by a shared, mutable buffer reused on the next read of the same column family. Never cache them or hold them across another read — copyFrom(...) if you need to keep the value, or use get(key, valueSupplier) to allocate a fresh instance.StackOverflowError would ban the executing instance. Bound recursion or use iteration/trampolining.| If you are… | Read |
|---|---|
Designing or extending a record value type, intent, or ValueType | records.md |
| Editing or creating a processor, behavior class, validation, or rejection | processors.md |
Editing or creating an event applier, a Mutable*State interface method, or anything called from an applier | event-appliers.md |
| Writing or modifying engine tests | testing.md |
| Working with authorization resource types or permission types (which enum to use in which layer) | authz-enums.md |
Run only the tests relevant to your change — running the full engine test suite locally takes a long time and is what CI is for.
# 1. Format (mandatory before commit when touching Java/markdown/pom.xml).
./mvnw license:format spotless:apply -T1C
# 2. Tests scoped to your change (single class or small pattern). Use
# -Dtest=YourTest, comma-separated classes, or a glob like '*UserTest*'.
./mvnw verify -pl zeebe/engine \
test cases passed, vs 6 / 23 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.