MyRailsApp

ready Ruby on Rails Hotwire/Turbo CLI 1.0 (2025.06)
6
Skills
4
MCP
3
Sub-Agents
5
Tools
2
Hooks
4
Rules
Skills

# 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 대신)
설정 파일
.claudeignore.json
{
  "ignore": [
    "node_modules/",
    ".git/",
    "tmp/",
    "log/",
    "*.log",
    ".env",
    ".env.*",
    "vendor/bundle/",
    "public/assets/",
    "storage/"
  ]
}
settings.json
{
  "model": "gpt-oss-120b",
  "permissions": {
    "allow": [
      "Read",
      "Edit",
      "Write",
      "Glob",
      "Grep",
      "Bash",
      "WebSearch",
      "WebFetch"
    ],
    "deny": []
  },
  "environment": {
    "RAILS_ENV": "development"
  }
}
.mcp.json
{
  "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"
      ]
    }
  }
}
AI 어시스턴트
vLLM (gpt-oss-120b)
03/03 23:44
현재 프로젝트의 구성요소를 분석해줘
AI 어시스턴트 03/03 23:44
MyRailsApp 프로젝트 구성요소 현황 분석


아래는 현재 정의된 Claude Code 구성요소를 카테고리별로 정리하고, 각각의 역할·강점·보완점(베스트 프랙티스 관점)을 간략히 평가한 내용입니다.

---

1️⃣ Skill (총 6개)


| Skill | 주요 역할 | 강점 | 보완·추천 개선점 |
|------|----------|------|-------------------|
| run-test | 테스트 실행 → 자동 수정 피드백 루프 | CI‑like 흐름을 로컬에서 빠르게 재현 가능 | 테스트 커버리지 리포트(HTML) 자동 생성 후 WebSearch 로 공유하도록 확장 |
| rails-crud | 모델·컨트롤러·뷰 CRUD 코드 자동 생성·수정 | Rails “Scaffold” 를 코드‑레벨로 재사용 가능 | Strong Parameters 자동 삽입, Turbo‑Stream 템플릿 지원을 추가하면 최신 Hotwire 흐름에 최적화 |
| security-check | Brakeman 보안 스캔 | 보안 취약점 조기 발견 | 스캔 결과를 post-edit-rubocop 과 연동해 자동 rubocop -a 적용 및 security-reviewer 로 알림 전송 |
| deploy | Fly.io 배포 파이프라인 실행 | Fly.io 전용 배포 스크립트 캡슐화 | Zero‑downtime 배포 옵션(Blue‑Green) 및 Rollback 자동화 로직 포함 권장 |
| optimize | 코드 정적 분석·자동 최적화 | 성능·가독성 개선 제안 | Rubocop 규칙과 연동해 StyleGuide 기반 리팩터링을 강제하거나 rails-conventions와 연동 |
| server | 로컬 개발 서버 실행 (rails s) | 빠른 피드백 루프 제공 | Hotwire 개발 시 Turbo‑DevTools 자동 실행, webpacker(or import‑map) 설정 검증 포함하면 좋음 |

전체 평가
핵심 워크플로(테스트·CRUD·배포·보안·최적화·서버) 를 모두 포괄하고 있어 기본적인 자동화 수준은 충분합니다.

베스트 프랙티스(2025‑2026) 에서는 CI/CD와 로컬 개발 환경을 동일하게 유지하기 위해 GitHub Actions 혹은 GitLab CI 와 연동된 run-test·deploy 스킬을 CI‑compatible JSON output 형태로 제공하는 것이 권장됩니다.


---

2️⃣ MCP (Memory‑Cache‑Provider, 4개)


| MCP | 역할 | 강점 | 보완·추천 |
|-----|------|------|-----------|
| context7-resolve | Context7 라이브러리 ID 조회 | 외부 의존성 버전 관리에 유용 | 버전 충돌 시 자동 Gemfile.lock 업데이트 로직 추가 |
| context7-docs | 최신 라이브러리 문서·코드 예시 조회 | 실시간 Docs 접근성 향상 | 검색 결과를 Markdown 로 포맷하고 WebSearch 로 자동 저장 |
| web-fetch | 웹 페이지 fetch | 일반적인 스크래핑·API 호출에 활용 | Rate‑limitUser‑Agent 설정을 기본값으로 제공 |
| rails-docs-search | Rails MCP 도구 검색 | Rails 공식 문서·API 탐색 지원 | 검색 결과에 Rails 8 최신 변경사항(예: Turbo 관련) 강조 표시 |

전체 평가
외부 문서·리소스 접근을 담당하지만 캐시 만료 정책이 정의돼 있지 않아 오래된 정보가 반환될 위험이 있습니다.

2025 베스트 프랙티스에 따라 mcpTTL (Time‑to‑Live) 메타데이터와 자동 갱신 옵션을 추가하면 최신성 보장이 쉬워집니다.


---

3️⃣ Sub‑Agent (3개)


| Sub‑Agent | 역할 | 강점 | 보완·추천 |
|----------|------|------|-----------|
| rails-tester | Rails 테스트 실행·결과 분석 | run-test 와 연계된 전문 에이전트 | 테스트 실패 시 StackOverflow 자동 검색 (WebSearch) 로 해결책 제시 |
| deployer | 배포 자동화 에이전트 | deploy 스킬을 래핑, 배포 로그 관리 | 배포 전 DB 마이그레이션 검증Rollback 트리거 자동화 |
| security-reviewer | 보안 감사·취약점 탐지 | security-check 결과를 종합 | OWASP Top 10 체크리스트와 매핑해 리포트 생성, post-edit-rubocop 과 연동 |

전체 평가
각각 스킬을 고수준 워크플로로 묶어 재사용성을 높였지만, 에러 핸들링알림(Slack, Discord 등) 연동이 부족합니다. 최신 베스트 프랙티스에서는 Observability(log, metrics, alert) 를 기본으로 제공하도록 설계합니다.


---

4️⃣ Hook (2개)


| Hook | 트리거 시점 | 주요 동작 | 평가 |
|------|------------|-----------|------|
| pre-edit-protect | 파일 Edit|Write 전 | 파일 백업·읽기 전용 플래그 설정 | 파일 손실 방지에 좋지만 백업 정책(보관 기간, 압축) 미정 |
| post-edit-rubocop | 파일 Edit|Write 후 | RuboCop 자동 실행·위반 사항 리포트 | 코드 스타일 자동 정립에 유용하지만 Rubocop 옵션(auto‑correct, format) 을 명시하면 더 강력 |

추천 개선
pre-edit-protect.claudeignore.json 에 지정된 경로 제외 로직 추가.

post-edit-rubocop--fail-level=warning 옵션을 기본값으로 두고, 위반 시 rails-conventions 룰을 재검토하도록 연결.


---

5️⃣ Rule (4개)


| Rule | 목적 | 주요 내용 | 평가 |
|------|------|-----------|------|
| output-format | 답변 3단계 포맷 강제 | analysis → plan → code 형식 | 일관된 응답 구조 제공, 팀 협업에 유리 |
| security-policy | 보안 정책 규칙 | 데이터 보호·인젝션 방지 등 | security-check·security-reviewer 와 연계 필요 |
| rails-conventions | Rails 코딩 관행 | MVC 구조·네임스페이스·Turbo 사용 권고 | 최신 Rails 8 관행(예: import‑map, Turbo‑Stream) 반영 여부 확인 |
| testing | 테스트 규칙 | RSpec·Minitest 사용·Coverage 목표 90% | 테스트 커버리지 자동 측정 및 리포트 기능 추가 권장 |

전체 평가
규칙 정의가 명확하지만 정책 위반 시 자동 알림(예: Slack) 이 없으며, 규칙 업데이트 시 버전 관리가 필요합니다.


---

6️⃣ Tool (5개)


| Tool | 기능 | 평가 |
|------|------|------|
| Read | 파일 내용 읽기 | 기본 I/O, 인코딩 옵션 필요 |
| Edit | 파일 내 문자열 교체 | pre-edit-protect 와 연계하면 안전 |
| Write | 새 파일 생성·덮어쓰기 | 파일 존재 여부 확인 로직 필요 |
| Bash | 시스템·git·rails 명령 실행 | 쉘 인젝션 방지(화이트리스트) 권장 |
| WebSearch | 최신 웹 정보 검색 | 검색 엔진 선택·쿼리 최적화 필요 |

추천
Bash--dry-run 옵션을 기본 제공해 위험 명령을 사전 검증.

WebSearchsource:official 플래그(예: 공식 docs) 를 추가하면 신뢰도 높은 결과를 얻을 수 있습니다.


---

7️⃣ 설정 파일


| 파일 | 역할 | 현재 상태 |
|------|------|-----------|
| .claudeignore.json | 파일/디렉터리 무시 목록 | 정의 여부 미확인 |
| settings.json | 전역 설정(언어, 모델, 로그 레벨 등) | 최신 2025‑2026 옵션 적용 필요 |
| .mcp.json | MCP 캐시 정책·TTL 정의 | TTL 미설정, 기본값 없음 |

개선 포인트

1..claudeignore.jsonnode_modules, log/, tmp/ 등 불필요한 경로를 명시하고, pre-edit-protect 에 자동 적용.

2.settings.jsonci_mode: true, default_branch: "main", log_format: "json" 등을 추가해 CI·CI/CD와 연동을 원활하게.

3..mcp.jsondefault_ttl: 86400 (24 h) 과 refresh_on_error: true 옵션을 넣어 캐시 최신성을 보장.


---

📌 종합 평가 및 베스트 프랙티스 적용 제안


| 영역 | 현재 강점 | 주요 개선점 | 베스트 프랙티스(2025‑2026) |
|------|----------|------------|---------------------------|
| 자동화 | 핵심 워크플로(테스트·CRUD·배포·보안·최적화) 모두 스킬·서브에이전트에 캡슐화 | 에러 핸들링·알림·CI 연동 미비 | CI/CD 파이프라인 JSON 표준(GitHub Actions, Fly.io)과 연동, 자동 롤백관찰 가능성(metrics, alerts) |
| 문서·지식 | Context7·Rails Docs MCP 제공 | 캐시 TTL·갱신 정책 부재 | MCP TTL + 자동 Refresh(예: 12 h) 적용, 검색 결과 마크다운 포맷 자동 저장 |
| 코드 품질 | RuboCop Hook, rails-conventions Rule | 룰 위반 자동 알림·리포트 부재 | Lint → PR Comment 자동화, Coverage > 90% 목표 자동 검증 |
| 보안 | Brakeman 스캔, Security‑reviewer Sub‑Agent | 스캔 결과 연동·자동 패치 부족 | OWASP Top 10 체크리스트와 매핑, GitHub Dependabot 연동 |
| 관찰 가능성 | 기본 로그 없음 | 로그·메트릭 부재 | Structured JSON Logging + Prometheus Exporter (Bash Tool 내) |
| 설정·관리 | 설정 파일 존재 | TTL·CI 옵션 부족 | Version‑controlled settings(settings.json) + Environment‑specific overrides(development/production) |

---

📋 다음 단계 (추천 액션)


1.MCP TTL/Refresh 정책 추가

2.CI 연동용 run-test·deploy 스킬 업데이트 (JSON output, exit code)

3.post-edit-rubocop Hook에 자동 rubocop -A 옵션과 Slack 알림

4.security-reviewer Sub‑Agent에 OWASP 체크리스트 매핑

5..mcp.jsonsettings.json 에 베스트 프랙티스 옵션 적용


위 액션을 구현하려면 아래와 같은 JSON 명령을 차례대로 실행하면 됩니다. 필요하신 부분만 선택해 주세요.

---
Skills: 6 MCP: 4 Agents: 3 Hooks: 2 Rules: 4
Enter 전송 · Shift+Enter 줄바꿈