SIGN IN SIGN UP
koala73 / worldmonitor UNCLAIMED

Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface

0 0 157 TypeScript

docs: fix capability-count drift + add docs-stats CI guardrail (#3965)

* docs: fix capability-count drift + add docs-stats CI guardrail

Capability counts were hand-maintained across README, ARCHITECTURE.md, and
docs/*.mdx and had drifted independently — map layers appeared as 45/49/20+
(actual 56), services as 22/24/30+ (actual 34), 92 protos (actual 275), 21
languages (actual 23), 31 freshness sources (actual 35), 6 CI workflows
(actual 14).

Guardrail (the durable fix):
- scripts/docs-stats.mjs derives every quoted count from code sources of
  truth and writes docs/generated/stats.json; --check verifies each
  registered doc claim still matches (21 claims) and that every workflow is
  documented in ARCHITECTURE.md.
- npm run docs:stats / docs:check; always-on docs-stats job in test.yml
  (docs-only PRs skip `unit`, so it must not gate on changes.code).

Doc fixes:
- README, architecture.mdx, map-engine.mdx, features.mdx, agent-discovery,
  api-reference, data-sources, overview: corrected to code-derived numbers.
- architecture.mdx domain table completed to all 34 server domains.
- ARCHITECTURE.md: rewrote stale "api/ is self-contained JS" section
  (domain gateways generated from server/** + hand-written operational
  endpoints), rebuilt CI table (14 workflows), replaced stale verification
  stamp with a pointer to the CI guardrail.
- "every API endpoint starts as proto" scoped to domain intelligence APIs.
- getting-started.mdx: three setup tracks (app-only / contributor codegen /
  Docker), Node 18 -> 22, replaced dead flat api/*.js tree with the
  domain-based structure.
- Data-source metrics relabeled into distinct meanings (providers vs feeds
  vs freshness groups).

Energy variant promoted to stable parity with tech/finance:
- added dev:energy + build:energy scripts and README energy badge;
  documented energy across README, overview, documentation, desktop-app,
  architecture (six variants).

* chore(docs-stats): drop unused statSync import

Addresses Greptile P2 on #3965.

* ci(docs-stats): fail when stats.json is untracked or deleted

git diff --exit-code ignores untracked paths, so a PR that deletes the
committed docs/generated/stats.json would regenerate it untracked and still
pass. Switch to git status --porcelain, which reports stale, deleted, and
untracked states alike. Addresses Greptile P2 on #3965.
E
Elie Habib committed
491cdb27d44aec615371418702d101d73c0f975f
Parent: 4c86e7a
Committed by GitHub <noreply@github.com> on 5/29/2026, 11:56:07 AM