본문으로 건너뛰기
cccskills
무료GitHub에 공개

eloquent

Use when writing Eloquent models, relationships, scopes, or queries via Model:: — 'fetch users with their orders'. NOT for PHPStan output, non-Eloquent services, or raw SQL questions.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md3.4 KB
  • evals/triggers.json1.6 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

eloquent

When to use

Use when creating/modifying Eloquent models, relationships, scopes, or writing database queries.

Do NOT use when:

  • Schema design or query optimization (use database skill)
  • Creating migrations only (use laravel-migration skill)

Procedure: Create or modify a model

Step 0: Inspect

  1. Check existing models — match property declarations, cast patterns, relationship style, scope naming.
  2. Check for repositories — some projects use repository interfaces.
  3. Understand the schema — check migrations for column names, types, constraints.
  4. Check for multi-tenancy — which $connection to use?

Step 1: Read attribute access style

Read eloquent.access_style from .agent-settings.yml. Default: getters_setters.

ValueInside modelOutside model
getters_settersgetAttribute() / setAttribute()Typed getters/setters
get_attributegetAttribute() / setAttribute()Same
magic_properties$this->column$model->column

→ See guideline php/eloquent.md and php-coding rule for full conventions.

Step 2: Build the model

  1. Set $connection, $table, $fillable/$guarded, $casts, $attributes (defaults).
  2. Add typed getters + fluent setters for each attribute (if getters_setters style).
  3. Add relationship getter above each relationship method.
  4. Add scopes for reusable query constraints.
  5. Register Observer via #[ObservedBy] — never use booted().

Step 3: Write queries

  • Always eager load relationships accessed in loops: ->with(['customer']).
  • Always paginate list queries: ->paginate(15).
  • Use exists() over count() > 0.
  • Use chunk() / lazy() for large datasets.
  • Constrain eager loads when only a subset is needed.

Conventions

→ See guideline php/eloquent.md for getter/setter examples, relationship getters, observers, casts. → See guideline php/database.md for indexing, transactions, migrations.

Validate

  • Run PHPStan on model — must pass.
  • Verify no N+1: check that all relationship access in loops uses eager loading.
  • Confirm typed getters exist for every relationship.
  • Run affected tests — must pass.

Output format

  1. Model class with typed getters/setters, relationships, and observer
  2. Migration file if schema changes are needed

Gotcha

  • Never access relationships via magic properties — always use typed getter.
  • N+1 queries are the #1 performance issue — always eager load.
  • getAttribute() returns mixed — cast or type-check the result.
  • $model->save() can silently fail without fillable/guarded config.

Do NOT

  • Do NOT put business logic in models — delegate to services.
  • Do NOT access relationships in loops without eager loading.
  • Do NOT use Model::all() without pagination on list endpoints.
  • Do NOT use booted() for lifecycle hooks — use Observers with #[ObservedBy].

Auto-trigger keywords

  • Eloquent
  • model
  • relationship
  • scope
  • accessor
  • mutator

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

event4u-app/agent-config122026년 10월 20일 업데이트

event4u-app의 스킬 모두 보기

이 스킬의 문제 신고