Campsite Content Generation
Hospitality · 2020-Present
The deterministic spine
The pipeline runs: attributes → validate and clean the brief → cache check → template select → WRITE (model A) → QC CHECK (model B) → capped retry → publish. The brief validation, the cache, the template selection and the QC floor - exact banned-word matching, required-facts presence, claim-versus-attributes, language and format - are all deterministic and run at $0 in both Cloud and OSS modes. They are authoritative for every hard rule.
That authoritative floor is what makes the model safe to use: the writer is free to be fluent because the checker and the deterministic rules will catch an unsupported claim before it can reach an editor, let alone the website.
The two-stage generation and the cost lever
The metered stages are the writer and the checker - two distinct model roles, write then verify. Everything around them is deterministic and free.
The cost lever is the content cache. Because generation is keyed on the attributes, the voice, the language, the content type and the active rules, a repeat request returns the stored draft at $0 without calling either model. Re-keying happens automatically when an owner changes a rule or template, so the cache never serves stale-to-policy copy. Combined with the deterministic brief and QC stages, the expensive write-then-check pair only runs when there is genuinely new copy to produce.
Dual approach - cloud vs on-prem OSS
The two metered stages run one of two ways. Cloud uses a hosted model (claude-haiku-4-5) for both the writer and checker roles, cost-capped and fail-closed. OSS uses self-hosted open models recorded on local M4 hardware - Qwen3-8B as the writer and a safety-tuned guard model (Qwen3Guard-Gen-4B) as the checker - replayed at $0.
The honest finding, shown as recorded divergences in the inspector: the cloud writer is more reliably on-voice and the cloud checker flags soft over-claims the open checker would let pass, while the open writer is close but drifts occasionally and is stiffer in non-English. Crucially, the deterministic QC floor catches the hard rule violations identically in both modes, so neither path can publish a banned word or an ungrounded required-fact. About four borderline divergences are recorded, and one case is shown as "not captured" rather than fabricating an OSS draft.
Out of scope (the real system)
Several production capabilities are deliberately excluded and represented honestly. The full breadth of languages and content types is downscaled, and translation is a labelled mock rather than a production localization stack. Full-scale generation and publishing infrastructure is stood in for by the synthetic catalog and the in-demo studio. Real CMS/website publishing integration is simulated and labelled. Model retraining and online learning are represented by the owner's voices, rules and templates plus the audit log and regenerate-with-feedback - not live learning.