원클릭으로
action-writer
Create or update an Action in app/Actions following JournalOS conventions (validation, logging, queues, tests).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Create or update an Action in app/Actions following JournalOS conventions (validation, logging, queues, tests).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Create or update a journal entry module (database, model, actions, views, controllers, API, docs, tests). Use when adding a new journal module or changing an existing module such as mood, health, or obligations.
Update the README.md file to list all available journal modules under the Features section with categorized, collapsible sections. Use when adding, removing, or reorganizing modules and keeping documentation in sync.
Update the README.md file to list all available journal modules under the Features section. Use when adding, removing, or reorganizing modules and keeping documentation in sync.
Update and complete JournalOS translation JSON files by running composer journalos:locale and fixing missing or empty translations in lang/*.json. Use when UI copy changes, new keys are added, or locale files are out of sync.
| name | action-writer |
| description | Create or update an Action in app/Actions following JournalOS conventions (validation, logging, queues, tests). |
This Skill helps you add or update an Action in app/Actions using the project conventions.
Use this Skill when:
execute().tests/Unit/Actions.composer journalos:unit.LogHealth, CreateBook, ResetWorkData).void).php artisan make:class Actions/ActionName --no-interaction
declare(strict_types=1); and the App\Actions namespace.final readonly class with constructor property promotion.$this->book), keep it final but not readonly, and declare a private property for the result.ModelNotFoundException when a user does not own a journal or entry.ValidationException::withMessages([...]) when values are invalid.TextSanitizer::plainText().DB::.low queue:LogUserAction::dispatch(...)->onQueue('low');
UpdateUserLastActivityDate::dispatch($user)->onQueue('low');
CheckPresenceOfContentInJournalEntry::dispatch($entry)->onQueue('low');
$this->entry->load('moduleHealth');
tests/Unit/Actions/ActionNameTest.php.RefreshDatabase and Queue::fake().for() on factories.ValidationException)ModelNotFoundException)low queuephp artisan test tests/Unit/Actions/ActionNameTest.php
composer journalos:unit.vendor/bin/pint --dirty