Every org-changing step walks a three-tier ladder, then verifies — tier = what runtime you have: T1 headless MCP (
/
, no shell) ·
T2 CLI (needs a shell) ·
T3 Setup UI. Try T1; drop to T2 on a route/allowlist failure; T3 if no shell. Steps carry a best-tier tag; the verify-only preflight (step 1) uses STOP/ASK-USER labels instead.
references/execution-model.md
has the ladder detail — allowlist, route signals, query-routing, API-version policy; read it whenever a tier or route is unclear.
Several steps land on T3 with no tier-1/tier-2 write path at all (hand the user the Setup path, then verify) — each is tagged inline where it occurs (e.g.
on steps 8, 9a, 12); every other action has a tier-1 path.
Mandatory, every run: read references/customer-narration.md
in full before your first message to the customer — this is not background reading, it's the exact wording rules you follow at every step boundary for the entire session. In short: the step numbers, tier tags (
/
/
), and words like "gate," "the spine," or "per the doc" are internal authoring scaffolding — never say them to the customer, who has no idea this skill file exists. Lead every step boundary with the plain-language outcome, not the internal label; give a manual (UI) hand-off its complete concrete detail in the same message that asks the customer to go do it; and before every single create/update/delete, no matter how small, explain what it does and why in plain language, then wait for an explicit go-ahead — never on silence, never batched.
references/customer-narration.md
has the exact phrasing table and the do/don't examples — read it now.
All steps are sequential. Each step is one action + its best tier + a pointer to the reference that carries the exact calls, API names, and traps — read that reference before executing the step. Confirm before irreversible actions; end every step with its verify call.
Do this first — before Step 1, before any other call in the run. Every used in every step and reference file below comes from this resolution; never substitute a remembered or hardcoded version. CRITICAL: If this session has more than one Salesforce connection available, pin whichever one you use for this call as the org connection for the rest of the run — including after a context compaction. A compacted summary can lose track of which connection was active; don't let that cause a switch to a different one partway through.
Step 1 is a hard gate — clear it before enabling or building anything. If a STOP check (external grant the skill can't flip) or an ASK-USER check (foundation the skill doesn't own) fails,
do not start the toggles or the foundation build — stop and request the grant, or have the user complete the missing Education Cloud foundation setup, then re-verify.
Also confirm now, before saying anything to the customer: references/customer-narration.md
has been read in full this run (see Talking to the user above) — this gate isn't cleared until that's true too. Don't build permissions/OWD/grounding for an agent that can't exist. Full preflight-gate table and every verify call:
references/prerequisites.md
.
This skill configures a live org; no repository files. Expected outputs: