diff --git a/docs/roadmap/smoke-tests.md b/docs/roadmap/smoke-tests.md index 62d392c..25d9219 100644 --- a/docs/roadmap/smoke-tests.md +++ b/docs/roadmap/smoke-tests.md @@ -39,12 +39,27 @@ intermediate human-review approvals, upstream releases, external publication, or live-provider access to progress or establish completion. Automated checks and focused local commits remain part of ordinary implementation. -Use the currently released catalog dependencies and PromptKit-owned diagnostic -metadata underlays for the initial delivery. This supersedes the earlier -loader-release/catalog-release/adoption sequence. The feature must be complete -and usable without unpublished dependencies, committed workspace files, or local -filesystem replacements. Any later move of metadata into catalogs is optional -follow-up work, not an unfinished stage or a prerequisite for this sprint. +Update the local OpenRouter and RakestrawHome catalog checkouts, validate and +commit their changes, and identify the resulting revisions with local candidate +tags. Built-in diagnostic metadata belongs in those catalogs, not in an +intermediate PromptKit-owned metadata underlay. This supersedes both the earlier +loader-release/catalog-release/adoption sequence and the temporary core-owned +underlay proposal. + +A temporary, uncommitted Go workspace may support coordinated development. +Final sprint validation must also resolve the exact locally tagged catalog +revisions through a temporary filesystem module proxy, using normal module +requirements and checksums with `GOWORK=off` and no filesystem replacements. +Local tags alone do not make Go discover adjacent checkouts. The proxy supplies +that connection without public HTTPS availability or upstream publication. +Keep workspace/proxy artifacts outside committed repository contents, following +the [repository-independence policy](../policy/architecture.md#repository-independence). + +PromptKit's completed sprint commits may reference those not-yet-published +catalog versions in `go.mod` and their corresponding Go-generated checksums in +`go.sum`. Implementation completion and local validation do not claim that other +machines can fetch them. Public distribution is separate: consumers eventually +need those exact contents available through their configured module sources. Normal release preparation and publication follow implementation separately; this objective does not bypass the repository's release process or authorize @@ -406,21 +421,36 @@ destination under the selected adapter's contract. It does not assert acceptance at the initial destination or at every redirect hop. These endpoint fields provide attribution without introducing a public redirect trace. -Deliver initial built-in metadata through PromptKit-owned underlays composed with -the currently released catalog assets. Arrange these defaults so catalog metadata -and caller overlays can replace them through ordinary composition. Supply defaults -for enabled maintained catalogs without reintroducing a backend whose catalog the -caller excluded. Interpret and validate only the assembled final configuration. -No catalog edits, dependency publication, or intervening PromptKit release are -required for initial completion. Later catalog adoption, if pursued, must account -for older strict loaders that reject new fields; it is outside this sprint. +Deliver built-in metadata in the local catalog repositories at +`../promptkit-backend-openrouter` and `../promptkit-backend-rakestrawhome`. +Catalog changes, local validation, commits, candidate tags, and PromptKit adoption +are all included in the sprint; publication and remote module availability are +not intermediate dependencies. Caller overlays remain available through ordinary +composition, and excluded catalogs remain excluded. Interpret and validate only +the assembled final configuration. + +Use standards-compliant module archives made from the exact tagged commits for +the temporary filesystem proxy, not mutable working-tree contents or manually +edited module-cache entries. Update normal version requirements, let Go generate +checksums, and validate the integrated feature without workspace substitution. +Scope any temporary proxy/checksum-database settings to this local workflow; +do not impose them on consumers or commit machine-specific module resolution. + +Local candidate tags identify validated contents; they are not published releases. +Specify candidate version selection and reconcile the catalogs' publication-date +versioning convention during separate publication preparation. If that requires +new final version names, update PromptKit's pins and checksums accordingly; retain +the validated catalog contents and never move a published tag. Older strict +PromptKit loaders may reject the new metadata fields, so describe the compatible +consumer versions when publishing. No intervening PromptKit loader release or +external module-download verification is required to finish implementation. Use `promptkit-openrouter-standard` for OpenRouter's default, its `openrouter_key` adapter, and `rakestrawhome-gemma-4-31b` with RakestrawHome's `none` authentication setting. Verify each shipped default resolves in the supported assembled effective -configuration, including any -PromptKit-owned profiles. This is final-value integration validation, not a second -validation pass over intermediate sources. A catalog default is replaceable metadata, +configuration, including any PromptKit-owned profiles. This is final-value +integration validation, not a second validation pass over intermediate sources. +A catalog default is replaceable metadata, not a promise of upstream availability, cheap inference, or a stable model choice. ## Execution And Error Boundary @@ -541,11 +571,13 @@ scheduling, and any combination with `ValidateRequest` or normal execution. and partial cancellation reporting through the internal evidence path while preserving existing client contracts. Specify destination/credential attribution without exposing headers or a redirect trace. -- Supply agreed built-in metadata through PromptKit-owned underlays over existing - released dependencies, with ordinary catalog/caller precedence and no - provider-availability guarantee. Check default-profile resolution in the assembled - final configuration. Complete all work without intermediate review or publication - gates, as required by the single-sprint objective. +- Update and validate both local catalogs with the agreed metadata, then commit + and locally tag their candidate revisions. Adopt those versions in PromptKit + with ordinary catalog/caller precedence and no provider-availability guarantee. + Check default-profile resolution in the assembled final configuration and final + local-proxy module resolution without workspace/replacement substitution. + Complete all work without intermediate review or publication gates, as required + by the single-sprint objective. - Add focused offline tests with controlled transports and injected clients for selection, rejected/absent credentials, applicability/support, transport/malformed responses, content/JSON/schema facts, cancellation, shared inference capacity, @@ -579,10 +611,12 @@ focused implementation plan: configured default-profile references at construction versus selection. Preserve final-value ownership and verify shipped defaults in assembled configuration; do not introduce source-history validation or change ordinary profile selection. -2. **Default metadata composition.** Choose the underlay representation and placement - that lets later catalog metadata and caller overlays replace the defaults while - respecting catalog selection. Keep released dependencies usable throughout; - there is no external catalog coordination gate. +2. **Local catalog integration.** Specify local candidate versions/tags and temporary + workspace/proxy setup for the two catalog checkouts, with standards-compliant + archives of the tagged contents and ordinary Go checksum generation. Define + final validation without workspace/replacement substitution and keep later + publication separate. There is no external catalog publication gate or + PromptKit-owned diagnostic metadata underlay. 3. **Internal implementation.** Choose private content and schema, the narrow evidence handoff, and content-free classifications for internal faults that prevent a meaningful report. Define ownership and copying for reports and request values.