AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Camunda Dmn

skill-camunda-skills-camunda-dmn · by camunda

|

No reviews yet
0 installs
39 views
0.0% view→install

Install

$ agentstack add skill-camunda-skills-camunda-dmn

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-camunda-skills-camunda-dmn)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Camunda Dmn? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Camunda DMN

Author executable DMN 1.3 decisions for Camunda 8.8+. A .dmn file holds one Decision Requirements Diagram with one or more decisions; each decision is either a decision table or a literal expression. A BPMN business rule task references a decision by ID and gets the result back as a process variable.

Cross-References

  • camunda-bpmn: Business rule task wiring (``)
  • camunda-feel: FEEL syntax inside input expressions, output entries, literal expressions
  • camunda-process-test: Preferred behaviour validation — CPT exercises the decision via the calling BPMN
  • camunda-process-mgmt: Fallback behaviour validation — deploy and run on a cluster (prefer local c8run)

Authoring

A DMN file declares the DMN 1.3 namespace and wraps one or more `` elements:


  
    
      
    
  

The default namespace and the namespace="http://camunda.org/schema/1.0/dmn" attribute are mandatory.

A decision contains either a ` (inputs / outputs / rules + hit policy) or a (single FEEL expression — useful for combining upstream decisions). Multi-decision files link decisions with `; Camunda evaluates only the root decision referenced from BPMN and pulls in required decisions transparently.

See [references/decision-tables.md](references/decision-tables.md) for the full XML of input/output clauses, unary-test grammar, worked examples per hit policy, COLLECT aggregators, type table, and DRG linking.

ID and naming rules

  • Decision id, output name, decision-table column names: alphanumeric + _ only. No whitespace, no - (which is a FEEL operator), no other special characters. A violation silently breaks BPMN references — the resolved value is null at runtime.
  • name attributes (Decision, InputData, BusinessKnowledgeModel, KnowledgeSource, DecisionService): any string. dmnlint flags missing name — set one even when id already conveys intent.
  • String output entries must be quoted. "HIGH" is a string literal; bare HIGH parses as a variable reference and evaluates to null — no parse error, no lint warning.

Hit policies (Camunda-supported set)

Set on the decisionTable element (default UNIQUE). Camunda 8 supports five; the DMN spec defines more — PRIORITY and OUTPUT ORDER are not supported.

| Hit policy | Result | Behaviour | |---|---|---| | UNIQUE | single | Exactly one rule must match; multi-match = runtime error. | | ANY | single | Multiple may match, must all produce the same output; otherwise runtime error. | | FIRST | single | Top-to-bottom; first match wins. | | RULE ORDER | list | All matching rules' outputs, in rule order. | | COLLECT | list / scalar | All matches in arbitrary order. With aggregation="SUM" \| "MIN" \| "MAX" \| "COUNT", collapses to a single value. |

Default to UNIQUE. Use FIRST for hard-then-soft semantics (e.g. "blocklist first, then accept rules"). Use COLLECT when a list output is genuinely the goal. See [references/decision-tables.md](references/decision-tables.md) for worked examples per policy.

Wiring the BPMN side


  
    
  

decisionId matches the DMN decision id. resultVariable receives the result — single-result for UNIQUE/ANY/FIRST, list for RULE ORDER/COLLECT (or scalar with aggregator).

resultVariable overwrites. If the name matches an existing input variable, the input is clobbered — pick a distinct name (e.g. discountPercent not customer) so downstream activities can still read the input.

` also accepts bindingTypelatest (default), deployment, versionTag. See **camunda-bpmn** for the binding-type table; deployment` is the right choice when BPMN and DMN are co-deployed.

FEEL inside DMN

DMN uses FEEL in inputExpression, inputEntry (unary tests), outputEntry, and literalExpression. Unlike BPMN, no = prefix — every text element is parsed as FEEL.

Input entries use the unary tests subset: the input value is implicit, ` .dmnlintrc npx --yes dmnlint path/to/decision.dmn


Common rules: `label-required` (add a `name`), `no-duplicate-requirements` (drop the duplicate `informationRequirement` edge). See [references/dmnlint.md](references/dmnlint.md) for the full rule → fix mapping.

**2. Behaviour validation by execution.** `dmnlint` does not understand FEEL, hit-policy correctness, or type matches. Run the decision:

- Preferred — write or extend a CPT scenario that exercises each `UNIQUE` partition / `FIRST` cascade / `COLLECT` path. See **camunda-process-test**.
- Fallback — deploy `c8ctl deploy decision.dmn process.bpmn --profile=local` and start an instance with `c8ctl await pi --id MyProcess --variables '{...}' --profile=local`. Incidents surface as `EXTRACT_VALUE_ERROR` (FEEL problem) or `DECISION_EVALUATION_FAILED` (hit-policy violation). See **camunda-process-mgmt**.

A green BPMN-completes test only proves the decision didn't fail — not that the right rules fired. For *behavioural correctness* assertions (`assertThatDecision`, rule-ordinal matching per hit policy, DRG coverage), see [references/testing-decisions.md](references/testing-decisions.md).

## References

- [decision-tables.md](references/decision-tables.md) — input/output clause shapes, unary-test forms, worked examples per hit policy, decision-level `` rules, type table, pitfalls
- [feel-in-dmn.md](references/feel-in-dmn.md) — FEEL contexts in DMN, unary-tests vs full FEEL, scope across linked decisions
- [dmnlint.md](references/dmnlint.md) — `dmnlint:recommended` rules, rule → fix mapping, common pitfalls beyond what the linter catches
- [testing-decisions.md](references/testing-decisions.md) — `assertThatDecision`, rule-ordinal matching, strategy by hit policy, DRG coverage, mock-vs-test

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [camunda](https://github.com/camunda)
- **Source:** [camunda/skills](https://github.com/camunda/skills)
- **License:** Apache-2.0
- **Homepage:** https://camunda.com

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.