From ef19a03cbf5b4804d7879d090631ad2b2840101b Mon Sep 17 00:00:00 2001 From: Eric Rakestraw Date: Sun, 9 Aug 2026 02:45:22 +0000 Subject: [PATCH] Reconcile remediation documentation --- docs/integrations/dnd-spell-catalog-overlays.md | 6 ++++++ docs/internal/dnd.md | 5 +++-- docs/internal/llm.md | 7 +++++-- docs/internal/pipeline.md | 5 +++-- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/docs/integrations/dnd-spell-catalog-overlays.md b/docs/integrations/dnd-spell-catalog-overlays.md index 3c36eb1..d3e8cac 100644 --- a/docs/integrations/dnd-spell-catalog-overlays.md +++ b/docs/integrations/dnd-spell-catalog-overlays.md @@ -67,6 +67,12 @@ including a collision with the embedded catalog. Matching uses the catalog’s case, whitespace, and apostrophe normalization, so authors should avoid names or aliases that normalize to another spell. +Spell extraction receives the effective catalog as deterministic canonical-name +and alias pairs. An alias in the transcript selects its associated canonical +name; the extractor is instructed to return that canonical spelling. The +projection contains no catalog source metadata or provenance, and aliases +remain recognition context rather than transcript evidence. + The overlay is a recognition aid only. The durable spell-artifact schema and source-evidence rules are defined by the [D&D spell artifact contract](dnd-spell-artifacts.md). diff --git a/docs/internal/dnd.md b/docs/internal/dnd.md index 43a9e91..950f164 100644 --- a/docs/internal/dnd.md +++ b/docs/internal/dnd.md @@ -89,8 +89,9 @@ complete-session `common-dnd-transcript-full.md`; extraction prompts consume the current-chunk `common-dnd-transcript-chunk.md`; and NPC, location, and item normalization consume `common-dnd-transcript-windows.md` alongside their candidate collections. Player, party, glossary, and compatible campaign -references provide disambiguating context, not evidence. Reference material is -canonically ordered before rendering so equivalent inputs remain stable. +references provide disambiguating context only when declared by the active +prompt; they never establish evidence. Reference material is canonically +ordered before rendering so equivalent inputs remain stable. Extraction prompts render the common system and identity messages first, then cached campaign references and the cached chunk transcript. Evidence policy and diff --git a/docs/internal/llm.md b/docs/internal/llm.md index 763dd29..1ff72ab 100644 --- a/docs/internal/llm.md +++ b/docs/internal/llm.md @@ -102,7 +102,8 @@ because it changes scheduling rather than execution semantics. Production construction creates one PromptKit client and wraps it in one scheduled client. The scheduler has a fixed, positive permit limit, serves queued calls in FIFO order, and removes a queued call when its context is -cancelled. A granted permit is released exactly once on every completion path. +cancelled. It rechecks the caller context after admission and before dispatch. +A granted permit is released exactly once on every completion path. The scheduled wrapper surrounds every `CompleteStructured` call, so concurrent lanes, pipeline retries, and LLM-backed validators share the same provider-call @@ -179,7 +180,9 @@ structured-output validation. The adapter reports an empty result, validation failure, empty structured body, or decode failure as `ErrInvalidStructuredOutput`, while retaining the returned raw bytes and debug material when they exist. Provider failures remain operational errors rather -than output-validation failures. +than output-validation failures. Apart from documented context, capacity, and +invalid-output categories, provider error values and types do not cross the +adapter error chain; callers receive only a credential-redacted diagnostic. When PromptKit rejects backend admission before generation, the adapter maps `promptkit.ErrCapacityExceeded` to diff --git a/docs/internal/pipeline.md b/docs/internal/pipeline.md index 2a3dda5..3c55969 100644 --- a/docs/internal/pipeline.md +++ b/docs/internal/pipeline.md @@ -46,8 +46,9 @@ External reference materialization happens before preparation. The materializer checks that each slot is declared by the selected module, resolves a file path relative to the correct configuration or working-directory origin, reads UTF-8 text, verifies media type and size limits, and retains bounded -provenance. A generated-artifact selector remains declared but has no bytes -until its producing step completes. +provenance. For a positive slot limit, it reads at most the limit plus one byte +and rejects overflow before retaining content. A generated-artifact selector +remains declared but has no bytes until its producing step completes. Preparation is the construction boundary. It validates the resolved shape and registry set, clones the resolved data, then constructs the input adapter,