Clarify future roadmap statuses

This commit is contained in:
2026-07-31 01:39:33 +00:00
parent b605596bcb
commit 35f4f82e94
2 changed files with 50 additions and 17 deletions

View File

@@ -1,17 +1,14 @@
# Future Roadmap # Future Roadmap
This roadmap contains project work that is not implemented. Current behavior is This roadmap contains future work only. Each section identifies its planning
documented outside `docs/roadmap/`. status; current behavior is documented outside `docs/roadmap/`.
## Automatic Storm Monitoring ## Automatic Storm Monitoring
Manual Storm Report generation is available through: Status: Proposed and unimplemented.
```sh Manual Storm Report generation is implemented; see the [CLI reference](../cli.md).
weatherreporter generate storm --start TIME --end TIME Automatic storm-event evaluation remains unimplemented.
```
Automatic storm-event evaluation is not implemented.
Possible direction: Possible direction:
@@ -37,6 +34,8 @@ coverage for deterministic candidate detection.
## Future Report Types ## Future Report Types
Status: Proposed and unimplemented.
Possible future report types: Possible future report types:
- a short-fuse planning report distinct from the implemented Hourly Report, if - 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 - archive-focused report variants if generated report history becomes a
first-class product first-class product
New reports should keep report identity, prompt IDs, templates, valid-period New reports should preserve the boundaries documented in the [report registry
resolution, artifact grouping, batch output names, and comparison policy inside internals](../internal/report-registry.md).
`internal/report`.
## Future Modules ## Future Modules
Status: Proposed and unimplemented.
Possible future modules: Possible future modules:
- `hourly_table` for compact valid-period hourly facts - `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 remain omitted until a real upstream quantitative precipitation source is
represented in `CollectedFacts`. 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 in app orchestration
- keep upstream collection out of modules - keep upstream collection out of modules
@@ -82,9 +84,13 @@ Future module work should preserve these boundaries:
## Distributor Notification Enhancements ## Distributor Notification Enhancements
Distributor notification uploads one managed Markdown report per successful Status: Proposed and unimplemented.
generated report through the configured HTTP upload pipeline. The following
enhancements are not implemented: 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` - `failure_policy: warn`
- uploading metadata, module snapshots, data packages, or preflight artifacts - uploading metadata, module snapshots, data packages, or preflight artifacts
@@ -100,7 +106,9 @@ while distributor owns destination routing and publication behavior.
## Alternate Runtime Integrations ## Alternate Runtime Integrations
These ideas are not implemented: Status: Proposed and unimplemented.
These ideas remain unimplemented:
- native LLM client inside `weatherreporter` - native LLM client inside `weatherreporter`
- database-backed state - database-backed state
@@ -119,6 +127,8 @@ must not describe these as available behavior.
## Deferred Refactors ## Deferred Refactors
Status: Deferred.
These refactors should remain deferred until new requirements or recurring These refactors should remain deferred until new requirements or recurring
maintenance costs make the added abstraction worthwhile: maintenance costs make the added abstraction worthwhile:

View File

@@ -1,11 +1,14 @@
# Promptkit Migration Roadmap # Promptkit Migration Roadmap
Status: Accepted migration policy; the migration itself is unimplemented.
## Purpose ## Purpose
This roadmap defines the scope and desired end state for replacing the This roadmap defines the scope and desired end state for replacing the
external Scriptorium CLI integration with the Promptkit Go library. The external Scriptorium CLI integration with the Promptkit Go library. The
migration is not yet implemented. Current Scriptorium behavior remains 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 A separate staged implementation plan will describe how to move from the
current code to this target state. That plan should reference this roadmap 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 ## Desired End State
Status: Accepted target state; unimplemented.
Weatherreporter uses a pinned released version of Weatherreporter uses a pinned released version of
`gitea.maximumdirect.net/eric/promptkit` as its in-process prompt preparation `gitea.maximumdirect.net/eric/promptkit` as its in-process prompt preparation
and LLM execution engine. The `scriptorium` executable, subprocess adapter, and LLM execution engine. The `scriptorium` executable, subprocess adapter,
@@ -38,6 +43,8 @@ packages, CLI summaries, state contracts, or distributor behavior.
## Goals ## Goals
Status: Accepted migration scope; unimplemented.
- Remove the runtime dependency on the `scriptorium` executable. - Remove the runtime dependency on the `scriptorium` executable.
- Replace shell-free subprocess orchestration with typed in-process Promptkit - Replace shell-free subprocess orchestration with typed in-process Promptkit
preparation and execution. preparation and execution.
@@ -55,6 +62,8 @@ packages, CLI summaries, state contracts, or distributor behavior.
## Non-Goals ## Non-Goals
Status: Accepted migration scope; unimplemented.
The migration will not: The migration will not:
- move meteorological selection, derivation, thresholds, or comparison logic - move meteorological selection, derivation, thresholds, or comparison logic
@@ -73,6 +82,8 @@ The migration will not:
## Locked Decisions ## Locked Decisions
Status: Accepted decisions for the unimplemented migration.
### Dependency And Versioning ### Dependency And Versioning
- The initial integration will pin Promptkit `v0.3.0`. - The initial integration will pin Promptkit `v0.3.0`.
@@ -171,6 +182,8 @@ The migration will not:
## Durable Artifacts And Observability ## Durable Artifacts And Observability
Status: Accepted design constraints; unimplemented.
Routine durable artifacts should retain useful non-secret provenance without Routine durable artifacts should retain useful non-secret provenance without
persisting full rendered prompts by default. persisting full rendered prompts by default.
@@ -208,6 +221,8 @@ credentials, and must have a clear operator-owned retention policy.
## Failure Contract ## Failure Contract
Status: Accepted design constraints; unimplemented.
Promptkit returns a completed `RunResult` for output-validation failure but no Promptkit returns a completed `RunResult` for output-validation failure but no
partial result for operational preparation or execution errors. Weatherreporter partial result for operational preparation or execution errors. Weatherreporter
will preserve that distinction. will preserve that distinction.
@@ -234,6 +249,8 @@ will preserve that distinction.
## Compatibility Requirements ## Compatibility Requirements
Status: Accepted design constraints; unimplemented.
- Report IDs, prompt IDs, report selection, valid periods, artifact grouping, - Report IDs, prompt IDs, report selection, valid periods, artifact grouping,
output names, and distributor bundle behavior remain stable. output names, and distributor bundle behavior remain stable.
- Module snapshot and Recent Changes behavior remains deterministic. - Module snapshot and Recent Changes behavior remains deterministic.
@@ -251,6 +268,8 @@ will preserve that distinction.
## Verification And Completion Criteria ## Verification And Completion Criteria
Status: Proposed completion criteria for the unimplemented migration.
The migration is complete when: The migration is complete when:
- all seven reports prepare and execute through Promptkit using embedded - all seven reports prepare and execute through Promptkit using embedded
@@ -281,6 +300,8 @@ compare meaningfully.
## External Prerequisite ## External Prerequisite
Status: Required and unimplemented.
Before implementing the embedded asset stage, the current Scriptorium prompt Before implementing the embedded asset stage, the current Scriptorium prompt
corpus must be made available in this repository. It should include the seven corpus must be made available in this repository. It should include the seven
prompt definitions, referenced content files, private response schemas, prompt definitions, referenced content files, private response schemas,
@@ -289,6 +310,8 @@ to reproduce current report behavior.
## Open Questions ## Open Questions
Status: Open; these require decisions before implementation.
- What exact `promptkit.*` configuration fields should replace the current - What exact `promptkit.*` configuration fields should replace the current
Scriptorium fields, including the name and precedence of an optional explicit Scriptorium fields, including the name and precedence of an optional explicit
profile override? profile override?