npx claudepluginhub vp-k/auto-complete-loopThis skill uses the workspace's default tool permissions.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides slash command development for Claude Code: structure, YAML frontmatter, dynamic arguments, bash execution, user interactions, organization, and best practices.
Loaded by full-auto Phase 2 or add-e2e orchestrator via Read. No Ralph/progress/promise code — managed by the caller.
| 감지 파일 | 유형 |
|---|---|
package.json + React/Next/Vue | web |
package.json + Express/Fastify/Nest (UI 없음) | api |
pubspec.yaml + (android/ or ios/) | flutter_mobile |
pubspec.yaml + web/ (모바일 디렉토리 없음) | flutter_web |
requirements.txt/pyproject.toml + FastAPI/Django/Flask | api |
go.mod + HTTP 서버 | api |
| 기타 | unknown (사용자 확인 요청) |
| 조건 | 전략 | 설명 |
|---|---|---|
| 백엔드+DB가 같은 프로젝트 | real-server | 실제 서버 + ORM seed (정합성 최고, 우선 권장) |
| 프론트엔드만 (외부 API) | mock-server | MSW/mock으로 API 모킹 |
| Flutter + 자체 백엔드 | real-server | 서버 기동 + seed |
| Flutter + 외부 API만 | mock-server | HTTP 클라이언트 DI 교체 |
풀스택 판별: server/, api/, backend/ 디렉토리, ORM 파일(Prisma/TypeORM/Sequelize), docker-compose.yml 존재 여부.
| 프레임워크 | 검증 명령 | 자동 설치 |
|---|---|---|
| Playwright | npx playwright --version | O (npx playwright install) |
| integration_test | flutter devices | X (에뮬레이터 필요) |
| Maestro | maestro --version && adb devices | 부분적 (curl -Ls "https://get.maestro.mobile.dev" | bash) |
| supertest | node --version | O (npm i -D supertest) |
| pytest | python --version | O (pip install pytest httpx) |
Flutter Mobile / Native Mobile에서 디바이스 없는 경우:
flutter test test/integration/ — 에뮬레이터 불필요, testWidgets 기반) — 1순위flutter build web으로 전환e2e.applicable = false + 경고 기록참고: 네이티브 플러그인(camera, bluetooth 등) 사용 시 flutter build web 자체가 실패하므로 위젯 통합 테스트를 1순위로 배치.
npm init playwright@latest -- --yes --quietdata-testid > getByRole > getByText > 시맨틱 HTMLglobalSetup/globalTeardown에 ORM seed/cleanup 통합npm i -D msw) + 스키마 기반 팩토리npx playwright testflutter pub add 'dev:integration_test:{"sdk":"flutter"}'find.byKey() > find.byType() > find.text()flutter test integration_test/flutter build web 후 Playwright로 테스트flutter test --platform chrome integration_test/POST /signup -> POST /login -> GET /mePOST -> GET -> PUT -> DELETE.maestro/ 디렉토리에 YAML flow 파일 생성maestro test .maestro/1단계 — 초기 정합성 (생성 시) 스키마 소스 우선순위:
types/, interfaces/, models/)fromJson/toJson)스키마 소스 없으면: E2E 범위를 UI 인터랙션으로 한정 (데이터 검증 제외).
2단계 — 컴파일 타임 정합성 (드리프트 방지) 팩토리가 프로젝트 실제 타입을 import하므로, 스키마 변경 시 빌드 에러 자동 발생:
import { User } from '@/models/user' -> 필드 불일치 시 tsc 에러import 'package:app/models/user.dart' -> dart analyze 에러@type 최소 힌트 추가, 불가 시 런타임 E2E 실행이 구조 불일치 감지3단계 — 런타임 정합성 (코드 리뷰에서 확인) Phase 3 리뷰 항목: "mock/seed 데이터가 실제 스키마에서 파생되었는가"
as any, as unknown as T 타입 우회 금지.data.id)으로 스키마 역추론 금지// schema-source: [파일 경로] 주석 필수{
"id": "E2E-001",
"title": "회원가입->로그인->대시보드",
"priority": "high",
"source": "SPEC.md US-001,US-002",
"status": "pending",
"testFile": null
}
record-error + codex 요청data-testid 추가는 허용)data-testid/aria-label/role 그대로 사용button, input[name], heading) -> getByRole/getByLabelgetByTextdata-testid 추가data-testid + explicit wait로 안정화e2e/
├── fixtures/
│ ├── global-setup.ts # DB seed (ORM 모델 import)
│ ├── global-teardown.ts # DB cleanup
│ └── test-data.ts # seed 데이터 정의
└── *.spec.ts
e2e/
├── mocks/
│ ├── factories.ts # 프로젝트 타입 import 기반 팩토리
│ └── handlers.ts # MSW 핸들러
└── *.spec.ts