text-deontic-extract/module.yaml
flemming-it c1af09c07f
All checks were successful
CI / Linux x86_64 (Forgejo) (push) Successful in 1m41s
fix(naming): dash capability ID (chain catalog charset [a-z0-9-])
provides.capability _ -> - so it passes `chain validate` and the hub
store name-match. No behaviour change (capability validation is lint-only;
the WASM is unchanged).

Signed-off-by: flemming-it <sf@flemming.it>
2026-06-20 00:12:05 +02:00

40 lines
1.2 KiB
YAML

schema_version: 3
provider: chain
name: text-deontic-extract
version: 0.1.0
# Extracts atomic deontic statements (Pflicht / Verbot /
# Erlaubnis) from a normalised norm. Reuse-lens: useful far
# beyond law — contracts, ISO standards, internal policies.
#
# v0.1.0 ships a regex pattern list for German legal text
# (must / hat zu / ist verpflichtet / darf nicht / kann). Hybrid
# LLM-assist happens in the FLOW via a separate llm.chat step
# that this module's output feeds. Keeping LLM out of the module
# preserves determinism + tier markings.
#
# Vorbild: Mercatus QuantGov / RegData (US).
provides:
- capability: text.deontic-extract
version: 0.1.0
inputs:
norm:
type: json
description:
en: NormalizedNorm (output of text.akoma_normalize).
de: NormalizedNorm (Output von text.akoma_normalize).
outputs:
duties:
type: json
description:
en: |
JSON-encoded { duties: [Duty], confidence: 0..1 }.
Each Duty: { modality, addressee, action, frequency,
source_norm, confidence }. Low confidence (<0.6) flags
an LLM-assist round; the surrounding flow handles it.
de: |
JSON-codiertes { duties: [Duty], confidence: 0..1 }.
permissions: []