npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@jterrats/setup-agents

v2.10.0

Published

A Salesforce CLI plugin to configure agent rules for AI coding assistants (Cursor, VS Code, Codex, and more).

Readme

setup-agents ⚡ — Agentic Development Framework for Salesforce

Configure once. Let agents drive.

Plugin version Extension version Downloads CI License Node.js

Disclaimer: This is a personal open-source project by Jaime Terrats. It is not an official Salesforce product, nor is it endorsed, supported, or affiliated with Salesforce, Inc. Use at your own discretion.


About

setup-agents is an agentic development framework for Salesforce teams. It gives AI agents everything they need to operate as a senior team member in a Salesforce project: role identity, project standards, a workflow engine, and an accountability loop.

sf setup-agents init          # configure profiles, tools, and workspace once
        │
        ▼
  CLAUDE.md / AGENTS.md       # agents read this on every session
  .cursor/rules/*.mdc         # role-specific standards loaded per task type
        │
        ▼
sf setup-agents workflow run --story SA-42
        │
        ├── BA phase          # refine acceptance criteria
        ├── Architect phase   # design decisions + ADR
        ├── Developer phase   # implement + unit tests
        ├── QA phase          # verify + evidence
        └── Release phase     # validate + PR
        │
        ▼
  evidence.jsonl + decisions.jsonl   # auditable delivery trail

Phases are dynamic — only the roles configured for your project run. A project with just developer runs Developer → QA → Release. Add architect and the Architect phase is inserted automatically.

What agents get

  • 25 role profiles — Developer, Architect, BA, PM, MuleSoft, UX, CGCloud, DevOps, QA, CRMA, Commerce, Data Cloud, Admin, SFMC, Security, Service, CPQ, OmniStudio, FSL, FSC, AI/Agentforce, Slack, Tableau, Experience Cloud, Release Manager
  • Workflow engine — autonomous multi-phase pipeline with gates, QA loop, and resume
  • Sub-agent protocol — generated routing manifest mapping task types to roles with handover checklists
  • Evidence and accountability — agents record commands, files, and decisions before each gate
  • Action Risk Scale — agents know what to run autonomously, what to ask, and what to never touch
  • Agentforce Workflows.a4drules/workflows/*.md for automated dev tasks in Vibes chat
  • MCP integrationsf setup-agents mcp wires @salesforce/mcp into Cursor for any org

What teams get

  • VS Code Extension — visual sidebar for guided setup, MCP config, integrations, and rule management
  • Auto-detection — detects cgcloud__, WaveDashboard, DataStream, Playwright config, and more
  • Combinable profiles--profile developer,architect,crma stacks rules from multiple roles
  • Rule overrides — customize Cursor scope and globs per profile in config.json
  • Safe by default — never overwrites existing rule files without --force

Quick Start

# Install the plugin
sf plugins install @jterrats/setup-agents

# Run in your Salesforce project
cd my-salesforce-project
sf setup-agents local

The command auto-detects your tools and prompts for role selection:

? Select your role profile(s):
❯◉ Developer
 ◯ Architect
 ◯ Business Analyst
 ◯ Project Manager
 ◯ MuleSoft
 ◯ UX / UI
 ◉ CGCloud  ← pre-selected (cgcloud__ detected)
 ◯ DevOps / Release Manager
 ◯ QA (Playwright)
 ◯ CRM Analytics Engineer (CRMA)
 ◯ Data Cloud Architect / Engineer (Data 360)
 ◯ Salesforce Admin / Configurator
 ◯ Salesforce Marketing Cloud (SFMC)
 ◯ Security / Compliance
 ◯ Service Cloud
 ◯ CPQ Specialist
 ◯ OmniStudio / Vlocity
 ◯ Field Service (FSL)
 ◯ AI / Agentforce Specialist
 ◯ Slack Developer
 ◯ Tableau / Analytics Cloud

Unsigned Plugin Notice: You will be prompted the first time you install an unsigned plugin. To trust this plugin:

sf plugins install @jterrats/setup-agents --no-verify
# or add to allowlist in ~/.config/sf/unsignedPluginAllowList.json

Full agent workflow guide: see docs/user-guide/agent-workflow.md for the complete loop — from init to shipped PR — with phase matrix, gates, evidence, and a real example.

Versioning: the plugin (v2.x) and the VS Code extension (ext-v1.x) are released independently on separate tracks. Both badges above always reflect the latest of each.

VS Code Extension (Preview)

A visual sidebar UI that wraps the CLI plugin for teams that prefer point-and-click over terminal commands.

Features:

  • Guided Setup — auto-detects tools, displays 25 profile cards, scope selector, live console output
  • MCP Configuration — lists authenticated orgs, pre-selects already-connected ones, one-click connect
  • Third-Party Integrations — profile-filtered cards for Figma, Jira, draw.io, GitHub with credential input
  • Update Agent Rules — detects stale files and updates in one click
  • Rule Management — import from URL/file, browse, edit, and save rule files inline
  • Health Checks — verifies SF CLI and plugin installation with actionable error banners
cd extensions/vscode-setup-agents-ui
npm install && npm run build
# Then press F5 or open the Setup Agents sidebar in VS Code

Full documentation: see the Extension page on the docs site.


Architecture

graph TD
    subgraph cmds [Commands]
        local["sf setup-agents local"]
        mcp["sf setup-agents mcp"]
        update["sf setup-agents update"]
    end

    subgraph setup [Setup Layer]
        cursorSetup["cursor-setup.ts"]
        vscodeSetup["vscode-setup.ts"]
        codexSetup["codex-setup.ts"]
        claudeSetup["claude-setup.ts"]
        a4dSetup["agentforce-setup.ts"]
    end

    subgraph gen [Generators]
        mdcGen["mdc-generator"]
        workflowGen["workflow-generator"]
        copilotGen["copilot-generator"]
        extGen["extensions-generator"]
        codexGen["codex-generator"]
        claudeGen["claude-generator"]
        a4dGen["agentforce-generator"]
        sharedGen["shared"]
    end

    local --> detectTools["detectTools()"]
    local --> resolveProfiles["resolveProfiles()"]
    local --> cursorSetup
    local --> vscodeSetup
    local --> codexSetup
    local --> claudeSetup
    local --> a4dSetup

    cursorSetup --> mdcGen
    cursorSetup --> workflowGen
    vscodeSetup --> copilotGen
    vscodeSetup --> extGen
    codexSetup --> codexGen
    claudeSetup --> claudeGen
    a4dSetup --> a4dGen
    a4dSetup --> workflowGen
    a4dGen --> sharedGen
    claudeGen --> sharedGen

    mcp --> orgList["sf org list"]
    mcp --> mcpJson[".cursor/mcp.json"]

    update --> findStale["findStaleFiles()"]
    update --> local

Files generated per tool

| Tool | Files | | -------------- | ----------------------------------------------------------------------------------------------------------------------------- | | Cursor | .cursor/rules/agent-guidelines.mdc, salesforce-standards.mdc, <profile>-standards.mdc, sub-agent-protocol.mdc | | VS Code | .github/copilot-instructions.md, .vscode/extensions.json | | Codex | AGENTS.md | | Claude | CLAUDE.md | | Agentforce | .a4drules/00-base-guidelines.md, 01-salesforce-standards.md, <profile>.md, 99-sub-agent-protocol.md, workflows/*.md |


Profiles

Each profile generates a dedicated .mdc rule file in .cursor/rules/ and contributes extensions to .vscode/extensions.json.

| Profile | Flag | Rule File | Auto-detect Signal | | ---------------------------- | ------------------ | -------------------------------- | ------------------------------------------------- | | Developer | developer | developer-standards.mdc | — | | Architect | architect | architect-standards.mdc | — | | Business Analyst | ba | ba-standards.mdc | — | | Project Manager | pm | pm-standards.mdc | — | | MuleSoft | mulesoft | mulesoft-standards.mdc | mule-artifact.json / pom.xml | | UX / UI | ux | ux-standards.mdc | — | | CGCloud | cgcloud | cgcloud-standards.mdc | cgcloud__ in package.xml | | DevOps | devops | devops-standards.mdc | azure-pipelines.yml | | QA | qa | qa-standards.mdc | playwright.config.ts/js | | CRM Analytics | crma | analytics-standards.mdc | WaveDashboard / WaveDataflow in package.xml | | Commerce Cloud | commerce | commerce-standards.mdc | dw.json / cartridges/ / B2B metadata | | Data Cloud | data360 | data360-standards.mdc | DataStream / DataModelObject in package.xml | | Admin | admin | admin-standards.mdc | force-app/ | | SFMC | sfmc | sfmc-standards.mdc | .ampscript / mc-project.json | | Security | security | security-standards.mdc | force-app/ | | Service Cloud | service | service-standards.mdc | objects/Case/ / entitlements / bots | | CPQ | cpq | cpq-standards.mdc | SBQQ__ metadata | | OmniStudio | omnistudio | omnistudio-standards.mdc | omniScripts/ / flexCards/ | | Field Service | fsl | fsl-standards.mdc | ServiceAppointment / WorkOrder metadata | | AI / Agentforce | ai | ai-standards.mdc | bots/ / aiApplications/ | | Slack | slack | slack-standards.mdc | slack.json / manifest.json | | Tableau | tableau | tableau-standards.mdc | datasources/ / workbooks/ | | Experience Cloud | experience-cloud | experience-cloud-standards.mdc | experiences/ / sites/ | | Release Manager | release-manager | release-manager-standards.mdc | sfdx-project.json / force-app/ | | Financial Services Cloud | fsc | fsc-standards.mdc | FinServ__FinancialAccount__c / rollup CMDT |

Profiles are combinable. All rules use alwaysApply: true so every AI agent in the project has full context.


Sub-agent Protocol

When multiple profiles are active, sf setup-agents local generates .cursor/rules/sub-agent-protocol.mdc — a routing manifest that tells AI agents which role handles which task type:

## Active Profiles
| Role                          | Rule File                  |
|-------------------------------|----------------------------|
| Developer                     | developer-standards.mdc    |
| Analytics Engineer (CRMA)     | analytics-standards.mdc    |
| Data Cloud Engineer           | data360-standards.mdc      |

## Task-to-Profile Routing
| Task Type                              | Assigned Role       |
|----------------------------------------|---------------------|
| Apex / LWC / Triggers                  | Developer           |
| Recipes / Dataflows / SAQL             | Analytics Engineer  |
| Data Streams / Identity Resolution     | Data Cloud Engineer |

Agentforce Workflows

When --rules agentforce is used on a Salesforce project, the plugin generates workflow files in .a4drules/workflows/ that can be invoked in the Agentforce Vibes extension chat with /[workflow-name.md].

| Workflow | Trigger | Description | | ------------------------- | --------- | --------------------------------------------- | | deploy.md | Always | Guided Salesforce component deploy | | run-tests.md | Always | Run Apex test classes with coverage | | validate.md | Always | Validate-only deploy (CI-safe) | | create-apex-class.md | Developer | Create Apex class following project standards | | create-lwc.md | Developer | Scaffold LWC with SLDS best practices | | create-trigger.md | Developer | Create trigger using Kevin O'Hara pattern | | adr.md | Architect | Architecture Decision Record template | | release.md | DevOps | Release checklist and deployment plan | | create-scratch-org.md | DevOps | Scratch org setup with permission sets | | run-playwright.md | QA | Run Playwright tests and capture report | | generate-test-report.md | QA | Generate test coverage report | | sprint-plan.md | PM | Create sprint plan with Gantt timeline | | status-report.md | PM | Generate weekly status report | | risk-register.md | PM | Maintain project risk register | | deploy-analytics.md | CRMA | Deploy CRM Analytics dashboards and dataflows |


AI Skills

The plugin generates reusable AI skills (.cursor/skills/ for Cursor, portable markdown for other tools) for profiles that need them.

| Skill | Generated For | Description | | --------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------ | | Story Mapping | BA, PM, Architect | Jeff Patton–style story maps rendered as Mermaid diagrams (PDF) | | Deploy & Validate | Developer, Architect, DevOps | Guided deploy/validate using @jterrats/profiler and @jterrats/smart-deployment plugins | | Diagram Export | BA, PM, Architect, Developer | Export Mermaid diagrams to Lucidchart (API), draw.io (XML), or local SVG/PDF with auto-detection |


Install

sf plugins install @jterrats/setup-agents

Requirements

  • Salesforce CLI (sf) v2+
  • Node.js >= 18

Commands

sf setup-agents canvas clean

Remove orphan files from the Cursor canvas cache.

USAGE
  $ sf setup-agents canvas clean [--json] [--flags-dir <value>] [--path <value>] [--yes]

FLAGS
  --path=<value>  Target repository path (default: git root of current directory).
  --yes           Skip confirmation prompt and remove orphans immediately.

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Remove orphan files from the Cursor canvas cache.

  Finds files in `~/.cursor/projects/<slug>/canvases/` that have no matching source canvas in the repo and removes them.
  Prompts for confirmation unless `--yes` is supplied or stdout is non-TTY.

EXAMPLES
  Remove orphans interactively:

    $ sf setup-agents canvas clean

  Remove orphans without prompting:

    $ sf setup-agents canvas clean --yes

See code: src/commands/setup-agents/canvas/clean.ts

sf setup-agents canvas status

Show the state of Cursor canvas cache entries.

USAGE
  $ sf setup-agents canvas status [--json] [--flags-dir <value>] [--path <value>]

FLAGS
  --path=<value>  Target repository path (default: git root of current directory).

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Show the state of Cursor canvas cache entries.

  Lists each source canvas and its state in the Cursor cache: symlink pointing to the correct source (`symlink-ok`),
  symlink with a wrong target (`symlink-wrong`), a regular (possibly stale) file (`regular`), or absent from the cache
  (`missing`). Also reports orphan cache files with no repo counterpart.

EXAMPLES
  Check canvas status for the current repo:

    $ sf setup-agents canvas status

See code: src/commands/setup-agents/canvas/status.ts

sf setup-agents canvas sync

Sync Cursor canvas cache with repo source files.

USAGE
  $ sf setup-agents canvas sync [--json] [--flags-dir <value>] [--dry-run] [--init] [--clean] [--path <value>]

FLAGS
  --clean         Remove orphan files in cache after syncing.
  --dry-run       Preview changes without writing anything.
  --init          Create the cache directory if it does not exist.
  --path=<value>  Target repository path (default: git root of current directory).

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Sync Cursor canvas cache with repo source files.

  Replaces each cached `.canvas.tsx` file under `~/.cursor/projects/<slug>/canvases/` with a symlink to the repo source
  so edits made outside Cursor are reflected immediately on reopen.

  Supported canvas locations (first match wins): `docs/canvases`, `canvases`, `src/canvases`.

EXAMPLES
  Sync canvases for the current repo:

    $ sf setup-agents canvas sync

  Preview without making changes:

    $ sf setup-agents canvas sync --dry-run

  Initialize cache dir and sync:

    $ sf setup-agents canvas sync --init

  Sync and remove orphans:

    $ sf setup-agents canvas sync --clean

See code: src/commands/setup-agents/canvas/sync.ts

sf setup-agents dashboard

Generate a delivery dashboard from local workflow state.

USAGE
  $ sf setup-agents dashboard [--json] [--flags-dir <value>] [-p <value>] [--open] [-f html|json]

FLAGS
  -f, --format=<option>  [default: html] Output format: html (default) or json.
                         <options: html|json>
  -p, --output=<value>   [default: docs/dashboard.html] Output file path for the HTML dashboard.
      --open             Open the dashboard in the default browser after generation.

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Generate a delivery dashboard from local workflow state.

  Reads `.setup-agents/state/tasks.jsonl` and `workflow-runs.jsonl` and produces a standalone HTML dashboard (Chart.js,
  SLDS colors) or a JSON metrics payload. No org connection required.

  Default output path: `docs/dashboard.html`.

EXAMPLES
  Generate dashboard at default path:

    $ sf setup-agents dashboard

  Custom output path:

    $ sf setup-agents dashboard --output reports/delivery.html

  Open in browser after generation:

    $ sf setup-agents dashboard --open

  Print raw JSON metrics:

    $ sf setup-agents dashboard --format json

FLAG DESCRIPTIONS
  -f, --format=html|json  Output format: html (default) or json.

    `html` writes a standalone Chart.js file. `json` prints the metrics payload to stdout and does not write a file.

  -p, --output=<value>  Output file path for the HTML dashboard.

    Path where the HTML file will be written. Defaults to `docs/dashboard.html`.

See code: src/commands/setup-agents/dashboard.ts

sf setup-agents decision add

Add a setup-agents decision record.

USAGE
  $ sf setup-agents decision add -s <value> [--json] [--flags-dir <value>] [-t <value>] [-r <value>] [-p
    developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnist
    udio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc] [--rationale <value>] [--status
    proposed|accepted|superseded] [--outcome <value>] [--alternative <value>] [--evidence <value>]

FLAGS
  -p, --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|servic
  e|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc
      Owning setup-agents profile.

  -r, --role=<value>
      [default: developer] Owning role for this decision.

  -s, --summary=<value>
      (required) Short decision summary.

  -t, --task=<value>
      Task or issue id for this decision.

  --alternative=<value>
      Alternatives considered.

  --evidence=<value>
      Related evidence ids.

  --outcome=<value>
      Decision outcome.

  --rationale=<value>
      Decision rationale.

  --status=<option>
      [default: accepted] Decision status.
      <options: proposed|accepted|superseded>

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Add a setup-agents decision record.

  Appends a JSON Lines decision entry to `.setup-agents/state/decisions.jsonl`.

  Decision records capture selected approaches, rationale, ownership, timestamps, and optional task ids.

EXAMPLES
  Add an accepted decision for a task:

    $ sf setup-agents decision add --task SA-96 --profile architect --summary "Use native JSONL records" --rationale \
      "Keeps setup-agents independent of external engines"

FLAG DESCRIPTIONS
  -p, --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc

    Owning setup-agents profile.

    Record the setup-agents profile responsible for the decision.

  -r, --role=<value>  Owning role for this decision.

    Record the current role or agent owner responsible for the decision.

  -s, --summary=<value>  Short decision summary.

    Describe the decision in one concise sentence.

  -t, --task=<value>  Task or issue id for this decision.

    Associate the decision with a task id such as `SA-96` or `#96`.

  --alternative=<value>  Alternatives considered.

    Comma-separated alternatives considered before this decision.

  --evidence=<value>  Related evidence ids.

    Comma-separated evidence record ids that support this decision.

  --outcome=<value>  Decision outcome.

    Record the outcome text for the decision. When omitted, the status is used.

  --rationale=<value>  Decision rationale.

    Add the reason this decision was made.

  --status=proposed|accepted|superseded  Decision status.

    Set whether the decision is proposed, accepted, or superseded.

See code: src/commands/setup-agents/decision/add.ts

sf setup-agents decision list

List setup-agents decision records.

USAGE
  $ sf setup-agents decision list [--json] [--flags-dir <value>] [-t <value>] [-r <value>] [-p <value>] [--status <value>] [-l
    <value>]

FLAGS
  -l, --limit=<value>    [default: 20] Maximum records to show.
  -p, --profile=<value>  Filter by owning setup-agents profile.
  -r, --role=<value>     Filter by owning role.
  -t, --task=<value>     Filter by task or issue id.
      --status=<value>   Filter by decision status.

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  List setup-agents decision records.

  Reads JSON Lines decision entries from `.setup-agents/state/decisions.jsonl`.

EXAMPLES
  List recent decisions:

    $ sf setup-agents decision list

  List accepted decisions for a task:

    $ sf setup-agents decision list --task SA-96 --status accepted

FLAG DESCRIPTIONS
  -l, --limit=<value>  Maximum records to show.

    Limit the number of matching records returned from the end of the decision log.

  -p, --profile=<value>  Filter by owning setup-agents profile.

    Show only decision records owned by the given setup-agents profile.

  -r, --role=<value>  Filter by owning role.

    Show only decision records owned by the given role.

  -t, --task=<value>  Filter by task or issue id.

    Show only decision records associated with the given task id.

  --status=<value>  Filter by decision status.

    Show only decisions matching the given status.

See code: src/commands/setup-agents/decision/list.ts

sf setup-agents evidence add

Add a setup-agents evidence record.

USAGE
  $ sf setup-agents evidence add -s <value> [--json] [--flags-dir <value>] [-t <value>] [-r <value>] [-p
    developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnist
    udio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc] [--type
    command|file|screenshot|trace|report|validation|other] [--kind
    command|file|screenshot|trace|report|validation|other] [--source <value>] [--command <value>] [--path <value>]
    [--exit-code <value>] [--details <value>]

FLAGS
  -p, --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|servic
  e|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc
      Owning setup-agents profile.

  -r, --role=<value>
      [default: developer] Owning role for this evidence.

  -s, --summary=<value>
      (required) Short evidence summary.

  -t, --task=<value>
      Task or issue id for this evidence.

  --command=<value>
      Command that produced this evidence.

  --details=<value>
      Additional evidence details.

  --exit-code=<value>
      Command exit code.

  --kind=<option>
      Evidence kind.
      <options: command|file|screenshot|trace|report|validation|other>

  --path=<value>
      Evidence path.

  --source=<value>
      Evidence source reference.

  --type=<option>
      [default: other] Evidence type.
      <options: command|file|screenshot|trace|report|validation|other>

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Add a setup-agents evidence record.

  Appends a JSON Lines evidence entry to `.setup-agents/state/evidence.jsonl`.

  Evidence records capture validation artifacts such as commands, files, screenshots, traces, reports, or notes.

EXAMPLES
  Add command evidence for a task:

    $ sf setup-agents evidence add --task SA-96 --profile developer --type command --source "npm run build" \
      --summary "Build passed"

FLAG DESCRIPTIONS
  -p, --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc

    Owning setup-agents profile.

    Record the setup-agents profile responsible for the evidence.

  -r, --role=<value>  Owning role for this evidence.

    Record the current role or agent owner responsible for the evidence.

  -s, --summary=<value>  Short evidence summary.

    Describe the evidence in one concise sentence.

  -t, --task=<value>  Task or issue id for this evidence.

    Associate the evidence with a task id such as `SA-96` or `#96`.

  --command=<value>  Command that produced this evidence.

    Record the command string used to produce command evidence.

  --details=<value>  Additional evidence details.

    Add optional supporting details that should be stored with the evidence record.

  --exit-code=<value>  Command exit code.

    Record the exit code for command evidence.

  --kind=command|file|screenshot|trace|report|validation|other  Evidence kind.

    Alias for `--type`.

  --path=<value>  Evidence path.

    Record a file, report, screenshot, or trace path.

  --source=<value>  Evidence source reference.

    Reference a command, file path, URL, report path, trace id, or other source for the evidence.

  --type=command|file|screenshot|trace|report|validation|other  Evidence type.

    Classify the evidence as command, file, screenshot, trace, report, validation, or other.

See code: src/commands/setup-agents/evidence/add.ts

sf setup-agents evidence list

List setup-agents evidence records.

USAGE
  $ sf setup-agents evidence list [--json] [--flags-dir <value>] [-t <value>] [-r <value>] [-p <value>] [-l <value>]

FLAGS
  -l, --limit=<value>    [default: 20] Maximum records to show.
  -p, --profile=<value>  Filter by owning setup-agents profile.
  -r, --role=<value>     Filter by owning role.
  -t, --task=<value>     Filter by task or issue id.

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  List setup-agents evidence records.

  Reads JSON Lines evidence entries from `.setup-agents/state/evidence.jsonl`.

EXAMPLES
  List recent evidence:

    $ sf setup-agents evidence list

  List evidence for a task:

    $ sf setup-agents evidence list --task SA-96

FLAG DESCRIPTIONS
  -l, --limit=<value>  Maximum records to show.

    Limit the number of matching records returned from the end of the evidence log.

  -p, --profile=<value>  Filter by owning setup-agents profile.

    Show only evidence records owned by the given setup-agents profile.

  -r, --role=<value>  Filter by owning role.

    Show only evidence records owned by the given role.

  -t, --task=<value>  Filter by task or issue id.

    Show only evidence records associated with the given task id.

See code: src/commands/setup-agents/evidence/list.ts

sf setup-agents export

Export setup-agents workspace state to a portable bundle file.

USAGE
  $ sf setup-agents export [--json] [--flags-dir <value>] [--output <value>]

FLAGS
  --output=<value>  Output file path for the export bundle.

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Export setup-agents workspace state to a portable bundle file.

  Reads all orchestration state from `.setup-agents/state/` (tasks, decisions, evidence, handoffs, reviews) plus
  `config.json` and writes them to a `.setup-agents-export.json` file.

  The exported bundle preserves setup-agents profile ownership on all records and can be imported into another workspace
  using `setup-agents import`.

EXAMPLES
  Export workspace state to the default output path:

    $ sf setup-agents export

  Export to a specific file:

    $ sf setup-agents export --output /tmp/my-workspace.setup-agents-export.json

FLAG DESCRIPTIONS
  --output=<value>  Output file path for the export bundle.

    Path where the export bundle will be written. Defaults to `<cwd>/setup-agents-export-<timestamp>.json`.

See code: src/commands/setup-agents/export.ts

sf setup-agents handoff create

Create a setup-agents handoff record.

USAGE
  $ sf setup-agents handoff create -s <value> --from <value> --to <value> [--json] [--flags-dir <value>] [-t <value>] [-r
    <value>] [-p developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|servi
    ce|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc] [--files <value>] [--changed-file
    <value>] [--risks <value>] [--risk <value>] [--next-actions <value>] [--next-action <value>] [--evidence <value>]

FLAGS
  -p, --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|servic
  e|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc
      Owning setup-agents profile.

  -r, --role=<value>
      [default: developer] Owning role for this handoff.

  -s, --summary=<value>
      (required) Short handoff summary.

  -t, --task=<value>
      Task or issue id for this handoff.

  --changed-file=<value>
      Changed file paths.

  --evidence=<value>
      Related evidence ids.

  --files=<value>
      Changed files.

  --from=<value>
      (required) Source role or profile.

  --next-action=<value>
      Next actions.

  --next-actions=<value>
      Next actions.

  --risk=<value>
      Known risks.

  --risks=<value>
      Known risks.

  --to=<value>
      (required) Target role or profile.

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Create a setup-agents handoff record.

  Appends a JSON Lines handoff entry to `.setup-agents/state/handoffs.jsonl`.

  Handoff records capture role-to-role transfer summaries, ownership, task ids, changed files, risks, and next actions.

EXAMPLES
  Create a handoff from developer to QA:

    $ sf setup-agents handoff create --task SA-96 --from developer --to qa --files "src/foo.ts,test/foo.test.ts" \
      --summary "Commands implemented and ready for verification"

FLAG DESCRIPTIONS
  -p, --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc

    Owning setup-agents profile.

    Record the setup-agents profile responsible for this handoff record.

  -r, --role=<value>  Owning role for this handoff.

    Record the current role or agent owner responsible for this handoff record.

  -s, --summary=<value>  Short handoff summary.

    Describe the handoff in one concise sentence.

  -t, --task=<value>  Task or issue id for this handoff.

    Associate the handoff with a task id such as `SA-96` or `#96`.

  --changed-file=<value>  Changed file paths.

    Alias for `--files`.

  --evidence=<value>  Related evidence ids.

    Comma-separated evidence record ids that support this handoff.

  --files=<value>  Changed files.

    Comma-separated list of files relevant to the handoff.

  --from=<value>  Source role or profile.

    Record who is handing off the work.

  --next-action=<value>  Next actions.

    Alias for `--next-actions`.

  --next-actions=<value>  Next actions.

    Record concise next actions for the receiving role.

  --risk=<value>  Known risks.

    Alias for `--risks`.

  --risks=<value>  Known risks.

    Record known risks, gaps, or review concerns.

  --to=<value>  Target role or profile.

    Record who should receive the handoff.

See code: src/commands/setup-agents/handoff/create.ts

sf setup-agents handoff list

List setup-agents handoff records.

USAGE
  $ sf setup-agents handoff list [--json] [--flags-dir <value>] [-t <value>] [-r <value>] [-p <value>] [--from <value>] [--to
    <value>] [-l <value>]

FLAGS
  -l, --limit=<value>    [default: 20] Maximum records to show.
  -p, --profile=<value>  Filter by owning setup-agents profile.
  -r, --role=<value>     Filter by owning role.
  -t, --task=<value>     Filter by task or issue id.
      --from=<value>     Filter by source role or profile.
      --to=<value>       Filter by target role or profile.

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  List setup-agents handoff records.

  Reads JSON Lines handoff entries from `.setup-agents/state/handoffs.jsonl`.

EXAMPLES
  List recent handoffs:

    $ sf setup-agents handoff list

  List handoffs for a task:

    $ sf setup-agents handoff list --task SA-96

FLAG DESCRIPTIONS
  -l, --limit=<value>  Maximum records to show.

    Limit the number of matching records returned from the end of the handoff log.

  -p, --profile=<value>  Filter by owning setup-agents profile.

    Show only handoff records owned by the given setup-agents profile.

  -r, --role=<value>  Filter by owning role.

    Show only handoff records owned by the given role.

  -t, --task=<value>  Filter by task or issue id.

    Show only handoff records associated with the given task id.

  --from=<value>  Filter by source role or profile.

    Show only handoffs from the given role or profile.

  --to=<value>  Filter by target role or profile.

    Show only handoffs to the given role or profile.

See code: src/commands/setup-agents/handoff/list.ts

sf setup-agents import

Import setup-agents workspace state from an export bundle file.

USAGE
  $ sf setup-agents import --file <value> [--json] [--flags-dir <value>] [--on-conflict skip|overwrite] [--dry-run]

FLAGS
  --dry-run               Preview what would be imported without writing any files.
  --file=<value>          (required) Path to the export bundle file.
  --on-conflict=<option>  [default: skip] How to handle records whose id already exists in the workspace.
                          <options: skip|overwrite>

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Import setup-agents workspace state from an export bundle file.

  Reads a `.setup-agents-export.json` bundle and appends its records into the current workspace's `.setup-agents/state/`
  JSONL files.

  Validates the bundle format before importing. Existing records with the same id are either skipped or overwritten
  depending on `--on-conflict`. Use `--dry-run` to preview changes without writing anything.

EXAMPLES
  Import from a bundle file (default: skip conflicts):

    $ sf setup-agents import --file ./setup-agents-export-1234567890.json

  Import and overwrite conflicting records:

    $ sf setup-agents import --file ./bundle.setup-agents-export.json --on-conflict overwrite

  Preview import without writing:

    $ sf setup-agents import --file ./bundle.setup-agents-export.json --dry-run

FLAG DESCRIPTIONS
  --dry-run  Preview what would be imported without writing any files.

    Runs validation and conflict resolution but does not write any JSONL records. Useful for auditing a bundle before
    committing to the import.

  --file=<value>  Path to the export bundle file.

    Path to a `.setup-agents-export.json` bundle produced by `setup-agents export`.

  --on-conflict=skip|overwrite  How to handle records whose id already exists in the workspace.

    Set to `skip` (default) to leave existing records untouched, or `overwrite` to append the incoming record on top of
    the existing one.

See code: src/commands/setup-agents/import.ts

sf setup-agents init

Initialize setup-agents workspace configuration.

USAGE
  $ sf setup-agents init [--json] [--flags-dir <value>] [--mode project|advisory] [--advisory] [--profile
    developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnist
    udio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc] [--tools
    cursor|vscode|codex|claude|agentforce|windsurf|jetbrains] [-f] [--commit] [--dry-run]

FLAGS
  -f, --force
      Overwrite existing workspace config.

  --advisory
      Persist advisory mode.

  --commit
      Add team setup note to README.md.

  --dry-run
      Preview changes without writing.

  --mode=<option>
      [default: project] Workspace mode to persist.
      <options: project|advisory>

  --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cp
  q|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc
      Role profiles to persist (comma-separated).

  --tools=cursor|vscode|codex|claude|agentforce|windsurf|jetbrains
      AI tools to persist (comma-separated).

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Initialize setup-agents workspace configuration.

  Creates `.setup-agents/config.json` in the current project directory with default setup-agents workspace settings.

  The config stores the plugin version, workspace mode, selected profiles, selected tools, and native orchestration
  settings.

  Use project mode for a normal repository workspace. Use advisory mode for consultative setup defaults outside a
  project workspace.

EXAMPLES
  Initialize project workspace config with detected defaults:

    $ sf setup-agents init

  Initialize advisory workspace config:

    $ sf setup-agents init --mode advisory

  Initialize with explicit profiles and tools:

    $ sf setup-agents init --profile developer,architect --tools codex,claude

  Recreate an existing config:

    $ sf setup-agents init --force

  Initialize and add team setup instructions to README.md:

    $ sf setup-agents init --commit

FLAG DESCRIPTIONS
  -f, --force  Overwrite existing workspace config.

    Force overwrite of `.setup-agents/config.json` if it already exists.

  --advisory  Persist advisory mode.

    Shortcut for `--mode advisory`.

  --commit  Add team setup note to README.md.

    After writing `.setup-agents/config.json`, appends a short "Team Setup" section to `README.md` (creates it if
    missing) instructing teammates to run `sf setup-agents local` after cloning to generate their AI rule files from the
    committed config.

  --dry-run  Preview changes without writing.

    Show what would be written without modifying any files.

  --mode=project|advisory  Workspace mode to persist.

    Set the workspace mode stored in `.setup-agents/config.json`. Valid options are `project` and `advisory`.

  --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc

    Role profiles to persist (comma-separated).

    Specify one or more role profiles as a comma-separated list.

    When omitted, the command runs a short guided onboarding: first a role question, then a clouds/products question,
    then an optional advanced full-list picker. If no profile is selected, `developer` is used as the default.

  --tools=cursor|vscode|codex|claude|agentforce|windsurf|jetbrains  AI tools to persist (comma-separated).

    Specify one or more AI coding tools as a comma-separated list. Valid options are `cursor`, `vscode`, `codex`,
    `claude`, or `agentforce`.

    When omitted, the command auto-detects tools present in the project; if none are found, all supported tools are
    stored.

See code: src/commands/setup-agents/init.ts

sf setup-agents local

Configure AI agent rules for the local development environment.

USAGE
  $ sf setup-agents local [--json] [--flags-dir <value>] [--rules
    cursor|vscode|codex|claude|agentforce|windsurf|jetbrains] [--profile
    developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnist
    udio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc] [-f] [--open-orchestra] [--advisory] [--scope
    project|user]

FLAGS
  -f, --force
      Overwrite existing rule files.

  --advisory
      Generate advisory role guidance without project-scoped rule files.

  --open-orchestra
      Generate optional Open Orchestra integration artifacts.

  --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cp
  q|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc
      Role profiles to configure (comma-separated).

  --rules=cursor|vscode|codex|claude|agentforce|windsurf|jetbrains
      Target AI tool to configure (cursor, vscode, codex, claude, agentforce).

  --scope=<option>
      Cursor rule scope: project (default) or user (~/.cursor/rules).
      <options: project|user>

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Configure AI agent rules for the local development environment.

  Sets up agent rule files for AI coding assistants in the current project directory.

  Supported tools:

  - **cursor** — Creates `.cursor/rules/agent-guidelines.mdc` and per-profile rule files for Cursor AI.
  - **vscode** — Creates `.github/copilot-instructions.md` and `.vscode/extensions.json` for GitHub Copilot.
  - **codex** — Creates `AGENTS.md` for OpenAI Codex CLI.
  - **claude** — Creates `CLAUDE.md` for Anthropic Claude Code.
  - **agentforce** — Creates `.a4drules/` numbered markdown files for Agentforce Vibes Extension.

  If `--rules` is omitted, the command auto-detects installed tools based on existing directories
  (`.cursor`, `.vscode`, `AGENTS.md`, `CLAUDE.md`, `.a4drules`). If none are detected, all tools are configured.

  If `--profile` is omitted, the command auto-detects profiles from the project structure and
  presents a selection prompt. If nothing is selected, the `developer` profile is used by default.

  Use `--force` to overwrite existing files (useful when running `sf setup-agents update` under the hood).

EXAMPLES
  Configure all detected AI tools with interactive profile selection:

    $ sf setup-agents local

  Configure only Cursor rules:

    $ sf setup-agents local --rules cursor

  Configure only GitHub Copilot instructions for VS Code:

    $ sf setup-agents local --rules vscode

  Configure only Codex (AGENTS.md):

    $ sf setup-agents local --rules codex

  Configure Claude Code (CLAUDE.md):

    $ sf setup-agents local --rules claude

  Configure Agentforce Vibes rules:

    $ sf setup-agents local --rules agentforce

  Configure with a specific profile:

    $ sf setup-agents local --profile developer

  Configure with multiple combined profiles:

    $ sf setup-agents local --profile developer,architect,cgcloud

  Configure QA automation profile:

    $ sf setup-agents local --profile qa

  Force overwrite all existing rule files:

    $ sf setup-agents local --force

  Generate optional Open Orchestra integration artifacts:

    $ sf setup-agents local --open-orchestra

  Generate advisory guidance outside a project workspace:

    $ sf setup-agents local --advisory --profile architect,ba

FLAG DESCRIPTIONS
  -f, --force  Overwrite existing rule files.

    Force overwrite of all generated files, even if they already exist.
    Use this flag after updating your profiles or when the plugin version has changed.

  --advisory  Generate advisory role guidance without project-scoped rule files.

    Create `.setup-agents/advisory/` with consultative role guidance for sessions outside a project workspace.
    Advisory mode does not create `AGENTS.md`, `CLAUDE.md`, `.cursor/rules/`, `.codex/`, or `.a4drules/`.

  --open-orchestra  Generate optional Open Orchestra integration artifacts.

    Create `.setup-agents/open-orchestra/` with profile-to-role mapping and boundary documentation.
    This does not install Open Orchestra or enable runtime orchestration by default.

  --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc

    Role profiles to configure (comma-separated).

    Specify one or more role profiles as a comma-separated list. Each profile generates a dedicated
    rule file with role-specific agent guidance and adds the relevant VS Code extensions.

    Valid profiles: developer, architect, ba, pm, mulesoft, ux, cgcloud, devops, qa, crma, commerce, data360, admin,
    sfmc, security, service, cpq, omnistudio, fsl, ai, slack, tableau

    When omitted, the command auto-detects profiles from the project structure and presents an
    interactive multi-select prompt. If no profile is selected, `developer` is used as the default.

  --rules=cursor|vscode|codex|claude|agentforce|windsurf|jetbrains

    Target AI tool to configure (cursor, vscode, codex, claude, agentforce).

    Specify which AI coding assistant to configure. Valid options are `cursor`, `vscode`, `codex`, `claude`, or
    `agentforce`.
    When omitted, the command auto-detects tools present in the project; if none are found, all tools are configured.

  --scope=project|user  Cursor rule scope: project (default) or user (~/.cursor/rules).

    Controls where Cursor rule files are written. Use `user` to install rules globally in `~/.cursor/rules` so they
    apply to every project. Defaults to `project` (writes to `.cursor/rules/` in the current workspace).

See code: src/commands/setup-agents/local.ts

sf setup-agents mcp

Configure Cursor MCP servers for Salesforce orgs.

USAGE
  $ sf setup-agents mcp [--json] [--flags-dir <value>] [--target-org myOrgAlias] [--profile
    developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnist
    udio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc] [--all-toolsets] [-g]

FLAGS
  -g, --global
      Write to the global ~/.cursor/mcp.json instead of the project-level .cursor/mcp.json.

  --all-toolsets
      Enable all MCP toolsets regardless of profile.

  --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cp
  q|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc
      Role profile(s) used to determine MCP toolsets.

  --target-org=myOrgAlias
      Salesforce org alias or username to configure.

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Configure Cursor MCP servers for Salesforce orgs.

  Sets up Cursor's Micro-Agent Collaboration Protocol (MCP) configuration for one or more
  Salesforce orgs using `@salesforce/mcp`. This allows Cursor AI to interact directly with
  your Salesforce org metadata, data, users, and testing tools via tool calls.

  The command writes (or merges into) a `.cursor/mcp.json` file with an MCP server entry per
  selected org. Use `--global` to write to the user-level `~/.cursor/mcp.json` instead.

  Toolsets included by default (based on profile):

  - **metadata** — SFDX metadata read/deploy tools.
  - **data** — SOQL and org data inspection tools.
  - **testing** — Apex and project testing tools.
  - **users** — permission set and user management tools.

  If `--target-org` is omitted, all authenticated orgs are listed for interactive selection.

EXAMPLES
  Configure MCP for all authenticated orgs (interactive):

    $ sf setup-agents mcp

  Configure MCP for a specific org:

    $ sf setup-agents mcp --target-org myOrgAlias

  Configure MCP globally (all projects):

    $ sf setup-agents mcp --global --target-org myOrgAlias

  Configure MCP with toolsets for the developer profile:

    $ sf setup-agents mcp --profile developer --target-org myOrgAlias

  Configure MCP with all toolsets:

    $ sf setup-agents mcp --all-toolsets --target-org myOrgAlias

FLAG DESCRIPTIONS
  -g, --global  Write to the global ~/.cursor/mcp.json instead of the project-level .cursor/mcp.json.

    When set, the MCP server entries are added to `~/.cursor/mcp.json`, making them available
    across all Cursor projects on this machine.

  --all-toolsets  Enable all MCP toolsets regardless of profile.

    Force-enable all available MCP toolsets for every org configured.

  --profile=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc

    Role profile(s) used to determine MCP toolsets.

    Comma-separated list of role profiles. Each profile maps to a subset of MCP toolsets.
    If omitted, all available MCP toolsets are enabled.

  --target-org=myOrgAlias  Salesforce org alias or username to configure.

    Specify a single org alias or username. An MCP server entry will be added for this org.
    Omit to select from all authenticated orgs interactively.

See code: src/commands/setup-agents/mcp.ts

sf setup-agents review complete

Complete a setup-agents review.

USAGE
  $ sf setup-agents review complete --id <value> --result approved|blocked|changes [--json] [--flags-dir <value>] [--reviewer
    developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnist
    udio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc] [--findings <value>] [--recommendation <value>]

FLAGS
  --findings=<value>
      Review findings.

  --id=<value>
      (required) Review record id.

  --recommendation=<value>
      Review recommendation.

  --result=<option>
      (required) Review outcome.
      <options: approved|blocked|changes>

  --reviewer=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|c
  pq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc
      Profile completing the review.

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Complete a setup-agents review.

  Appends an updated JSON Lines review entry to `.setup-agents/state/reviews.jsonl` with the final result.

  The result must be `approved`, `blocked`, or `changes`.

EXAMPLES
  Approve a review:

    $ sf setup-agents review complete --id setup-agents-review-1234567-abc123 --result approved --reviewer qa \
      --findings "All acceptance criteria met"

  Block a review with changes needed:

    $ sf setup-agents review complete --id setup-agents-review-1234567-abc123 --result changes --reviewer security \
      --findings "Missing input validation" --recommendation "Add gate check before status update"

FLAG DESCRIPTIONS
  --findings=<value>  Review findings.

    Summarize what was found during the review.

  --id=<value>  Review record id.

    The id of the review record to complete.

  --recommendation=<value>  Review recommendation.

    Describe the recommended next action after this review.

  --result=approved|blocked|changes  Review outcome.

    Final result of the review: `approved`, `blocked`, or `changes`.

  --reviewer=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc

    Profile completing the review.

    The setup-agents profile acting as reviewer, stored as `setup-agents:<profile>`.

See code: src/commands/setup-agents/review/complete.ts

sf setup-agents review list

List setup-agents review records.

USAGE
  $ sf setup-agents review list [--json] [--flags-dir <value>] [--status pending|approved|blocked|changes] [-t <value>] [-l
    <value>]

FLAGS
  -l, --limit=<value>    [default: 20] Maximum records to show.
  -t, --task=<value>     Filter by task or issue id.
      --status=<option>  Filter by review status.
                         <options: pending|approved|blocked|changes>

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  List setup-agents review records.

  Reads JSON Lines review entries from `.setup-agents/state/reviews.jsonl`.

EXAMPLES
  List pending reviews:

    $ sf setup-agents review list --status pending

  List reviews for a task:

    $ sf setup-agents review list --task SA-98

FLAG DESCRIPTIONS
  -l, --limit=<value>  Maximum records to show.

    Limit the number of matching records returned from the end of the review log.

  -t, --task=<value>  Filter by task or issue id.

    Show only review records associated with the given task id.

  --status=pending|approved|blocked|changes  Filter by review status.

    Show only reviews with the given status: `pending`, `approved`, `blocked`, or `changes`.

See code: src/commands/setup-agents/review/list.ts

sf setup-agents review request

Request a setup-agents review.

USAGE
  $ sf setup-agents review request -s <value> [--json] [--flags-dir <value>] [-t <value>] [--requester
    developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnist
    udio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc] [--reviewer
    developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnist
    udio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc] [--gate <value>] [--evidence <value>]

FLAGS
  -s, --summary=<value>
      (required) Short review summary.

  -t, --task=<value>
      Task or issue id for this review.

  --evidence=<value>
      Related evidence ids.

  --gate=<value>
      Gate or quality check names.

  --requester=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|
  cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc
      [default: developer] Profile requesting the review.

  --reviewer=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|c
  pq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc
      Profile assigned to review.

GLOBAL FLAGS
  --flags-dir=<value>  Import flag values from a directory.
  --json               Format output as json.

DESCRIPTION
  Request a setup-agents review.

  Appends a JSON Lines review entry to `.setup-agents/state/reviews.jsonl` with status `pending`.

  Review records capture the requester, optional reviewer, gates, task ids, and related evidence ids.

EXAMPLES
  Request a security review for a task:

    $ sf setup-agents review request --task SA-98 --requester developer --reviewer security --gate readiness \
      --summary "Review gate: native review commands implementation"

FLAG DESCRIPTIONS
  -s, --summary=<value>  Short review summary.

    Describe what is being reviewed in one concise sentence.

  -t, --task=<value>  Task or issue id for this review.

    Associate the review with a task id such as `SA-98` or `#98`.

  --evidence=<value>  Related evidence ids.

    Comma-separated evidence record ids that support this review.

  --gate=<value>  Gate or quality check names.

    Comma-separated gate names required for this review, such as `readiness,security`.

  --requester=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc

    Profile requesting the review.

    The setup-agents profile that is requesting the review, stored as `setup-agents:<profile>`.

  --reviewer=developer|architect|ba|pm|mulesoft|ux|cgcloud|devops|qa|crma|commerce|data360|admin|sfmc|security|service|cpq|omnistudio|fsl|ai|slack|tableau|experience-cloud|release-manager|fsc

    Profile assigned to review.

    Optionally assign a specific setup-agents profile as reviewer.

See code: src/commands/setup-agents/review/request.ts

`sf setup-agent