Competitive Intelligence

logs/2026-06-28-semantic-intelligence-layer-v0-2.md

Semantic Intelligence Layer v0.2 Deploy

Summary

Algolia Competitive Intelligence has been upgraded from raw source-change reporting to the first semantic intelligence layer.

The product now treats Scout/direct/RSS collection as acquisition infrastructure only. A fetched page no longer becomes intelligence just because its hash changed. The CI engine now extracts typed semantic facts, compares facts across snapshots, scores materiality, and only publishes decision-grade semantic deltas.

What Changed

  • Added semantic_facts and semantic_deltas to the SQLite ledger.
  • Added Customer Proof Intelligence extraction for customer/case-study sources.
  • Added Content/Narrative Intelligence extraction for blog, press, news, RSS, and AI/search sources.
  • Added semantic diffing for new customer proof and new content/narrative movement.
  • Added materiality scoring and suppression gates.
  • Changed daily/weekly synthesis packets to prefer semantic_deltas.
  • Added a raw-change guard so old changed case_study and changed since the previous snapshot records do not contaminate reports.
  • Updated the dashboard product surface to:
  • Customer Proof Radar
  • Narrative And Content Radar
  • Decision Queue
  • Suppressed Signals
  • Added semantic fixtures and regression tests.
  • Documented the semantic layer contract in the standalone repo.

Deployment

Standalone GitHub repo:

  • 1b86176 — Add semantic intelligence layer.
  • 16561a7 — Suppress legacy raw-change synthesis.
  • cf2c3a7 — Update CI dashboard after raw signal guard.

Runtime deployment:

  • Deployed the updated packages/ci-core code into the Chowmes/Hermes workspace skill: /opt/data/knowledge/obsidian/MyOS/Projects/Competitive Intelligence/skills/competitive-research
  • Updated the VPS dashboard publisher clone: /opt/data/apps/algolia-competitive-intelligence
  • Published the dashboard to GitHub/Vercel.

Version:

  • algolia-competitive-intelligence root package: 0.2.0
  • dashboard package: 0.2.0

Verification

Local verification:

  • npm run test passed with 27 tests.
  • npm run dashboard:build passed.

VPS verification:

  • Semantic smoke test passed inside the Hermes container.
  • Weekly report generated Markdown and HTML successfully on the VPS.
  • Legacy raw-change phrases were filtered from weekly synthesis.
  • Dashboard publisher exported and pushed the dashboard.
  • Chowmes health check passed and sent a Telegram test.

Cron status:

  • Daily CI is active at 0 9 * * *.
  • Weekly CI is active at 0 9 * * 0.
  • Both are scheduled for 2026-06-28 09:00 EDT because 2026-06-28 is Sunday.

Important Interpretation

The semantic layer is deployed, but the current historical ledger mostly contains pre-semantic raw-change signals. The correct behavior until fresh semantic deltas appear is conservative:

  • Do not manufacture a finding from old page changed signals.
  • Show no material semantic finding if no semantic delta exists.
  • Keep weak or ambiguous movement out of the executive brief.

The 09:00 run on 2026-06-28 is the first scheduled live validation of the deployed semantic layer.

Next Validation Questions

  • Did the daily run complete and deliver Telegram output?
  • Did the weekly run complete and deliver Telegram output?
  • Did semantic_facts populate from supported sources?
  • Did semantic_deltas populate only for real customer-proof or narrative movement?
  • Did weak hash-only/collector-only movement remain suppressed?
  • Did the dashboard update through GitHub/Vercel?
  • Did the report avoid changed case_study, page changed, and changed since the previous snapshot?

Next Product Work

  • Expand the gold dataset beyond the initial fixtures.
  • Improve real-page customer name extraction from Constructor, Bloomreach, and Coveo pages.
  • Add a stricter report validity rubric for CMO-grade usefulness.
  • Add source-type-specific extractors for press releases and changelogs.
  • Add action persistence for accepted/rejected decisions.
  • Reassess report language after the first fresh semantic run.