WingCMS Technical Architecture & Workflow¶
Overview¶
WingCMS is WorkWingman's content management system for the public website, built as an htmx and Razor Pages Multi-Page Application (MPA). Content resides in a Google Cloud Storage (GCS) bucket, which serves as the authoritative SOURCE OF TRUTH. TODO(verify: GCS bucket name and storage configuration).
Concurrency Guard & Optimistic Locking¶
To prevent concurrent editing conflicts across sessions, WingCMS implements optimistic concurrency control via SHA-256 ETags:
- Content objects are assigned a SHA-256 ETag based on their payload.
- Editors must execute wingcms pull to refresh local state before applying edits.
- Write and mutation operations enforce ETag validation; requests are rejected on ETag mismatch.
MCP Tool Surface¶
WingCMS exposes a dedicated Model Context Protocol (MCP) tool surface for automated and assistant-driven operations:
- wingcms_list: List entries (implemented today over team/AI member collections — TODO(verify) full content-key coverage).
- wingcms_get: Retrieve an entry (implemented today over team/AI member collections — TODO(verify) full content-key coverage).
- wingcms_set: Set or update content fields.
- wingcms_append: Append items to list content.
- wingcms_remove: Remove content items by key or path.
- wingcms_remove_index: Remove list items by index.
- wingcms_publish: Trigger content publishing. TODO(verify: publish flow internals and destination targets).
- wingcms_career_add: Append career trajectory entries.
- wingcms_edu_add: Append education section entries.
Validation Architecture & WING-240 Parity Lesson¶
WingCMS uses a dual-layer validation model: - CLI Validator: Evaluates content locally during editing. - Site Validator: Evaluates content inside the site runtime.
Lesson from WING-240: The CLI validator mirrors the site validator across a seam. A parity test caught real drift between the two validators. Consequently, validate ok ≠ site-safe — the ultimate verification check is always the site's own validator.
Gate Scope & Governance (STANDING 07-30)¶
Verification requirements depend on the nature of the change: - Code Changes: Require the full test suite (Stryker mutation testing, Semgrep static analysis, and council code review). - CMS Content Edits: Require only CLI validation and site load validation.
Worktree Isolation & Content Drift Hazard¶
Concurrent editing sessions previously risked content drift where uncommitted content in a shared checkout nearly contaminated a software build. To eliminate this hazard, content deployments follow the same pinned-worktree isolation rules as application code updates.