Daggerheart Content Expressibility

How the Daggerheart game system’s runtime primitives map to the reference content corpus (786 entries across abilities, items, adversaries, rules, etc.).

Coverage Summary

Status Count Notes
Covered 774 Expressible through existing primitives or classified as non-goal
Gap 9 Require new domain models (see Remaining Gaps below)
Not Applicable 3 Editorial/supporting content without mechanical requirements

Expressibility Model

Each reference entry’s mechanical effects are classified against the runtime command surface. An entry is covered when every detected effect maps to an existing primitive that the GM (or automation) can invoke.

Ability Effect Primitives

Domain card and class/subclass abilities are classified by the ability effect classifier (internal/tools/daggerheartaudit/ability_effect_classifier.go).

Effect Category Primitive Status
Damage AdversaryDamageApply, MultiTargetDamageApply Expressible
Condition ConditionChange Expressible
Roll modifier ApplyStatModifiers (trait targets) Expressible
Healing ApplyCharacterStatePatch Expressible
Resource grant ApplyCharacterStatePatch (hope, stress, armor) Expressible
Temporary buff ApplyCharacterStatePatch, ApplyStatModifiers Expressible
Stat override ApplyStatModifiers (derived + base traits) Expressible
Movement Non-goal (no positioning model)

Item / Consumable Effect Primitives

Items and consumables are classified by the item effect classifier (internal/tools/daggerheartaudit/item_effect_classifier.go).

Effect Category Primitive Status
HP restore ApplyCharacterStatePatch Expressible
Stress reduce ApplyCharacterStatePatch Expressible
Hope grant ApplyCharacterStatePatch Expressible
Damage AdversaryDamageApply, MultiTargetDamageApply Expressible
Condition ConditionChange Expressible
Stat modifier ApplyStatModifiers (base traits: strength, finesse, etc.) Expressible
Roll modifier ApplyStatModifiers (trait modifiers affect rolls) Expressible
Movement Non-goal
Weapon modifier Missing model
Equipment stat Missing model
Downtime Missing model

Adversary Expressibility

All 129 adversary entries are covered through the adversary content and session flow surfaces (spawn, attack, damage, defeat).

Remaining Gaps (9)

All remaining gaps are missing_model in the item-use-modeling epic (p3).

Downtime items (7)

These items reference crafting economy or downtime-move mechanics that have no runtime model.

Reference ID Item Effect
consumable-potion-of-stability Potion of Stability Choose one additional downtime move
item-minor-health-potion-recipe Minor Health Potion Recipe Craft a potion during downtime
item-minor-stamina-potion-recipe Minor Stamina Potion Recipe Craft a potion during downtime
item-mythic-dust-recipe Mythic Dust Recipe Craft during downtime
item-vial-of-darksmoke-recipe Vial of Darksmoke Recipe Craft during downtime (costs Stress)
item-paragon-s-chain Paragon’s Chain Downtime meditate + once/long-rest Hope Die swap
item-premium-bedroll Premium Bedroll Auto-clear 1 Stress during downtime

Why these are gaps: The system has rest commands (short/long) but no downtime-move model — no way to declare available downtime actions, track downtime move counts, or trigger crafting outcomes.

Weapon modifier items (2)

These items attach weapon features to existing weapons.

Reference ID Item Effect
item-bloodstone Bloodstone Attach to weapon → Brutal feature
item-greatstone Greatstone Attach to weapon → Powerful feature

Why these are gaps: Weapons exist as read-only content. There is no runtime mutation surface for attaching or removing weapon features.

Non-Goals

  • Movement/positioning: No spatial model exists and none is planned. Effects referencing teleport, fly, climb, etc. are classified as non-goal.
  • Automated item-effect pipelines: Item effects are GM-interpreted, not auto-triggered. UseConsumable decrements quantity; the GM separately invokes the appropriate primitive (stat modifier, damage, etc.).

Audit Tool

The audit workspace is generated by internal/tools/daggerheartaudit/:

go run ./internal/tools/daggerheartaudit generate   # regenerate workspace
go run ./internal/tools/daggerheartaudit check       # validate against corpus

Generated artifacts live in docs/reference/daggerheart-audit/:

File Contents
summary.json Aggregate counts by kind, audit area, and status
audit_matrix.json One row per reference entry with classification
epics.json Remediation epics synthesized from gap rows
inventory.json Normalized reference corpus index
rule_clauses.json Clause-level breakdown for rules/glossary/playbooks

Scenario Evidence

Key scenario tests that verify primitive consumption:

Scenario Verifies
stat_modifier_lifecycle.lua Add/remove/rest-clear lifecycle for stat modifiers
stat_modifier_evasion_consumption.lua Evasion modifiers affect adversary attack outcomes
stat_modifier_threshold_consumption.lua Threshold modifiers affect damage severity
stat_modifier_action_roll_consumption.lua Base-trait modifiers flow into action roll totals
stat_modifier_trait_stacking.lua Multiple trait modifiers stack and clear independently
condition_lifecycle.lua Condition add/remove/rest-clear lifecycle
damage_thresholds_example.lua Damage resolution with threshold calculation
rest_and_downtime.lua Rest clearing of temporary state