Borrowing it
Nothing to install: this file belongs to liberusoftware/real-estate-laravel. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/liberusoftware/real-estate-laravel/main/.claude/skills/lerd/SKILL.mdgit clone --depth 1 https://github.com/liberusoftware/real-estate-laravelWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/liberusoftware/real-estate-laravel/lerd)<a href="https://agentmods.dev/skills/liberusoftware/real-estate-laravel/lerd"><img src="https://agentmods.dev/badge/skills/liberusoftware/real-estate-laravel/lerd/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/liberusoftware/real-estate-laravel/lerd"><img src="https://agentmods.dev/badge/skills/liberusoftware/real-estate-laravel/lerd.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 3 findings, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Privilege Escalation · line 70 Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.Fix: Remove references to credential paths. Use environment variables or secrets managers. For docs, use placeholder paths (e.g., /path/to/config). Never load .env or token files in production code paths.
- medium Rogue Agent · line 17 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 23 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.08052 |
| Opus 5 | $0.00000 | $0.04026 |
| Sonnet 5 | $0.00000 | $0.01610 |
| Haiku 4.5 | $0.00000 | $0.00805 |
Grade A, and why
lerd scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 163 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Lerd, a local PHP development environment
This project runs on lerd, a Podman-based PHP development environment. It is framework-agnostic: Laravel, Symfony, WordPress, Drupal, Magento, CakePHP and any custom framework are all driven by a framework definition (YAML), never by lerd hardcoding a framework's name. The lerd MCP server is available — use it to manage the environment without leaving the chat.
The MCP surface is twelve grouped tools, each driven by an action argument: site, service, db, env, runtime, worker, exec, framework, diag, logs, worktree, workspace. Always pass action. Most actions also accept an optional path that defaults to the directory the assistant was opened in (then LERD_SITE_PATH if set), so you can usually omit it. Start by calling site with action: "list" to discover sites.
Architecture
- PHP runs in Podman containers named
lerd-php<version>-fpm(e.g.lerd-php84-fpm); each container includes composer and node/npm; the PHP version is resolved from.lerd.yaml→.php-version→composer.jsonrequire.phpconstraint (matched against installed versions) → global default - Nginx routes
*.testdomains to the correct PHP-FPM container - Services (MySQL, Redis, PostgreSQL, etc.) and custom services run as Podman containers via systemd quadlets
- Node.js versions run through a version manager, fnm (bundled, fetched on demand) or user nvm (declining managed Node picks nvm;
node.manager+node.nvm_dir;node:manager/dashboard; nvm keeps PATH, fnm uses shims); per-project version via a.node-versionfile. The package manager is the project's, not lerd's: apackageManagerpin inpackage.jsonwins, then the lockfile (pnpm-lock.yaml→ pnpm,yarn.lock→ yarn,bun.lock*→ bun, else npm). pnpm and yarn run through corepack, and installs use the manager's frozen-lockfile mode (pnpm install --frozen-lockfile,yarn install --immutable,npm ci). Never assumenpm run dev/npm ci— the worker command and the setup steps follow the detected manager - Framework workers (queue, schedule, reverb, horizon, messenger, vite, etc.) run as systemd user services named
lerd-<worker>-<sitename>; commands are defined per-framework in YAML; Laravel Horizon is auto-detected fromcomposer.jsonand replaces the queue toggle when installed; Laravel ships with avitehost worker that runs the project's dev script on the host for HMR, through whichever package manager the project pins; workers and setup commands support optionalcheck(fileorcomposer) for conditional visibility; workers withconflicts_withauto-stop conflicting workers on start. Per-worker flags:host: true(run on host via the version manager instead of in FPM container — HMR-sensitive Node tools),per_worktree: true(worker runs independently per worktree underlerd-<worker>-<site>-<branch>),replaces_build: true(worker provides asset manifest while running, so a worktree add skips the staticnpm run buildstep when this worker is opted in) - Custom workers can be added per-project (
.lerd.yamlcustom_workers) or globally (~/.config/lerd/frameworks/<name>.yaml); use theworkertool'sadd/removeactions — both survive framework store updates - Framework setup commands (one-off bootstrap steps like migrations, storage links) are defined in the framework YAML and shown by
frameworkaction: "setup"; Laravel has built-in storage:link/migrate/db:seed; custom frameworks can define their own - Service version placeholders (
{{mysql_version}},{{postgres_version}},{{redis_version}},{{meilisearch_version}}) are available in framework env vars and resolved from the service image tag at env-setup time - Custom containers: non-PHP sites (Node.js, Python, Go, etc.) can define a
Containerfile.lerdand acontainer:section in.lerd.yamlwith a port; lerd builds a per-project image, runs it aslerd-custom-<sitename>, and nginx reverse-proxies to it; the project directory is volume-mounted at its host path with--workdirset automatically — do NOT addWORKDIRorCOPYto the Containerfile; workers exec into the custom container; services are accessible by name on the sharedlerdPodman network; hot-reload file watchers must use polling on macOS (inotify does not fire across Podman Machine's virtiofs mount) — nodemon:--legacy-watch, Vite:server.watch.usePolling: true, webpack:watchOptions: { poll: 1000 } - Custom-image PHP sites (custom-FPM): a PHP project can define a
Containerfile.lerd(must buildFROM lerd-php<ver>-fpm:local) plus acontainer:section with no port; lerd builds a per-site image (lerd-custom-<site>:local), runs a dedicated FPM containerlerd-cfpm-<site>, and serves it by fastcgi instead of the sharedlerd-php<ver>-fpm. It is a normal PHP site otherwise (xdebug, dumps, profiler,lerd shell,php/artisan/composer/tinker, queue/horizon all run in the per-site container). The PHP version is fixed by theFROMline (the UI version selector is read-only);lerd rebuildrebuilds the image. Same key as custom containers, the port is the discriminator: with a port it is a reverse-proxied non-PHP app, without a port it is a fastcgi PHP image.runtimefor these reportsfpm-custom. - Git worktrees automatically get a
<branch>.<site>.testsubdomain (deep*.<branch>.<site>.testwildcard cert + nginxserver_nameon secured sites);vendor/,node_modules/,.envare seeded from the main checkout..lerd.yamlenv_overridesdeclares templated env vars ({{domain}},{{scheme}},{{site}}) layered on the defaultAPP_URLrewrite — for multi-tenant apps (per-branch cookies, signed-URL hosts, tenant routing)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 163 lines · 0 tokens per session scan A 1e3c8f9476a7
lerd is a skill published in the GitHub repository liberusoftware/real-estate-laravel (113 stars, last pushed yesterday), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 8,052 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
create-powergrid-plugin
Create a complete PowerGrid plugin from scratch, including PHP class, Column macro, Blade view, Alpine.js component, and registration.
laravel-eloquent
Eloquent and query-layer engineering rules for Laravel — eliminating N+1, choosing a pagination strategy, short atomic transactions, casts and scopes on the model, where raw SQL is allowed, and how migrations declare the schema those queries depend on. Use when writing or reviewing Eloquent models, migrations, query…
filament-plugin-development
Build and publish custom Filament plugins (Filament is the Laravel admin-panel framework). Use when creating a Filament plugin/package, implementing the Plugin contract, scaffolding from the plugin skeleton, registering assets/resources/pages/render-hooks, making a configurable plugin, testing it, or publishing to…
laravel-upgrade
Upgrade a Laravel application across major versions safely (Laravel 8 -> 9 -> 10 -> 11 -> 12 -> 13), one hop at a time. Use when upgrading Laravel, when a composer update fails after a major bump, when deciding whether to hop versions by hand or pay for Laravel Shift, or when something compiled fine but broke at…
livewire
Version-aware best practices for Laravel Livewire (Caleb Porzio's full-stack framework), covering v1 through v4. Use whenever building, reviewing, or upgrading Livewire components, wire:model bindings, actions, events, validation, lifecycle hooks, or single-file/island components. ALWAYS detects the installed Livewire…
Laravel Migration Safety Review
Reviews Laravel migrations for destructive operations, change() dropping modifiers, locking index creation on large tables (PostgreSQL), and asymmetric down().