631 lines
23 KiB
Markdown
631 lines
23 KiB
Markdown
# Documentation Refresh Implementation Plan
|
|
|
|
## Status
|
|
|
|
Accepted for implementation.
|
|
|
|
This is a temporary, staged coordination plan for refreshing Weatherreporter's
|
|
current documentation. Implement each stage in order. Do not treat this file as
|
|
a current-behavior reference.
|
|
|
|
## Objective
|
|
|
|
Bring every maintained document and example into agreement with:
|
|
|
|
- the implemented Go application;
|
|
- the canonical ownership rules in `docs/policy/documentation.md`;
|
|
- the architectural boundaries in `docs/policy/architecture.md`;
|
|
- the testing rules in `docs/policy/testing.md`; and
|
|
- the contributor routing in `docs/development.md`.
|
|
|
|
The completed documentation set must be concise, task-oriented, free of stale
|
|
or duplicate contracts, and verifiably consistent with the executable sources
|
|
of truth.
|
|
|
|
## Scope And Constraints
|
|
|
|
This is a documentation-only refresh.
|
|
|
|
- Do not add or change product behavior.
|
|
- Do not modify Go code, schemas, prompts, or templates to make documentation
|
|
claims true.
|
|
- `examples/*.yml` may be corrected when they disagree with implemented
|
|
configuration, because examples are maintained documentation artifacts.
|
|
- If code and documentation disagree, document implemented and tested behavior.
|
|
- If code appears to violate an architecture or safety policy, do not conceal
|
|
the conflict with prose and do not fix it during this refresh. Record the
|
|
conflict in this plan's implementation notes and report it to the maintainer.
|
|
- Do not implement any work from `docs/roadmap/future.md` or
|
|
`docs/roadmap/promptkit.md`.
|
|
- Preserve the exact contents of `AGENTS.md`.
|
|
- Treat `docs/policy/*.md` and `docs/development.md` as the governing baseline.
|
|
Change them only to repair a link made stale by this refresh; do not reopen
|
|
their substantive decisions.
|
|
- Do not create `docs/internal/overview.md`; `docs/development.md` owns the
|
|
current concise package inventory.
|
|
- Do not introduce a release guide, public API guide, consumer guide, or ADR
|
|
unless a separate maintainer decision expands this plan.
|
|
- Preserve unrelated working-tree changes and do not commit unless explicitly
|
|
instructed.
|
|
|
|
## Executable Authorities
|
|
|
|
Use codebase-memory graph tools before text search for code discovery. Index the
|
|
repository first if needed, use `search_graph` to locate symbols,
|
|
`trace_path` for dependencies and impact, and `get_code_snippet` for exact
|
|
source. Use graph-augmented `search_code` or `rg` for literal flags, paths,
|
|
errors, schemas, asset names, and configuration values.
|
|
|
|
The primary authorities for this refresh are:
|
|
|
|
| Contract | Executable authority |
|
|
| --- | --- |
|
|
| CLI commands, flags, help, and dispatch | `internal/cli/root.go`, `internal/report/names.go`, and `internal/cli/root_test.go` |
|
|
| CLI JSON summaries and stdout/stderr behavior | `internal/cli/output.go`, `internal/cli/result.go`, and their tests |
|
|
| Configuration fields, defaults, loading, precedence, secrets, templates, and validation | `internal/config/*.go` and `internal/config/config_test.go` |
|
|
| Report IDs, modes, periods, modules, output names, comparison, and Distributor paths | `internal/report/*.go` and `internal/report/period_test.go` |
|
|
| Application generation, batch, inspection, persistence, and notification order | `internal/app/*.go`, `internal/app/*_test.go`, and `internal/cli/root_test.go` |
|
|
| Weather collection and external Weather API behavior | `internal/collect`, `internal/weatherdata`, `internal/adapters/weatherapi`, fixtures, and focused tests |
|
|
| Facts, forecast derivation, modules, and Recent Changes | `internal/facts`, `internal/forecast`, `internal/module`, `internal/briefing`, `internal/changes`, and focused tests |
|
|
| Prompt packages and Scriptorium invocation | `internal/promptinput`, `internal/adapters/scriptorium`, and focused tests |
|
|
| Generated text, render contexts, templates, and schemas | `internal/generatedtext`, `internal/reporttemplate`, embedded assets, and focused tests |
|
|
| Workspace paths, metadata, atomic writes, prior lookup, and inspection | `internal/state`, `internal/fileutil`, and focused tests |
|
|
| Distributor bundle, upload, polling, redaction, and notification behavior | `internal/adapters/distributor`, `internal/app/batch_notification.go`, `go.mod`, and focused tests |
|
|
|
|
Sibling repositories may be used only as secondary integration references.
|
|
Weatherreporter's pinned dependency, adapter code, and tests determine the
|
|
subset this repository actually uses. Do not copy broad upstream manuals into
|
|
this repository.
|
|
|
|
## Rules For Every Stage
|
|
|
|
For each stage:
|
|
|
|
1. Read the task-specific entries in `docs/development.md`.
|
|
2. Inspect the listed executable authorities and focused tests.
|
|
3. Update only the files assigned to the stage, plus this plan's stage status
|
|
if progress tracking is requested.
|
|
4. Keep exact facts in their canonical owner. Replace duplicate detail with a
|
|
short stable summary and a relative link.
|
|
5. Describe implemented behavior only outside `docs/roadmap/`.
|
|
6. Keep examples synthetic, valid, and secret-free.
|
|
7. Use language tags on every fenced block.
|
|
8. Run the stage validation before proceeding.
|
|
9. Do not reinterpret surprising behavior as intent; tests and executable
|
|
contracts take precedence over old prose.
|
|
|
|
## Stage 1: Inventory And Mechanical Hygiene
|
|
|
|
### Files
|
|
|
|
- `README.md`
|
|
- all Markdown files under `docs/`
|
|
- `examples/*.yml`
|
|
|
|
### Work
|
|
|
|
1. Classify every document under the ownership table in
|
|
`docs/policy/documentation.md`. Do not create a separate permanent inventory
|
|
document.
|
|
2. Identify duplicated exact contracts, stale paths, broken links, untagged
|
|
code fences, and current-state claims in the wrong document.
|
|
3. Repair mechanical link and path defects that do not require content
|
|
redesign.
|
|
4. In `docs/integrations/distributor/pkg-bundle.md`, remove the broken local
|
|
link to `../integrations/source-bundle.md`. Identify the upstream canonical
|
|
file as `docs/integrations/source-bundle.md` in the Distributor repository
|
|
using prose or code formatting, not a nonexistent repository-relative link.
|
|
5. In `docs/integrations/distributor/pkg-upload.md`, do the same for the broken
|
|
`../integrations/http-upload.md` link.
|
|
6. Confirm that no document references the retired development-policy path.
|
|
7. Defer substantive rewrites to the assigned later stage; this stage should
|
|
establish a clean mechanical baseline.
|
|
|
|
### Acceptance
|
|
|
|
- Every repository-relative link target exists.
|
|
- All fenced blocks have language tags.
|
|
- No stale development-policy reference remains.
|
|
- No future feature is presented as current behavior outside `docs/roadmap/`.
|
|
- `git diff --check` passes.
|
|
|
|
## Stage 2: CLI, Configuration, And Examples
|
|
|
|
### Files
|
|
|
|
- `docs/cli.md`
|
|
- `docs/config.md`
|
|
- `examples/minimal-config.yml`
|
|
- `examples/config.yml`
|
|
|
|
### CLI Work
|
|
|
|
1. Regenerate the command inventory from `go run ./cmd/weatherreporter --help`
|
|
and verify it against `internal/cli/root.go` and report command-name tests.
|
|
2. Keep this document's order:
|
|
- shortest useful command;
|
|
- command overview and complete usage;
|
|
- stdout, stderr, JSON summary, quiet-mode, and exit behavior;
|
|
- complete flag reference;
|
|
- concise invocation examples; and
|
|
- inspection commands.
|
|
3. Keep exact command syntax and output semantics here. Move or replace
|
|
operational workflow explanations with links to `operations.md`.
|
|
4. Verify all seven generate commands, both batch commands, and every inspect
|
|
command.
|
|
5. Verify command-specific restrictions: required Daily date, optional Today
|
|
date, Storm bounds, Hourly restrictions, generate output copies, batch
|
|
output directories, and inspection quiet-mode rejection.
|
|
|
|
### Configuration Work
|
|
|
|
1. Compare every documented field and default with `Config`, `Defaults`,
|
|
loading, secret loading, report overrides, notification templates, and
|
|
validation code.
|
|
2. Keep discovery, precedence, fields, defaults, accepted values, validation
|
|
rules, secret-supply behavior, and links to examples here.
|
|
3. Keep operational notification sequencing, filesystem lifecycle, and
|
|
recovery in `operations.md`; summarize and link rather than duplicate them.
|
|
4. Verify report-module override keys against the report registry and module
|
|
registry.
|
|
5. Verify every template placeholder accepted by Distributor notification
|
|
configuration.
|
|
|
|
### Example Work
|
|
|
|
1. Ensure both examples contain only implemented fields and synthetic
|
|
endpoints.
|
|
2. Keep `minimal-config.yml` genuinely minimal.
|
|
3. Keep `config.yml` production-oriented and representative without becoming a
|
|
second field reference.
|
|
4. Do not add credentials, private endpoints, or generated reports.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go run ./cmd/weatherreporter --help
|
|
go test ./internal/cli ./internal/config ./internal/report ./internal/module
|
|
git diff --check
|
|
```
|
|
|
|
The config tests must load the maintained examples successfully.
|
|
|
|
## Stage 3: README And Operations
|
|
|
|
### Files
|
|
|
|
- `README.md`
|
|
- `docs/operations.md`
|
|
|
|
### README Work
|
|
|
|
Keep the README short and in this order:
|
|
|
|
1. concise product description;
|
|
2. one-sentence value proposition;
|
|
3. the shortest successful generation command; and
|
|
4. links to CLI, configuration, operations, troubleshooting, development, and
|
|
architecture documentation.
|
|
|
|
Do not add a complete command list, configuration fields, workspace layout, or
|
|
future Promptkit behavior.
|
|
|
|
### Operations Work
|
|
|
|
1. Verify generation and batch workflow order against `internal/app`.
|
|
2. Verify the physical workspace tree, artifact names, RunID placement,
|
|
metadata links, notification artifact placement, and prior lookup against
|
|
`internal/state`.
|
|
3. Verify output-copy behavior and the rule that managed reports are the only
|
|
upload sources.
|
|
4. Verify single-report and batch notification sequencing, skip conditions,
|
|
failure accounting, and inspectable artifacts.
|
|
5. Verify inspection is read-only and identify exactly which artifacts each
|
|
command reads.
|
|
6. Keep normal operation, state lifecycle, inspection, recovery, and
|
|
operational caveats here.
|
|
7. Replace complete flag or config-field definitions with links to their
|
|
canonical references.
|
|
8. Keep only the minimal commands needed to illustrate an operational
|
|
procedure.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go test ./internal/app ./internal/state ./internal/cli
|
|
go run ./cmd/weatherreporter --help
|
|
git diff --check
|
|
```
|
|
|
|
## Stage 4: Troubleshooting
|
|
|
|
### File
|
|
|
|
- `docs/troubleshooting.md`
|
|
|
|
### Work
|
|
|
|
1. Verify every documented symptom and diagnostic fragment against current
|
|
errors and failure tests.
|
|
2. Use one consistent entry shape:
|
|
- symptom;
|
|
- likely cause;
|
|
- diagnostic step or command;
|
|
- safe fix; and
|
|
- links to canonical references.
|
|
3. Keep symptom-oriented diagnosis here. Remove repeated normal workflows,
|
|
full endpoint inventories, config-field definitions, and artifact schemas.
|
|
4. Preserve the distinction between pre-run failures, collection failures,
|
|
Scriptorium preparation/run failures, generated-text validation failures,
|
|
template failures, report failures, batch partial failures, skipped batch
|
|
uploads, Distributor failures, secret loading, and state lookup failures.
|
|
5. Use exact error text only when it is a stable operator-facing contract;
|
|
otherwise use the smallest stable identifying fragment.
|
|
6. Ensure fixes are safe, narrow, and do not recommend broad workspace
|
|
deletion or expose secret values.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go test ./internal/cli ./internal/config ./internal/app ./internal/state
|
|
go test ./internal/adapters/weatherapi ./internal/adapters/scriptorium ./internal/adapters/distributor
|
|
git diff --check
|
|
```
|
|
|
|
## Stage 5: Report Template Guide
|
|
|
|
### File
|
|
|
|
- `docs/templates.md`
|
|
|
|
### Work
|
|
|
|
1. Verify top-level templates, shared partials, schema IDs, prompt sources, and
|
|
registered template functions against `internal/reporttemplate`.
|
|
2. Verify every documented render-context field against
|
|
`internal/generatedtext`; remove fields that are absent and add implemented
|
|
fields needed by maintainers.
|
|
3. Keep the maintainer-facing editing rules, context contracts, and minimal
|
|
template examples here.
|
|
4. Clearly distinguish deterministic module values, collected/derived facts,
|
|
and validated GeneratedText prose.
|
|
5. Keep weather derivation and generated-text validation mechanics in their
|
|
internal owners; summarize and link from this guide.
|
|
6. Avoid duplicating the full JSON schema bodies or package implementation
|
|
flow.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go test ./internal/reporttemplate ./internal/generatedtext ./internal/app
|
|
git diff --check
|
|
```
|
|
|
|
## Stage 6: Weather API Integration
|
|
|
|
### File
|
|
|
|
- `docs/integrations/weatherapi.md`
|
|
|
|
### Work
|
|
|
|
1. Verify URL joining, query parameters, timeout and retry behavior, response
|
|
envelope, endpoint set, decoding, source identity, warnings, and
|
|
required/optional source behavior against the adapter, collection layer,
|
|
fixtures, and tests.
|
|
2. Keep the external Weather API contract and compatibility assumptions here.
|
|
3. Move internal normalization and orchestration mechanics to links pointing at
|
|
the relevant internal documents.
|
|
4. Document only endpoints and fields Weatherreporter currently consumes.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go test ./internal/adapters/weatherapi ./internal/collect ./internal/weatherdata
|
|
git diff --check
|
|
```
|
|
|
|
## Stage 7: Scriptorium Integration
|
|
|
|
### File
|
|
|
|
- `docs/integrations/scriptorium.md`
|
|
|
|
### Work
|
|
|
|
1. Verify the exact `render` and `run` invocations, argument ordering,
|
|
timeouts, output paths, result decoding, stderr handling, cancellation, and
|
|
failure behavior against the adapter and tests.
|
|
2. Keep the external CLI contract here and link to internal prompt-input,
|
|
adapter, generated-text, and orchestration mechanics.
|
|
3. Describe Scriptorium as the implemented runtime. Do not mention the proposed
|
|
Promptkit replacement outside `docs/roadmap/promptkit.md`.
|
|
4. Do not copy Scriptorium's general manual; document only the commands and
|
|
result fields Weatherreporter uses.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go test ./internal/adapters/scriptorium ./internal/promptinput ./internal/app
|
|
git diff --check
|
|
```
|
|
|
|
## Stage 8: Distributor Integration
|
|
|
|
### Files
|
|
|
|
- `docs/integrations/distributor/api.md`
|
|
- `docs/integrations/distributor/pkg-bundle.md`
|
|
- `docs/integrations/distributor/pkg-upload.md`
|
|
|
|
### Work
|
|
|
|
1. Rewrite these as concise references to the exact Distributor surface used
|
|
by Weatherreporter:
|
|
- `api.md` owns accepted upload, authentication, idempotency, run status,
|
|
terminal failure, and retention assumptions used by the adapter;
|
|
- `pkg-bundle.md` owns the bundle file mapping and path constraints used by
|
|
Weatherreporter;
|
|
- `pkg-upload.md` owns the client construction, upload, retry, conflict, and
|
|
status operations used by the adapter.
|
|
2. Remove generic producer tutorials, broad upstream feature descriptions,
|
|
unrelated examples, and claims Weatherreporter does not rely on.
|
|
3. Verify the pinned module version in `go.mod` and the adapter's actual calls.
|
|
4. Use the sibling Distributor repository only to confirm the pinned API. Do
|
|
not make Weatherreporter documentation depend on sibling-relative links.
|
|
5. Keep internal request construction, redaction, polling decisions, and app
|
|
notification order in internal documents.
|
|
6. Ensure all local links resolve and upstream canonical paths are identified
|
|
without pretending those files exist in this repository.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go test ./internal/adapters/distributor ./internal/app ./internal/config
|
|
git diff --check
|
|
```
|
|
|
|
## Stage 9: CLI, Collection, And App Internals
|
|
|
|
### Files
|
|
|
|
- `docs/internal/cli.md`
|
|
- `docs/internal/collect.md`
|
|
- `docs/internal/app-orchestration.md`
|
|
|
|
### Work
|
|
|
|
Verify purpose, inputs and outputs, ownership boundaries, workflow composition,
|
|
failure propagation, focused tests, and invariants. Keep public CLI syntax in
|
|
`docs/cli.md`, Weather API wire behavior in its integration document, and
|
|
physical state layout in `docs/operations.md` or `docs/internal/state.md`.
|
|
|
|
The app document may retain explicit workflow ordering because orchestration is
|
|
its owned internal contract. It must not duplicate complete config, CLI, or
|
|
external protocol references.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go test ./internal/cli ./internal/collect ./internal/app
|
|
git diff --check
|
|
```
|
|
|
|
## Stage 10: State, Source, And Adapter Internals
|
|
|
|
### Files
|
|
|
|
- `docs/internal/state.md`
|
|
- `docs/internal/weather-data.md`
|
|
- `docs/internal/scriptorium-adapter.md`
|
|
- `docs/internal/distributor-adapter.md`
|
|
|
|
### Work
|
|
|
|
1. Verify each document against its package and focused tests.
|
|
2. Keep state path derivation, metadata ownership, prior lookup, atomic writes,
|
|
and inspection mechanics in the state document.
|
|
3. Keep normalized bundle, source metadata, and warning semantics in the
|
|
weather-data document.
|
|
4. Keep argv/result translation in the Scriptorium adapter document and
|
|
dependency/client translation in the Distributor adapter document.
|
|
5. Link external contracts and user-facing references rather than repeating
|
|
them.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go test ./internal/state ./internal/weatherdata
|
|
go test ./internal/adapters/scriptorium ./internal/adapters/distributor
|
|
git diff --check
|
|
```
|
|
|
|
## Stage 11: Deterministic Domain Internals
|
|
|
|
### Files
|
|
|
|
- `docs/internal/facts.md`
|
|
- `docs/internal/forecast-derivation.md`
|
|
- `docs/internal/changes.md`
|
|
|
|
### Work
|
|
|
|
Verify fact ownership, derivation inputs, period and daypart behavior,
|
|
thresholds, comparison strategies, missing-data behavior, failures, tests, and
|
|
invariants. Keep these documents deterministic and independent of CLI,
|
|
filesystem, subprocess, and transport mechanics. Link configuration defaults
|
|
instead of restating them.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go test ./internal/facts ./internal/forecast ./internal/changes ./internal/timeutil
|
|
git diff --check
|
|
```
|
|
|
|
## Stage 12: Reports, Modules, Briefing, And Prompt Input
|
|
|
|
### Files
|
|
|
|
- `docs/internal/report-registry.md`
|
|
- `docs/internal/module.md`
|
|
- `docs/internal/briefing.md`
|
|
- `docs/internal/prompt-input.md`
|
|
|
|
### Work
|
|
|
|
1. Verify all report definitions, registry fields, valid periods, batch
|
|
membership, comparison policy, output naming, module defaults, and
|
|
Distributor path declarations.
|
|
2. Verify registered module IDs, options, rich values, prompt exports,
|
|
composition by report, and missing-source behavior.
|
|
3. Verify prompt package schema, ordering, metadata, serialization, validation,
|
|
and the boundary between rich module values and prompt-facing exports.
|
|
4. Keep exact CLI command syntax, config defaults, integration protocol, and
|
|
rendered template contracts in their canonical owners.
|
|
5. Prefer tables for report-to-module or report-to-mode mappings where they
|
|
materially reduce repeated prose.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go test ./internal/report ./internal/module ./internal/briefing ./internal/promptinput
|
|
git diff --check
|
|
```
|
|
|
|
## Stage 13: Generated Text And Template Internals
|
|
|
|
### Files
|
|
|
|
- `docs/internal/generatedtext.md`
|
|
- `docs/internal/reporttemplate.md`
|
|
|
|
### Work
|
|
|
|
Verify catalog registration, schema selection, decoding and validation,
|
|
generated-text types, render-context construction, embedded asset lookup,
|
|
template parsing, partials, failure behavior, and invariants. Keep the complete
|
|
maintainer-facing context-field reference in `docs/templates.md`; internal
|
|
documents should explain implementation and link to that contract.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
go test ./internal/generatedtext ./internal/reporttemplate ./internal/app
|
|
git diff --check
|
|
```
|
|
|
|
## Stage 14: Roadmap Review
|
|
|
|
### Files
|
|
|
|
- `docs/roadmap/future.md`
|
|
- `docs/roadmap/promptkit.md`
|
|
|
|
### Work
|
|
|
|
1. Ensure every roadmap item is explicitly unimplemented, proposed, accepted,
|
|
deferred, or rejected.
|
|
2. Remove or rewrite work that has already been implemented.
|
|
3. Keep current-state summaries minimal and link to canonical current
|
|
documentation instead of reproducing it.
|
|
4. In `future.md`, correct the Distributor enhancement introduction so it
|
|
acknowledges implemented single-report and batch notification without
|
|
maintaining their detailed current contract.
|
|
5. Preserve the Promptkit roadmap as future migration policy. Do not implement
|
|
it, resolve its product-design open questions, or describe it as current.
|
|
6. Ensure future architecture does not leak into README, user/operator docs,
|
|
integrations, or current internal docs.
|
|
|
|
### Validation
|
|
|
|
```sh
|
|
rg -n "Promptkit|promptkit" README.md docs \
|
|
--glob "*.md" --glob "!docs/roadmap/**"
|
|
git diff --check
|
|
```
|
|
|
|
The Promptkit search must return no current-state documentation matches.
|
|
|
|
## Stage 15: Cross-Document Consistency And Final Validation
|
|
|
|
### Semantic Review
|
|
|
|
Verify these cross-document facts have one exact owner and consistent summaries
|
|
elsewhere:
|
|
|
|
- seven generate report commands;
|
|
- four generated-text-template reports and three direct-Markdown reports;
|
|
- morning and evening batch membership and future Daily eligibility;
|
|
- configuration precedence and defaults;
|
|
- module and report IDs;
|
|
- managed workspace and notification paths;
|
|
- Recent Changes structured comparison;
|
|
- Scriptorium preflight and run behavior;
|
|
- single-report and batch Distributor behavior;
|
|
- output copies versus managed upload sources; and
|
|
- inspection's read-only behavior.
|
|
|
|
Remove duplicate exact tables or narratives from non-owning documents. Preserve
|
|
short task-relevant summaries and relative links.
|
|
|
|
### Link Validation
|
|
|
|
Check every Markdown link in `README.md` and `docs/`. Repository-relative
|
|
targets and changed heading anchors must resolve. No maintained document may
|
|
depend on sibling checkout paths.
|
|
|
|
At minimum, run a repository-relative target check equivalent to:
|
|
|
|
```sh
|
|
find README.md docs -type f -name "*.md" -print0 |
|
|
while IFS= read -r -d "" file; do
|
|
dir=$(dirname "$file")
|
|
rg -o '\]\([^)]+\)' "$file" |
|
|
sed -E 's/^\]\(([^)#]+)(#[^)]+)?\)$/\1/' |
|
|
while IFS= read -r target; do
|
|
case "$target" in
|
|
http:*|https:*|mailto:*) continue
|
|
esac
|
|
test -z "$target" || test -e "$dir/$target" ||
|
|
printf '%s -> %s\n' "$file" "$target"
|
|
done
|
|
done
|
|
```
|
|
|
|
Manually verify anchors on every changed link because the target check does not
|
|
validate fragments.
|
|
|
|
### Final Commands
|
|
|
|
```sh
|
|
go test ./...
|
|
go run ./cmd/weatherreporter --help
|
|
git diff --check
|
|
```
|
|
|
|
Review `git diff --name-only` and confirm the refresh changed only Markdown and
|
|
maintained YAML examples. Confirm no secrets, private endpoints, generated
|
|
artifacts, code changes, `go.work`, or local module replacements were added.
|
|
|
|
## Completion Criteria
|
|
|
|
The refresh is complete when:
|
|
|
|
- every document has one clear canonical owner;
|
|
- current user and operator documentation matches implemented behavior;
|
|
- CLI and configuration references are complete and verified;
|
|
- examples load and contain no secrets;
|
|
- operation, recovery, template, and integration contracts are accurate;
|
|
- internal documents preserve package boundaries without duplicating public
|
|
references;
|
|
- roadmaps contain only future or coordination material;
|
|
- all repository-relative links and changed anchors resolve;
|
|
- all validation commands pass; and
|
|
- no unresolved architecture-policy conflict was hidden or implemented as part
|
|
of the documentation work.
|
|
|
|
After all stages are accepted, remove this temporary implementation plan in a
|
|
final documentation-only change. Do not move its task sequencing or completion
|
|
history into current-state documentation.
|