Tools: AI개인화_블로그글

Tools: AI개인화_블로그글

나만의 AI 만들기 - 개인화 & 커스터마이징 완전 정복 (2026)

왜 AI 개인화가 필요한가?

Part 1: Web 플랫폼 개인화

Claude.ai

ChatGPT

Web 플랫폼 비교

Part 2: CLI 도구 개인화

메모리 파일 비교

Claude Code 파일 구조

Gemini CLI 파일 구조

Codex CLI 파일 구조

Part 3: Hooks 시스템

Hooks 플랫폼 비교

Claude Code Hook 이벤트 (15개)

Hook 설정 예시

실전 활용 예시

Gemini CLI Hooks

Part 4: 스킬 시스템

SKILL.md = 범용 오픈 포맷

SKILL.md 기본 구조

스킬 폴더 구조

Part 5: 스킬 변환 & 설치 도구

1. skill-porter - Claude ↔ Gemini 변환

2. openskills - 범용 스킬 설치기

3. Skill Seekers - 문서 → 멀티플랫폼 스킬

4. antigravity-awesome-skills - 1,234+ 스킬 라이브러리

스킬 마켓플레이스

메모리 파일 호환성 정리 AI가 나를 기억하고, 내 스타일로 응답하도록 설정하는 방법 총정리 AI 도구를 쓰다 보면 매번 같은 설명을 반복하게 된다. "나는 게임 프로그래머야", "TypeScript로 작성해줘", "한글로 답해줘"... 이런 것들을 매번 말하는 건 비효율적이다. 크게 Web 플랫폼(claude.ai, ChatGPT)과 CLI 도구(Claude Code, Gemini CLI, Codex CLI)로 나눌 수 있다. Hooks는 도구 실행 전/후에 자동으로 스크립트를 실행하는 이벤트 기반 자동화 시스템이다. .claude/settings.json: 1. 위험 명령 차단 (PreToolUse): 2. 자동 포맷팅 (PostToolUse): 3. 데스크톱 알림 (Notification): Anthropic이 개발 → 오픈 스탠다드로 공개 → 27+ AI 에이전트에서 채택 LMAI 5회차 스터디 자료 | 2026.03 Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Code Block
Instructions [AI가 따를 지침]

Examples - 예시 1 - 예시 2

Guidelines - 가이드라인 1 - 가이드라인 2 --- name: my-awesome-skill description: 이 스킬이 무엇을 하는지 설명 (자동 트리거 매칭용) --- # My Awesome Skill

Instructions [AI가 따를 지침]

Examples - 예시 1 - 예시 2

Guidelines - 가이드라인 1 - 가이드라인 2 --- name: my-awesome-skill description: 이 스킬이 무엇을 하는지 설명 (자동 트리거 매칭용) --- # My Awesome Skill

Instructions [AI가 따를 지침]

Examples - 예시 1 - 예시 2

Guidelines - 가이드라인 1 - 가이드라인 2 my-skill/ ├── SKILL.md ← 메인 지침 (필수) ├── scripts/ ← 실행 스크립트 │ └── run.sh ├── references/ ← 참조 문서 │ └── api-docs.md ├── examples/ ← 예시 │ └── sample.md ├── .claude-plugin/ ← Claude 전용 (선택) │ └── marketplace.json └── gemini-extension.json ← Gemini 전용 (선택) my-skill/ ├── SKILL.md ← 메인 지침 (필수) ├── scripts/ ← 실행 스크립트 │ └── run.sh ├── references/ ← 참조 문서 │ └── api-docs.md ├── examples/ ← 예시 │ └── sample.md ├── .claude-plugin/ ← Claude 전용 (선택) │ └── marketplace.json └── gemini-extension.json ← Gemini 전용 (선택) my-skill/ ├── SKILL.md ← 메인 지침 (필수) ├── scripts/ ← 실행 스크립트 │ └── run.sh ├── references/ ← 참조 문서 │ └── api-docs.md ├── examples/ ← 예시 │ └── sample.md ├── .claude-plugin/ ← Claude 전용 (선택) │ └── marketplace.json └── gemini-extension.json ← Gemini 전용 (선택) # 설치 npm install -g skill-porter # Claude → Gemini 변환 skill-porter convert ./my-skill --to gemini # Gemini → Claude 변환 skill-porter convert ./my-skill --to claude # PR까지 자동 생성 skill-porter create-pr ./my-skill --to gemini # 설치 npm install -g skill-porter # Claude → Gemini 변환 skill-porter convert ./my-skill --to gemini # Gemini → Claude 변환 skill-porter convert ./my-skill --to claude # PR까지 자동 생성 skill-porter create-pr ./my-skill --to gemini # 설치 npm install -g skill-porter # Claude → Gemini 변환 skill-porter convert ./my-skill --to gemini # Gemini → Claude 변환 skill-porter convert ./my-skill --to claude # PR까지 자동 생성 skill-porter create-pr ./my-skill --to gemini # 설치 npm install -g openskills # Claude 스킬 설치 npx openskills install anthropics/skills # 범용 경로로 설치 (모든 도구 호환) npx openskills install anthropics/skills --universal # → .agent/skills/에 설치됨 # 글로벌 설치 npx openskills install anthropics/skills --global # 설치 npm install -g openskills # Claude 스킬 설치 npx openskills install anthropics/skills # 범용 경로로 설치 (모든 도구 호환) npx openskills install anthropics/skills --universal # → .agent/skills/에 설치됨 # 글로벌 설치 npx openskills install anthropics/skills --global # 설치 npm install -g openskills # Claude 스킬 설치 npx openskills install anthropics/skills # 범용 경로로 설치 (모든 도구 호환) npx openskills install anthropics/skills --universal # → .agent/skills/에 설치됨 # 글로벌 설치 npx openskills install anthropics/skills --global # 설치 pip install skill-seekers[all-llms] # 문서에서 스킬 생성 skill-seekers create https://docs.react.dev/ skill-seekers create facebook/react # GitHub skill-seekers create ./my-project # 로컬 skill-seekers create manual.pdf # PDF # 각 플랫폼용으로 패키징 skill-seekers package output/react --target claude # Claude 스킬 skill-seekers package output/react --target gemini # Gemini 스킬 skill-seekers package output/react --target cursor # .cursorrules skill-seekers package output/react --target langchain # LangChain skill-seekers package output/react --target llama-index # LlamaIndex # 설치 pip install skill-seekers[all-llms] # 문서에서 스킬 생성 skill-seekers create https://docs.react.dev/ skill-seekers create facebook/react # GitHub skill-seekers create ./my-project # 로컬 skill-seekers create manual.pdf # PDF # 각 플랫폼용으로 패키징 skill-seekers package output/react --target claude # Claude 스킬 skill-seekers package output/react --target gemini # Gemini 스킬 skill-seekers package output/react --target cursor # .cursorrules skill-seekers package output/react --target langchain # LangChain skill-seekers package output/react --target llama-index # LlamaIndex # 설치 pip install skill-seekers[all-llms] # 문서에서 스킬 생성 skill-seekers create https://docs.react.dev/ skill-seekers create facebook/react # GitHub skill-seekers create ./my-project # 로컬 skill-seekers create manual.pdf # PDF # 각 플랫폼용으로 패키징 skill-seekers package output/react --target claude # Claude 스킬 skill-seekers package output/react --target gemini # Gemini 스킬 skill-seekers package output/react --target cursor # .cursorrules skill-seekers package output/react --target langchain # LangChain skill-seekers package output/react --target llama-index # LlamaIndex # Claude Code용 설치 npx antigravity-awesome-skills --claude # Gemini CLI용 설치 npx antigravity-awesome-skills --gemini # Codex CLI용 설치 npx antigravity-awesome-skills --codex # Cursor용 설치 npx antigravity-awesome-skills --cursor # Claude Code용 설치 npx antigravity-awesome-skills --claude # Gemini CLI용 설치 npx antigravity-awesome-skills --gemini # Codex CLI용 설치 npx antigravity-awesome-skills --codex # Cursor용 설치 npx antigravity-awesome-skills --cursor # Claude Code용 설치 npx antigravity-awesome-skills --claude # Gemini CLI용 설치 npx antigravity-awesome-skills --gemini # Codex CLI용 설치 npx antigravity-awesome-skills --codex # Cursor용 설치 npx antigravity-awesome-skills --cursor - 내 역할/직업을 알고 맞춤형 답변 - 프로젝트 컨텍스트 유지 - 내가 원하는 스타일로 응답 - /memory show - 현재 컨텍스트 확인 - /memory add - 메모리 추가 - /memory reload - 메모리 리로드 - /init - GEMINI.md 자동 생성 - AGENTS.md는 범용 포맷 → Cursor, Copilot, Amp, Jules, Gemini CLI 등 60,000+ 프로젝트에서 사용 - execpolicy - Starlark 기반 보안 정책 엔진 (macOS Seatbelt, Linux Landlock) - Claude Code (.claude/skills/) - Codex CLI (.agents/skills/) - Gemini CLI (.agents/skills/) - Cursor (.cursor/skills/) - VS Code / GitHub Copilot (.github/skills/) - Windsurf (.windsurf/skills/) - Cline, Aider, OpenCode, Roo Code, Goose... - 공유 컴포넌트 (MCP, 문서, 스크립트): 85% 재사용 - 플랫폼별 파일: 15%만 변환 필요 - frontend-design - Anthropic 공식 (27.7만+ 설치) - brainstorming - MVP 기획 - security-auditor - 보안 검토 - test-driven-development - TDD - Supabase, Microsoft, Google, Vercel 공식 스킬 - Web 플랫폼: Projects + Memory + Custom Instructions로 개인화 - CLI 도구: CLAUDE.md / GEMINI.md / AGENTS.md로 메모리 관리 - Hooks: Claude Code가 가장 완성도 높음 (15개 이벤트) - SKILL.md: 범용 오픈 포맷 → 한 번 작성, 27+ 도구에서 사용 - 변환 도구: skill-porter, openskills로 플랫폼 간 변환 가능 - Claude Code Skills 공식 문서 - Gemini CLI 공식 문서 - Codex CLI 공식 문서 - mdskills.ai - 스킬 마켓플레이스 - antigravity-awesome-skills - skill-porter" style="background: linear-gradient(135deg, #9d4edd 0%, #8d3ecd 100%); color: #fff; border: none; padding: 6px 12px; border-radius: 6px; cursor: pointer; font-size: 12px; font-weight: 600; transition: all 0.3s ease; display: flex; align-items: center; gap: 6px; box-shadow: 0 2px 8px rgba(157, 77, 221, 0.3);">

Copy

project/ ├── CLAUDE.md ← 프로젝트 메모리 (자동 로드) └── .claude/ ├── settings.json ← 설정 (권한, 모델, hooks) ├── settings.local.json← 개인 설정 (gitignore) ├── rules/ ← 경로별 모듈 규칙 │ ├── api-rules.md │ └── testing-rules.md └── skills/ ← 커스텀 스킬 └── my-skill/ └── SKILL.md project/ ├── CLAUDE.md ← 프로젝트 메모리 (자동 로드) └── .claude/ ├── settings.json ← 설정 (권한, 모델, hooks) ├── settings.local.json← 개인 설정 (gitignore) ├── rules/ ← 경로별 모듈 규칙 │ ├── api-rules.md │ └── testing-rules.md └── skills/ ← 커스텀 스킬 └── my-skill/ └── SKILL.md project/ ├── CLAUDE.md ← 프로젝트 메모리 (자동 로드) └── .claude/ ├── settings.json ← 설정 (권한, 모델, hooks) ├── settings.local.json← 개인 설정 (gitignore) ├── rules/ ← 경로별 모듈 규칙 │ ├── api-rules.md │ └── testing-rules.md └── skills/ ← 커스텀 스킬 └── my-skill/ └── SKILL.md project/ ├── GEMINI.md ← 프로젝트 컨텍스트 └── .gemini/ └── settings.json ← 설정 project/ ├── GEMINI.md ← 프로젝트 컨텍스트 └── .gemini/ └── settings.json ← 설정 project/ ├── GEMINI.md ← 프로젝트 컨텍스트 └── .gemini/ └── settings.json ← 설정 project/ ├── AGENTS.md ← 프로젝트 지침 (범용!) ├── AGENTS.override.md ← 오버라이드 └── .agents/ └── skills/ └── my-skill/ └── SKILL.md project/ ├── AGENTS.md ← 프로젝트 지침 (범용!) ├── AGENTS.override.md ← 오버라이드 └── .agents/ └── skills/ └── my-skill/ └── SKILL.md project/ ├── AGENTS.md ← 프로젝트 지침 (범용!) ├── AGENTS.override.md ← 오버라이드 └── .agents/ └── skills/ └── my-skill/ └── SKILL.md { "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "bash .claude/hooks/check-dangerous.sh" } ] } ], "PostToolUse": [ { "matcher": "Write|Edit", "hooks": [ { "type": "command", "command": "npx prettier --write" } ] } ] } } { "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "bash .claude/hooks/check-dangerous.sh" } ] } ], "PostToolUse": [ { "matcher": "Write|Edit", "hooks": [ { "type": "command", "command": "npx prettier --write" } ] } ] } } { "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "bash .claude/hooks/check-dangerous.sh" } ] } ], "PostToolUse": [ { "matcher": "Write|Edit", "hooks": [ { "type": "command", "command": "npx prettier --write" } ] } ] } } #!/bin/bash # .claude/hooks/check-dangerous.sh INPUT=$(cat) COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command') if echo "$COMMAND" | grep -qE 'rm\s+-rf\s+/'; then jq -n '{ hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "deny", permissionDecisionReason: "위험: rm -rf / 감지됨" } }' exit 2 fi exit 0 #!/bin/bash # .claude/hooks/check-dangerous.sh INPUT=$(cat) COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command') if echo "$COMMAND" | grep -qE 'rm\s+-rf\s+/'; then jq -n '{ hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "deny", permissionDecisionReason: "위험: rm -rf / 감지됨" } }' exit 2 fi exit 0 #!/bin/bash # .claude/hooks/check-dangerous.sh INPUT=$(cat) COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command') if echo "$COMMAND" | grep -qE 'rm\s+-rf\s+/'; then jq -n '{ hookSpecificOutput: { hookEventName: "PreToolUse", permissionDecision: "deny", permissionDecisionReason: "위험: rm -rf / 감지됨" } }' exit 2 fi exit 0 #!/bin/bash # .claude/hooks/auto-format.sh INPUT=$(cat) FILE=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty') if [ -n "$FILE" ] && [ -f "$FILE" ]; then EXT="${FILE##*.}" case "$EXT" in js|jsx|ts|tsx|json|css|md) npx prettier --write "$FILE" ;; py) black --quiet "$FILE" ;; go) gofmt -w "$FILE" ;; esac fi exit 0 #!/bin/bash # .claude/hooks/auto-format.sh INPUT=$(cat) FILE=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty') if [ -n "$FILE" ] && [ -f "$FILE" ]; then EXT="${FILE##*.}" case "$EXT" in js|jsx|ts|tsx|json|css|md) npx prettier --write "$FILE" ;; py) black --quiet "$FILE" ;; go) gofmt -w "$FILE" ;; esac fi exit 0 #!/bin/bash # .claude/hooks/auto-format.sh INPUT=$(cat) FILE=$(echo "$INPUT" | jq -r '.tool_input.file_path // empty') if [ -n "$FILE" ] && [ -f "$FILE" ]; then EXT="${FILE##*.}" case "$EXT" in js|jsx|ts|tsx|json|css|md) npx prettier --write "$FILE" ;; py) black --quiet "$FILE" ;; go) gofmt -w "$FILE" ;; esac fi exit 0 #!/bin/bash INPUT=$(cat) MSG=$(echo "$INPUT" | jq -r '.message // "알림"') notify-send "Claude Code" "$MSG" #!/bin/bash INPUT=$(cat) MSG=$(echo "$INPUT" | jq -r '.message // "알림"') notify-send "Claude Code" "$MSG" #!/bin/bash INPUT=$(cat) MSG=$(echo "$INPUT" | jq -r '.message // "알림"') notify-send "Claude Code" "$MSG" --- name: my-awesome-skill description: 이 스킬이 무엇을 하는지 설명 (자동 트리거 매칭용) --- # My Awesome Skill

Instructions [AI가 따를 지침]

Examples - 예시 1 - 예시 2

Guidelines - 가이드라인 1 - 가이드라인 2 --- name: my-awesome-skill description: 이 스킬이 무엇을 하는지 설명 (자동 트리거 매칭용) --- # My Awesome Skill

Instructions [AI가 따를 지침]

Examples - 예시 1 - 예시 2

Guidelines - 가이드라인 1 - 가이드라인 2 --- name: my-awesome-skill description: 이 스킬이 무엇을 하는지 설명 (자동 트리거 매칭용) --- # My Awesome Skill

Instructions [AI가 따를 지침]

Examples - 예시 1 - 예시 2

Guidelines - 가이드라인 1 - 가이드라인 2 my-skill/ ├── SKILL.md ← 메인 지침 (필수) ├── scripts/ ← 실행 스크립트 │ └── run.sh ├── references/ ← 참조 문서 │ └── api-docs.md ├── examples/ ← 예시 │ └── sample.md ├── .claude-plugin/ ← Claude 전용 (선택) │ └── marketplace.json └── gemini-extension.json ← Gemini 전용 (선택) my-skill/ ├── SKILL.md ← 메인 지침 (필수) ├── scripts/ ← 실행 스크립트 │ └── run.sh ├── references/ ← 참조 문서 │ └── api-docs.md ├── examples/ ← 예시 │ └── sample.md ├── .claude-plugin/ ← Claude 전용 (선택) │ └── marketplace.json └── gemini-extension.json ← Gemini 전용 (선택) my-skill/ ├── SKILL.md ← 메인 지침 (필수) ├── scripts/ ← 실행 스크립트 │ └── run.sh ├── references/ ← 참조 문서 │ └── api-docs.md ├── examples/ ← 예시 │ └── sample.md ├── .claude-plugin/ ← Claude 전용 (선택) │ └── marketplace.json └── gemini-extension.json ← Gemini 전용 (선택) # 설치 npm install -g skill-porter # Claude → Gemini 변환 skill-porter convert ./my-skill --to gemini # Gemini → Claude 변환 skill-porter convert ./my-skill --to claude # PR까지 자동 생성 skill-porter create-pr ./my-skill --to gemini # 설치 npm install -g skill-porter # Claude → Gemini 변환 skill-porter convert ./my-skill --to gemini # Gemini → Claude 변환 skill-porter convert ./my-skill --to claude # PR까지 자동 생성 skill-porter create-pr ./my-skill --to gemini # 설치 npm install -g skill-porter # Claude → Gemini 변환 skill-porter convert ./my-skill --to gemini # Gemini → Claude 변환 skill-porter convert ./my-skill --to claude # PR까지 자동 생성 skill-porter create-pr ./my-skill --to gemini # 설치 npm install -g openskills # Claude 스킬 설치 npx openskills install anthropics/skills # 범용 경로로 설치 (모든 도구 호환) npx openskills install anthropics/skills --universal # → .agent/skills/에 설치됨 # 글로벌 설치 npx openskills install anthropics/skills --global # 설치 npm install -g openskills # Claude 스킬 설치 npx openskills install anthropics/skills # 범용 경로로 설치 (모든 도구 호환) npx openskills install anthropics/skills --universal # → .agent/skills/에 설치됨 # 글로벌 설치 npx openskills install anthropics/skills --global # 설치 npm install -g openskills # Claude 스킬 설치 npx openskills install anthropics/skills # 범용 경로로 설치 (모든 도구 호환) npx openskills install anthropics/skills --universal # → .agent/skills/에 설치됨 # 글로벌 설치 npx openskills install anthropics/skills --global # 설치 pip install skill-seekers[all-llms] # 문서에서 스킬 생성 skill-seekers create https://docs.react.dev/ skill-seekers create facebook/react # GitHub skill-seekers create ./my-project # 로컬 skill-seekers create manual.pdf # PDF # 각 플랫폼용으로 패키징 skill-seekers package output/react --target claude # Claude 스킬 skill-seekers package output/react --target gemini # Gemini 스킬 skill-seekers package output/react --target cursor # .cursorrules skill-seekers package output/react --target langchain # LangChain skill-seekers package output/react --target llama-index # LlamaIndex # 설치 pip install skill-seekers[all-llms] # 문서에서 스킬 생성 skill-seekers create https://docs.react.dev/ skill-seekers create facebook/react # GitHub skill-seekers create ./my-project # 로컬 skill-seekers create manual.pdf # PDF # 각 플랫폼용으로 패키징 skill-seekers package output/react --target claude # Claude 스킬 skill-seekers package output/react --target gemini # Gemini 스킬 skill-seekers package output/react --target cursor # .cursorrules skill-seekers package output/react --target langchain # LangChain skill-seekers package output/react --target llama-index # LlamaIndex # 설치 pip install skill-seekers[all-llms] # 문서에서 스킬 생성 skill-seekers create https://docs.react.dev/ skill-seekers create facebook/react # GitHub skill-seekers create ./my-project # 로컬 skill-seekers create manual.pdf # PDF # 각 플랫폼용으로 패키징 skill-seekers package output/react --target claude # Claude 스킬 skill-seekers package output/react --target gemini # Gemini 스킬 skill-seekers package output/react --target cursor # .cursorrules skill-seekers package output/react --target langchain # LangChain skill-seekers package output/react --target llama-index # LlamaIndex # Claude Code용 설치 npx antigravity-awesome-skills --claude # Gemini CLI용 설치 npx antigravity-awesome-skills --gemini # Codex CLI용 설치 npx antigravity-awesome-skills --codex # Cursor용 설치 npx antigravity-awesome-skills --cursor # Claude Code용 설치 npx antigravity-awesome-skills --claude # Gemini CLI용 설치 npx antigravity-awesome-skills --gemini # Codex CLI용 설치 npx antigravity-awesome-skills --codex # Cursor용 설치 npx antigravity-awesome-skills --cursor # Claude Code용 설치 npx antigravity-awesome-skills --claude # Gemini CLI용 설치 npx antigravity-awesome-skills --gemini # Codex CLI용 설치 npx antigravity-awesome-skills --codex # Cursor용 설치 npx antigravity-awesome-skills --cursor - 내 역할/직업을 알고 맞춤형 답변 - 프로젝트 컨텍스트 유지 - 내가 원하는 스타일로 응답 - /memory show - 현재 컨텍스트 확인 - /memory add <text> - 메모리 추가 - /memory reload - 메모리 리로드 - /init - GEMINI.md 자동 생성 - AGENTS.md는 범용 포맷 → Cursor, Copilot, Amp, Jules, Gemini CLI 등 60,000+ 프로젝트에서 사용 - execpolicy - Starlark 기반 보안 정책 엔진 (macOS Seatbelt, Linux Landlock) - Claude Code (.claude/skills/) - Codex CLI (.agents/skills/) - Gemini CLI (.agents/skills/) - Cursor (.cursor/skills/) - VS Code / GitHub Copilot (.github/skills/) - Windsurf (.windsurf/skills/) - Cline, Aider, OpenCode, Roo Code, Goose... - 공유 컴포넌트 (MCP, 문서, 스크립트): 85% 재사용 - 플랫폼별 파일: 15%만 변환 필요 - frontend-design - Anthropic 공식 (27.7만+ 설치) - brainstorming - MVP 기획 - security-auditor - 보안 검토 - test-driven-development - TDD - Supabase, Microsoft, Google, Vercel 공식 스킬 - Web 플랫폼: Projects + Memory + Custom Instructions로 개인화 - CLI 도구: CLAUDE.md / GEMINI.md / AGENTS.md로 메모리 관리 - Hooks: Claude Code가 가장 완성도 높음 (15개 이벤트) - SKILL.md: 범용 오픈 포맷 → 한 번 작성, 27+ 도구에서 사용 - 변환 도구: skill-porter, openskills로 플랫폼 간 변환 가능 - Claude Code Skills 공식 문서 - Gemini CLI 공식 문서 - Codex CLI 공식 문서 - mdskills.ai - 스킬 마켓플레이스 - antigravity-awesome-skills - skill-porter