Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Agents
banulakwin/filament-seo-engine
claude-code
cursor
admin
seo
laravel
filament

Use this file when adding or changing Filament SEO admin behavior for projects using banulakwin/laravel-seo-engine.

Install
php artisan boost:add-skill banulakwin/filament-seo-engine

Save this content to: AGENTS.md

# Agent guide: `banulakwin/filament-seo-engine`

Use this file when adding or changing Filament SEO admin behavior for projects using `banulakwin/laravel-seo-engine`.

## Mental model

- SEO storage is centralized in `seo_meta`.
- Static pages use `model_type = config('seo.static_page_model_type', 'static_page')` and string `model_id`.
- Dynamic models use a `seo()` relation (typically via `Seoable`) and should be edited inline via reusable schemas.
- Relationship-backed SEO tabs should not use RelationManagers unless explicitly required by the host app.

## Current package surface

- Plugin: `Banulakwin\FilamentSeoEngine\FilamentSeoEnginePlugin`
- Reusable schemas:
  - `Banulakwin\FilamentSeoEngine\Schemas\SeoContentForm`
  - `Banulakwin\FilamentSeoEngine\Schemas\SeoContentInfolist`
  - `Banulakwin\FilamentSeoEngine\Schemas\CommonImageUpload`
- Static SEO resource:
  - `Banulakwin\FilamentSeoEngine\Resources\StaticPageSeos\StaticPageSeoResource`

### Current host-app usage pattern

- Edit pages: SEO tab uses `SeoContentForm::relationshipSchema('seo')`.
- View pages: SEO tab/section uses `SeoContentInfolist::section('seo')`.
- Static pages are managed in `StaticPageSeoResource` (scoped by configured static model type).

## Do

- Keep reusable SEO schema relation-friendly (`->relationship('seo')` from host forms).
- Keep static SEO queries scoped to configured static model type.
- Reuse shared schema objects for consistency across resources/pages.
- Preserve existing SEO records unless user explicitly edits fields.

## Do not

- Do not hardcode app-specific model classes in this package.
- Do not assume a specific panel provider implementation in host apps.
- Do not force RelationManager-based UX for model SEO editing.

## Testing & Quality

```bash
composer test          # PHPUnit
composer pint          # Laravel Pint code style fix
composer pint:check    # Pint check only (no fix)
composer phpstan       # PHPStan level max on src/
composer quality       # All: pint + phpstan + test
```

## CI

GitHub Actions runs tests, Pint, and PHPStan on push/PR (`.github/workflows/tests.yml`).

Agent guide: banulakwin/filament-seo-engine

Use this file when adding or changing Filament SEO admin behavior for projects using banulakwin/laravel-seo-engine.

Mental model

  • SEO storage is centralized in seo_meta.
  • Static pages use model_type = config('seo.static_page_model_type', 'static_page') and string model_id.
  • Dynamic models use a seo() relation (typically via Seoable) and should be edited inline via reusable schemas.
  • Relationship-backed SEO tabs should not use RelationManagers unless explicitly required by the host app.

Current package surface

  • Plugin: Banulakwin\FilamentSeoEngine\FilamentSeoEnginePlugin
  • Reusable schemas:
    • Banulakwin\FilamentSeoEngine\Schemas\SeoContentForm
    • Banulakwin\FilamentSeoEngine\Schemas\SeoContentInfolist
    • Banulakwin\FilamentSeoEngine\Schemas\CommonImageUpload
  • Static SEO resource:
    • Banulakwin\FilamentSeoEngine\Resources\StaticPageSeos\StaticPageSeoResource

Current host-app usage pattern

  • Edit pages: SEO tab uses SeoContentForm::relationshipSchema('seo').
  • View pages: SEO tab/section uses SeoContentInfolist::section('seo').
  • Static pages are managed in StaticPageSeoResource (scoped by configured static model type).

Do

  • Keep reusable SEO schema relation-friendly (->relationship('seo') from host forms).
  • Keep static SEO queries scoped to configured static model type.
  • Reuse shared schema objects for consistency across resources/pages.
  • Preserve existing SEO records unless user explicitly edits fields.

Do not

  • Do not hardcode app-specific model classes in this package.
  • Do not assume a specific panel provider implementation in host apps.
  • Do not force RelationManager-based UX for model SEO editing.

Testing & Quality

composer test          # PHPUnit
composer pint          # Laravel Pint code style fix
composer pint:check    # Pint check only (no fix)
composer phpstan       # PHPStan level max on src/
composer quality       # All: pint + phpstan + test

CI

GitHub Actions runs tests, Pint, and PHPStan on push/PR (.github/workflows/tests.yml).

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk