TRADEWINDS BRIEF — SUBSTRATE INTEGRITY VALIDATOR REPORT
Generated: 2026-05-13 18:33:55 UTC
Repo: caribstar/guyana-news-blog
Total pages in substrate: 407
Daily12 countries: 12
============================================================================
1. FRONTMATTER LINTER
============================================================================
Checks: every regular page has title, date, content_type, image_role.
Daily12 country briefs additionally require country, country_label.
CHECK: missing_title | RESULT: PASS | count=0
CHECK: missing_date | RESULT: PASS | count=0
CHECK: missing_content_type | RESULT: WARN | count=51
CHECK: missing_image_role | RESULT: WARN | count=130
First 8 pages missing content_type:
/explained/01-caribbean-food-prices-still-rising/ (missing content_type)
/explained/02-jamaicans-moving-canada-uk/ (missing content_type)
/explained/03-caricom-economic-bloc-function/ (missing content_type)
/explained/04-guyana-oil-boom-everyday-costs/ (missing content_type)
/explained/05-remittance-fees-still-high/ (missing content_type)
/explained/06-us-immigration-policy-caribbean/ (missing content_type)
/explained/07-caribbean-passports-less-powerful/ (missing content_type)
/explained/08-violent-crime-tourism-growth/ (missing content_type)
============================================================================
2. CONTENT_TYPE ENUM LINTER
============================================================================
Per content contract §3.5, allowed values:
daily_brief, hard_news, analysis, commentary, feature, weekly_column,
practical, sports, sports_cartoon, funny, kids_story, recipe, memoriam,
event, crossfire, satire, evergreen, sponsored
CHECK: content_type_enum_compliance | RESULT: FAIL | count=42
Samples with non-canonical content_type:
/guyana/2026-05-13-guyana-cpa-child-protection/ (content_type="brief")
/africa/nigeria/2026-05-13-nigeria-tumfa-airstrike/ (content_type="brief")
/bahamas/2026-05-13-bahamas-general-election/ (content_type="brief")
/belize/2026-05-13-belize-state-of-emergency/ (content_type="brief")
/belize/2026-05-13-belize-tourism-q1-growth/ (content_type="brief")
/antigua-barbuda/2026-05-13-antigua-barbuda-conferences/ (content_type="brief")
/bahamas/2026-05-13-bahamas-norovirus-cruise/ (content_type="brief")
/barbados/2026-05-13-barbados-youth-mental-health/ (content_type="brief")
============================================================================
3. IMAGE_ROLE ENUM LINTER
============================================================================
Per content contract §3.6, allowed values: news, feature, sports, hero, utility, kids, none
CHECK: image_role_enum_compliance | RESULT: PASS | count=0
============================================================================
4. FRESHNESS CHECKER — DAILY12 TODAY BRIEF PRESENCE
============================================================================
For each of the 12 canonical countries, verify a today-dated daily_brief exists.
CHECK: daily12_today_coverage | RESULT: WARN | missing=12/12
Missing today's brief:
- guyana
- jamaica
- trinidad
- barbados
- bahamas
- belize
- antigua-barbuda
- dominica
- grenada
- saint-kitts-nevis
- saint-lucia
- saint-vincent-grenadines
============================================================================
5. PERMALINK COLLISION CHECK
============================================================================
CHECK: permalink_collisions | RESULT: PASS | duplicates=0
Total permalinks: 407
Unique permalinks: 407
============================================================================
6. CONTENT_TYPE DISTRIBUTION (informational, not gated)
============================================================================
(none) 51
brief 42
commentary 68
crossfire 3
daily_brief 175
evergreen 1
feature 1
funny 7
kids_story 20
practical 19
sports 1
sports_cartoon 5
weekly_column 14
============================================================================
SUMMARY GATES
============================================================================
GATE: title_present | PASS
GATE: date_present | PASS
GATE: content_type_enum | FAIL
GATE: image_role_enum | PASS
GATE: permalink_uniqueness | PASS
GATE: daily12_freshness | WARN (rendering falls back gracefully)
OVERALL_GATE: FAIL
HARD_FAILURE_TOTAL: 42
WARN_FAILURE_TOTAL: 193
END OF REPORT
