diff --git a/.claude/skills/ai-sdk-development/SKILL.md b/.claude/skills/ai-sdk-development/SKILL.md index 30320b09..426cec5e 100644 --- a/.claude/skills/ai-sdk-development/SKILL.md +++ b/.claude/skills/ai-sdk-development/SKILL.md @@ -437,4 +437,4 @@ ## Provider Support Lab::OpenAI; Lab::Gemini; // ... -``` \ No newline at end of file +``` diff --git a/.claude/skills/cashier-stripe-development/SKILL.md b/.claude/skills/cashier-stripe-development/SKILL.md index eb427911..bb12b90f 100644 --- a/.claude/skills/cashier-stripe-development/SKILL.md +++ b/.claude/skills/cashier-stripe-development/SKILL.md @@ -23,9 +23,9 @@ ## Basic Usage ### Installation ```bash -php artisan vendor:publish --tag="cashier-migrations" -php artisan migrate -php artisan vendor:publish --tag="cashier-config" +vendor/bin/sail artisan vendor:publish --tag="cashier-migrations" +vendor/bin/sail artisan migrate +vendor/bin/sail artisan vendor:publish --tag="cashier-config" ``` ### Environment Variables @@ -95,4 +95,4 @@ ## Common Pitfalls - In MySQL, the `stripe_id` column must use `utf8_bin` collation to avoid case-sensitivity issues. - `noProrate()` has no effect when combined with `swapAndInvoice()`. That method always prorates. - Methods like `withPromotionCode()` require the Stripe API ID such as `promo_xxxx`, not the customer-facing code. Use `findPromotionCode()` to resolve a code to its ID. -- Always use `search-docs` for the latest Cashier documentation rather than relying on this skill alone. \ No newline at end of file +- Always use `search-docs` for the latest Cashier documentation rather than relying on this skill alone. diff --git a/.claude/skills/cashier-stripe-development/references/subscriptions.md b/.claude/skills/cashier-stripe-development/references/subscriptions.md index ad7113ea..980c0642 100644 --- a/.claude/skills/cashier-stripe-development/references/subscriptions.md +++ b/.claude/skills/cashier-stripe-development/references/subscriptions.md @@ -105,4 +105,4 @@ ## Metered / Usage-Based Billing $user->reportMeterEvent('emails-sent'); $user->reportMeterEvent('emails-sent', quantity: 15); -``` \ No newline at end of file +``` diff --git a/.claude/skills/cashier-stripe-development/references/testing.md b/.claude/skills/cashier-stripe-development/references/testing.md index 97e91f91..2d6b04cf 100644 --- a/.claude/skills/cashier-stripe-development/references/testing.md +++ b/.claude/skills/cashier-stripe-development/references/testing.md @@ -49,4 +49,4 @@ ## Setup Notes - Use Stripe test mode keys (`sk_test_...`, `pk_test_...`) in your test environment - Cashier does not ship a global `fake()` helper. Tests hit the real Stripe test API by default. - Refer to `tests/Feature/` in the Cashier package itself for integration test patterns covering subscription creation, payment methods, and webhook handling -- Use `search-docs` for current guidance on mocking Stripe HTTP calls or using Stripe's test clock feature for time-sensitive scenarios \ No newline at end of file +- Use `search-docs` for current guidance on mocking Stripe HTTP calls or using Stripe's test clock feature for time-sensitive scenarios diff --git a/.claude/skills/cashier-stripe-development/references/webhooks.md b/.claude/skills/cashier-stripe-development/references/webhooks.md index 19d2f708..5ebf153d 100644 --- a/.claude/skills/cashier-stripe-development/references/webhooks.md +++ b/.claude/skills/cashier-stripe-development/references/webhooks.md @@ -129,4 +129,4 @@ ## Custom Handlers: Listening to Events ## Signature Verification -`VerifyWebhookSignature` middleware is applied automatically when `cashier.webhook.secret` is set. No extra wiring is needed. \ No newline at end of file +`VerifyWebhookSignature` middleware is applied automatically when `cashier.webhook.secret` is set. No extra wiring is needed. diff --git a/.claude/skills/configure-nightwatch/SKILL.md b/.claude/skills/configure-nightwatch/SKILL.md index e59c3142..1fc580bb 100644 --- a/.claude/skills/configure-nightwatch/SKILL.md +++ b/.claude/skills/configure-nightwatch/SKILL.md @@ -401,4 +401,4 @@ ### Outgoing Request Redaction Nightwatch::redactOutgoingRequests(function (OutgoingRequest $outgoingRequest) { $outgoingRequest->url = preg_replace('/api_key=\w+/', 'api_key=***', $outgoingRequest->url); }); -``` \ No newline at end of file +``` diff --git a/.claude/skills/configure-nightwatch/reference.md b/.claude/skills/configure-nightwatch/reference.md index 7a0788e0..b071d2f2 100644 --- a/.claude/skills/configure-nightwatch/reference.md +++ b/.claude/skills/configure-nightwatch/reference.md @@ -105,4 +105,4 @@ ### Protect User Data in Cache Keys Nightwatch::redactCacheEvents(fn($e) => $e->key = preg_replace('/user:\d+/', 'user:***', $e->key) ); -``` \ No newline at end of file +``` diff --git a/.claude/skills/configuring-horizon/SKILL.md b/.claude/skills/configuring-horizon/SKILL.md index bed1e74c..f661c217 100644 --- a/.claude/skills/configuring-horizon/SKILL.md +++ b/.claude/skills/configuring-horizon/SKILL.md @@ -24,7 +24,7 @@ ## Basic Usage ### Installation ```bash -php artisan horizon:install +vendor/bin/sail artisan horizon:install ``` ### Supervisor Configuration @@ -70,7 +70,7 @@ ### Dashboard Authorization ## Verification -1. Run `php artisan horizon` and visit `/horizon` +1. Run `vendor/bin/sail artisan horizon` and visit `/horizon` 2. Confirm dashboard access is restricted as expected 3. Check that metrics populate after scheduling `horizon:snapshot` @@ -81,5 +81,5 @@ ## Common Pitfalls - Always check `config/horizon.php` before making changes to understand the current supervisor and environment configuration. - The `environments` array overrides only the keys you specify. It merges into `defaults` and does not replace it. - The timeout chain must be ordered: job `timeout` less than supervisor `timeout` less than `retry_after`. The wrong order can cause jobs to be retried before Horizon finishes timing them out. -- The metrics dashboard stays blank until `horizon:snapshot` is scheduled. Running `php artisan horizon` alone does not populate metrics. -- Always use `search-docs` for the latest Horizon documentation rather than relying on this skill alone. \ No newline at end of file +- The metrics dashboard stays blank until `horizon:snapshot` is scheduled. Running `vendor/bin/sail artisan horizon` alone does not populate metrics. +- Always use `search-docs` for the latest Horizon documentation rather than relying on this skill alone. diff --git a/.claude/skills/configuring-horizon/references/metrics.md b/.claude/skills/configuring-horizon/references/metrics.md index 312f79ee..7e1aea6b 100644 --- a/.claude/skills/configuring-horizon/references/metrics.md +++ b/.claude/skills/configuring-horizon/references/metrics.md @@ -18,4 +18,4 @@ ### Register the snapshot in the scheduler rather than running it manually ### `metrics.trim_snapshots` is a snapshot count, not a time duration -The `trim_snapshots.job` and `trim_snapshots.queue` values in `config/horizon.php` are counts of snapshots to keep, not minutes or hours. With the default of 24 snapshots at 5-minute intervals, that provides 2 hours of history. Increase the value to retain more history at the cost of Redis memory usage. \ No newline at end of file +The `trim_snapshots.job` and `trim_snapshots.queue` values in `config/horizon.php` are counts of snapshots to keep, not minutes or hours. With the default of 24 snapshots at 5-minute intervals, that provides 2 hours of history. Increase the value to retain more history at the cost of Redis memory usage. diff --git a/.claude/skills/configuring-horizon/references/notifications.md b/.claude/skills/configuring-horizon/references/notifications.md index 943d1a26..d6d3feed 100644 --- a/.claude/skills/configuring-horizon/references/notifications.md +++ b/.claude/skills/configuring-horizon/references/notifications.md @@ -18,4 +18,4 @@ ### Use Horizon's built-in notification routing in `HorizonServiceProvider` ### Failed job alerts are separate from Horizon's documented notification routing -Horizon's 12.x documentation covers built-in long-wait notifications. Do not assume the docs provide a `JobFailed` listener example in `HorizonServiceProvider`. If a user needs failed job alerts, treat that as custom queue event handling and consult the queue documentation instead of Horizon's notification-routing API. \ No newline at end of file +Horizon's 12.x documentation covers built-in long-wait notifications. Do not assume the docs provide a `JobFailed` listener example in `HorizonServiceProvider`. If a user needs failed job alerts, treat that as custom queue event handling and consult the queue documentation instead of Horizon's notification-routing API. diff --git a/.claude/skills/configuring-horizon/references/supervisors.md b/.claude/skills/configuring-horizon/references/supervisors.md index 9da0c176..b71285cf 100644 --- a/.claude/skills/configuring-horizon/references/supervisors.md +++ b/.claude/skills/configuring-horizon/references/supervisors.md @@ -24,4 +24,4 @@ ### Use `balance: false` to keep a fixed number of workers on a dedicated queue ### Set `balanceCooldown` to prevent rapid worker scaling under bursty load -When using `balance: auto`, the supervisor can scale up and down rapidly under bursty load. Set `balanceCooldown` to the number of seconds between scaling decisions, typically 3 to 5, to smooth this out. `balanceMaxShift` limits how many processes are added or removed per cycle. \ No newline at end of file +When using `balance: auto`, the supervisor can scale up and down rapidly under bursty load. Set `balanceCooldown` to the number of seconds between scaling decisions, typically 3 to 5, to smooth this out. `balanceMaxShift` limits how many processes are added or removed per cycle. diff --git a/.claude/skills/configuring-horizon/references/tags.md b/.claude/skills/configuring-horizon/references/tags.md index 263c955c..8234e4ad 100644 --- a/.claude/skills/configuring-horizon/references/tags.md +++ b/.claude/skills/configuring-horizon/references/tags.md @@ -18,4 +18,4 @@ ### `silenced` hides jobs from the dashboard completed list but does not stop th ### `silenced_tags` hides all jobs carrying a matching tag from the completed list -Any job carrying a matching tag string is hidden from the completed jobs view. This is useful for silencing a category of jobs such as all jobs tagged `notifications`, rather than silencing specific classes. \ No newline at end of file +Any job carrying a matching tag string is hidden from the completed jobs view. This is useful for silencing a category of jobs such as all jobs tagged `notifications`, rather than silencing specific classes. diff --git a/.claude/skills/inertia-vue-development/SKILL.md b/.claude/skills/inertia-vue-development/SKILL.md index c69fd98e..2813e8cd 100644 --- a/.claude/skills/inertia-vue-development/SKILL.md +++ b/.claude/skills/inertia-vue-development/SKILL.md @@ -572,4 +572,4 @@ ## Common Pitfalls - Using `