본문으로 건너뛰기
cccskills
무료GitHub에 공개

verify-worldmonitor

Verify WorldMonitor dashboard behavior using existing browser tests or focused manual interactions. Check panels, map layers, settings, search, and country briefs, while collecting screenshots, logs, and persisted-state evidence to document the results.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

원문원문 설명 보기

Verify WorldMonitor dashboard behavior with existing browser tests or a scoped manual drive. Use for panels, map layers, settings, search, country briefs, boot, or dashboard screenshots.

연동 도구Playwright
설치 방법 보기

이럴 때 유용합니다

  • Checking dashboard startup after a change
  • Verifying panel settings and saved layouts
  • Testing map layers, search, and country briefs
  • Collecting screenshots and logs for bug investigation

포함된 파일(18)

  • SKILL.md8.8 KB
  • features/country-brief.md9.1 KB
  • features/dashboard-boot.md3.3 KB
  • features/global-search.md2.9 KB
  • features/map-layers.md4.2 KB
  • features/panel-settings.md3.3 KB
  • features/README.md3.8 KB
  • scripts/drive.mjs6.5 KB
  • scripts/wm-verify.sh7.8 KB
  • steps/_inspect.mjs1.9 KB
  • steps/_profile.mjs2.7 KB
  • steps/aircraft-emergencies.mjs8.4 KB
  • steps/country-brief.mjs2.7 KB
  • steps/dashboard-boot.mjs2.3 KB
  • steps/global-search.mjs2.6 KB
  • steps/map-layers.mjs3.3 KB
  • steps/panel-settings.mjs3.0 KB
  • steps/prediction-shift-signal-modal.mjs1.1 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Verify WorldMonitor

WorldMonitor's primary surface is a browser dashboard: a Vite/TypeScript SPA served at /dashboard, with a map, a panel grid, a settings overlay, and a command palette. This skill launches one isolated instance of it, drives a feature the way a user does, and leaves evidence behind.

This skill proves browser behavior. Use the code and check map for backend, desktop, worker, or documentation changes.

Run everything from the repo root of the worktree under test.

Choose the proof

  1. Name the user action and expected result. Load the matching feature recipe, including its data path and proof limits.
  2. Follow worktree preparation. Run an existing strict test first when it covers the outcome. Country Brief uses npm run test:e2e:country-brief. Playwright owns that test's server; do not also run launch for it.
  3. For an interaction the test does not cover, use the manual steps below. Extend an existing test when a lasting regression check is needed.
  4. Report the exercised path, controlled responses, evidence, and unmet criteria. Apply the local API proof limits. A successful drive proves only its assertions.

Launch

One long-lived dev server per run; every drive gets a fresh browser context against it.

.agents/skills/verify-worldmonitor/scripts/wm-verify.sh launch

It picks the first free port in 4480-4487, starts VITE_E2E=1 VITE_VARIANT=full npm run dev, waits until /tests/map-harness.html answers 200 (the same readiness probe playwright.config.ts uses — it forces a real module transform, so 200 means "can serve the app", not just "socket open"), and writes .claude/verify-evidence/instance.json with the pid, port and base URL.

  • VITE_E2E=1 is not optional. It is what stamps data-wm-event-handlers-ready and data-wm-initial-data-ready on <html>; every drive waits on those markers.
  • Pick a variant with WM_VERIFY_VARIANT=tech|finance|commodity|energy|happy.
  • Force a port with launch <port>. Launch refuses a port someone else holds rather than fighting for it.
  • Prepare dependencies through preflight before launch. If Chromium is missing, run npx playwright install chromium.

Isolation. Two instances can run side by side on different ports, but they share .claude/verify-evidence/instance.json, so this skill supports one instance per worktree. If launch reports an instance already running, either reuse it (doctor first) or cleanup. Never adopt a dev server this run did not start — the user's own npm run dev and other worktrees are also vite processes.

Doctor

.agents/skills/verify-worldmonitor/scripts/wm-verify.sh doctor

Read-only. Answers "is this instance worth driving?": the recorded pid is alive, the port is held by our process tree (walking parents, so vite-under-npm counts), /dashboard returns 200 with the app shell, the process is still vite/npm, and the launch recorded VITE_E2E=1. It also prints the dev-server log's error-line count and path.

Run it before the first drive, after any drive that failed, and any time behavior looks wrong. Exit code 0 = OK.

If doctor cannot see the problem — a wedged page on a healthy server — relaunch rather than hoping: cleanup then launch.

Drive

.agents/skills/verify-worldmonitor/scripts/wm-verify.sh drive <step.mjs> --name <label>

A step file default-exports an async function and lives in steps/:

import { seedProfile, waitForBoot, waitForMap } from './_profile.mjs';

export default async function ({ page, base, shot, log, expectVisible }) {
  await seedProfile(page);                       // clear storage, dismiss first-run overlays
  await page.goto(`${base}/dashboard`, { waitUntil: 'domcontentloaded' });
  await waitForBoot(page, { data: true });       // data-wm-* readiness markers
  const renderer = await waitForMap(page);       // 'deckgl' | 'globe' | 'svg'
  await expectVisible('#panelsGrid .panel');
  await shot('booted');
  log('renderer', renderer);
}

The harness gives each step page, context, base, shot(name), log(...), and expectVisible(selector). It records console errors and warnings, every response ≥400, a transcript, and a failure screenshot if the step throws. Recorded errors alone do not fail the drive. Assert the requested result and inspect relevant failures before calling the feature verified.

Ready-made steps, one per mapped feature:

StepFeature
steps/dashboard-boot.mjsDashboard boot
steps/panel-settings.mjsPanel settings
steps/country-brief.mjsCountry brief
steps/global-search.mjsGlobal search
steps/map-layers.mjsMap layers
steps/_inspect.mjsnot a feature — dumps live panel keys, layer handles, header ids, and the map renderer when a handle in the map has drifted

Environment switches: WM_VERIFY_HEADED=1 (real window, real GPU — the only way to get the deck.gl map), WM_VERIFY_SOFTWARE_GL=1 (reproduce the repo's playwright GL flags), WM_VERIFY_PANEL, WM_VERIFY_LAYER, WM_VERIFY_COUNTRY, WM_VERIFY_SEARCH.

Stable handles worth knowing: #panelsGrid .panel[data-panel="<key>"], #unifiedSettingsBtn, #us-tab-panels, #usPanelToggles .panel-toggle-item[data-panel="<key>"], .panels-save-layout, #searchBtn, .search-modal .search-input, .search-result-item[data-index], .layer-toggle[data-layer="<key>"], #country-deep-dive-panel, #deep-dive-close, #mapDimensionToggle.

Evidence

Every drive writes .claude/verify-evidence/<timestamp>-<label>/ containing numbered screenshots, transcript.txt, console-errors.json, console-warnings.json, failed-requests.json, and result.json. Cleanup never touches these — they are the proof and they outlive the run. .claude/ is gitignored, so nothing here is ever committed.

Proof standards for this app:

  • Drive the real user path — the gear button, the chip, the deep link — not an internal setter or a test-only endpoint.
  • Capture the action and its result, not just the final screen: a screenshot before the change and one after.
  • Check the side effect next to the pixel: the persisted localStorage key, the ?layers= / ?country= URL, the re-read DOM state. A panel that appears but is not persisted is a bug the screenshot cannot see.
  • Wait on the app's own readiness markers. A fixed sleep either flakes or hides a regression.
  • Use the local API proof limits. Inspect the response and the handler path before classifying an API failure. Do not dismiss an error merely because the run is local.

Cleanup

.agents/skills/verify-worldmonitor/scripts/wm-verify.sh cleanup

Terminates the recorded pid and its children (SIGTERM, then SIGKILL after 10 s) and removes instance.json. It kills only what launch started — never pkill vite, which would take out the user's own dev server and every other worktree's.

Run it after the last drive of the run, and after any failed iteration, so a broken attempt does not strand a port.

Helpers

  • scripts/wm-verify.sh — launch [port] | doctor | drive <step.mjs> [--name label] | cleanup. Executable; invocations above.
  • scripts/drive.mjs — the Playwright driver drive delegates to. Runnable directly: node .agents/skills/verify-worldmonitor/scripts/drive.mjs <step.mjs> --name <label>.
  • steps/_profile.mjs — seedProfile(page, overrides), waitForBoot(page, {data}), waitForMap(page).

Feature map

features/README.md indexes user entry points, recipes, and gotchas. Exercise the entry points affected by the change and name those left unverified. Update the relevant recipe when behavior or stable handles change.

Registration

The canonical copy is .agents/skills/verify-worldmonitor/. Edit that copy. An agent can read this file directly even when automatic discovery is unavailable.

For Claude Code discovery, run the following only when .claude/skills/verify-worldmonitor does not exist. Preserve an existing destination and inspect it before making changes. Do not maintain a second copy.

mkdir -p .claude/skills
ln -s ../../.agents/skills/verify-worldmonitor .claude/skills/verify-worldmonitor

If Git ignores a new skill file, inspect git check-ignore -v <path> before staging that specific file. Ignore rules can differ between clones.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Model how disruption at a major shipping passage could affect a country's oil or gas supply. Review estimated product deficits, oil reserve cover, and data limitations, with gas results presented as scenarios based on assumed route exposure.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Modeling a Hormuz disruption's impact on Japan
  • Comparing fuel deficits under different disruption levels
  • Reviewing gas supply sensitivity to assumed route disruption
koala73/worldmonitor8.9만2026년 10월 18일 업데이트

Check current airport delays and cancellations worldwide, including delay types, severity, average delay minutes, and the share of flights affected. Use airport-level alerts to understand disruption before a trip or review conditions across a region.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Checking airport disruption before departure
  • Reviewing airports with severe delays
  • Checking delayed-flight shares and cancellation counts
koala73/worldmonitor8.9만2026년 10월 18일 업데이트

Check current disruption at 13 monitored maritime chokepoints, the narrow passages used by shipping. Review congestion, active warnings, affected routes, and vessel transit summaries, while checking which underlying sources are available.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Checking disruption at Hormuz or Suez
  • Reviewing congestion and active navigation warnings
  • Identifying trade routes affected by disruption
koala73/worldmonitor8.9만2026년 10월 18일 업데이트

Retrieve a country's current risk snapshot using its two-letter country code. Review the Country Instability Index, a measure of instability, alongside its travel advisory level and the presence and count of active sanctions.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Check a country's current instability score
  • Review a country's travel advisory level
  • Check whether sanctions are active and how many are recorded
koala73/worldmonitor8.9만2026년 10월 18일 업데이트

Retrieve World Monitor forecasts to review scenario probabilities, changes, and supporting signals by region or topic. Check forecast accuracy records with their audit status, and distinguish unavailable data from an absence of forecasted risks.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Review conflict forecasts for a specific region
  • Check changes in scenario probabilities
  • Inspect signals behind a forecast
koala73/worldmonitor8.9만2026년 10월 18일 업데이트

Review summaries of sanctions lists from OFAC, the US sanctions authority. Retrieve additions from the latest dataset revision, country and sanctions-program totals, and counts of sanctioned vessels and aircraft to understand where sanctions are concentrated.

한국어 요약은 준비 중입니다. 영어 요약을 표시하고 있습니다.

  • Reviewing newly added sanctions designations
  • Comparing designation counts by country
  • Checking totals by sanctions program
koala73/worldmonitor8.9만2026년 10월 18일 업데이트

koala73의 스킬 모두 보기

이 스킬의 문제 신고