{ "doc_path": "docs/ARCHITECTURE.md", "claims_checked": 60, "claims_passed": 56, "claims_failed": 4, "failures": [ { "line": 513, "claim": "web/test/build-artifact.test.mjs (BA1–BA6)", "expected": "BA1–BA10", "actual": "STALE: the build-artifact suite has 10 cases (BA1–BA10); BA7 (gazetteer id parity), BA8 (no deep-link crypto), BA9 (200 KiB gz budget), BA10 (pairId parity) exist" }, { "line": 539, "claim": "`KvLike` | `bot/src/kv/*.ts` | Structural KV interface (module-private, not exported — the derived `MintSessionKv`/`LocationPinKv`/`GuidanceSessionKv` are the public surface)", "expected": "KvLike exists in sessions.ts and location-pin.ts only; guidance-sessions.ts defines its own module-private `GuidanceSessionKv` (line 77, not exported, does not extend KvLike)", "actual": "PARTIALLY WRONG: `GuidanceSessionKv` is itself the module-private interface (nothing is derived/exported in guidance-sessions.ts); KvLike is not present in all kv/*.ts" }, { "line": 579, "claim": "`TelegramWebAppLike` ... Hand-rolled ~12-member contract for `window.Telegram.WebApp`", "expected": "~20 members", "actual": "DRIFT: interface has ~20 members (initData, startParam, colorScheme, themeParams, version, platform, safeAreaInset, contentSafeAreaInset, isActive, 4 swipe/confirm methods, isFullscreen, unlockOrientation, BackButton, LocationManager members...)" }, { "line": 519, "claim": "VERIFY: production Worker hostname and KV namespace id come from bot/wrangler.jsonc and bot/.dev.vars, both environment-specific.", "expected": "VERIFY markers should cite only facts external to the repo", "actual": "OVER-FLAGGED: both the workers.dev hostname (MINI_APP_URL) and the KV namespace id ARE committed repo facts in bot/wrangler.jsonc — this marker can be dropped or reworded (fork-specific values aside)" } ] }