Verify ConfigKit integration and record release handoff

This commit is contained in:
2026-09-26 18:21:38 +00:00
parent 41304e4eea
commit 47c2a711f0
6 changed files with 124 additions and 11 deletions

View File

@@ -53,6 +53,11 @@ preparation or generation.
formats a safe application-owned effective profile view. It intentionally does
not require prompt, schema, or artifact sources.
The `config` family loads the same application ConfigKit result once and uses
its validation, effective-output, source, and explanation views directly. It
does not construct a Promptkit engine. The CLI maps source records into a small
JSON DTO for `sources`; `show` and `explain` use ConfigKit's own writers.
`serve` constructs Scriptorium's restricted HTTP artifact reader, injects it
with `promptkit.WithArtifactReader`, passes the engine through the HTTP
adapter's consumer-owned `Runner` interface, and starts the server.

View File

@@ -49,6 +49,10 @@ Every configuration-loading command uses this boundary. The CLI maps only
explicitly visited application flags to ConfigKit overrides and prints
structured load diagnostics before engine construction. The old application
YAML decoder and merge path have been removed.
Application `config` inspection reuses the result's frozen effective,
provenance, and history views without constructing an engine or reloading
sources. It does not resolve API-key environment values; ordinary backend
parameters remain visible by the selected inspection policy.
## Restricted HTTP Artifact Reader

View File

@@ -77,6 +77,13 @@ Do not add tests merely because a function, branch, or line exists. Do not add a
Test through the narrowest stable boundary that expresses the behavior clearly.
For application configuration, ConfigKit owns exhaustive YAML grammar,
source traversal, import/overlay composition, provenance, and inspection
renderer tests. Scriptorium tests its selected definition, source discovery,
CLI override presence, command prerequisites, runtime conversion, credential
boundary, and representative execution/inspection workflows with the tagged
library. Do not copy the upstream parser test matrix into this repository.
This is often the package API, but it may instead be:
- a smaller pure function when dense domain logic is most clearly isolated there;

View File

@@ -2,11 +2,10 @@
## Status And Intent
Accepted feature direction, drafted on 2026-09-26; not implemented. This
roadmap defines the target behavior and changes from the reviewed baseline.
The [implementation plan](implementation.md) owns sequencing, concrete interfaces,
verification steps, and implementation status. This document owns the desired
end state and the policy choices behind it.
Implemented feature direction, drafted on 2026-09-26 and delivered through the
[implementation plan](implementation.md). This roadmap records the target
behavior and changes from the reviewed baseline; the implementation plan owns
sequencing, concrete interfaces, and verification evidence.
The user is adopting ConfigKit across an application suite to standardize
configuration semantics. Scriptorium will make a clean cutover to ConfigKit's
@@ -20,7 +19,7 @@ application-specific reason or a genuine ownership boundary, not backward
compatibility alone. The [architecture policy](../policy/architecture.md) and
[ADR 0004](../adr/0004-definition-boundary.md) remain the scope boundaries.
## Reviewed Baseline
## Reviewed Baseline (Historical)
Scriptorium consumes Promptkit v0.11.0. Its `internal/config` package uses
yaml.v3 directly and manually applies defaults, file settings, and CLI overrides.
@@ -225,3 +224,8 @@ the relevant secret to the API key. Inspection therefore preserves parameter
values and environment-reference names, while actual API-key values remain
outside the application configuration pipeline. Visibility is intentional;
this is not a promise to detect secrets placed inside arbitrary parameter values.
The delivered `config show` and `config explain` commands use ConfigKit's
inspection writers without secret tags or a second redaction path. Both
effective and historical parameter values remain visible; `api_key_env` names
remain visible while Promptkit alone resolves selected credential values.

View File

@@ -3,10 +3,9 @@
## Status, Authority, And Historical Plans
Planned on 2026-09-26 against Scriptorium commit
`43eea5c7c41d2a8134b3dece60f3af5c98b8fd1c`. No stage is implemented by this
planning change. Execute Stage 1 through Stage 7 in order. Each stage is sized
as one focused gpt-5.6-terra implementation task, including tests and current
documentation. The maintainer has resolved the inspection-policy question:
`43eea5c7c41d2a8134b3dece60f3af5c98b8fd1c`. This document records the
ordered implementation and its completion evidence. The maintainer resolved
the inspection-policy question:
`extra_params` remain visible; only API-key values require secret protection.
The [feature roadmap](configkit.md) owns scope, target behavior, and user intent.
@@ -429,7 +428,12 @@ visible, and explanation neither resolves nor discloses API-key values.
## Stage 7: Verify Integration, Finish Documentation, And Record Release Handoff
**Status: Not started.**
**Status: Complete.** The feature roadmap, command paths, dependency boundary,
documentation, and attribution were audited. Maintained single-file and
composed examples passed configuration inspection and no-provider rendering;
the optional-credential/integer-parameter backend path passed with a local
provider. The full test, race, vet, build, formatting, link, and diff checks
passed. Release preparation is recorded below; no tag or publication occurred.
1. Review the feature roadmap against actual code. Confirm all five original
command modes and all four new configuration subcommands use one definition
@@ -488,6 +492,37 @@ is not guaranteed reloadable. Include dependency/attribution changes and the
existing LICENSE | ATTRIBUTION footer. Preserve the still-relevant Promptkit
v0.11 release handoff identified above when preparing a combined next release.
### Implementation And Release Preparation Record
The ConfigKit v0.4.0 adoption is implemented in committed source. The next
breaking release still needs version selection, version-matched release notes,
candidate validation, tagging, and publication under the release policy; none
has occurred as part of this work. Keep the earlier Promptkit v0.11 handoff
linked above when preparing a combined release.
The release note should summarize the deliberate configuration migration:
empty files now fail and `{}` means an empty mapping; explicitly empty strings
and zero values override lower values; `null` follows declared nullable types;
strict YAML rejects additional documents, anchors/aliases, unsupported scalar
forms, and unknown fields; `configkit` is reserved and ConfigKit's source and
resource limits apply. Explicit `--config ''` is invalid. Imports are opt-in
per file directive, while `--config-overlay` selects one named overlay under
the selected file's canonical directory; application path *values* remain
process-working-directory-relative. Only explicitly supplied application CLI
flags override configuration. An explicit empty server address is passed to
the standard HTTP server and does not restore Scriptorium's default.
Document the four application-inspection modes and the selected policy:
`extra_params`, including history, and `api_key_env` reference names remain
visible, but actual API-key bytes are never resolved by ConfigKit. Inspection
output can be sensitive and is not guaranteed reloadable. Application
validation neither probes a provider nor completely validates Promptkit
definitions. Keep request retry overrides and Promptkit's credential rules
separate from application settings. Include the new dependency and attribution
notices, and retain the existing LICENSE | ATTRIBUTION footer. Deferred
secrets bootstrap, schema versioning, reload, and remote acquisition remain
deferred; do not imply source or binary publication has happened.
## Open Questions
None remain for this scope. On 2026-09-26 the maintainer selected no redaction