3.8 KiB
3.8 KiB
Wiki Deployment Contract
Scope
This contract governs the next focused phase after wrappers, config refactor, logging, and topdata hardening:
toolkit/ownsbuild-wikianddeploy-wikimodule/owns the consuming release workflow and operational configuration
This work is intentionally sequenced after topdata hardening because the wiki pipeline consumes native topdata outputs and metadata.
Current State
As of 2026-05-13:
build-wikiexistsdeploy-wikiexists- deployment targets NodeBB core
/api/v3 - local deploy manifests and NodeBB topic mapping exist
- release automation in
module/scripts/release-all.shalready runs wiki build and deploy steps after release publication - toolkit tests already cover dry-run behavior, topic creation, and manifest writes
This means wiki deployment is no longer a greenfield feature. The next phase is hardening, integration clarity, and operator experience.
Deferred Until Current Priority Work Completes
Do not prioritize the following until wrappers/config/logging/topdata work is in better shape:
- new NodeBB release-announcement posting flows
- broad wiki feature expansion
- unrelated formatting changes to generated page content
Immediate Goals For The Wiki Phase
- align wiki build/deploy logs with the structured logging contract
- tighten config ownership for wiki defaults and category mappings
- reduce residual hardcoded behavior that belongs in normalized config
- improve release-flow clarity around dry-run, drift, create, and force modes
- verify that topdata hardening does not silently change generated page identity
Current Findings
deploy-wikialready reads managed namespaces from effective config when the caller does not specify them explicitly- deploy manifest naming and edit-summary defaults still come from toolkit
defaults in
internal/project/effective.go - release orchestration already guards publication order correctly, but the
operator-facing logs are still more shell-oriented than the newer structured
build-hakspresentation - wiki deployment should be treated as a first-class operational command family, not just a release-script tail step
Immediate Plan
Phase 1: Logging and UX parity
- add concise summaries for
build-wikianddeploy-wiki - surface counts for:
- pages collected
- creates
- updates
- skips
- drifted pages
- keep raw debug output available when diagnosis is needed
Phase 2: Config clarity
- audit which wiki defaults should remain toolkit defaults versus explicit repo config
- keep namespace/category ownership visible in effective config
- ensure deploy-manifest path and edit summary remain discoverable and easy to override
Phase 3: Release-flow hardening
- verify
module/scripts/release-all.shremains the authoritative release entry point - keep dry-run before live deploy
- ensure failure and drift messages are crisp and actionable
- make sure cache restore/save behavior is clearly documented and tested
Phase 4: Regression verification after topdata hardening
- confirm topdata de-hardcoding does not break page IDs or manifest mapping
- confirm generated-page identity remains stable across unchanged inputs
Testing Requirements
Add or expand tests for:
- app-layer output for
build-wikianddeploy-wiki - release-flow sequencing assumptions where wiki deploy must happen only after release assets are published
- stable page identity and manifest mapping across repeated runs
- config-driven namespace selection and manifest path overrides
Acceptance Criteria
- wiki build/deploy logs match the newer structured CLI standard
- wiki defaults and overrides are clearly represented in effective config
- release orchestration remains deterministic and easy to reason about
- topdata hardening does not regress page identity or deploy manifest behavior