google-agents-cli-scaffold
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
env-config-management
환경변수(.env.*), Spring 프로파일(application-*.yml) 수정 시 사용. app/backend/CLAUDE.md 참조 필수. 서비스별 포트 중복 검증, 민감 정보는 .env.local만, application-*.yml은 플레이스홀더만(기본값 금지). 의미없는 override 지양. SQS 엔드포인트 정확성 확인.
Full skill instructions
| 파일 | 역할 | 커밋 | 민감 정보 | 사용 시점 |
|---|---|---|---|---|
.env | docker-compose 인프라 설정 (MySQL, LocalStack) | ✅ | ❌ | docker-compose up |
.env.common | 컨테이너 공통 앱 설정 (Service URLs, SQS 큐) | ✅ | ❌ | docker-compose.{acceptance|demo}.yml |
.env.local | Spring 직접 실행용 모든 설정 | ❌ (gitignore) | ✅ | Gradle bootRun/test (IDE) |
.env.acceptance | .env.common 오버라이드 (테스트 DB, 더미 키) | ✅ | ❌ | docker-compose.acceptance.yml |
.env.demo | .env.common 오버라이드 (데모 환경) | ✅ | ❌ | docker-compose.demo.yml |
| 파일 | 환경 | 커밋 | 하드코딩 | 환경변수 로드 |
|---|---|---|---|---|
application.yml | 공통 | ✅ | ❌ (플레이스홀더만) | - |
application-local.yml | 로컬 개발 (IDE) | ✅ | ❌ (플레이스홀더만) | Gradle이 .env.local 로드 |
application-acceptance.yml | 인수 테스트 | ✅ | ❌ (플레이스홀더만) | .env.common + .env.acceptance |
application-prod.yml | 운영/데모 | ✅ | ❌ (플레이스홀더만) | .env.common + .env.demo |
# ❌ 나쁜 예: application-local.yml에 하드코딩
jwt:
secret: "my-secret-key-12345" # 절대 금지!
# ✅ 좋은 예: 플레이스홀더만
jwt:
secret: ${JWT_SECRET}
규칙:
.env.local에만 민감 정보 저장 (gitignore)application-*.yml은 ${...} 플레이스홀더만 사용8080 - API Gateway (모든 요청 진입점)
8081 - User-Service
8082 - Course-Service
8083 - Schedule-Service
검증:
SERVICE_URL 환경변수 확인# IDE 직접 실행 시 필요한 모든 설정 포함
# 1. 비밀 정보
JWT_SECRET=...
ENCRYPTION_KEY=...
LOCALSTACK_AUTH_TOKEN=...
# 2. 로컬 전용 설정 (localhost)
USER_SERVICE_URL=http://localhost:8081
COURSE_SERVICE_URL=http://localhost:8082
SCHEDULE_SERVICE_URL=http://localhost:8083
# 3. .env.common의 모든 내용 복사
# (중복이지만 로컬 실행 시 필요)
CANVAS_API_BASE_URL=https://khcanvas.khu.ac.kr/api/v1
SQS_ENDPOINT=http://localhost:4566
...
# ❌ 나쁜 예: 기본값 사용
spring:
datasource:
url: ${DATABASE_URL:jdbc:mysql://localhost:3306/default} # 절대 금지!
# ✅ 좋은 예: 기본값 없이 명시적 실패
spring:
datasource:
url: ${DATABASE_URL} # 환경변수 없으면 에러 발생
철학:
규칙:
${VAR_NAME:default} 형식 절대 금지${VAR_NAME} 형식만 사용# ❌ 나쁜 예: .env.common과 동일한 값을 .env.acceptance에서 반복
# .env.common
CANVAS_API_BASE_URL=https://khcanvas.khu.ac.kr/api/v1
# .env.acceptance (의미없는 중복)
CANVAS_API_BASE_URL=https://khcanvas.khu.ac.kr/api/v1 # 절대 금지! base와 동일
# ✅ 좋은 예: 실제로 다른 값만 override
# .env.common
DATABASE_URL=jdbc:mysql://mysql:3306/unisync
# .env.acceptance (테스트 DB로 override)
DATABASE_URL=jdbc:mysql://mysql:3306/unisync_test # 이건 OK (실제로 다름)
철학:
규칙:
.env.common에 있는 값을 .env.{acceptance|demo}에서 동일하게 반복 금지application.yml에 있는 값을 application-{local|acceptance|prod}.yml에서 동일하게 반복 금지Base & Override 관계:
# 환경변수 파일
.env.common (base)
├── .env.acceptance (override: 테스트 전용 값만)
└── .env.demo (override: 데모 전용 값만)
# Spring 프로파일
application.yml (base)
├── application-local.yml (override: 로컬 전용 값만)
├── application-acceptance.yml (override: 테스트 전용 값만)
└── application-prod.yml (override: 운영 전용 값만)
# 반드시 docs/design/sqs-architecture.md와 일치해야 함
SQS_LAMBDA_TO_COURSE_ENROLLMENTS=lambda-to-courseservice-enrollments
SQS_LAMBDA_TO_COURSE_ASSIGNMENTS=lambda-to-courseservice-assignments
SQS_COURSE_TO_SCHEDULE_ASSIGNMENTS=courseservice-to-scheduleservice-assignments
검증:
init-aws.sh)./gradlew printEnv 실행하여 로드 검증${...} 플레이스홀더${VAR:default} 형식 절대 금지, ${VAR} 만 사용docs/design/system-architecture.md 또는 app/backend/CLAUDE.md 업데이트
.env.common 또는 .env.local에 추가
.env.local.example 업데이트
application-*.yml에 플레이스홀더 추가
${NEW_VARIABLE_NAME} (기본값 없이)${NEW_VARIABLE_NAME:default-value} (기본값 설정)검증
./gradlew printEnv 실행${VAR:default} 형식 절대 금지 (Fail Fast 위반)해결:
.env.local 파일 존재 확인./gradlew printEnv 실행하여 로드 상태 확인해결:
docker-compose ps 실행하여 LocalStack 상태 확인.env.local에 LOCALSTACK_AUTH_TOKEN 존재 확인SQS_ENDPOINT=http://localhost:4566 확인해결:
SERVICE_URL 환경변수 확인# User Service 환경변수 확인
cd app/backend/user-service
./gradlew printEnv
# Course Service
cd app/backend/course-service
./gradlew printEnv
# Schedule Service
cd app/backend/schedule-service
./gradlew printEnv
# API Gateway
cd app/backend/api-gateway
./gradlew printEnv
# 1. 인프라 실행
docker-compose up -d
# 2. IDE에서 서비스 실행
# Profile: local
# Gradle이 .env.local 자동 로드
# 사전 준비: .env.local 필요 (LOCALSTACK_AUTH_TOKEN)
docker-compose -f docker-compose.acceptance.yml up --build
# 사전 준비: .env.local 필요 (LOCALSTACK_AUTH_TOKEN)
docker-compose -f docker-compose.demo.yml up
Project scaffolding, deployment configuration, and CI/CD setup for Google ADK agents.
Set up tracing, logging, and monitoring for deployed ADK agents across Cloud Trace, BigQuery, and third-party platforms.
Enterprise Azure infrastructure architect generating Bicep or Terraform from workload descriptions.
Plan and configure production-ready Azure Kubernetes Service clusters with Day-0 and Day-1 best practices.
Raw mechanical interfaces fusing Swiss typographic print with military terminal aesthetics. Rigid grids, extreme type scale contrast, utilitarian color, analog degradation effects. For data-heavy dashboards, portfolios, or editorial sites that need to feel like declassified blueprints.
Web search, scraping, extraction, crawling, and monitoring via ScrapeGraph AI CLI.
Skill for working with Firebase Hosting (Classic). Use this when you want to deploy static web apps, Single Page Apps (SPAs), or simple microservices. Do NOT use for Firebase App Hosting.
Deploy and manage web apps with Firebase App Hosting. Use this skill when deploying Next.js/Angular apps with backends.
Deploy applications and websites to Vercel. Use when the user requests deployment actions like "deploy my app", "deploy and give me the link", "push this live", or "create a preview deployment".
Build SEO-optimized pages at scale using templates, data, and proven playbook patterns.
Design and build isolated, reusable Convex backend components with clear boundaries and app-facing wrappers.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Opus.ai: Revolutionize Your Web Experience
Build a no-code AI app in minutes.
An IDE for code migration from legacy to modern frameworks through coding agents.
Automate CGI animation in live-action scenes
Branded artistic QR-code concepts
Launch a website in seconds with AI.
Streamline Your Coding Experience with AI Code Helper
Convert any screenshot or design to clean code.