Community생산성 & 협업github.com

leostera/riot

Riot 리포지토리의 사이트 및 서비스(Cloudflare Workers, Astro/Starlight 사이트, 패키지 레지스트리 등) 변경, 리뷰, 디버깅, 테스트, 배포, 문서화 시 사용합니다.

riot란 무엇인가요?

이 스킬은 Riot 리포지토리에서 사이트 및 서비스 작업을 위한 가이드라인과 도구 사용법을 제공합니다. 주로 Cloudflare Workers, wrangler 설정, Astro/Starlight 사이트, 패키지 레지스트리, CDN, 문서 서비스, Play 플로우 등을 다루며, 각 서비스는 고유한 `package.json`, `bun.lock`, `tsconfig.json`, `wrangler.toml`을 가집니다. 이 스킬은 서비스별 작업 디렉토리 사용, `bun run` 스크립트 우선 사용, 배포 및 데이터 변경 시 명시적 승인 필요 등을 강조합니다. 또한 Cloudflare 도구(wrangler, cf CLI) 사용법, 바인딩 및 설정 동기화, 테스트 방법(로컬 페이크 사용, 라이브 테스트는 옵트인), 운영 안전 수칙을 상세히 설명하여, 개발자가 Riot 서비스를 안전하고 효율적으로 관리할 수 있도록 돕습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/leostera/riot/tree/HEAD/.agents/skills/riot-services

Installed? Explore more 생산성 & 협업 skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Riot Services

Service Loop

  1. riot-contributor를 먼저 사용하여 리포지토리 워크플로, 더티 작업 트리 처리, 검증 기대사항을 확인합니다.
  2. 특정 사이트/서비스 디렉토리에서 작업합니다. 모든 서비스는 자체 package.json, bun.lock, tsconfig.json 및 일반적으로 wrangler.toml을 소유합니다.
  3. 스크립트가 존재하는 경우 도구를 직접 호출하는 대신 bun run <script>를 사용합니다.
  4. 서비스별 잠금 파일을 유지합니다. 명시적으로 요청하지 않는 한 리포지토리 루트에 JS 워크스페이스를 추가하지 마십시오.
  5. 배포, 원격 마이그레이션, 라이브 E2E 테스트, 토큰 변경, DNS 변경, 프로덕션 데이터 변경은 명시적 사용자 승인 작업으로 취급합니다.
  6. 로컬 검사와 가짜(fake) 구현을 먼저 선호합니다. 라이브 테스트는 서비스별 환경 변수를 통해 옵트인 방식입니다.

Service Map

  • sites/api.pkgs.ml: 패키지 레지스트리 컨트롤 플레인 Worker. 게시/인증/검색/뷰/이벤트, D1 마이그레이션, Drizzle 스키마, R2 저장소 키, 큐, Durable Object 게시 조정, D1 백업 워크플로를 담당합니다.
  • sites/cdn.pkgs.ml: 패키지 아티팩트, 스파스 인덱스 문서, Riot/OCaml 바이너리 메타데이터, 액세스 분석에 대한 CDN Worker. ../api.pkgs.ml/src의 레지스트리 타입/스토리지 헬퍼를 재사용합니다.
  • sites/docs.pkgs.ml: 생성된 패키지 문서 서비스. R2에서 문서를 제공하고, 패키지 게시/처리 큐를 소비하며, 파이프라인 실행/이벤트를 레지스트리 D1에 기록하고, docs/build 검증을 위해 Cloudflare Sandbox 컨테이너를 사용합니다.
  • sites/pkgs.ml: 공개 패키지 레지스트리 웹 앱, Astro + Cloudflare 어댑터 + React 섬(islands). 레지스트리 뷰 API와 스파스 인덱스 문서를 읽습니다.
  • sites/riot.ml: 주요 정적 Riot 웹사이트, Astro + Tailwind, Pages 스타일 배포.
  • sites/get.riot.ml: 설치 스크립트 리디렉션/프록시 Worker.

Cloudflare Tooling

  • Worker/Astro 서비스 라이프사이클에 Wrangler 사용: wrangler dev, wrangler deploy, wrangler d1 migrations apply, wrangler pages deploy, wrangler types, 및 구성 기반 로컬 개발.
  • 글로벌 설치에 의존하지 않고 서비스 로컬 wrangler 의존성을 잠금 파일로 최신 상태로 유지하고 고정합니다.
  • API/리소스 검사 또는 현재 노출된 작업(특히 계정, 영역, DNS, D1 API, R2 API, 큐 API, Workers API 메타데이터, 스키마 검색)에만 통합 cf CLI를 사용합니다.
  • 실제 Cloudflare 변경을 위해 cf를 사용하기 전에 npx cf auth whoami를 실행하고 npx cf agent-context <product> 또는 npx cf schema <command...>로 명령 형식을 검사합니다.
  • 서비스별 명령이 로컬에서 검증되고 동일한 구성 기반 동작을 지원하지 않는 한 Wrangler 배포/개발/마이그레이션 스크립트를 cf로 대체하지 마십시오.

Config And Bindings

  • wrangler.toml, 내보낸 Env TypeScript 인터페이스, 테스트 가짜(fake) 환경을 동기화 상태로 유지합니다.
  • Worker 진입점과 공유 모듈에서 명시적인 Env 인터페이스를 선호합니다.
  • 비밀 아닌 기본값은 [vars]에 넣고, 비밀은 .env, Wrangler secrets 또는 Cloudflare 관리 비밀로 유지합니다.
  • api.pkgs.ml의 D1 스키마 변경 시, sites/api.pkgs.ml/migrations/ 아래에 SQL 마이그레이션을 추가하고 src/schema.ts/DB 헬퍼를 함께 업데이트합니다.
  • 런타임 D1 액세스는 api.pkgs.ml/src/db.ts, metadata-db.ts, pipeline-db.ts, access-db.ts 또는 좁게 명명된 형제 파일의 Drizzle 헬퍼를 통해 이루어집니다.
  • R2 객체 키 계약은 api.pkgs.ml/src/storage.ts에 있습니다. 키를 변경할 때 CDN/API/웹 소비자와 테스트를 함께 업데이트합니다.
  • 레지스트리 이벤트 페이로드 형태는 사용자에게 보이는 서비스 기록입니다. 새 이벤트 유형을 api.pkgs.ml/src/types.ts, DB 직렬화, 뷰 및 테스트에 추가합니다.

Testing

  • 작업을 마치기 전에 변경된 서비스의 bun run check를 실행합니다.
  • 서비스가 로컬 테스트를 정의하는 경우 bun run test를 실행합니다.
  • 명시적으로 요청하지 않는 한 bun run deploy, bun run migrate:remote 또는 라이브 test:e2e를 실행하지 마십시오.
  • api.pkgs.ml의 경우 로컬 테스트는 tests/helpers.ts의 FakeR2Bucket, FakeD1Database, FakeQueue, FakeExecutionContext를 사용합니다.
  • cdn.pkgs.ml의 경우 Cloudflare SDK 모의 객체를 발명하는 대신 레지스트리 테스트 가짜(fake)를 재사용합니다.
  • docs.pkgs.ml의 경우 가짜 파이프라인 실행기와 큐 드레인 헬퍼를 선호합니다. 이벤트 스트림을 테스트할 때 데이터베이스 시퀀스로 내구성 있는 순서를 확인합니다.
  • Astro 서비스의 경우 bun run check를 실행합니다. Astro가 검사의 일부로 .astro 타입 파일을 재생성할 것으로 예상합니다.

Web Work

  • 각 서비스의 기존 UI 스택과 일치시킵니다. pkgs.ml은 Astro 서버 출력, React 섬(islands), Tailwind, Cloudflare 어댑터를 사용합니다. docs*.ml은 해당되는 경우 Starlight를 사용합니다. riot.ml은 정적 Astro 사이트입니다.
  • 첫 화면은 마케팅 플레이스홀더가 아닌 실제 제품/서비스 표면으로 유지합니다.
  • 추상화를 추가하기 전에 기존 컴포넌트, 레이아웃, CSS 토큰, 글꼴, 경로 규칙을 사용합니다.
  • 레지스트리 웹 변경의 경우 sites/pkgs.ml/src/lib/web-views.ts의 레지스트리 뷰 API와 package-index.ts의 스파스 인덱스 헬퍼를 선호합니다.

Operational Safety

  • 프로덕션 엔드포인트를 실제로 취급: api.pkgs.ml, registry.pkgs.ml, cdn.pkgs.ml, pkgs.ml, docs.pkgs.ml, docs.riot.ml, play.riot.ml, riot.ml, get.riot.ml.
  • 명시적인 사용자 지시 없이 원격 D1 복원/내보내기/가져오기, DNS 쓰기, 경로/도메인 쓰기, 배포 또는 토큰 작업을 절대 실행하지 마십시오.
  • 라이브 스모크 테스트가 요청되면 해당 서비스 README/env 게이트를 먼저 읽고 어떤 환경 변수가 테스트를 파괴적이거나 인증되게 만드는지 명시하십시오.

관련 스킬