Record the agreed PromptKit configuration scope

This commit is contained in:
2026-10-03 17:49:14 +00:00
parent 79d38606fe
commit 1777821e8b

View File

@@ -2,8 +2,9 @@
**Last updated:** 2026-10-03
**Status:** Proposed. The configuration-source scope decision at the end of
this document should be resolved before preparing the implementation plan.
**Status:** Accepted target scope; ready for implementation planning. The
operator-directory scope decision has been resolved. Implementation has not
begun.
## Purpose and Baseline
@@ -54,8 +55,9 @@ own the upstream details.
main-file-relative `profiles_dir` resolution remain in place.
- Native profile `extends`, field-presence semantics, and source-relative
resource rules apply. Documents can contain multiple definitions, and IDs
come from mapping keys rather than filenames. Operator-directory scope is
subject to the open decision below.
come from mapping keys rather than filenames. The existing `profiles_dir`
accepts native unified PromptKit documents containing profiles, backends,
and prompts, including intentional operator prompt overrides.
- Application backend endpoints, configured concurrency and queue capacity,
and credential ownership remain authoritative for selected roles. Preserve
the existing profile-selection and prepared-target checks; do not introduce
@@ -100,10 +102,18 @@ registration, endpoint, capacity, or credential requirements. Catalog profile
contents may evolve; this upgrade does not promise fixed model choices or live
provider availability.
The proposed caller order is embedded Audita prompts, operator definitions,
then application backend settings. Whether operator definitions may include
prompts and backends is an open product decision; that order is a recommendation,
not authorization to add prompt overrides before the decision is resolved.
The accepted caller order is embedded Audita prompts, operator definitions,
then application backend settings. The existing `profiles_dir` accepts native
unified PromptKit documents containing profiles, backends, and prompts. Keep
the name and path setting for continuity, and document its broader accepted
content. This follows the upstream source API without a parallel parser or
top-level filtering. Profiles, provider defaults, and intentional prompt
overrides use the same native composition model.
Audita continues to ship its domain prompts, enforce its selected-backend
requirements, and supply its per-call schemas. Operator prompt overrides are
an accepted capability of this adoption; documentation, source accounting,
and focused behavioral coverage should reflect them.
## Work Required
@@ -127,10 +137,9 @@ Adapt source accounting to the new discovery/capture boundary. The existing
recording filesystem wrapper may be replaceable with discovered inputs or
upstream source metadata. Protect the host sources actually consumed by the
runtime, including inherited and differently named definitions, without
guessing filenames from selected profile IDs. If operator prompt resources are
approved, account for their consumed message files as well. Keep this
proportionate to the existing collision contract; do not add filesystem
concurrency or power-loss guarantees.
guessing filenames from selected profile IDs. Account for consumed operator
message files as well. Keep this proportionate to the existing collision
contract; do not add filesystem concurrency or power-loss guarantees.
Keep the existing safe effective-profile summaries and application explanations.
Use upstream metadata where useful, but do not expose the full
@@ -166,10 +175,12 @@ without requiring every maintained example to use it.
### Documentation, Migration, and Attribution
Update the profile section of `docs/config.md` and maintained examples when the
implementation lands. Explain keyed identities, composition versus precedence,
profile inheritance, presence, eager final-definition validation, selected-root
errors, and captured configuration. Link to the pinned upstream reference for
generic field semantics rather than reproducing its entire contract.
implementation lands. Explain the broader accepted content of `profiles_dir`,
operator prompt overrides and their precedence, keyed identities, composition
versus precedence, profile inheritance, presence, eager final-definition
validation, selected-root errors, and captured configuration. Link to the pinned
upstream reference for generic field semantics rather than reproducing its
entire contract.
Include operator migration guidance for old profile documents and behaviorally
significant zeros/nulls. This is a deliberate format migration, not an automatic
@@ -208,6 +219,9 @@ distinct risk. Completion means:
- Representative keyed profiles, native inheritance, and explicit presence work
through the real runtime. Directory conflicts and invalid final definitions
produce useful startup errors without filename-derived identity assumptions.
- Operator prompt and backend contributions follow the accepted source order;
prompt overrides render while Audita retains its per-call schemas and
authoritative application backend settings.
- Source collision protection, safe inspection, and operator-versus-asset error
classification remain effective at the changed construction boundary.
- Representative prepared execution, schema repair, transient retry, and
@@ -220,35 +234,4 @@ No live provider calls, new release gates, or CI-success dependency are needed
to establish adoption. Guided domain recovery and the other work recorded in
[future.md](future.md) remain separate features. Do not expand this upgrade into
new report formats, pipeline scheduling, or general configuration-inspection
commands. A staged implementation plan can be prepared after the decision below.
## Open Decisions
### Scope of the Operator Configuration Directory
**Recommendation:** Accept native unified PromptKit documents in the existing
`profiles_dir`, with embedded prompts below operator definitions and application
backend settings above them. Keep the name/path setting for continuity, while
documenting its broader accepted content. This follows the upstream source API
without a parallel parser or arbitrary top-level filtering. It allows profiles,
provider defaults, and intentional prompt overrides to use the same native
composition model. Audita would still ship its domain prompts, enforce its
selected-backend requirements, and supply its per-call schemas. Prompt overrides
would be an intentional new operator capability and need focused documentation
and tests, including resource source accounting; they should not arrive silently.
**Viable alternative:** Keep this directory profile-only and retain embedded
prompt ownership as the existing operator boundary. This narrows the migration
to profile format and engine assembly, avoids adding prompt customization during
a dependency upgrade, and makes the current directory name accurate. It requires
an explicit contribution-scope check using the libraries' public configuration
facilities, rather than another YAML parser or inheritance engine. Do not also
impose one-profile-per-file, filename/ID equality, or new profile-field
restrictions. The cost is an Audita-specific constraint on a now-unified source
API and continuing maintenance of that boundary. If the public API cannot
express the check simply, reassess the tradeoff or request narrow upstream
support rather than building a general projection layer.
Either choice can preserve the existing execution workflow. The decision is
whether this adoption should deliberately open operator prompt/backend
contributions; changing the source API by itself does not settle that policy.
commands. A staged implementation plan can now be prepared.