Copado Headless Developer CLI — Full Salesforce DevOps from the terminal
16 tools with basic schemas and descriptions, but significant gaps in parameter documentation and error handling. Most tools have descriptions (10-150 chars, below the 194-char baseline), and input schemas are present but sparse. Parameters lack detailed constraints, enums, and format guidance. No output schemas documented. Error responses are generic JSON without recovery guidance. Tool naming is reasonable (verb_noun pattern mostly followed), but composition issues exist: promote/deploy_to_prod overlap; story_set_context modifies state without clear side-effect documentation. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Secrets appear to be injected server-side (good), but no audit logging visible in tool implementations.
Ask an AI agent a question (plan, build, test, release, or operate)
Approve a pending gated action (promote/deploy to PROD) using an approval code
Check authentication status across all services
Commit metadata changes — triggers Actions API RunJobTemplate
Deploy to production — requires human approval via approval_code. Obtain a code by running the promote tool with a gated environment, or via copado-hx interactive. Failures auto-routed to Operate agent.
List all environments in the Salesforce org
Promote a user story to a target environment. PROD/PRODUCTION require an approval_code obtained via copado-hx interactive or shown by the CLI. Set validate_only=true for dry-run. Failures auto-routed to Operate agent for diagnosis.
No output schemas documented. Tools return JSON strings without specifying field types, required fields, or structure. LLMs cannot plan downstream calls or extract data reliably.
Parameter descriptions lack constraints, enums, and format guidance. E.g., 'environment' in promote() accepts free-form strings with no enum list; 'agent' in ai_ask() has no enum constraint for valid agent IDs (plan|build|test|release|operate).
Error responses are generic JSON without recovery guidance. E.g., 'Salesforce not authenticated' does not tell the LLM to call auth_status or run 'copado-hx auth login'. Errors should guide next steps.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | <=2025-11-25 | v2 |
List user stories from the Salesforce org
Set a user story as the current working context
Get detailed information about a specific user story
List all CRT test jobs
Get CRT test results for a specific build
Trigger a CRT test job execution
List all CI/CD workflows
Get the status of a workflow run
Trigger a CI/CD workflow execution
Tool annotations missing. promote() and deploy_to_prod() are marked WRITE/DESTRUCTIVE in metadata but tool definitions lack readOnlyHint/destructiveHint annotations. Agents cannot infer safety properties from the schema alone.
Overlapping tool responsibilities. promote() and deploy_to_prod() both deploy to environments; promote() with environment='PROD' and deploy_to_prod() are nearly identical. LLMs will struggle to choose between them.