用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/majiayu000/claude-skill-registry --skill actions-pattern命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | actions-pattern |
| description | Garante que novas Actions sigam o padrão de classes actions reutilizáveis do Easy Budget. |
Esta skill define o padrão arquitetural para criação de Actions no sistema Easy Budget. Actions são classes focadas em uma única responsabilidade de negócio, reutilizáveis e composáveis.
<?php
declare(strict_types=1);
namespace App\Actions\ModuleName;
use App\Support\ServiceResult;
use Exception;
class ActionName
{
public function __construct(
private DependencyA $dependencyA,
private DependencyB $dependencyB
) {}
/**
* Descrição do que a action executa.
*/
public function execute(ParamType $param): ServiceResult
{
try {
// 1. Validações de pré-condição
if (!$this->isValid($param)) {
return ServiceResult::error('Mensagem de erro específica.');
}
// 2. Operações de banco em transação (se necessário)
return DB::transaction(function () use ($param) {
// Lógica de negócio
$result = $this->performAction($param);
// Registro de histórico (se aplicável)
$this->logAction($param, $result);
return ServiceResult::success($result, 'Mensagem de sucesso.');
});
} catch (Exception $e) {
return ServiceResult::error($e->getMessage());
}
}
private function isValid(ParamType $param): bool
{
// Lógica de validação
return true;
}
private function performAction(ParamType $param): mixed
{
// Implementação da ação
return $result;
}
private function logAction(ParamType $param, mixed $result): void
{
// Registro de histórico se o modelo suportar
if (method_exists($param, 'actionHistory')) {
$param->actionHistory()->create([
'tenant_id' => tenant('id'),
'action' => 'action_name',
'description' => 'Descrição da ação realizada.',
'user_id' => auth()->id(),
]);
}
}
}
execute único: Cada Action deve ter um único ponto de entradaServiceResult para operações que podem falharDB::transaction() para operações que modificam dadosServiceResult::error()actionHistory() quando disponívelclass ComplexBusinessAction
{
public function __construct(
private ActionA $actionA,
private ActionB $actionB,
private ActionC $actionC
) {}
public function execute(Context $context): ServiceResult
{
// Compõe múltiplas actions em um fluxo de negócio
$resultA = $this->actionA->execute($context);
if ($resultA->isError()) {
return $resultA;
}
return $this->actionB->execute($context);
}
}