SfSkills Domains Docs GitHub

Home / Docs / Agent Invocation Modes

Agent Invocation Modes

Audience: anyone routing work to agents/<id>/ — humans in Cursor / Claude Code / VS Code, AI assistants wrapping this repo, MCP clients, CI, or custom orchestrators.

TL;DR: The library exposes the same 48 active run-time agents through many channels. MCP is the canonical channel for production use — it keeps agent specs, skill library, probes, and live-org context in sync so agent outputs stay grounded and citations stay resolvable. Other channels exist for sketching, teaching, and delivery-team handoff.

One caveat before you rely on that recommendation: installing the SfSkills plugin does not connect the MCP server. .claude-plugin/plugin.json declares skills and commands and has no mcpServers key, so a user has to wire the server up themselves. Channel 1 is the best channel; it is not the default one.

This file is itself an MCP tool resource — get_invocation_modes returns it verbatim (mcp/sfskills-mcp/src/sfskills_mcp/meta.py:205-225). Agents read it, so keep it accurate.

Source: this catalog was consolidated from an external review (Cursor, 2026-04-19) — see feedback/FEEDBACK_LOG.md, anchor 2026-04-19-cursor-invocation-review. Attributed and adopted; not every claim landed verbatim.

Verified against this checkout on 2026-08-15.


The channels

#ChannelWho uses itEnforcementBest for
1MCP server (get_agent / list_agents)AI assistants with MCP clientCanonical — stays in sync with repo, ships probes + skills + live-org tools togetherProduction agent invocations; anything that needs real-org grounding; multi-tool workflows
2Authored happy path in AGENT.mdHumans / AI reading the spec directlyBy discipline onlyHighest-fidelity single run; good for routers and multi-mode designers
3Slash commands (/build-flow, /audit-router, etc.) — 67 of themIDE usersCommand wrapper bakes in flags + pathsRepeatable team workflows; "same command, different org alias"
4Queue + orchestrator (BACKLOG.yaml)Library maintainersOrchestrator reads the queue, routes buildersSkill-building and library-maintenance rows, not ad-hoc "fix this Flow"
5Harness (scripts/run_builder.py)CI / builder agentsFull 5-gate protocol — Gate A inputs, A.5 requirements, B ground, C build, D sealGenerated metadata that must compile in a target org
6Bundle export (scripts/export_agent_bundle.py)Consumer projects / delivery teamsRewritten paths + shipped probes + shipped skillsDrop a single agent into a customer repo without vendoring the monorepo
7Informal @folder chat (@agents/<id>/ + natural language)Humans exploringNone — all on the model's diligenceFast sketching; not production; see mitigations below
8PR / branch review (code-reviewer, security-scanner, soql-optimizer)Reviewers on a feature branchStatic scan; no org needed for the three above"Review this branch" workflows
9Pre-push developer habitIndividual devsBy discipline onlysecurity-scanner + soql-optimizer + lwc-auditor before git push
10Multi-agent pipelines (choreographed)Orchestrating callerIntermediate reports written to disk per docs/consumer-responsibilities.mdcontent-researcher → *-skill-builder → validator; object-designer → data-model-reviewer
11Advisory / pre-sales / architecture desk workConsultants / architectsNone — label as desk-level unless evidence attachedorg-assessor, waf-assessor, release-train-planner, sandbox-strategy-designer
12Delivery / change readinessRelease managersChecklists + dependency orderingchangeset-builder, data-loader-pre-flight, custom-metadata-and-settings-designer
13Incident / load / data-governanceOn-call operators"Go / no-go + questions" framingdata-loader-pre-flight, duplicate-rule-designer, deployment-risk-scorer
14Training / onboarding (reading syllabus)JuniorsAGENT.md + linked skills as curriculumGrounding new hires in library conventions
15Subagent / delegated tasksParent AI session dispatching to childParent enforces write-to-disk + envelopeContext isolation; parallel scans on different paths

Fourteen agent folders are deprecated stubs — validation-rule-auditor, sharing-audit-agent, picklist-governor, org-drift-detector and ten more. Every one of them redirects to audit-router; nine also keep a legacy slash command alias in commands/. See 6 for the full mapping and the removal window.


Why MCP is the canonical channel

We're doubling down on MCP because the other channels all share the same structural failure mode: context drift. The agent reads an old version of AGENT.md, or the skill it cited was since renamed, or the probe it wants to run was never copied into the consuming project. Every non-MCP channel has its own plumbing for this — bundle rewrites paths, MCP ships the library intact, informal chat hopes for the best.

MCP wins because:

ProblemHow MCP handles it
Agent spec goes stale in consumer projectServer reads straight from the repo; every get_agent call is current
Probes dropped on the floorlist_agents / get_agent return the dependency graph; the caller can't skip them accidentally
Skill citations brokenSame server exposes search_skill / get_skill; no version skew between agent spec and the skill it cites
Live-org grounding is ad-hocdescribe_org, tooling_query, probe_apex_references, validate_against_org all ship with the agent surface
Consumer forgets persistence contractget_invocation_modes returns this document as a tool resource

The MCP surface — 38 tools, verified by counting @mcp.tool registrations in mcp/sfskills-mcp/src/sfskills_mcp/server.py (the same derivation scripts/check_doc_counts.py gates):

search_skill is subject to the same install caveat as everything else in mechanism 2: it needs a built index. vector_index/ is gitignored (git ls-files vector_index returns three fixture/metadata files), so a fresh clone or a PyPI install has nothing to search until python3 scripts/bootstrap.py runs. See architecture.md.

Beyond Tools the server also exposes:


Quick picker: which channel for your situation?

You have…Reach for…
An AI assistant with MCP connectedChannel 1 (MCP). Default.
The plugin installed but no MCP serverChannel 3 (slash commands) plus the shipped router skills — that combination needs no setup at all.
An IDE with slash commands shippedChannel 3 (slash).
Only Cursor chat and a vague sentenceChannel 7 (informal), but force the model to name artifacts (paths, Ids, domains) in the same message.
A CI pipeline that must compile metadataChannel 5 (harness).
A customer repo that shouldn't vendor the monorepoChannel 6 (bundle export) or Channel 1 if they can run MCP.
A PR to reviewChannel 8 (PR review with static agents).
A library maintenance taskChannel 4 (queue + orchestrator).
Pre-sales / architecture deckChannel 11 (advisory). Label confidence; attach evidence.

If you're an AI assistant reading this — default to channel 1 unless you have a specific reason to use another, and fall back to channel 3 rather than freestyling when the MCP server is not connected.


What informal chat can't fix



Provenance

The 15-channel catalog, the Quick Picker framing, and the informal-vs-happy-path distinction in this doc were adopted from an external Cursor-authored review (2026-04-19, written when the roster stood at 75 agents). Triage, MCP-first framing, and the list of what MCP is missing are this repo's own. See feedback/FEEDBACK_LOG.md, anchor 2026-04-19-cursor-invocation-review.

View this file on GitHub