cci-orchestration

Configure and run CumulusCI tasks and flows for Salesforce Revenue Cloud org builds.

5|3|Updated Sep 9, 2026
One-click install
npx skills add https://github.com/SalesforceLabs/revenue-cloud-foundations --skill cci-orchestration-salesforcelabs
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: cci-orchestration
Source: https://github.com/SalesforceLabs/revenue-cloud-foundations/tree/main/.cursor/skills/cci-orchestration
Command: npx skills add https://github.com/SalesforceLabs/revenue-cloud-foundations --skill cci-orchestration-salesforcelabs

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires cumulusci, requests, and includes references (resource) components.

What problem does it solve? Automating a Salesforce Revenue Cloud environment requires orchestrating hundreds of CumulusCI tasks, flows, feature flags, and org aliases, where mistakes like mixing CCI and SF CLI aliases or misplacing when: guards cause silent failures and broken builds. ## Core Features & Use Cases - CCI CLI and org identity guidance: Explains task, flow, and org commands plus the critical distinction between CCI aliases (beta) and SF CLI aliases (rlm-base__beta) to prevent "org not found" errors. - Project configuration reference: Documents the cumulusci.yml structure with ~197 tasks, 41+ flows, 36 feature flags, and the 34-step prepare_rlm_org build sequence. - Custom task authoring patterns: Provides base class selection rules (BaseTask, SFDXBaseTask, SFDXOrgTask), the salesforce_task flag pitfall, REST API patterns, and Robot Framework wrapper conventions. - Use Case: You need to add a new data-load step to the org build. The skill tells you to register the task in cumulusci.yml with group: and description:, gate it with a when: clause on the task step (never on a flow step), then regenerate the reference docs with python scripts/ai/generate_cci_reference.py. ## Quick Start Ask the agent to read the cci-orchestration skill and explain how to run the prepare_rlm_org flow against the beta org with the billing feature flag disabled.

Frequently Asked Questions about cci-orchestration

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run a CumulusCI flow against a Salesforce org?

Use `cci flow run <flow_name> --org <alias>`, for example `cci flow run prepare_rlm_org --org beta`. List available flows with `cci flow list` and inspect a flow's steps and conditions with `cci flow info <flow_name>`.

Why does sf data query fail with my CCI org alias?

CCI and the sf CLI maintain separate org registries. CCI aliases like `beta` map to prefixed SF CLI aliases like `rlm-base__beta`, so `sf data query --target-org beta` fails. Use the SF CLI alias or the full username from `cci org info beta`.

How do I gate a CumulusCI flow step with a feature flag?

Add a `when:` clause such as `when: project_config.project__custom__billing` on individual `task:` steps only. CCI silently discards `when:` placed on a `flow:` step, so gate each child task of the sub-flow instead.

Which base class should I use for a custom CCI Python task?

Use BaseTask for local tasks, Robot wrappers, or direct REST API calls via self.org_config. Use SFDXOrgTask for sf CLI commands targeting an org; bare SFDXBaseTask is the no-org variant and drops --org unless you set salesforce_task = True.

Can I pass an access token to sf CLI commands in a CCI task?

No. Passing access_token as --target-org fails authentication and leaks secrets into logs and shell history. Always use self.org_config.username for sf CLI calls and reserve access_token plus instance_url for direct REST API requests.

How do I update the CCI reference docs after editing cumulusci.yml?

Run `python scripts/ai/generate_cci_reference.py` to regenerate tasks-reference.md, flows-reference.md, and feature-flags.md. Subset flags like --tasks-only, --flows-only, and --flags-only regenerate individual files.