Skip to content

Latest commit

 

History

History
83 lines (66 loc) · 14.2 KB

File metadata and controls

83 lines (66 loc) · 14.2 KB

Capability, coverage, and claim map

Generated by scripts/capability_map.py; CI checks freshness. Use the JSON companion for agent consumption.

Result contract

  • Canonical promise: A legal result means only that the query's named checked scope passed. It is not a claim of global or complete legality.
  • Authority: srdcheck reports an advisory SRD-derived rule_result. The authorized DM, whether human or agent, owns table_decision; recording one never rewrites the rule result or implies state mutation.
  • Prose: The why field is explanatory and non-contractual. Consumers obtain the verdict schema identity from --schema, MCP outputSchema, or capabilities, then branch on verdict, exit_code, coverage_level, checked_scope, unchecked_scope, assumptions, facts, rule_result, table_decision, state_mutation, rule_ids, citations, and structured data instead of parsing why.
  • Vision: Target capabilities are labeled target and are never advertised as executable tools.

Exit-2 recovery contract

Machine metadata lives in data; agents branch on it instead of parsing why. An authorized agent-DM may resolve a DM-authority table ruling directly.

reason recoverability default next action authority
invalid-input retry repair-request
missing-fact retry provide-facts
unsupported-content alternate-path select-adapter
unmodeled-rule alternate-path use-other-capability
rules-ambiguous authority resolve-table-ruling dm
gm-discretion authority resolve-table-ruling dm
stale-state conflict reconcile-state

Privacy-safe observability contract

srdcheck.observability/1.0 is out-of-band, disabled by default, and metadata-only.

Release identity

Engine 0.9.0; verdict schema 4.0; compatibility N/N-1 over 0.9, 0.8.

adapter adapter version data version rules version digest
srd-5.1 0.1.0 0.1.0 0.0.0 39e4a7891480…
srd-5.2.1 0.2.1 0.2.1 0.2.1 fc9f0ccaa099…
toy-tictactoe 0.1.0 0.1.0 0.1.0 45746ba2683f…

Shipped, executable today

A legal result below means only that the named checked scope passed.

tool capability checked scope explicitly unchecked evidence
jurisdiction Check whether a name occurs in a loaded adapter registry and report every matching content category. registry membership; all matching registry categories mechanical legality; whether an unknown name is a typo, homebrew, or third-party content tests/test_kernel.py::test_jurisdiction_known_content; tests/test_kernel.py::test_jurisdiction_unknown_content; tests/test_kernel.py::test_jurisdiction_returns_all_categories_for_colliding_name
turn_plan Check a proposed turn against the modeled action-economy and movement budgets. action, bonus-action, reaction, interaction, movement, and spell-slot-per-turn budgets; modeled condition effects on those budgets whether a feature grants an action; targets, ranges, line of sight, cover, inventory, and bespoke feature prerequisites tests/test_turn_economy.py::test_two_bonus_actions_illegal; tests/test_enumeration.py::test_t5_consistency_sweep
turn_options Enumerate remaining modeled action-economy option kinds. remaining budget option kinds; movement remaining and modeled stand/crawl costs every legal creature action; feature-specific actions, targets, geometry, and tactics tests/test_enumeration.py::test_t5_consistency_sweep
reaction_available Check whether the modeled reaction budget is available. reaction spent since turn start; Incapacitated and the Stunned, Paralyzed, Petrified, and Unconscious definitional embeds whether a proposed trigger occurred; target and range legality tests/test_turn_economy.py::test_reaction_available_honors_incapacitated_and_embeds; tests/test_turn_economy.py::test_reaction_available_refuses_unknown_and_non_condition_names
roll_compose Compose caller-supplied Advantage and Disadvantage sources. cancellation and non-stacking of supplied sources; reroll-one-die note discovering sources from narrative or character state; rolling dice tests/test_roll_modifiers.py::test_two_adv_one_dis_is_straight; tests/test_roll_modifiers.py::test_stacked_advantage_still_two_dice
attack_modifiers Compose modeled attack modifiers from structured combatant facts. documented condition modifiers; Prone distance behavior; condition-sensitive fact dependencies and category gates; ranged attacks in close combat with Incapacitated embeds cover and line-of-sight geometry not supplied as facts; weapon or feature prerequisites tests/test_condition_fact_dependencies.py::test_attack_condition_fact_matrices; tests/test_condition_fact_dependencies.py::test_ranged_enemy_dependency_claim_evidence; tests/test_condition_fact_dependencies.py::test_condition_category_gate_claim_evidence; tests/test_condition_fact_dependencies.py::test_transport_parity_claim_evidence
mage_hand_use Check one proposed Mage Hand use against its modeled grants, prohibitions, weight, and range. listed uses and prohibitions; 10-pound limit; 30-foot range for the proposal fine-manipulation ambiguity; duration or range trigger tracking across events; narrative consequences tests/test_kernel.py::test_mage_hand_demo_goldens
event_apply Evaluate one supported event into a precondition-bound, idempotent transition proposal. declared event validation and supported state transitions; full state-precondition and deterministic result hashes; stable transition identity and rule/ruling lineage persisting state; generating events; advancing time autonomously; geometry; bespoke spell effects tests/test_ledger.py::test_lineage_chain_and_tamper_detection; tests/test_state_precondition_commits.py::test_proposals_and_result_hashes_are_deterministic_and_input_bound
transition_commit Verify a state-bound transition for an atomic caller-owned commit or idempotent retry. state compare-and-swap precondition; deterministic proposal integrity; idempotent committed-result replay; typed stale-state conflicts server-side persistence; choosing event order; distributed locking; Discord delivery guarantees tests/test_state_precondition_commits.py::test_commit_is_idempotent_without_server_side_state; tests/test_state_precondition_commits.py::test_concurrent_and_out_of_order_discord_events_conflict_then_reconcile; tests/test_state_precondition_commits.py::test_tampered_proposal_and_false_retry_fail_closed
creature_valid Classify whether a name is a registered SRD 5.2.1 creature. creature registry membership; source citation for a match creature action legality; third-party content; typo diagnosis tests/test_creature_queries.py::test_valid_creature_is_legal_and_cited
creature_stats Return registered Challenge Rating and XP facts for a creature. name, Challenge Rating, XP, and source citation stat-block actions and traits; encounter or turn legality tests/test_creature_queries.py::test_stats_returns_cr_xp_citation
encounter_xp_budget Compute the SRD encounter XP budget from supplied level, difficulty, and party size. per-character and total XP budget arithmetic encounter suitability; monster tactics; party composition beyond size and level tests/test_encounter_budget.py::test_issue_example; tests/test_encounter_budget.py::test_cited
save_check Compose or resolve a saving throw from caller-supplied facts and roll. DC comparison; modeled condition modifiers and auto-fails; supplied d20 and modifiers rolling dice; deriving sheet modifiers; effects of success or failure tests/test_combat_resolution.py::test_save_meets_or_exceeds_dc; tests/test_combat_resolution.py::test_paralyzed_petrified_stunned_unconscious_auto_fail_str_dex
check_make Compose or resolve an ability check from caller-supplied facts and roll. DC comparison; modeled condition and social modifiers; condition-sensitive fact dependencies and category gates; supplied d20 and modifiers rolling dice; choosing a DC; deriving modifiers; narrative outcome tests/test_condition_fact_dependencies.py::test_check_condition_fact_matrices; tests/test_condition_fact_dependencies.py::test_condition_category_gate_claim_evidence; tests/test_condition_fact_dependencies.py::test_transport_parity_claim_evidence
concentration_check Compute and optionally resolve the concentration save caused by supplied damage. damage-derived DC; supplied Constitution modifier and d20 result tracking concentration over time; detecting damage events; rolling dice tests/test_combat_resolution.py::test_concentration_dc_is_half_damage_floor_10_cap_30; tests/test_combat_resolution.py::test_concentration_resolves_when_roll_supplied
opportunity_attack_provoked Check provocation from caller-supplied movement and visibility facts. supplied movement kind; supplied reach-exit and visibility facts on a potentially provoking voluntary path; Disengage, teleportation, and forced-movement exceptions facts the caller omitted; computing geometry or reach exit; reaction availability; attack resolution tests/test_opportunity_attack.py::test_voluntary_movement_by_a_seen_creature_provokes; tests/test_opportunity_attack.py::test_disengage_teleport_and_forced_movement_do_not_provoke; tests/test_opportunity_attack.py::test_missing_positive_prerequisites_refuse_instead_of_defaulting_true
grapple_initiate Check Grapple or Shove initiation and compose its save DC formula. caller-supplied attacker and target sizes; caller-supplied free-hand fact for Grapple; save DC formula and supplied formula blanks prerequisite facts the caller omitted; escape contests; reach geometry; rolling or resolving the target save tests/test_grapple.py::test_target_more_than_one_size_larger_is_impossible; tests/test_grapple.py::test_grapple_requires_a_free_hand; tests/test_grapple.py::test_missing_prerequisite_facts_refuse_instead_of_defaulting_medium_or_free; tests/test_formula_blanks.py::TestGrappleBlanks::test_no_blanks_yields_formula_never_a_number
passive_perception Compute Passive Perception from a supplied modifier. 10 plus supplied Wisdom (Perception) modifier; refusal of the non-SRD plus-or-minus-five convention deriving the modifier; Hide contests; line of sight and lighting tests/test_passive_perception.py::test_score_is_10_plus_modifier; tests/test_passive_perception.py::test_advantage_disadvantage_are_refused_as_non_srd
help_assist Check modeled prerequisites for the Help action. caller-supplied ability-check proficiency fact; caller-supplied attack-assist five-foot fact; Advantage grant facts the caller omitted; whether assistance is fictionally possible; geometry discovery; the authorized DM's table ruling tests/test_help_action.py::test_assist_ability_check_needs_the_relevant_proficiency; tests/test_help_action.py::test_assist_attack_roll_needs_an_enemy_within_5ft
spell_facts Return registered casting-time, range, component, duration, and concentration facts. registered spell facts; fixed-duration expiry arithmetic on a caller clock spell effects; whether casting is legal; slots, targets, and stateful expiry triggers tests/test_spell_facts.py::test_ward_regression; tests/test_spell_facts.py::test_mage_hand_not_concentration
feature_uses Return the modeled use-count formula for the closed feature set. Divine Sense and Lay on Hands formulas; arithmetic when all blanks are supplied other features; tables; whether a use remains in campaign state tests/test_spell_facts.py::test_divine_sense_blanks; tests/test_spell_facts.py::test_lay_on_hands_blanks
ttt_move Check one move against the bundled tutorial ruleset. board shape, turn order, cell occupancy, and terminal state strategy; choosing a move tests/test_toy_adapter.py::test_move_legality
ttt_options Enumerate legal cells under the bundled tutorial ruleset. legal empty cells for the current player strategy; ranking options tests/test_toy_adapter.py::test_enumerate_validate_consistency
table_evaluation Project one native rules query into table.evaluation/1.0 with machine-readable scope, caller references, and portable evidence. deterministic projection of one named query; self-attested coverage and exact finding evidence; caller-owned session, entity, and correlation references global action or table legality; table, encounter-state, or execution authority; protected-host attestation tests/test_table_evaluation.py; tests/test_mcp.py::test_table_evaluation_tool_is_opt_in_scoped_and_joinable; scripts/cold_artifact_smoke.py

Target architecture — not shipped

These entries are roadmap intent, not executable capability claims.

target intended capability current truth
batched-turn-orchestration Adjudicate a natural-language, multi-rule turn in one call. Current tools accept structured, capability-specific calls; the caller parses intent and orchestrates them.
creature-action-enumeration Enumerate every legal move for a creature from its full features and scene state. turn.options enumerates modeled budget kinds, not creature-specific actions, targets, or tactics.
spatial-geometry-cover-light Derive line of sight, lighting, cover, reach, and legal destinations from a map. Current checks consume relevant geometry facts supplied by a caller or another rail.
hide-lifecycle Adjudicate Hide preconditions, legal locations, and its future end triggers. Current tools can resolve a caller-structured check and Passive Perception but do not implement Hide or its lifecycle.
jump-distance Adjudicate and enumerate jump destinations. No shipped query models jumping.
duration-trigger-tracking Arm and resolve spell, condition, and feature triggers across future events. spell.facts reports durations and event.apply folds only its declared event set; neither autonomously tracks future triggers.
character-build-legality Validate level-up and character-build prerequisites. No shipped query adjudicates builds or stamps level-ups.