Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Author and validate decision models from PNS decision points using DMN-aligned rule tables. Use this skill when the PNS contains three or more gateway decision points that warrant a structured decision table; when the user asks to document business rules as decision logic, build a DMN table, or make decision criteria explicit. This is a recommended extension skill triggered automatically when visual-process-modeling identifies three or more gateways. Produces a decision-model YAML and a human-re
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | -50% | 0% |
| case-05 | ✗→✓ | ▲ Improved | -9% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 70% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 115% | 0% |
OverKill Hill P³ · overkillhill.com · github.com/OKHP3
Transform PNS decision_points into structured DMN-aligned decision models. Each decision point becomes a decision table with explicit input conditions, output values, and the business rule governing the routing logic.
decision_points[] sectionbusiness_rules[] insteadEach decision table entry has:
| Field | Description | |---|---| | decision_id | Stable identifier matching pns.decision_points[].id | | decision_name | Human-readable label | | activity_id | The PNS activity where this decision occurs | | hit_policy | U (Unique) \| F (First) \| A (Any) \| C (Collect) | | inputs[] | Each input: name, type (string\|number\|boolean), values[] | | outputs[] | Each output: name, type, values[] | | rules[] | Each rule: id, conditions{}, output{}, annotation |
Read pns.decision_points[] and group by the activity_id where they occur.
For each decision:
criteria)outcomes[].label)| Situation | Hit policy | |---|---| | Exactly one rule fires per input combination | U (Unique) | | Rules are ordered; first match wins | F (First) | | Multiple rules can fire but give the same output | A (Any) | | Multiple rules can fire and outputs are aggregated | C (Collect) |
For each combination of input values, specify the output. Mark any unhandled combination as FAIL — do not silently default.
Every decision_id must match a pns.decision_points[].id. Every output value must match a pns.decision_points[].outcomes[].label.
markdown## Decision: Approve PO Request (gw-001) Hit policy: **U** (Unique) | Amount | Requester Level | → Outcome | |---|---|---| | ≤ 1000 | any | Auto-approve | | > 1000 | manager | Manual review | | > 1000 | staff | Escalate to Director | | > 10000 | any | Board approval required |
Pass decision-model.yaml and dmn-table.md to publication-and-handoff-packaging for bundle assembly.
Use decision_id values as gateway label annotations in the bpmn-beta.mmd diagram.
Load on demand:
references/dmn-modeling-rules.md — hit policy selection rules, input/output type definitions, and traceability requirementsscripts/validate-decision-model.mjs — validates decision model structure, hit policy completeness, and PNS traceabilityassets/fixtures/decision-model-example.yaml — canonical decision model for purchase-approval gateway logicBuilt by Jamie Hill · OverKill Hill P³ Published at github.com/OKHP3 Part of the OKHP3/skillz Agent Skill library. MIT License -- free to use, fork, and adapt. A nod to the source is appreciated.
Other measured skills in the registry, with their headline benchmark lift.