Stats
Actions
Tags
From zuora-coding-agent
Design Zuora CPQ Quote Studio JavaScript extensibility using supported hooks and events.
How this command is triggered — by the user, by Claude, or both
Slash command
/zuora-coding-agent:zuora-cpq-js-designThe summary Claude sees in its command listing — used to decide when to auto-load this command
# /zuora-cpq-js-design
Read `${CLAUDE_PLUGIN_ROOT}/skills/zuora-cpq-js-design/SKILL.md` and follow it for this request:
Critical Quote Studio rules:
- Copy hook signatures exactly from `${CLAUDE_PLUGIN_ROOT}/references/cpq-js-hooks.json`.
- `beforeSave`, `beforeSubmit`, and `beforePreviewCall` take no parameters and return optional Boolean values.
- Never design `beforeSave({ quoteState, zqfClient })`, `beforeSave({ resolve, reject })`, `beforeSave({ record, connectedQuote })`, `resolve()`, `reject()`, `connectedQuote.updateQuote(...)`, or `return { success: true }`.
- For package 10.5...Read ${CLAUDE_PLUGIN_ROOT}/skills/zuora-cpq-js-design/SKILL.md and follow it for this request:
$ARGUMENTS
Critical Quote Studio rules:
${CLAUDE_PLUGIN_ROOT}/references/cpq-js-hooks.json.beforeSave, beforeSubmit, and beforePreviewCall take no parameters and return optional Boolean values.beforeSave({ quoteState, zqfClient }), beforeSave({ resolve, reject }), beforeSave({ record, connectedQuote }), resolve(), reject(), connectedQuote.updateQuote(...), or return { success: true }.ZQFClient module import pattern, not injected or hook-parameter zqfClient.@api zqfClient, @api record, @api recordId, this.zqfClient, bare zqfClient, quoteState.getQuote(), quoteState.setQuoteField(...), this.quoteState.getQuote(), this.quoteState.updateQuote(...), or this.quoteState.setFieldValue(...).*-meta.xml.npx claudepluginhub zuora/zuora-coding-agent --plugin zuora-coding-agent