with one click
temporal-update
Add a
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Add a
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Develop IntelliJ Platform plugins (IDEA / PhpStorm / etc.) following the official JetBrains SDK guidelines. Use when the user asks to add an extension point, service, action, listener, inspection, index, tool window, notification, run configuration, or any other platform-level plugin feature. This is the general platform skill — for this project's specific conventions also consult /kotlin-dev.
Write new Kotlin code for this IntelliJ Platform plugin following the project's common/languages architecture, Extension Point pattern, and performance/naming rules. Use whenever the user asks to "add a Kotlin class", "implement an inspection", "add an action", "create a service", "write a completion provider", or any new plugin-side feature.
Write JUnit 4 + IntelliJ Platform Test Framework tests in Kotlin for this plugin (inspections, indexes, endpoint providers, EP implementations, PSI helpers, run configs). Use when the user asks to "add a test", "write a test", "cover X with tests", or "bootstrap the test suite".
Scaffold an official Temporal PHP Activity (interface + implementation) using
Scaffold invocation of a child Temporal workflow from a parent workflow using ChildWorkflowOptions. Use when the user asks to "call a child workflow", "invoke child workflow", or "start child workflow".
Add a
| name | temporal-update |
| description | Add a |
Updates are synchronous, validated, state-mutating RPCs against a running workflow. Unlike signals, they can return a value. They are the recommended primitive for request/response interactions with a workflow.
approveOrder)<Workflow>Interface.phpuse Temporal\Workflow\UpdateMethod;
use Temporal\Workflow\UpdateValidatorMethod;
#[UpdateMethod(name: '{{updateName}}')]
public function {{updateName}}({{args}}): {{returnType}};
#[UpdateValidatorMethod(forUpdate: '{{updateName}}')]
public function validate{{UpdateName}}({{args}}): void;
<Workflow>.phppublic function validate{{UpdateName}}({{args}}): void
{
// Throw \Temporal\Exception\Failure\ApplicationFailure if invalid.
// Must be pure / read-only — no state mutation, no activities.
if (!$this->canAccept({{argNames}})) {
throw new \InvalidArgumentException('Cannot accept update right now');
}
}
public function {{updateName}}({{args}}): {{returnType}}
{
// Mutate state and/or yield to activities.
$this->{{field}} = {{argNames}};
return {{returnExpr}};
}
#[UpdateValidatorMethod(forUpdate: '...')].yield activities and mutate state.$stub = $workflowClient->newRunningWorkflowStub({{Workflow}}Interface::class, $workflowId);
$result = $stub->{{updateName}}({{argNames}});