Skip to content

Verdict YAML Reference

Field-level specification for verdict YAML definitions.

PropertyValue
File locationdiagnoses/diag_*.yaml
ID rulediagnosis_id must match filename (without .yaml)
Validatorpython3 scripts/diagnosischeck.py
Compilerpython3 scripts/diagnosiscompile.py
Compiler dry-runpython3 scripts/diagnosiscompile.py --check
FieldTypeRequiredValid values
diagnosis_idstringyesMust match filename
versionstringyesSemantic version (e.g. "1.0")
hypothesis_idstringyesMust reference an existing hypotheses/*.yaml
root_cause_categorystringyesSee Root Cause Categories
root_cause_idstringyesFreeform identifier for the specific root cause
conditionslistyesMin 1 entry; see Conditions Block
confidencedictyesSee Confidence Block
explanationdictyes{en, de, fr} tri-lingual text
recommendationdictyes{en, de, fr} tri-lingual text
created_atstringnoISO date
modified_atstringnoISO date
CategoryDescription
process_failureBroken or incomplete business process
system_failureIT system malfunction or integration gap
data_qualityStale, missing, or inconsistent master data
behavioralHuman behavior patterns (workarounds, skipped steps)
structuralOrganizational or contractual misalignment
externalExternal factors (supplier, regulatory)

Each entry in the conditions list:

FieldTypeRequiredDescription
probe_idstringyesMust reference an existing probes/*.yaml
fieldstringyesAggregate field from signal findings (e.g. finding_count, money_at_risk)
abovenumberyesNumeric threshold

Rules:

  • All conditions must be met (AND logic) for the verdict to fire.
  • All referenced probe_id values must have a corresponding YAML file in probes/.
  • The verdict only evaluates when its parent thesis has status confirmed.
FieldTypeRequiredValid values
basefloatyes0.0-1.0
boost_iflistnoSee below

Each boost_if entry:

FieldTypeRequiredValid values
probe_idstringyesMust reference an existing probes/*.yaml
fieldstringyesAggregate field from signal findings
abovenumberyesNumeric threshold
boostfloatyes0.0-0.3

Rules:

  • base + sum(all boosts) should not exceed 1.0.
  • Each individual boost must be between 0.0 and 0.3.

Each verdict produces one row per tenant in diagnosis_verdicts (only for confirmed theses where all conditions are met):

ColumnTypeDescription
diagnosis_idstringVerdict identifier
tenant_idstringTenant identifier
hypothesis_idstringParent thesis identifier
root_cause_categorystringCategory from the YAML
root_cause_idstringSpecific root cause identifier
confidencefloatbase + applicable boosts
finding_countintegerTotal findings across condition signals
money_at_risknumericSum of money_at_risk from condition signals
hypothesis_evidence_scorefloatEvidence score from the parent thesis
diagnosis_id: diag_billing_workflow_gap
version: "1.0"
hypothesis_id: hyp_unbilled_services
root_cause_category: process_failure
root_cause_id: billing_step_skipped
conditions:
- probe_id: probe_revenue_leakage
field: finding_count
above: 10
- probe_id: probe_billing_completeness
field: money_at_risk
above: 5000
confidence:
base: 0.6
boost_if:
- probe_id: probe_revenue_leakage
field: money_at_risk
above: 50000
boost: 0.2
explanation:
en: "A gap in the billing workflow causes services to be delivered without triggering an invoice."
de: "Eine Luecke im Verrechnungsprozess fuehrt dazu, dass Leistungen ohne Rechnungsstellung erbracht werden."
fr: "Une lacune dans le processus de facturation fait que des prestations sont fournies sans declenchement de facture."
recommendation:
en: "Implement a mandatory billing check before case closure in the ERP system."
de: "Einen obligatorischen Verrechnungscheck vor Fallabschluss im ERP-System einrichten."
fr: "Mettre en place un controle de facturation obligatoire avant la cloture du cas dans le systeme ERP."
jazzisnow jinflow is a jazzisnow product
v0.45.1 · built 2026-04-17 08:14 UTC