Hooks
What stagent runs automatically, and when. A hook is a command Claude Code fires at a fixed moment, without you asking for it.
$ npx -y skills add jie-worldstatelabs/stagent --agent claude-codeShips with stagent. Installing the plugin gets these hooks.
What fires, and when
SessionStart
Fires once when a session begins, and again after a context compaction. It is where a plugin sets up its environment, or restores state the compaction dropped.
- Runs session-start.sh.
SessionEnd
- Runs session-end.sh.
Stop
- Runs stop-hook.sh.
UserPromptSubmit
Fires before Claude sees each prompt you send. A plugin can use it to inject context, so the same instruction reaches the model every turn instead of only at session start.
- Runs user-prompt-submit.sh.
Notification
- Runs notification-hook.sh.
PreToolUse
- Runs agent-guard.sh.
PostToolUse
- Runs postwrite-hook.sh.
SubagentStop
- Runs agent-ledger-remove.sh.
Where it lives
- hooks/activity-hook.shGitHub
- hooks/agent-guard.shGitHub
- hooks/agent-ledger-add.shGitHub
- hooks/agent-ledger-remove.shGitHub
- hooks/ask-user-question-hook.shGitHub
- hooks/notification-hook.shGitHub
- hooks/plugin-path-rewrite.shGitHub
- hooks/postwrite-hook.shGitHub
- hooks/session-end.shGitHub
- hooks/session-start.shGitHub
- hooks/stop-hook.shGitHub
- hooks/user-prompt-submit.shGitHub
Showing the source of 6 of 12 scripts. Every one is linked above.
Read the script before you install anything that runs on your machine. This is the one part of a plugin that acts without being asked.
A Claude Code plugin that runs config-driven development workflows as a state machine. You declare stages, transitions, and inputs in a single workflow.json; the plugin's hooks and scripts drive the loop.
Repo: jie-worldstatelabs/stagent

