Regeländerung prüfen
prepare_policy_changePreview an explicitly requested policy replacement without applying it. Read confirmed content with get_policy, or discover editable revisions with get_policy_write_options. Activation belongs exclusively to the Owner card's app-only confirm_policy; models never call that confirmation.
Keep moduleKey/policyKey/expectedRevision from one options result. value replaces the whole policy rather than patching it: include the existing fields the user wants to retain.
The preview is neither queued nor saved. Its nextAction.arguments carries that exact replacement into the human card, which Business hosts present automatically.
Requires policy:read/write and current Owner/module access. Invalid or stale input fails without persistence. Reread the policy and renew intent rather than substituting a revision.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"moduleKey": "<moduleKey>",
"policyKey": "<policyKey>",
"expectedRevision": "<expectedRevision>",
"value": "<value>"
},
"name": "prepare_policy_change"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | Complete explicitly requested replacement, not a patch: omitted fields are not retained. Must satisfy the selected native contract; canonical JSON is limited to 12000 UTF-16 code units. Copy supplied exact continuation arguments unchanged. | |
| moduleKey | Yes | Policy module key from the same supported get_policy_write_options result as policyKey and expectedRevision; never a tenant selector. | |
| policyKey | Yes | Existing editable policy identifier from that same result; arbitrary new identities and templates are unsupported. | |
| expectedRevision | Yes | Opaque hash of the current complete state from that result, not a proposed-value hash or numeric history version. Stale state requires a fresh read and renewed intent. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| after | Yes | Validated explicit replacement during a preview; null during discovery. This value has not been saved. | |
| title | Yes | ||
| before | Yes | Native current value, null when unconfigured. Read failures are errors, not empty configuration. | |
| effect | Yes | ||
| status | Yes | ||
| proposed | No | Optional native adapter guidance, possibly null; never requested intent or approval. | |
| tenantId | Yes | Workspace already bound by the current grant, never a selectable destination. | |
| moduleKey | Yes | Policy module key from the same supported get_policy_write_options result as policyKey and expectedRevision; never a tenant selector. | |
| policyKey | Yes | Existing editable policy identifier from that same result; arbitrary new identities and templates are unsupported. | |
| nextAction | Yes | Existing private human-card continuation. Does not itself apply the value. | |
| displayAfter | No | ||
| settingsPath | Yes | ||
| writesPolicy | Yes | ||
| canDeactivate | Yes | True only when this native settings contract defines a safe disabled value. Use deactivate_policy for an explicitly requested stop; unconfigured policies still have nothing to deactivate. Other policy values and templates have no generic delete or enabled-field fallback. | |
| displayBefore | No | ||
| currentVersion | Yes | Current verified numeric policy version, or null when unconfigured; not the write revision. | |
| activatesPolicy | Yes | ||
| expectedRevision | Yes | Opaque hash of the current complete state from that result, not a proposed-value hash or numeric history version. Stale state requires a fresh read and renewed intent. |