AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Create Action

skill-alizharb-agent-skills-create-action · by AlizHarb

Use when creating or changing an Action class for a Laravel business operation. Applies to reusable operations called from controllers, Livewire, jobs, commands, APIs, MCP handlers, or services.

No reviews yet
0 installs
48 views
0.0% view→install

Install

$ agentstack add skill-alizharb-agent-skills-create-action

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-alizharb-agent-skills-create-action)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Create Action? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Create Action

When To Use

Use this skill for one reusable business operation.

Inputs Needed

  • Operation name, actor, inputs, output, authorization rule, transaction needs, events or jobs, and expected tests.

Workflow

  1. Inspect sibling Actions and tests.
  2. Identify collaborators and inject them through the constructor instead of calling app() or using service locators.
  3. Create the class under app/Actions unless the project already uses a narrower namespace.
  4. Name the class as an imperative operation with no suffix.
  5. Make the class final readonly when dependencies are constructor-injected and mutable state is not required.
  6. Add one public handle() method with typed input and typed output.
  7. Use enums, DTOs, value objects, typed class constants, match, and named arguments where they clarify the operation.
  8. Use Laravel container contextual attributes on constructor parameters when they replace simple service-provider boilerplate.
  9. Add #[\Override] to any method that intentionally overrides a parent or interface method.
  10. Keep request, response, Livewire, and Blade concepts out of the Action.
  11. Authorize before sensitive reads, writes, dispatches, or external calls.
  12. Use DB::transaction() for complex multi-model writes.
  13. Dispatch events only after the state change succeeds.
  14. Add or update tests.

Files That May Be Created

  • app/Actions/.php
  • tests/Feature/*Test.php
  • tests/Unit/*Test.php

Files That May Be Modified

  • Controllers, Livewire components, jobs, commands, services, policies, events, and tests that call the Action.

Architecture Rules

  • One business operation per Action.
  • Public handle() method unless a framework contract requires otherwise.
  • No UI logic, request objects, response objects, or route-specific behavior.
  • Prefer DTOs or typed values over unstructured arrays for meaningful inputs.
  • Prefer modern PHP 8.3+ type-safety features whenever they reduce ambiguity.
  • Dependencies must be injected unless there is a clear framework-boundary reason not to.

Testing Requirements

  • Test success, authorization denial, validation or invalid input paths, side effects, and regression cases.

Security Requirements

  • Authorize protected behavior and avoid mass assignment from unvalidated input.

Review Checklist

  • Is the Action reusable by web, API, Livewire, jobs, commands, and MCP?
  • Are inputs and outputs typed?
  • Is authorization explicit?
  • Are transactions and side effects correctly placed?

Common Mistakes

  • Creating a catch-all Action.
  • Passing Request or Livewire state into handle().
  • Hiding authorization in the caller only when the Action can be called elsewhere.
  • Calling app() or facades for collaborators that should be injected.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.