Frappe Testing Cicd
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when setting up CI/CD pipelines for Frappe apps, configuring GitHub Actions test workflows, or adding linting and security scanning.
Set up, configure, and troubleshoot Salesforce Code Analyzer for any project.
$ npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-configure -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install forcedotcom/sf-skills dx-code-analyzer-configure --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dx-code-analyzer-configure .claude/skills/dx-code-analyzer-configure && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "dx-code-analyzer-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-code-analyzer-configure into .claude/skills/dx-code-analyzer-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-code-analyzer-configure", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-code-analyzer-configureType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-configure -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install forcedotcom/sf-skills dx-code-analyzer-configure --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/dx-code-analyzer-configure .agents/skills/dx-code-analyzer-configure && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "dx-code-analyzer-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-code-analyzer-configure into .agents/skills/dx-code-analyzer-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-code-analyzer-configure", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-configure -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install forcedotcom/sf-skills dx-code-analyzer-configure --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/dx-code-analyzer-configure .cursor/skills/dx-code-analyzer-configure && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "dx-code-analyzer-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-code-analyzer-configure into .cursor/skills/dx-code-analyzer-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-code-analyzer-configure", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/forcedotcom/sf-skills.git --path skills/dx-code-analyzer-configure--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-configure -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install forcedotcom/sf-skills dx-code-analyzer-configure --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/dx-code-analyzer-configure .gemini/skills/dx-code-analyzer-configure && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "dx-code-analyzer-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-code-analyzer-configure into .gemini/skills/dx-code-analyzer-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-code-analyzer-configure", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install forcedotcom/sf-skills dx-code-analyzer-configureInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-configure -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/dx-code-analyzer-configure .github/skills/dx-code-analyzer-configure && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "dx-code-analyzer-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-code-analyzer-configure into .github/skills/dx-code-analyzer-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-code-analyzer-configure", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-configure -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install forcedotcom/sf-skills dx-code-analyzer-configure --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/forcedotcom/sf-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/dx-code-analyzer-configure .opencode/skills/dx-code-analyzer-configure && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "dx-code-analyzer-configure" agent skill from https://github.com/forcedotcom/sf-skills/tree/main/skills/dx-code-analyzer-configure into .opencode/skills/dx-code-analyzer-configure/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "dx-code-analyzer-configure", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
dx-code-analyzer-configureSet up, configure, and troubleshoot Salesforce Code Analyzer for any project.
Dx Code Analyzer Configure is an agent skill from forcedotcom/sf-skills. Set up, configure, and troubleshoot Salesforce Code Analyzer for any project. Handles installation, prerequisite checks, diagnosing broken setups, creating and editing code-analyzer.yml overrides, engine-specific settings, ignore patterns, severity overrides, and CI/CD pipeline setup. TRIGGER when: user says 'set up code analyzer', 'configure code analyzer', 'install code analyzer', 'code analyzer not working', 'fix my setup', 'scan failing', 'check my setup', 'enable/disable engine', 'exclude files', 'change…
Its SKILL.md is about 5.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 16 other files, including scripts and reference files (for example `examples/apex-project-config.yml`, `examples/ci-github-actions.yml` and `examples/fullstack-project-config.yml`).
It sits in DevOps & Cloud, covering CI/CD, CRM management and Quality gates. It works with Salesforce, GitHub Actions and ESLint. The repository describes itself as: Salesforce's curated collection of agent skills for building applications. Optimized for Agentforce Vibes, compatible with all AI tools. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit e5164d9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 3 files in scripts/ (Shell), which the agent can run.
Shell commands in SKILL.md call:
sfbashjavanodepython3npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dx Code Analyzer Configure loads about 5.6k tokens when it runs, and up to ~18k if it reads all its reference files. Until then it costs about 256 tokens; SKILL.md has 2,078 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from forcedotcom/sf-skills at commit e5164d9, republished under its Apache-2.0 licence (© forcedotcom). 2,078 words, ~5,604 tokens.
.claude/skills/dx-code-analyzer-configure/SKILL.md (or your agent's skills folder). This skill also uses 13 other files; get the full folder from GitHub.Ecosystem: This skill is part of a 3-skill Code Analyzer suite —
dx-code-analyzer-run(scans & results) ·dx-code-analyzer-configure(setup, config, CI/CD) ·dx-code-analyzer-custom-rule-create(custom rule authoring).
This skill manages the code-analyzer.yml configuration file — the single source of truth for how Code Analyzer behaves in a project. All customization (engines, rules, ignores, suppressions) is done by creating or editing this file. If the file doesn't exist, this skill creates it in the current working directory.
In scope:
code-analyzer.yml if it doesn't existcode-analyzer.yml for all configuration changesOut of scope:
dx-code-analyzer-run skilldx-code-analyzer-run skilldx-code-analyzer-custom-rule-create skillAllowed: Bash (sf, java, node, python3, npm), Read, Write, Edit
Forbidden: MCP tools, Agent tool, Web tools, other skills, which, find, locate, searching for binaries
Code Analyzer works out of the box with NO config file — all defaults are built into the tool. The code-analyzer.yml file is ONLY created when the user explicitly requests a customization.
Rules:
code-analyzer.yml proactively — only when user asks to change somethingsfdx-project.json or sf-project.json livessf code-analyzer run from project root automatically picks up code-analyzer.yml in that directory. No --config-file flag needed.Workflow:
code-analyzer.yml exists at project rootsf code-analyzer configThe user can request ANY combination of configuration changes in natural language. Your job is to:
code-analyzer.ymlcode-analyzer.yml Structure (what you can write/edit)config_root: . # Root for relative path resolution
log_folder: <path> # Where logs are written
log_level: <1-5> # 1=Error, 2=Warn, 3=Info, 4=Debug, 5=Fine
ignores: # Files/folders excluded from scanning
files: [<glob patterns>]
engines: # Per-engine settings
<engine_name>:
disable_engine: <bool>
<engine_specific_keys>: ...
rules: # Per-rule overrides
<engine_name>:
<rule_name>:
severity: <1-5>
tags: [<strings>]
disabled: <bool>
suppressions: # Bulk suppression configuration
disable_suppressions: <bool>
"<file_or_folder_path>":
- rule_selector: "<selector>"
max_suppressed_violations: <number|null>
reason: "<why>"Any user request maps to one or more sections above. Parse the intent and edit the right section(s):
| Intent Category | Maps To | Examples of What User Might Say |
|---|---|---|
| Setup / Install | Step 2 (prerequisites + install) | "set up", "install", "get started", "new laptop", "from scratch" |
| Diagnose / Fix | Step 2A (systematic debug) | "not working", "broken", "fix my setup", "scan fails", "getting errors" |
| Engine control | engines.<name>.disable_engine | "disable X", "turn off Y", "only use Z", "enable all" |
| Engine tuning | engines.<name>.<property> | "increase memory", "change heap", "use my eslint config", "set tokens to 50" |
| File exclusions | ignores.files | "exclude", "ignore", "skip", "don't scan X" |
| Rule severity | rules.<engine>.<rule>.severity | "make X critical", "promote", "demote", "change severity" |
| Rule disable | rules.<engine>.<rule>.disabled | "disable rule X", "turn off Y rule", "remove Z" |
| Rule tags | rules.<engine>.<rule>.tags | "tag X as security", "add recommended tag" |
| Suppressions | suppressions section | "suppress X in folder Y", "allow N violations" |
| CI/CD | Generate pipeline file (separate from config) | "github actions", "CI", "quality gate" |
| View/inspect | Read file + sf code-analyzer config | "show config", "what's configured", "current settings" |
BEFORE editing anything, check if code-analyzer.yml exists at project root:
ls code-analyzer.yml code-analyzer.yaml 2>/dev/nullThe CLI auto-discovers code-analyzer.yml in the current directory. Since scans run from project root, the file must live there.
When a user references rules by partial, descriptive, or approximate names (e.g., "the doc rule", "CRUD violation", "console rule", "hardcoded values"), you MUST resolve to exact rule names using the lookup in Step 6.1 BEFORE writing any YAML. The code-analyzer.yml file silently ignores rule names that don't exactly match — there is no error, the override just won't apply.
Examples of fuzzy → exact resolution needed:
ApexDoc (engine: pmd)no-console (engine: eslint)ApexCRUDViolation (engine: pmd)@salesforce-ux/slds/no-hardcoded-values-slds2 (engine: eslint)Only skip the lookup when the user provides an unambiguous, exact, well-known name (e.g., "ApexDoc", "no-console", "no-unused-vars").
Users will often combine multiple changes in one request. Handle ALL of them in a single edit:
rules.pmdignores.files + engines.sfge.java_max_heap_sizeengines (disable others) + ignoressf code-analyzer rules --rule-selector Security, then override each| User Says | Resulting YAML |
|---|---|
| "configure code analyzer" | Ask user what to customize — don't create file until there's an actual override |
| "disable the ApexDoc rule" | rules: pmd: ApexDoc: disabled: true |
| "only scan Apex, no JavaScript" | engines: eslint: disable_engine: true + engines: retire-js: disable_engine: true |
| "ignore all test files" | ignores: files: ["**/test/**", "**/__tests__/**", "**/*.test.js"] |
| "make security rules critical" | Look up rules, then rules: <engine>: <rule>: severity: 1 for each |
| "increase SFGE memory to 8g" | engines: sfge: java_max_heap_size: "8g" |
| "use my project's ESLint config" | engines: eslint: auto_discover_eslint_config: true |
| "suppress CRUD violations in legacy folder" | suppressions: "force-app/legacy/": [{rule_selector: "pmd:ApexCRUDViolation", reason: "..."}] |
The AI must understand the YAML schema and write valid config for ANY request, not just the examples above.
Run bash "<skill_dir>/scripts/check-prerequisites.sh" or check manually:
sf --version 2>&1 # sf CLI
sf plugins --core 2>&1 | grep -i "code-analyzer" # Plugin
java -version 2>&1 # Java 11+ (PMD, CPD, SFGE)
node --version 2>&1 # Node 18+ (ESLint, RetireJS)
python3 --version 2>&1 # Python 3 (Flow engine)If anything is missing, install it (always ask user first):
npm install -g @salesforce/cli # sf CLI
sf plugins install @salesforce/plugin-code-analyzer # Code Analyzer pluginFor Java/Node/Python installs, read <skill_dir>/references/engine-prerequisites.md.
If install fails, read <skill_dir>/references/troubleshooting.md.
TRIGGER: User says "not working", "broken", "getting errors", "scan fails", "help me fix", etc.
Read <skill_dir>/references/diagnostic-flow.md for the complete layered diagnostic procedure, fix table, and anti-patterns.
Key principles (always apply):
which, find, ls /opt/homebrew/bin/)sfdx as a workaround — only sfcode-analyzer.ymlOnly triggered when user requests a customization. Never create proactively.
Choose one of the two approaches below — do not run both:
Option A — Auto-generate from project type (recommended for first-time setup):
Run bash "<skill_dir>/scripts/generate-config.sh". This detects Apex, LWC, and Flow markers and produces a minimal code-analyzer.yml suited to the project. Skip to the "After any create/edit, validate" section.
Note: The script exits with an error if
code-analyzer.ymlalready exists. Delete the existing file first if you need to regenerate.
Option B — Write manually (when the user has specific customizations in mind):
Read the appropriate example config as a reference for structure:
<skill_dir>/examples/apex-project-config.yml<skill_dir>/examples/lwc-project-config.yml<skill_dir>/examples/fullstack-project-config.ymlWrite the file at project root using the Write tool. Include ONLY the user's requested changes:
# Example: user said "ignore test files and increase SFGE memory"
# → Write to project root (where sfdx-project.json lives):ignores:
files:
- "**/test/**"
- "**/__tests__/**"
engines:
sfge:
java_max_heap_size: "4g"Do NOT add config_root, log_folder, or any other field the user didn't ask for.
Read the file, then use the Edit tool to add/modify only the relevant section. Preserve everything else.
Run bash "<skill_dir>/scripts/validate-config.sh" to validate YAML syntax and schema correctness, or use the CLI directly:
sf code-analyzer config(No --config-file needed — the CLI auto-discovers code-analyzer.yml in CWD.)
Ask: "What would you like to customize? For example: ignore certain files, change rule severities, tune engine settings, or disable engines you don't need."
Edit the engines section in code-analyzer.yml:
engines:
pmd:
disable_engine: true # Disable PMD
eslint:
disable_engine: false # Enable ESLint (default)Valid engine names: pmd, cpd, eslint, regex, retire-js, flow, sfge, apexguru
Always validate after editing:
sf code-analyzer config --config-file code-analyzer.ymlEdit the ignores section in code-analyzer.yml:
ignores:
files:
- "**/node_modules/**"
- "**/.sfdx/**"
- "**/.sf/**"
- "**/vendor/**"
- "**/*.min.js"Common patterns:
| Pattern | Excludes |
|---|---|
**/node_modules/** | npm dependencies |
**/.sfdx/**, **/.sf/** | SF CLI internals |
**/test/**, **/__tests__/** | Test directories |
**/*.test.js, **/*.spec.js | Test files |
**/jest-mocks/** | Jest mocks |
**/vendor/**, **/*.min.js | Third-party/minified |
**/staticresources/** | Static resources |
Edit the rules section in code-analyzer.yml. Each rule can have severity, tags, and disabled overrides:
rules:
pmd:
ApexCRUDViolation:
severity: 1 # Promote to Critical
AvoidGlobalModifier:
disabled: true # Turn off entirely
ApexDoc:
severity: 5 # Demote to Info
tags: ["Documentation"]
eslint:
no-console:
severity: 4 # Demote to Low
no-unused-vars:
severity: 2 # Promote to HighSeverity values: 1/Critical, 2/High, 3/Moderate, 4/Low, 5/Info
CRITICAL: A misspelled or partial rule name in code-analyzer.yml is SILENTLY IGNORED — no error, the override just won't apply.
When users reference rules by approximate names (e.g., "the doc rule", "CRUD violation", "hardcoded values"), resolve to exact names BEFORE writing YAML:
sf code-analyzer rules --rule-selector all 2>&1 | grep -i "<USER_KEYWORD>"Skip the lookup only when the name is unambiguous and exact (e.g., "ApexDoc", "no-console", "no-unused-vars").
For detailed matching strategies, common fuzzy→exact mappings, and engine identification: Read <skill_dir>/references/rule-name-resolution.md.
Edit the engines section. Most common overrides:
engines:
sfge:
java_max_heap_size: "4g" # <200 classes→"2g", 200-500→"4g", 500+→"6g"/"8g"
java_thread_count: 4
java_thread_timeout: 900000
eslint:
auto_discover_eslint_config: true # Use project's own ESLint config
eslint_config_file: "./eslint.config.mjs"
pmd:
custom_rulesets: ["./config/custom-pmd-rules.xml"]
java_classpath_entries: ["./lib/custom-rules.jar"]
cpd:
minimum_tokens: { apex: 100, javascript: 100 }
apexguru:
target_org: "my-org-alias"
flow:
python_command: "python3"
# regex.custom_rules — use the dx-code-analyzer-custom-rule-create skill to create these.
# Never hand-write regex patterns into code-analyzer.yml: quotes/backslashes
# inside YAML cause parsing failures. The create-regex-rule.js script handles
# serialization correctly and must always be used for regex rule creation.For full property list per engine, read <skill_dir>/references/config-schema.md.
Detect CI system from workspace (.github/workflows/ → GitHub Actions, Jenkinsfile → Jenkins, etc.). Read <skill_dir>/references/ci-cd-templates.md for templates. Use <skill_dir>/examples/ci-github-actions.yml as GitHub Actions base. Key flags: --severity-threshold 2 (gate), --output-file results.sarif (GitHub scanning), --config-file code-analyzer.yml.
sf code-analyzer config # Show effective config
sf code-analyzer config --rule-selector pmd:Security # Specific rules
sf code-analyzer config --include-unmodified-rules # All defaultsThis skill works together with dx-code-analyzer-run. The AI agent should seamlessly hand off between them:
dx-code-analyzer-run delegates HERE:If a user says "scan my code" / "run code analyzer" but it fails (CLI missing, plugin not installed, or scan errors out), dx-code-analyzer-run delegates to this skill. In that case:
dx-code-analyzer-run behavior (build command, execute, parse results).dx-code-analyzer-run:After any successful configuration action, offer to run a scan (e.g., "Setup complete! Want me to run a scan?", "Config updated — want to scan and verify?"). If user says yes, proceed with dx-code-analyzer-run behavior.
dx-code-analyzer-custom-rule-create:If the user asks to create a custom rule while you are working on configuration (e.g., "also add a rule that bans System.debug", "set up a PMD XPath rule"), delegate to dx-code-analyzer-custom-rule-create. When that skill finishes, the custom_rulesets or eslint_config_file pointer in code-analyzer.yml may need to be set — that edit belongs here, in this skill.
Handle end-to-end: "not working" → Diagnose → Fix → Scan. "Set up and scan" → Install → Scan. "Disable ESLint and scan Apex" → Edit config → Run with --rule-selector pmd. "Configure custom rules and scan" → dx-code-analyzer-custom-rule-create → wire config → dx-code-analyzer-run. Always follow through to the user's final intent.
| Constraint | Rationale |
|---|---|
| Only create YAML when user requests a customization | Defaults work without any file — don't create boilerplate |
| Place YAML at project root only | CLI auto-discovers code-analyzer.yml from CWD |
| Write only overrides, never duplicate defaults | Keep file minimal and intentional |
| Use Write tool to create, Edit tool to modify | Preserves existing settings |
| Validate after every change | sf code-analyzer config catches YAML errors |
| Ask before installing prerequisites | Never auto-install without consent |
| Never delete existing config without asking | User may have custom settings |
| After setup, offer to scan | Close the loop — config without scan is incomplete |
| Issue | Solution |
|---|---|
| Config not picked up | Must be code-analyzer.yml in CWD or use --config-file |
| YAML validation fails | Spaces only (no tabs), check colon spacing |
| SFGE out of memory | Increase java_max_heap_size in engines section |
| ESLint rules missing | Set auto_discover_eslint_config: true |
For full troubleshooting, read <skill_dir>/references/troubleshooting.md.
<skill_dir> is the absolute path to the directory containing this SKILL.md file.
| File | Purpose |
|---|---|
<skill_dir>/scripts/check-prerequisites.sh | Environment check |
<skill_dir>/scripts/generate-config.sh | Auto-detect project type and generate config |
<skill_dir>/scripts/validate-config.sh | Validate YAML after changes |
<skill_dir>/references/config-schema.md | Full YAML schema documentation |
<skill_dir>/references/diagnostic-flow.md | Step 2A: layered diagnostic procedure and fix table |
<skill_dir>/references/rule-name-resolution.md | Step 6.1: fuzzy rule name lookup strategies and mappings |
<skill_dir>/references/engine-prerequisites.md | Install instructions per engine |
<skill_dir>/references/ci-cd-templates.md | CI/CD pipeline templates |
<skill_dir>/references/troubleshooting.md | Common setup issues and fixes |
<skill_dir>/examples/apex-project-config.yml | Config for Apex-only project |
<skill_dir>/examples/lwc-project-config.yml | Config for LWC-only project |
<skill_dir>/examples/fullstack-project-config.yml | Config for Apex + LWC + Flows |
<skill_dir>/examples/ci-github-actions.yml | GitHub Actions workflow |
© forcedotcom, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 13 other files (scripts, references) in skills/dx-code-analyzer-configure of forcedotcom/sf-skills.
Open the folder on GitHubat commit e5164d9
Dx Code Analyzer Configure next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Dx Code Analyzer Configure this skillforcedotcom/sf-skills | 1.1k | — | ~5.6k | Automated safety check: Pass | Apache-2.0 | |
| Frappe Testing CicdImpertio-Studio/Frappe_Claude_Skill_Package | 187 | — | ~3.2k | Automated safety check: Notes | MIT | |
| Configuration GeneratorArabelaTso/Skills-4-SE | 253 | — | ~2.8k | Automated safety check: Notes | Apache-2.0 | |
| Nw Cicd And DeploymentnWave-ai/nWave | 617 | — | ~2.8k | Automated safety check: Pass | MIT | |
| Crabbox Remote Test Runneropenclaw/agent-skills | 1.1k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Sf DeployJaganpro/sf-skills | 424 | — | ~2k | Automated safety check: Pass | MIT |
Impertio-Studio/Frappe_Claude_Skill_Package
A skill your agent uses when setting up CI/CD pipelines for Frappe apps, configuring GitHub Actions test workflows, or adding linting and security scanning.
ArabelaTso/Skills-4-SE
Generate configuration files for applications, services, and infrastructure.
nWave-ai/nWave
CI/CD pipeline design methodology, deployment strategies, GitHub Actions patterns, and branch/release strategies.
openclaw/agent-skills
Detects the Crabbox CLI or config in a repository and uses it to run tests and validation on remote runners, with checks before touching secrets or paid infrastructure.
Jaganpro/sf-skills
Salesforce DevOps automation using sf CLI v2. An agent skill from Jaganpro/sf-skills.
Jaganpro/sf-skills
Salesforce Industries DataPack deployment automation using Vlocity Build.
forcedotcom/sf-skills
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins.
forcedotcom/sf-skills
Data Cloud 360° view of a single Agentforce session. An agent skill from forcedotcom/sf-skills.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply a Salesforce sandbox post-copy automation JSON config against a target org.
forcedotcom/sf-skills
Apply SLDS-compliant UI using the correct blueprints, styling hooks, utility classes, and icons.
forcedotcom/sf-skills
Lightning Web Components with PICKLES methodology and 165-point scoring.
Works with
Categories
Set up, configure, and troubleshoot Salesforce Code Analyzer for any project. Dx Code Analyzer Configure is an agent skill from forcedotcom/sf-skills. Set up, configure, and troubleshoot Salesforce Code Analyzer for any project.
Dx Code Analyzer Configure fits situations like: : user says set up code analyzer; configure code analyzer; install code analyzer; code analyzer not working.
Run `npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-configure -a claude-code`. Or copy the skill folder (skills/dx-code-analyzer-configure in forcedotcom/sf-skills) into .claude/skills/dx-code-analyzer-configure in your project. Claude Code loads it when a task matches its description.
Run `npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-configure -a codex`. Or copy the skill folder (skills/dx-code-analyzer-configure in forcedotcom/sf-skills) into .agents/skills/dx-code-analyzer-configure in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add forcedotcom/sf-skills --skill dx-code-analyzer-configure -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dx-code-analyzer-configure, .gemini/skills/dx-code-analyzer-configure, .github/skills/dx-code-analyzer-configure and .opencode/skills/dx-code-analyzer-configure in your project.
Going by SKILL.md and its folder, Dx Code Analyzer Configure needs a shell for the scripts in its folder and the command-line tools its instructions call (sf, bash, java, node, python3 and npm). Our summary lists: Python 3; Node.js; A Bash shell.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Dx Code Analyzer Configure is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.6k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 12k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Dx Code Analyzer Configure: Frappe Testing Cicd (Impertio-Studio/Frappe_Claude_Skill_Package, 187 stars), Configuration Generator (ArabelaTso/Skills-4-SE, 253 stars), Nw Cicd And Deployment (nWave-ai/nWave, 617 stars) and Crabbox Remote Test Runner (openclaw/agent-skills, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
forcedotcom (a GitHub organization) maintains it in forcedotcom/sf-skills, which has 1,060 GitHub stars. The repository holds 251 skills in this directory. The repository was last updated on October 7, 2026.
Source: forcedotcom/sf-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.