ワンクリックで
wca-data-boundary
Use when changing the WCA Data API, OpenAPI contract, import worker, database lifecycle, or web WCA client.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when changing the WCA Data API, OpenAPI contract, import worker, database lifecycle, or web WCA client.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when changing Axum solver routes, HTTP contracts, limits, scan sessions, or the matching web solver client.
Use when changing Rust puzzle state, moves, notation, scrambles, or validation.
Use when extracting React components, changing shared primitives, composing pages, or adding Storybook surfaces.
Use when changing solve inputs, limits, validation, scanner review controls, or form submission behavior.
Use when changing routes, locales, SEO metadata, static generation, hydration, public SEO assets, or language routing.
Use when changing React state, hooks, stores, async workflow ownership, or visualization synchronization.
| name | wca-data-boundary |
| description | Use when changing the WCA Data API, OpenAPI contract, import worker, database lifecycle, or web WCA client. |
Generated from ai/registry.json. Do not edit manually.
Canonical skill: ../../../ai/skills/wca-data-boundary.md.
Referenced context:
../../../ai/rules/wca-data-rules.md../../../ai/rules/frontend-rules.md../../../ai/rules/testing-rules.md../../../ai/architecture/wca-data.mdThis file is compiled from canonical AI knowledge files. Edit canonical files under ai, then run npm run ai:sync.
ai/skills/wca-data-boundary.mdUse for the WCA Data workspace, OpenAPI contract, import worker, PostgreSQL lifecycle, or web WCA client.
ai/rules/wca-data-rules.mdai/rules/frontend-rules.mdai/rules/testing-rules.mdai/architecture/wca-data.mdai/rules/wca-data-rules.mdapps/wca-data/openapi/wca-data-v1.yaml and contract tests as the public API contract.npm run wca:sync-once -- --fixture. Real sync and persistent migrations require explicit target approval.npm run wca:build and npm run wca:test; use the public smoke command only when the target is intentional and available.ai/rules/frontend-rules.mdapps/web/src/api; UI consumes domain hooks/adapters.@rubiks-cube-solver/rubiks-cube package as a visualization adapter, never as canonical solver state.hydrateRoot for generated markup, and SPA navigation after hydration.en-US canonical without a prefix. Publish/index any of the nine supported locales only when its visible and SEO content is fully translated with placeholder parity.cn helper in shadcn-style primitives and established classnames as cls in feature code when Tailwind conflict resolution is unnecessary.frontend-quality-rules.md.apps/web uses React 19 with React Compiler enabled through the Vite React compiler preset. Write ordinary components and hooks and let the compiler provide memoization.useMemo, useCallback, React.memo, or other manual render memoization. Do not make referential identity a correctness requirement for effects, subscriptions, or child props.forwardRef. React 19 components accept ref as a prop; type DOM-forwarding components with ComponentPropsWithRef and pass that prop to the owning element. A deliberate non-DOM imperative handle MAY use that prop with useImperativeHandle.useEffectEvent when a callback registered by an effect must read the latest props or state without re-subscribing. Keep effect dependencies focused on the values that define the subscription lifecycle."use no memo" only as a short-lived, documented containment for a verified compiler issue.npm run build as the compiler integration check because it exercises both the client bundle and the SSG build.ai/rules/testing-rules.mdTesting rules for this repository.
crates/api behavior changes.describe, it, expect, vi.fn, and vi.spyOn for web unit and component tests.web tests in __tests__/ folders beside the source area they cover.__tests__ directory, including the established root, client, and domain-level locations; use shared helpers under apps/web/src/test.apps/web/src/core tests under apps/web/src/core/<category>/__tests__/<name>.test.ts.web coverage thresholds at 90% for statements, branches, functions, and lines..only in committed test files.jest.mock patterns in Vitest tests.web tests as loose sibling *.test.ts(x) files when a nearby __tests__/ folder is available.apps/web/src/test/render.tsx or apps/web/src/test/api.ts already covers the setup.selectOption() or locator('option') for Radix Select controls; use helpers under tests/e2e/select-helpers.ts.cargo test -p cube-engine.npm run api:test or cargo test -p rubiks-cube-solver-api.cargo test.npm run build and npm run lint -w @rubiks-cube-solver/web.npm run test -w @rubiks-cube-solver/web.npm run test:coverage -w @rubiks-cube-solver/web.npm run storybook:build -w @rubiks-cube-solver/web.npm run test:e2e after the API, web app, and pruning-table prerequisites are available.npm run test:e2e:smoke for product/responsive/timer smoke, npm run test:e2e:scan for serial manual scan coverage, and npm run test:e2e:full for the complete non-heavy suite.npm run product:gate for release-level or cross-boundary validation.npm run ai:check.ai/architecture/wca-data.mdapps/wca-data is an independent workspace for unofficial public WCA reference data. It is not part of the Rust solver API.
FastifyAdapter exposes /api/wca-data/v1; PostgreSQL access uses pg and SQL migrations.pg-boss worker schedules import jobs. Import code downloads official TSV exports, stages and transforms rows, then atomically activates a dataset.openapi/wca-data-v1.yaml is the contract-first API source. Public routes include status/docs/OpenAPI plus championships, competitions, continents, countries, events, formats, persons, rankings, results, round types, scrambles, and top speedcubers.{ data, pagination, meta }; meta identifies the active official export./api/wca-data/v1 contract. The Axum app only owns the 308 docs redirect at /api/wca-data.WCA_DATA_DATABASE_URL; fixture fallback is forbidden.