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
kitloom/filament-skeleton
claude-code
cursor
wordpress
laravel
filament
kitloom

Rules for AI assistants (Claude, Copilot, Cursor, …) working in this site.

Install
php artisan boost:add-skill kitloom/filament-skeleton

Save this content to: AGENTS.md

# A kitloom site — Filament edition

Rules for AI assistants (Claude, Copilot, Cursor, …) working in this site.

This is a Laravel application with kitloom, a Laravel CMS. It began as a
way to move WordPress sites onto Laravel and keeps WordPress's data model —
its tables, options and addresses — so such a site comes over as it is; it
is a product of its own now, and new modules are built the Laravel way:
their own tables, models, migrations, events and jobs. The public site is
drawn by a theme, the Filament admin is at `/admin`. The packages under
`vendor/kitloom/` come with Composer: read them, never edit them, an update
overwrites them. The guide is <https://kitloom.dev/docs>; what a module does
and how it is set up is its README, `vendor/kitloom/<name>/README.md` (the
admin shows it as the module's *How it works*).

## PHP

PHP 8.4 or newer. `php -v` says which one runs; when the one on `PATH` is
older, call the newer one by its path for every command here, Composer
included (`<php> $(which composer) require …`). With Homebrew it is
`$(brew --prefix [email protected])/bin/php` — under `/opt/homebrew` on Apple Silicon,
`/usr/local` on Intel; Laravel Herd and Docker images bring their own.

## Where code goes

- `app/` — what this site does on top of the packages: the panel provider in
  `app/Providers/Filament`, the user model, the site's own routes and jobs.
- A module of the site's own: `php artisan kitloom:make-module Reviews`
  (`--post-type=review` for records that are posts). It writes
  `packages/reviews` and its admins, adds the path repository `packages/*`,
  requires what this site runs and prints the `composer update` to run. The
  packages take the vendor of the site's `name` in `composer.json`
  (`acme/shop` → `acme/reviews`); name the site there, or pass `--vendor`,
  while it is still `kitloom/…`.
  See <https://kitloom.dev/docs/modules/first-module>.
- A theme: `php artisan kitloom:make-theme Recipes`, or a child of an
  installed one with `--parent=Journal`. See
  <https://kitloom.dev/docs/themes/generator>.
- A package behaves differently through its config (`php artisan
  vendor:publish --tag=kitloom-<name>-config`), its events and the
  container tags it reads — <https://kitloom.dev/docs/modules/extending> —
  not by copying its classes.
- WordPress records are written through kitloom's writers, with the user
  who acts: `Kitloom\WpSchema\Content\PostWriter`, `TermWriter`,
  `CommentWriter`, and options through `Kitloom\Settings\SettingWriter`.
  They make slugs unique, fill the dates, check permissions and tell the
  site's listeners; a raw insert does none of it.
- Every PHP file starts with `declare(strict_types=1);`.

## Modules and themes

- A kitloom module: `composer require kitloom/<name> kitloom/<name>-filament`,
  then `php artisan migrate`. The Modules screen switches modules on and off.
- A theme: `composer require kitloom/<name>-theme`, then `npm install && npm
  run build` (every Vue and React theme of the site), then `php artisan
  site:theme <Name>` or Appearance → Themes. A Blade theme needs no build.
- The active theme is the site's `kitloom_theme` option, never a line of
  `.env`: `php artisan site:theme` lists the themes and which is active,
  `--none` leaves the site without one (pages as JSON). `npm run dev` serves
  the active theme — start it again after a switch.

## Checks

```bash
composer run lint      # Pint: fixes the code style
composer run analyse   # PHPStan with Larastan, level 8
composer run check     # Pint (reporting only), PHPStan and the tests
php artisan test
```

`phpunit.xml` runs `tests/Unit` and `tests/Feature`, the site's own tests;
the kitloom packages carry theirs and are tested before each release. A
test of a page or a record extends `Kitloom\WpSchema\Testing\ApplicationTestCase`
and takes its helpers from the packages — see
<https://kitloom.dev/docs/modules/testing>.

A kitloom site — Filament edition

Rules for AI assistants (Claude, Copilot, Cursor, …) working in this site.

This is a Laravel application with kitloom, a Laravel CMS. It began as a way to move WordPress sites onto Laravel and keeps WordPress's data model — its tables, options and addresses — so such a site comes over as it is; it is a product of its own now, and new modules are built the Laravel way: their own tables, models, migrations, events and jobs. The public site is drawn by a theme, the Filament admin is at /admin. The packages under vendor/kitloom/ come with Composer: read them, never edit them, an update overwrites them. The guide is https://kitloom.dev/docs; what a module does and how it is set up is its README, vendor/kitloom/<name>/README.md (the admin shows it as the module's How it works).

PHP

PHP 8.4 or newer. php -v says which one runs; when the one on PATH is older, call the newer one by its path for every command here, Composer included (<php> $(which composer) require …). With Homebrew it is $(brew --prefix [email protected])/bin/php — under /opt/homebrew on Apple Silicon, /usr/local on Intel; Laravel Herd and Docker images bring their own.

Where code goes

  • app/ — what this site does on top of the packages: the panel provider in app/Providers/Filament, the user model, the site's own routes and jobs.
  • A module of the site's own: php artisan kitloom:make-module Reviews (--post-type=review for records that are posts). It writes packages/reviews and its admins, adds the path repository packages/*, requires what this site runs and prints the composer update to run. The packages take the vendor of the site's name in composer.json (acme/shop → acme/reviews); name the site there, or pass --vendor, while it is still kitloom/…. See https://kitloom.dev/docs/modules/first-module.
  • A theme: php artisan kitloom:make-theme Recipes, or a child of an installed one with --parent=Journal. See https://kitloom.dev/docs/themes/generator.
  • A package behaves differently through its config (php artisan vendor:publish --tag=kitloom-<name>-config), its events and the container tags it reads — https://kitloom.dev/docs/modules/extending — not by copying its classes.
  • WordPress records are written through kitloom's writers, with the user who acts: Kitloom\WpSchema\Content\PostWriter, TermWriter, CommentWriter, and options through Kitloom\Settings\SettingWriter. They make slugs unique, fill the dates, check permissions and tell the site's listeners; a raw insert does none of it.
  • Every PHP file starts with declare(strict_types=1);.

Modules and themes

  • A kitloom module: composer require kitloom/<name> kitloom/<name>-filament, then php artisan migrate. The Modules screen switches modules on and off.
  • A theme: composer require kitloom/<name>-theme, then npm install && npm run build (every Vue and React theme of the site), then php artisan site:theme <Name> or Appearance → Themes. A Blade theme needs no build.
  • The active theme is the site's kitloom_theme option, never a line of .env: php artisan site:theme lists the themes and which is active, --none leaves the site without one (pages as JSON). npm run dev serves the active theme — start it again after a switch.

Checks

composer run lint      # Pint: fixes the code style
composer run analyse   # PHPStan with Larastan, level 8
composer run check     # Pint (reporting only), PHPStan and the tests
php artisan test

phpunit.xml runs tests/Unit and tests/Feature, the site's own tests; the kitloom packages carry theirs and are tested before each release. A test of a page or a record extends Kitloom\WpSchema\Testing\ApplicationTestCase and takes its helpers from the packages — see https://kitloom.dev/docs/modules/testing.

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.
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings