From 35f4f82e945216740e921196b0b1465fdf403cc1 Mon Sep 17 00:00:00 2001 From: Eric Rakestraw Date: Fri, 31 Jul 2026 01:39:33 +0000 Subject: [PATCH] Clarify future roadmap statuses --- docs/roadmap/future.md | 42 ++++++++++++++++++++++++--------------- docs/roadmap/promptkit.md | 25 ++++++++++++++++++++++- 2 files changed, 50 insertions(+), 17 deletions(-) diff --git a/docs/roadmap/future.md b/docs/roadmap/future.md index c17cf08..af2183e 100644 --- a/docs/roadmap/future.md +++ b/docs/roadmap/future.md @@ -1,17 +1,14 @@ # Future Roadmap -This roadmap contains project work that is not implemented. Current behavior is -documented outside `docs/roadmap/`. +This roadmap contains future work only. Each section identifies its planning +status; current behavior is documented outside `docs/roadmap/`. ## Automatic Storm Monitoring -Manual Storm Report generation is available through: +Status: Proposed and unimplemented. -```sh -weatherreporter generate storm --start TIME --end TIME -``` - -Automatic storm-event evaluation is not implemented. +Manual Storm Report generation is implemented; see the [CLI reference](../cli.md). +Automatic storm-event evaluation remains unimplemented. Possible direction: @@ -37,6 +34,8 @@ coverage for deterministic candidate detection. ## Future Report Types +Status: Proposed and unimplemented. + Possible future report types: - a short-fuse planning report distinct from the implemented Hourly Report, if @@ -46,12 +45,13 @@ Possible future report types: - archive-focused report variants if generated report history becomes a first-class product -New reports should keep report identity, prompt IDs, templates, valid-period -resolution, artifact grouping, batch output names, and comparison policy inside -`internal/report`. +New reports should preserve the boundaries documented in the [report registry +internals](../internal/report-registry.md). ## Future Modules +Status: Proposed and unimplemented. + Possible future modules: - `hourly_table` for compact valid-period hourly facts @@ -71,7 +71,9 @@ QPF fields such as `measurable_qpf_total_in` and `max_hourly_qpf_in` should remain omitted until a real upstream quantitative precipitation source is represented in `CollectedFacts`. -Future module work should preserve these boundaries: +Future module work should preserve the boundaries documented in [fact +contracts](../internal/facts.md), [module internals](../internal/module.md), and +[briefing internals](../internal/briefing.md): - keep upstream collection in app orchestration - keep upstream collection out of modules @@ -82,9 +84,13 @@ Future module work should preserve these boundaries: ## Distributor Notification Enhancements -Distributor notification uploads one managed Markdown report per successful -generated report through the configured HTTP upload pipeline. The following -enhancements are not implemented: +Status: Proposed and unimplemented. + +Single-report and batch Distributor notification are implemented. Current +behavior is documented in the [Distributor adapter guide](../internal/distributor-adapter.md), +[Distributor integration guides](../integrations/distributor/), and +[operations guide](../operations.md). The following enhancements remain +unimplemented: - `failure_policy: warn` - uploading metadata, module snapshots, data packages, or preflight artifacts @@ -100,7 +106,9 @@ while distributor owns destination routing and publication behavior. ## Alternate Runtime Integrations -These ideas are not implemented: +Status: Proposed and unimplemented. + +These ideas remain unimplemented: - native LLM client inside `weatherreporter` - database-backed state @@ -119,6 +127,8 @@ must not describe these as available behavior. ## Deferred Refactors +Status: Deferred. + These refactors should remain deferred until new requirements or recurring maintenance costs make the added abstraction worthwhile: diff --git a/docs/roadmap/promptkit.md b/docs/roadmap/promptkit.md index 62ca427..ee2cf46 100644 --- a/docs/roadmap/promptkit.md +++ b/docs/roadmap/promptkit.md @@ -1,11 +1,14 @@ # Promptkit Migration Roadmap +Status: Accepted migration policy; the migration itself is unimplemented. + ## Purpose This roadmap defines the scope and desired end state for replacing the external Scriptorium CLI integration with the Promptkit Go library. The migration is not yet implemented. Current Scriptorium behavior remains -documented outside `docs/roadmap/` until the replacement is complete. +documented in the [Scriptorium integration guide](../integrations/scriptorium.md) +until the replacement is complete. A separate staged implementation plan will describe how to move from the current code to this target state. That plan should reference this roadmap @@ -13,6 +16,8 @@ rather than redefine its architectural decisions or scope. ## Desired End State +Status: Accepted target state; unimplemented. + Weatherreporter uses a pinned released version of `gitea.maximumdirect.net/eric/promptkit` as its in-process prompt preparation and LLM execution engine. The `scriptorium` executable, subprocess adapter, @@ -38,6 +43,8 @@ packages, CLI summaries, state contracts, or distributor behavior. ## Goals +Status: Accepted migration scope; unimplemented. + - Remove the runtime dependency on the `scriptorium` executable. - Replace shell-free subprocess orchestration with typed in-process Promptkit preparation and execution. @@ -55,6 +62,8 @@ packages, CLI summaries, state contracts, or distributor behavior. ## Non-Goals +Status: Accepted migration scope; unimplemented. + The migration will not: - move meteorological selection, derivation, thresholds, or comparison logic @@ -73,6 +82,8 @@ The migration will not: ## Locked Decisions +Status: Accepted decisions for the unimplemented migration. + ### Dependency And Versioning - The initial integration will pin Promptkit `v0.3.0`. @@ -171,6 +182,8 @@ The migration will not: ## Durable Artifacts And Observability +Status: Accepted design constraints; unimplemented. + Routine durable artifacts should retain useful non-secret provenance without persisting full rendered prompts by default. @@ -208,6 +221,8 @@ credentials, and must have a clear operator-owned retention policy. ## Failure Contract +Status: Accepted design constraints; unimplemented. + Promptkit returns a completed `RunResult` for output-validation failure but no partial result for operational preparation or execution errors. Weatherreporter will preserve that distinction. @@ -234,6 +249,8 @@ will preserve that distinction. ## Compatibility Requirements +Status: Accepted design constraints; unimplemented. + - Report IDs, prompt IDs, report selection, valid periods, artifact grouping, output names, and distributor bundle behavior remain stable. - Module snapshot and Recent Changes behavior remains deterministic. @@ -251,6 +268,8 @@ will preserve that distinction. ## Verification And Completion Criteria +Status: Proposed completion criteria for the unimplemented migration. + The migration is complete when: - all seven reports prepare and execute through Promptkit using embedded @@ -281,6 +300,8 @@ compare meaningfully. ## External Prerequisite +Status: Required and unimplemented. + Before implementing the embedded asset stage, the current Scriptorium prompt corpus must be made available in this repository. It should include the seven prompt definitions, referenced content files, private response schemas, @@ -289,6 +310,8 @@ to reproduce current report behavior. ## Open Questions +Status: Open; these require decisions before implementation. + - What exact `promptkit.*` configuration fields should replace the current Scriptorium fields, including the name and precedence of an optional explicit profile override?