Finalize Promptkit migration documentation

This commit is contained in:
2026-07-31 17:27:04 +00:00
parent a206979307
commit 8d8cdbf3c5
2 changed files with 84 additions and 58 deletions

View File

@@ -1,39 +1,40 @@
# Promptkit Migration Roadmap
Status: Accepted feature roadmap; the target state is unimplemented.
Status: Completed roadmap record.
## Purpose
This roadmap defines the scope and desired end state for replacing the
external Scriptorium CLI integration with Promptkit. Current implemented
behavior remains documented outside `docs/roadmap/` until the replacement is
complete.
This roadmap records the scope, decisions, and completed outcome of replacing
the external Scriptorium CLI integration with Promptkit. Canonical
documentation outside `docs/roadmap/` owns the implemented behavior.
## Current Baseline
## Pre-Migration Baseline
Status: Current migration input.
Status: Historical migration input.
Weatherreporter currently exposes seven report definitions, but only four have
complete prompt-backed report implementations:
Before the migration, Weatherreporter exposed seven report definitions, but
only four had complete prompt-backed report implementations:
- Daily Report: `weather.daily_generated_text`
- Today Report: `weather.today_generated_text`
- Tomorrow Report: `weather.tomorrow_generated_text`
- Hourly Report: `weather.hourly_generated_text`
The three-day, weekend, and storm commands and registry definitions have no
The three-day, weekend, and storm commands and registry definitions had no
corresponding Scriptorium prompt or schema and never formed complete
operational report products. The `weather.daily_report` Scriptorium prompt is
legacy source material and is not selected by the current registry.
operational report products. The `weather.daily_report` Scriptorium prompt was
legacy source material and was not selected by the registry.
The available Scriptorium source corpus is retained temporarily under
`docs/roadmap/scriptorium/`. It contains the four operational generated-text
prompt definitions, their referenced content, their private response schemas,
shared instructions, and the unused legacy Daily Markdown prompt.
The Scriptorium source corpus was retained temporarily under
`docs/roadmap/scriptorium/` as migration input. It contained the four
operational generated-text prompt definitions, their referenced content,
private response schemas, shared instructions, and the unused legacy Daily
Markdown prompt. The temporary corpus was removed after the runtime assets
were reconciled and embedded.
## Desired End State
## Implemented End State
Status: Accepted target state; unimplemented.
Status: Completed.
Weatherreporter pins
`gitea.maximumdirect.net/eric/promptkit` at `v0.4.0` and uses it as the
@@ -71,33 +72,33 @@ packages, CLI summaries, durable state contracts, or Distributor behavior.
## Goals
Status: Accepted migration scope; unimplemented.
Status: Completed migration outcomes.
- Remove the Scriptorium runtime dependency and subprocess boundary.
- Migrate the four operational report prompts to Promptkit `v0.4.0`.
- Use prepared execution to persist preparation provenance before provider work
- Removed the Scriptorium runtime dependency and subprocess boundary.
- Migrated the four operational report prompts to Promptkit `v0.4.0`.
- Used prepared execution to persist preparation provenance before provider work
while executing the exact frozen snapshot.
- Validate report prompt and profile selections before weather collection when
- Validated report prompt and profile selections before weather collection when
the required information is available.
- Preserve deterministic module snapshots and structured Recent Changes.
- Preserve generated-text domain validation and repository-owned Markdown
- Preserved deterministic module snapshots and structured Recent Changes.
- Preserved generated-text domain validation and repository-owned Markdown
rendering.
- Preserve context cancellation, actionable errors, secret redaction, and
- Preserved context cancellation, actionable errors, secret redaction, and
inspectable failures.
- Improve durable prompt provenance with prompt, input, profile, model,
- Improved durable prompt provenance with prompt, input, profile, model,
validation, usage, and timing metadata.
- Keep content-rich prompt and response diagnostics separate from routine
- Kept content-rich prompt and response diagnostics separate from routine
metadata and CLI output.
- Keep tests offline and deterministic through injected Promptkit model
- Kept tests offline and deterministic through injected Promptkit model
clients and fixtures.
- Remove incomplete report declarations from the implemented product surface
- Removed incomplete report declarations from the implemented product surface
rather than creating new report products during an integration migration.
## Non-Goals
Status: Accepted migration scope; unimplemented.
Status: Completed migration constraints.
The migration will not:
The completed migration did not:
- create prompts, schemas, templates, or completed products for three-day,
weekend, or storm reports;
@@ -122,7 +123,7 @@ The migration will not:
## Locked Decisions
Status: Accepted decisions for the unimplemented migration.
Status: Implemented migration decisions.
### Dependency And Upgrade Boundary
@@ -329,7 +330,7 @@ promptkit:
## Durable Artifacts And Observability
Status: Accepted design constraints; unimplemented.
Status: Implemented design constraints.
Routine durable state retains useful non-secret provenance without persisting
full rendered prompts.
@@ -367,7 +368,7 @@ Rendered messages and other content-rich preparation or response diagnostics
are available only when the operator supplies
`--llm-debug-dir <path>` to a single-report or batch command.
- There is initially no persistent YAML setting for debug capture.
- There is no persistent YAML setting for debug capture.
- The debug root is validated or created before weather collection or provider
work. A requested destination that cannot be secured or written is an error.
- Artifacts are grouped beneath
@@ -411,7 +412,7 @@ dual-write deprecated aliases. CLI summary fields adopt `preparationPath` and
## Failure Contract
Status: Accepted design constraints; unimplemented.
Status: Implemented design constraints.
- A preparation failure produces a redacted weatherreporter-owned failure
receipt with report, RunID, prompt, stage, timing, and classified error
@@ -441,7 +442,7 @@ Status: Accepted design constraints; unimplemented.
## Compatibility Requirements
Status: Accepted design constraints; unimplemented.
Status: Implemented design constraints.
- Daily, Today, Tomorrow, and Hourly report IDs, prompt IDs, valid periods,
artifact grouping, output names, and Distributor bundle behavior remain
@@ -468,9 +469,9 @@ Status: Accepted design constraints; unimplemented.
## Verification And Completion Criteria
Status: Accepted completion criteria for the unimplemented migration.
Status: Completed and verified.
The migration is complete when:
Completion was verified by the following outcomes:
- the four operational reports inspect, prepare, and execute through Promptkit
`v0.4.0` using embedded report-owned assets;
@@ -508,8 +509,8 @@ costly, and difficult to compare meaningfully.
## Decision Status
Status: Decision-complete.
Status: Completed.
The roadmap has no remaining open product or architecture questions. Any later
question that changes migration scope, policy, or the desired end state must be
resolved here rather than implicitly in code.
The roadmap has no remaining open product or architecture questions. Later
changes to this completed scope require new roadmap or decision-record scope
rather than implicit changes to this historical record.