---
title: "Gaps, owners and acceptance"
manual: "LLM Foundation"
version: "main"
permalink: "https://docs.typo3.org/permalink/netresearch/nr-llm:responsible-ai-gaps@main"
source: "ResponsibleAi/Gaps.rst"
rendered: "2026-11-12T15:41:35+00:00"
---

# Gaps, owners and acceptance {#responsible-ai-gaps}

This register distinguishes code defects, integration work and missing
operating evidence. **P1** means address before relying on the affected claim;
**P2** means planned improvement or application qualification. A P2 item becomes
P1 when the application promises that property or its assessed risk requires
it. Roles must be assigned to named owners in a deployment.

The two implementation defects below were identified by source inspection at
0.43.20. Their corrections are implemented with the accompanying ADRs. They
do not close the independent integration and operating work.

## RAI-01: apply the privacy of attempted providers {#responsible-ai-rai01}

**P1 / implementation / nr-llm maintainers.** At the assessment baseline,
`RunPrivacyLevelResolver::forRun()` joins the configuration's fixed model;
criteria selection and fallback can execute another provider. A returned
generator identity misses failed attempts that already received the request.
An explicit provider/task `metadata` rule must also be distinguishable from
the global default, which allows an encrypted background answer.

**Correction:** [ADR-270](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-270@main). Tighten durable run policy before
dispatch to an actual provider, include failed attempts, filter earlier audit
content and prevent later writers or resumed segments from loosening it.
Keep background-answer policy distinct from ordinary audit content.
Persisted calls bypass provider-response replay; envelope rotation cannot
restore a concurrently removed answer.

**Acceptance:** functional tests inspect stored event payloads and background
answers across criteria selection, fallback, failure, resume, explicit
metadata, stricter configuration and stale writes. Failure to enforce storage
policy prevents dispatch. Historical reads and backups cannot be erased by a
later tightening; operational resume/session data has separate retention.

## RAI-02: compare the same completion benchmark {#responsible-ai-rai02}

**P1 / implementation / nr-llm maintainers.** A `GoldenPromptSet`
identifier alone does not identify its content. Changing prompts, references,
assertions or effective evaluation settings could silently change a baseline
or the quality evidence used to route calls.

**Correction:** [ADR-271](https://docs.typo3.org/permalink/netresearch/nr-llm:adr-271@main). Record a versioned benchmark
fingerprint separately from verified serving-generator identity. Baselines
and routing select a comparable revision. Historical rows without proof
remain readable but are not assigned invented identity.
The final adapter-bound request is included. Decision/custom grading without
effective judge-request evidence remains unknown; its scores remain in history.

**Acceptance:** tests mutate each relevant input, check persisted fingerprints
and exact baseline/routing selection, and reject unknown/mixed generators or
incompatible graders. A valid score of zero remains distinct from no evidence.
The [evaluation guide](https://docs.typo3.org/permalink/netresearch/nr-llm:developer-quality-evaluation@main) records migration
and the limits of declared settings and remote-model reproducibility.

## RAI-03: demonstrate retention across copies {#responsible-ai-rai03}

**P1 for a deletion promise; otherwise P2 / operating evidence / operator.**
`PurgePrivacyDataCommand` invokes category repositories. Sessions,
suspended/queued execution data and background answers are not all equivalent
to audit logs. Cache TTLs and the usage ledger have different rules.

**Delivered:** the inventory and evidence procedure in
[Retention and deletion](https://docs.typo3.org/permalink/netresearch/nr-llm:responsible-ai-retention-evidence@main). **Open:** run that procedure against
the installation, its cache backend, indexes, backups and provider contracts.

**Acceptance:** synthetic markers disappear from every in-scope store after
the declared interval; exclusions have a purpose, owner and expiry; logs prove
scheduled execution and failures alert an owner. Test restoration so a backup
does not silently reintroduce expired data. Do not call a row-delete test a
universal erasure proof.

## RAI-04: distinguish a source from a supported claim {#responsible-ai-rai04}

**P2; P1 when verified sources are promised / integration / application team.**
`EvidenceSource` and `SourceReference` already represent retrieval
sources. Generic completion does not promise validated citations. Adding a
universal citation DTO without a concrete consumer would not validate claims.

**Delivered:** a source-validation procedure in
[Source presentation](https://docs.typo3.org/permalink/netresearch/nr-llm:responsible-ai-source-evidence@main). **Open:** integrate it in the consuming
search or publishing application; add a shared contract only when its
consumer and validation semantics are specified.

**Acceptance:** fabricated, missing, stale and inaccessible sources are
distinguished from validated support. Test that a real URL with an unrelated
passage does not count as support and that display cannot bypass access rules.
Keep retrieved, claim-checked and human-reviewed states separate.

## RAI-05: qualify the actual application {#responsible-ai-rai05}

**P2; P1 for consequential uses / evaluation evidence / application team.**
`BuiltinGoldenPromptSetProvider` is explicitly a smoke set. It proves
neither representative quality nor fairness or accessibility.

**Delivered:** [Application evaluation](https://docs.typo3.org/permalink/netresearch/nr-llm:responsible-ai-application-evaluation@main) with a runnable
synthetic pattern and risk-linked human checks. **Open:** domain-specific
cases, relevant languages/groups, independent reference judgments and measured
results. No live-provider quality evaluation was performed for this inventory.

**Acceptance:** version the dataset, configuration, grader and thresholds;
report per-category results, sample counts and failures; include human review,
affected-person feedback and an appropriate simpler/non-AI comparison. Recheck
after provider/model, prompt, retrieval or workflow changes.

## RAI-06: inventory all outgoing payloads {#responsible-ai-rai06}

**P1 for a comprehensive egress-protection claim / coverage and integration /
nr-llm maintainers and application team.**
`InputGuardrailScreener` screens supported text, while
`InputContextClassifier` folds declarations for configured context.
Neither establishes automatic classification of arbitrary user input, image
pixels, audio, embedding input or opaque provider payloads.

**Delivered:** [Outgoing data and recipient evidence](https://docs.typo3.org/permalink/netresearch/nr-llm:responsible-ai-egress@main) identifies these boundaries.
**Open:** instrument the application's actual transports and close whichever
gaps its data policy forbids. Do not silently rewrite embedding input and
declare semantic quality unchanged; assess the effect on indexing/retrieval.

**Acceptance:** a synthetic-marker transport test covers ordinary, streaming,
fallback, tool, retrieval, embedding, multimodal and specialised-service paths
that the deployment enables. Every payload has a recipient and an explicit
admit, transform or reject rule; unknown paths invalidate a universal claim.

## RAI-07: substantiate local and regional processing {#responsible-ai-rai07}

**P1 when locality is promised; otherwise P2 / provider and operating evidence
/ operator.** A `TrustZone` declaration is a routing input, not a network
measurement or contract. A local primary with an external fallback is not an
entirely local chain.

**Delivered:** [Outgoing data and recipient evidence](https://docs.typo3.org/permalink/netresearch/nr-llm:responsible-ai-egress@main) records actual recipients and
fallbacks. **Open:** endpoint/subprocessor and processing-location evidence,
deployment topology, network restrictions, and the model/dataset licence
inventory. The same applies to translators, embedding/reranking services,
grading models and tool servers.

**Acceptance:** exercise failover and observe recipients; verify contractual
claims and all dependencies; record change review for endpoints and fallbacks.
Do not equate an EU endpoint, self-hosting and open-source model licensing.

## RAI-08: carry origin information into publication {#responsible-ai-rai08}

**P2; P1 where disclosure applies / integration / application and editorial
teams.** `tx_nrllm_ai_written` and `AfterAiRecordWrittenEvent` already
exist. A stored field alone is neither a visitor notice nor portable marking
of every media output.

**Delivered:** the existing template example is linked into the end-to-end
procedure in [From AI write to published notice](https://docs.typo3.org/permalink/netresearch/nr-llm:responsible-ai-disclosure-evidence@main). **Open:** run it in
the actual site, including translations, workspaces, publication and caches.

**Acceptance:** applicable notices reach users accessibly at the required
point; unsupported tables/media and old content have a stated policy. Test
human edits, cleared marks, copies and exports. Assess Article 50 duties and
exceptions separately; do not treat every AI-assisted text identically.

## RAI-09: qualify export and provider substitution {#responsible-ai-rai09}

**P2 / bounded inspection and migration evidence / application team.**
The [portability inventory](https://docs.typo3.org/permalink/netresearch/nr-llm:responsible-ai-portability@main) identifies
billing export and preset import without inventing a universal export API.

**Delivered:** source inventory and migration scope. **Open:** a supported
non-PII round trip for the chosen application state, provider substitution and
vault-reference rebinding. **Acceptance:** document included/excluded entities,
versions, references and permissions; demonstrate reimport and representative
behavior at the destination. Do not export secrets to satisfy portability.

## RAI-10: explain what a governance-profile match means {#responsible-ai-rai10}

**P2 / product explanation / nr-llm maintainers.**
`GovernanceProfileEvaluator::deviations()` compares described settings;
it does not inspect contracts, physical location or the whole application.

**Delivered:** explicit English/German backend wording and this assessment.
**Acceptance:** matching and deviating views explain the bounded comparison;
existing runtime resolvers remain authoritative. Profile names and a green
match do not imply certification, DPG recognition or legal compliance.
