mit einem Klick
temporal-signal
Add a
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Menü
Add a
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Basierend auf der SOC-Berufsklassifikation
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-signal |
| description | Add a |
Add a signal handler to a workflow interface. Signals are fire-and-forget
messages sent to a running workflow; they must return void and should only
update internal state (the workflow loop will react via Workflow::await() /
polling state).
cancelOrder)<Workflow>Interface.phpAdd the method to the interface, alongside the existing #[WorkflowMethod]:
use Temporal\Workflow\SignalMethod;
#[SignalMethod(name: '{{signalName}}')]
public function {{signalName}}({{args}}): void;
<Workflow>.phpImplement the handler — store arguments on the workflow instance; do not perform activities/I/O directly from a signal.
private array $pendingSignals = [];
public function {{signalName}}({{args}}): void
{
$this->pendingSignals[] = [{{argNames}}];
}
Then in the main #[WorkflowMethod] loop, await/drain:
yield Workflow::await(fn () => $this->pendingSignals !== []);
$next = array_shift($this->pendingSignals);
void — returning anything else is a contract
violation and will surface as a non-deterministic workflow.#[SignalMethod(name: '...')] to decouple the external signal name from
the PHP method name (otherwise the method name is used).$workflow = $workflowClient->newWorkflowStub({{Workflow}}Interface::class);
$run = $workflowClient->start($workflow, /* args */);
$workflow->{{signalName}}({{argNames}}); // or: $workflowClient->signalWorkflow(...)