Skip to content

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.