Corrective Action: RPG Walkthrough Microsite Shipped with 44% Broken URLs

Corrective Action: RPG Walkthrough Microsite Shipped with 44% Broken URLs

Date: March 16, 2026 Category: Verification Failure (Cross-System Assumption) Impact: 7 of 16 URLs broken in production RPG walkthrough microsite; Chris caught them manually Resolution Time: Same session — URLs corrected after filesystem and Sanity verification


Incident

What Happened

The RPG walkthrough microsite was built by a multi-agent pipeline (Oracle providing methodology content, Sage providing relationship framing, Concierge-Consulting providing URL recommendations, and the builder agent assembling the final JSX). The microsite shipped to production with 7 of 16 external URLs pointing to nonexistent pages on valuefirstteam.com. Chris found the broken links during review.

The broken URLs fell into two categories:

  1. Wrong path prefix: /articles/slug and /shows/slug instead of /media/articles/slug and /media/shows/slug
  2. Nonexistent top-level routes: /value-path and /unified-views instead of /what-we-solve/the-value-path and /presentations/four-unified-views

Timeline

Time Event
Session start Multi-agent pipeline generates RPG walkthrough microsite content
Build Builder agent assembles JSX with URLs from methodology agents
Deploy Microsite pushed to production on valuefirstteam.com
Chris review 7 broken URLs identified in production
Fix URLs corrected via filesystem check + Sanity slug verification

Root Cause

Three agents (Oracle, Sage, Concierge-Consulting) provided URL recommendations based on methodology knowledge and logical assumptions about URL structure. The builder agent consumed these URLs without verification. No agent in the pipeline checked whether the URLs resolved to actual pages.

The mechanism: agents inferred URL paths from domain knowledge ("articles are typically at /articles/") rather than verifying against the actual website route structure (apps/website/src/pages/ shows articles live at /media/articles/). This is the same pattern as guessing HubSpot property existence from record null values, or assuming calendar invitees are attendees.

Category: Verification Failure (Cross-System Assumption)

This is a recurring pattern class in this system: assuming data from one system (methodology knowledge, framework docs, Sanity schemas) accurately represents the state of another system (live website routes, HubSpot properties, Google Calendar attendance). The assumption feels correct because it is plausible. Plausibility is not verification.

Specific URL failures:

Generated URL Actual Route Why the Assumption Felt Correct
/articles/slug /media/articles/slug Most websites serve articles at /articles/
/shows/slug /media/shows/slug Show names are intuitive top-level paths
/value-path /what-we-solve/the-value-path Value Path is a core concept — surely it has a clean URL
/unified-views /presentations/four-unified-views Unified Views is a framework — likely has its own page

Every one of these is a training data pattern. Training data says articles live at /articles/. This website organizes them under /media/articles/. The only way to know the difference is to check.


Fix Applied

Immediate Resolution

All 7 URLs corrected to match actual routes. Verification was performed against two sources:

  1. Filesystem: apps/website/src/pages/ directory structure confirms /media/articles/, /media/shows/, /what-we-solve/, /presentations/ as the real route prefixes
  2. Sanity CMS: scripts/sanity/query.js confirmed article and show slugs exist in the content database

Code/Configuration Changes

File Change
RPG walkthrough JSX 7 URLs corrected: /articles/ to /media/articles/, /shows/ to /media/shows/, /value-path to /what-we-solve/the-value-path, /unified-views to /presentations/four-unified-views

Verification

Each corrected URL verified to resolve to a real page by checking the corresponding file exists in apps/website/src/pages/ or matches a dynamic route pattern with confirmed Sanity content.


Prevention Measures

Rules Added

Layer File Rule
Enforcement skills/enforcement/vf-self-correction.md Infrastructure Trigger: Writing valuefirstteam.com URLs without verifying against apps/website/src/pages/ directory structure
Incident Log agents/instruction-optimizer/data/incident-log.json Incident logged for pattern analysis

Detection Triggers

Added to vf-self-correction.md Infrastructure Triggers:

If you're writing a URL to valuefirstteam.com without checking the route exists in apps/website/src/pages/ — you are assuming URL structure from training data. Articles are at /media/articles/, shows at /media/shows/. There is no /articles/, /shows/, /value-path, or /unified-views route. Check the filesystem or Dewey index (111) before writing any internal URL.

Future Prevention

  1. Any agent generating content with valuefirstteam.com links must verify each URL against the actual route structure (Dewey 111: apps/website/src/pages/)
  2. After writing any JSX/HTML with external links, run a verification pass checking each href against known routes
  3. The Dewey index (111) already documents the website route structure — agents should consult it before generating URLs

Lessons

Any time an agent generates content that references an external system — URLs, HubSpot properties, API endpoints, calendar data — the reference must be verified against the actual system, not assumed from domain knowledge. Training data patterns ("articles are usually at /articles/") are wrong often enough to require verification every time. This is not a new principle; it is the same principle behind every verification failure in this system's history. The pattern keeps recurring because the assumptions feel correct. Plausibility is the enemy of verification.


Related Incidents

Date Incident Same Pattern
Mar 8, 2026 Calendar invitees reported as attendees Assumed one system (Calendar invites) represented another (actual attendance from transcripts)
Mar 10, 2026 Paragon account data drift Assumed HubSpot records created correctly at setup remained correct 6 weeks later
Mar 14, 2026 All-Hands duplicate properties Assumed null property values meant property doesn't exist (null = no data, not nonexistent)
Mar 11, 2026 Sanity write post-compaction Assumed remembered procedure was correct after context compaction
Mar 12, 2026 HubSpot course integrity Assumed TypeScript types matched live HubSpot schema without verification

All five share the root mechanism: knowledge from System A was assumed to be accurate in System B without cross-system verification.