Salesforce Live Change Approval Protocol
Purpose
This skill is a refusal-by-default gate for any proposed mutation to a live
Salesforce production org. It exists because production org changes carry
irreversible risk — data exposure, broken automation, permission widening,
and revenue-logic corruption can all result from unreviewed deployments.
No live-mutation advisory may proceed until all ten required preconditions
are confirmed present and documented.
Important: This repository is a markdown marketplace for advisory
workflows. This protocol governs checklist-based advisory review, not real
org executions. Live org mutations require human authorization through your
organization's actual change management process.
When to use
- Any proposed change to a Salesforce production org is under discussion.
- A deployment is being planned and must be evaluated for approval-readiness.
- A change request has been submitted and needs precondition verification.
- An escalation gate (
live-mutation from salesforce-risk-taxonomy) has fired.
When not to use
- The change targets only sandboxes or scratch orgs with no production impact.
- You need read-only review of exported metadata — use the appropriate domain
review skill (salesforce-metadata-review-skill, salesforce-flow-automation-review-skill, etc.).
- You need to classify matter types — use
salesforce-risk-taxonomy.
- You need a structured handoff — use
salesforce-case-capsule.
Minimum payload (required inputs)
The following ten preconditions must ALL be present. If any is missing, the
skill outputs STOP and lists the missing items.
- target_org_identity — A placeholder identifier for the target org (never a real org ID or credentials). Environment type must be confirmed as production.
- environment_type — Must be
production. If sandbox or scratch, this protocol does not apply.
- user_identity — The role or placeholder identity of the person authorizing the change (never a real username, email, or SSO ID).
- permission_scope — The permissions held by the deploying identity. Must be documented; "admin" alone is insufficient.
- change_ticket — A reference to an approved change management ticket (e.g., Jira, ServiceNow, Salesforce Cases). Must exist and be in approved state.
- approval_state — The formal approval status. Must be
approved by a named human owner. pending or draft → STOP.
- dry_run_or_deployment_preview — Evidence that the change was previewed in a comparable environment (check-only deploy output, sandbox result, or equivalent). Must be present.
- backup_rollback_plan — A documented plan for reversing the change if it fails. Must name the rollback mechanism and estimated recovery time.
- test_evidence — Test results demonstrating the change is safe. Must include test class coverage (Apex) or equivalent automated evidence. Must meet org threshold.
- post_change_verification_plan — Steps to verify the change is working correctly after deployment. Must be documented before deployment begins.
Workflow
- Receive the proposed change description (sanitized, no credentials or PII).
- Check each precondition in order.
- If ANY precondition is missing or incomplete → output STOP with missing items listed.
- If all ten preconditions are present → output PROCEED-WITH-HUMAN-AUTHORIZATION, listing each precondition's confirmed state.
- Check salesforce-risk-taxonomy escalation gates. If any gate fires → output ESCALATE regardless of precondition state.
- Produce the advisory checklist output.
- Remind the invoker that human authorization is required before any real deployment.
Evidence requirements
- All ten preconditions must be documented by the invoker.
- Evidence must be sanitized: no real org IDs, no credentials, no customer PII.
- Dry-run or deployment preview output must be present as text (not a promise to run it later).
Output format
advisory_verdict: STOP | PROCEED-WITH-HUMAN-AUTHORIZATION | ESCALATE
missing_preconditions: [list, or "none"]
escalation_gates_fired: [list from salesforce-risk-taxonomy, or "none"]
precondition_check:
target_org_identity: confirmed | missing | incomplete
environment_type: confirmed | missing | incomplete
user_identity: confirmed | missing | incomplete
permission_scope: confirmed | missing | incomplete
change_ticket: confirmed | missing | incomplete
approval_state: confirmed | missing | incomplete
dry_run_or_deployment_preview: confirmed | missing | incomplete
backup_rollback_plan: confirmed | missing | incomplete
test_evidence: confirmed | missing | incomplete
post_change_verification_plan: confirmed | missing | incomplete
advisory_notes: [risk observations, not authorizations]
human_authorization_reminder: "All live org mutations require human authorization through your organization's change management process. This advisory checklist does not constitute approval."
Redaction rules
- Never request secrets, credentials, OAuth tokens, refresh tokens, session IDs, MFA seeds, customer PII.
- Sanitize org IDs, user IDs (replace with placeholders) before sharing in outputs.
- If the invoker provides real credentials or org IDs, decline and ask for sanitized placeholders.
Privilege / data handling rules
- This skill never stores, logs, or repeats credentials or session tokens.
- Production org identifiers must be replaced with placeholders in all outputs.
- Change descriptions must not carry customer data samples.
Handoff rules
- STOP verdict: handoff to salesforce-case-capsule with missing preconditions as blockers.
- ESCALATE verdict: handoff to salesforce-data-exposure-escalation-protocol if data-exposure gate fired; otherwise to salesforce-case-capsule with escalation_required = true.
- PROCEED-WITH-HUMAN-AUTHORIZATION: advisory output is presented to the human decision owner. No agent takes further action without explicit human authorization.
Audit log fields
- matter_id, skill_id, skill_version, invoked_by, input_hash, evidence_quality, output_verdict, escalation_fired, timestamp
Stop conditions
- Any of the ten preconditions is missing or incomplete → output STOP immediately.
- An escalation gate fires → output ESCALATE regardless of precondition state.
- The invoker provides real credentials or production org IDs → stop and refuse.
- The proposed change is described as a live production mutation but environment_type is not confirmed → output STOP.
Security notes
- Refusal is the default. The burden is on the invoker to supply all ten preconditions.
- This protocol never issues authorization. The output is advisory only.
- Production org IDs, credentials, and session tokens must never appear in any field.
- This repo is a markdown marketplace; no code in this skill executes real Salesforce API calls.
1---2name: salesforce-live-change-approval-protocol3description: Salesforce Live Change Approval Protocol4---56# Salesforce Live Change Approval Protocol78## Purpose9This skill is a refusal-by-default gate for any proposed mutation to a live10Salesforce production org. It exists because production org changes carry11irreversible risk — data exposure, broken automation, permission widening,12and revenue-logic corruption can all result from unreviewed deployments.13No live-mutation advisory may proceed until all ten required preconditions14are confirmed present and documented.1516**Important:** This repository is a markdown marketplace for advisory17workflows. This protocol governs checklist-based advisory review, not real18org executions. Live org mutations require human authorization through your19organization's actual change management process.2021## When to use22- Any proposed change to a Salesforce production org is under discussion.23- A deployment is being planned and must be evaluated for approval-readiness.24- A change request has been submitted and needs precondition verification.25- An escalation gate (`live-mutation` from salesforce-risk-taxonomy) has fired.2627## When not to use28- The change targets only sandboxes or scratch orgs with no production impact.29- You need read-only review of exported metadata — use the appropriate domain30 review skill (salesforce-metadata-review-skill, salesforce-flow-automation-review-skill, etc.).31- You need to classify matter types — use `salesforce-risk-taxonomy`.32- You need a structured handoff — use `salesforce-case-capsule`.3334## Minimum payload (required inputs)35The following ten preconditions must ALL be present. If any is missing, the36skill outputs STOP and lists the missing items.37381. **target_org_identity** — A placeholder identifier for the target org (never a real org ID or credentials). Environment type must be confirmed as production.392. **environment_type** — Must be `production`. If sandbox or scratch, this protocol does not apply.403. **user_identity** — The role or placeholder identity of the person authorizing the change (never a real username, email, or SSO ID).414. **permission_scope** — The permissions held by the deploying identity. Must be documented; "admin" alone is insufficient.425. **change_ticket** — A reference to an approved change management ticket (e.g., Jira, ServiceNow, Salesforce Cases). Must exist and be in approved state.436. **approval_state** — The formal approval status. Must be `approved` by a named human owner. `pending` or `draft` → STOP.447. **dry_run_or_deployment_preview** — Evidence that the change was previewed in a comparable environment (check-only deploy output, sandbox result, or equivalent). Must be present.458. **backup_rollback_plan** — A documented plan for reversing the change if it fails. Must name the rollback mechanism and estimated recovery time.469. **test_evidence** — Test results demonstrating the change is safe. Must include test class coverage (Apex) or equivalent automated evidence. Must meet org threshold.4710. **post_change_verification_plan** — Steps to verify the change is working correctly after deployment. Must be documented before deployment begins.4849## Workflow501. Receive the proposed change description (sanitized, no credentials or PII).512. Check each precondition in order.523. If ANY precondition is missing or incomplete → output STOP with missing items listed.534. If all ten preconditions are present → output PROCEED-WITH-HUMAN-AUTHORIZATION, listing each precondition's confirmed state.545. Check salesforce-risk-taxonomy escalation gates. If any gate fires → output ESCALATE regardless of precondition state.556. Produce the advisory checklist output.567. Remind the invoker that human authorization is required before any real deployment.5758## Evidence requirements59- All ten preconditions must be documented by the invoker.60- Evidence must be sanitized: no real org IDs, no credentials, no customer PII.61- Dry-run or deployment preview output must be present as text (not a promise to run it later).6263## Output format64```65advisory_verdict: STOP | PROCEED-WITH-HUMAN-AUTHORIZATION | ESCALATE66missing_preconditions: [list, or "none"]67escalation_gates_fired: [list from salesforce-risk-taxonomy, or "none"]68precondition_check:69 target_org_identity: confirmed | missing | incomplete70 environment_type: confirmed | missing | incomplete71 user_identity: confirmed | missing | incomplete72 permission_scope: confirmed | missing | incomplete73 change_ticket: confirmed | missing | incomplete74 approval_state: confirmed | missing | incomplete75 dry_run_or_deployment_preview: confirmed | missing | incomplete76 backup_rollback_plan: confirmed | missing | incomplete77 test_evidence: confirmed | missing | incomplete78 post_change_verification_plan: confirmed | missing | incomplete79advisory_notes: [risk observations, not authorizations]80human_authorization_reminder: "All live org mutations require human authorization through your organization's change management process. This advisory checklist does not constitute approval."81```8283## Redaction rules84- Never request secrets, credentials, OAuth tokens, refresh tokens, session IDs, MFA seeds, customer PII.85- Sanitize org IDs, user IDs (replace with placeholders) before sharing in outputs.86- If the invoker provides real credentials or org IDs, decline and ask for sanitized placeholders.8788## Privilege / data handling rules89- This skill never stores, logs, or repeats credentials or session tokens.90- Production org identifiers must be replaced with placeholders in all outputs.91- Change descriptions must not carry customer data samples.9293## Handoff rules94- STOP verdict: handoff to salesforce-case-capsule with missing preconditions as blockers.95- ESCALATE verdict: handoff to salesforce-data-exposure-escalation-protocol if data-exposure gate fired; otherwise to salesforce-case-capsule with escalation_required = true.96- PROCEED-WITH-HUMAN-AUTHORIZATION: advisory output is presented to the human decision owner. No agent takes further action without explicit human authorization.9798## Audit log fields99- matter_id, skill_id, skill_version, invoked_by, input_hash, evidence_quality, output_verdict, escalation_fired, timestamp100101## Stop conditions102- Any of the ten preconditions is missing or incomplete → output STOP immediately.103- An escalation gate fires → output ESCALATE regardless of precondition state.104- The invoker provides real credentials or production org IDs → stop and refuse.105- The proposed change is described as a live production mutation but environment_type is not confirmed → output STOP.106107## Security notes108- Refusal is the default. The burden is on the invoker to supply all ten preconditions.109- This protocol never issues authorization. The output is advisory only.110- Production org IDs, credentials, and session tokens must never appear in any field.111- This repo is a markdown marketplace; no code in this skill executes real Salesforce API calls.