6
Skills4
MCP3
Sub-Agents5
Tools2
Hooks4
RulesSkills
# run-test
테스트를 실행하고 실패한 테스트를 자동으로 수정합니다.
```bash
bundle exec rspec
```
실패 시 자동으로 수정 제안을 생성합니다.
# rails-crud
Rails CRUD를 자동 생성합니다.
1. 모델 생성 (마이그레이션 포함)
2. 컨트롤러 생성 (RESTful 7 actions)
3. 뷰 생성 (ERB/Turbo Frames)
4. 라우트 설정
# security-check
```bash
bundle exec brakeman --no-pager
```
보안 취약점을 스캔하고 결과를 분석합니다.
# deploy
```bash
bin/deploy.sh
```
Fly.io에 배포합니다.
# optimize
N+1 쿼리, 미사용 코드, 성능 병목점을 분석합니다.
# server
```bash
rails server -b 0.0.0.0
```
MCP
mcp__context7__resolve-library-id
최신 라이브러리 버전과 ID를 조회합니다.
mcp__context7__query-docs
라이브러리의 최신 문서와 코드 예시를 가져옵니다.
mcp__fetch__fetch
URL의 내용을 가져옵니다.
mcp__rails-docs__search_tools
Rails 관련 MCP 도구를 검색합니다.
Sub-Agents
# Rails Tester Agent
시스템 프롬프트:
당신은 Rails 테스트 전문가입니다. RSpec/Minitest 테스트를 실행하고 결과를 분석합니다.
# Deployer Agent
시스템 프롬프트:
당신은 배포 전문가입니다. Fly.io/Kamal 배포를 자동화합니다.
# Security Reviewer Agent
시스템 프롬프트:
당신은 보안 전문가입니다. 코드의 보안 취약점을 탐지합니다.
Tools
파일을 읽어 내용을 확인합니다.
예: app/controllers/jobs_controller.rb
파일 내 특정 문자열을 찾아 교체합니다.
예: per(10) → per(12)
새 파일을 생성하거나 기존 파일을 덮어씁니다.
셸 명령을 실행합니다.
예: rails server, flyctl deploy, git status
웹에서 최신 정보를 검색합니다. Sources: 필수 포함.
Hooks
#!/bin/bash
# PreToolUse Hook: protect-files.sh
# 중요 파일(config/credentials, .env 등) 수정 방지
PROTECTED_FILES=("config/credentials.yml.enc" ".env" ".env.production")
for f in "${PROTECTED_FILES[@]}"; do
if [[ "$1" == *"$f"* ]]; then
echo "ERROR: $f 는 보호된 파일입니다."
exit 1
fi
done
#!/bin/bash
# PostToolUse Hook: rubocop-check.sh
# 수정된 파일에 대해 RuboCop 자동 수정 실행
if [[ "$1" == *.rb ]]; then
bundle exec rubocop -a "$1" 2>/dev/null
fi
Rules
# Output Format Rule
모든 답변은 다음 3단계를 따릅니다:
1. **분석**: 문제/요청을 분석합니다
2. **실행**: 코드 변경/명령 실행
3. **검증**: 결과를 확인하고 요약합니다
# Security Policy
- PII 데이터 노출 금지
- SQL Injection 방지 (파라미터 바인딩 필수)
- XSS 방지 (출력 이스케이프 필수)
- CSRF 토큰 검증 필수
- 강력한 인증/인가 체계 유지
# Rails Conventions
- Fat Model, Skinny Controller
- Service Object 패턴 활용
- 스코프 활용 (default_scope 금지)
- Strong Parameters 필수
- N+1 쿼리 방지 (includes/preload)
# Testing Rules
- 모든 모델에 유닛 테스트 필수
- 주요 플로우에 통합 테스트 작성
- 테스트 커버리지 80% 이상 유지
- Factory 패턴 사용 (fixtures 대신)
설정 파일
{
"ignore": [
"node_modules/",
".git/",
"tmp/",
"log/",
"*.log",
".env",
".env.*",
"vendor/bundle/",
"public/assets/",
"storage/"
]
}
{
"model": "gpt-oss-120b",
"permissions": {
"allow": [
"Read",
"Edit",
"Write",
"Glob",
"Grep",
"Bash",
"WebSearch",
"WebFetch"
],
"deny": []
},
"environment": {
"RAILS_ENV": "development"
}
}
{
"mcpServers": {
"context7": {
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp@latest"
]
},
"fetch": {
"command": "uvx",
"args": [
"mcp-fetch"
]
},
"rails-docs": {
"command": "ruby",
"args": [
"mcp/rails_docs_server.rb"
]
}
}
}