Suites / packaging
Packaging
Package development with unlocked, second-generation (2GP) and first-generation (1GP) managed packages: sfdx-project.json package directories, aliases, dependencies, ancestry and test setup; `sf package` and `sf package1` commands for creating, versioning, promoting, installing, upgrading and push-upgrading packages; and the platform rules behind them (IDs, promotion requirements, upgrade paths, component removal). Graded deterministically: project files are resolved the way the CLI resolves them, commands are validated against the pinned `sf` command manifest, knowledge questions are multiple choice.
How it's graded
sfdx-project.json files are resolved the way the CLI resolves them, sf package and sf package1 commands are validated against the pinned sf command manifest, and packaging-judgement questions (1GP, managed 2GP or unlocked) are multiple choice.
Difficulty mix
Leaderboard
Who's best at Packaging
Within three attempts (c@3) on this suite only, with 95% confidence intervals. With 18 tasks the intervals are wide: where two overlap, those configurations are not clearly different. 1 finished configuration isn’t shown yet: its retries haven’t finished. Open in the full leaderboard →
- 95% interval
Show the numbers
| Model | Score | 95% CI |
|---|---|---|
| GPT-6 Astra medium | 100% | 82–100 |
| Gemini 4 Argon medium | 94% | 74–99 |
| Claude Opus 5.5 low | 94% | 74–99 |
| Muse Wonder low | 89% | 67–97 |
| Grok 4.6 high | 83% | 61–94 |
| DeepSeek V4.1 Flash high | 78% | 55–91 |
| MiMo V2.6 Pro thinking on | 61% | 39–80 |
| Inkling Small high | 56% | 34–75 |
| GLM-5.3 low | 50% | 29–71 |
| Qwen3.8 Flash-Next thinking on | 44% | 25–66 |
| Nemotron 3 Ultra thinking on | 39% | 20–61 |
| Mistral Large 4 high | 39% | 20–61 |
| Laguna S 2.1 thinking on | 22% | 9–45 |
| Ling 3.0 Flash thinking on | 17% | 6–39 |
- 95% interval
Show the numbers
| Model | Score | 95% CI |
|---|---|---|
| DeepSeek V4.1 Flash 1017 high · Native FP8, FP4 experts | 67% | 44–84 |
| GLM-5.3 Flash low · EXL3 4.0bpw experts, FP8 dense | 50% | 29–71 |
| Qwen3.8 Flash-Next medium · INT4-AutoRound, 5 of 10 experts | 50% | 29–71 |
| MiMo V2.6 Flash thinking on · FP8 + MXFP4 experts | 39% | 20–61 |
| Nemotron 3.5 Super VL thinking on · NVFP4 mixed precision (NVIDIA ModelOpt) | 33% | 16–56 |
| MiniCPM-V 4.7 35B-A3B thinking on · INT4 W4A16 experts, BF16 dense | 28% | 13–51 |
| MiniMax M3.1 Flash high · NVFP4 experts, MXFP8 (QAT) | 28% | 13–51 |
| Ornith 1.5 122B thinking on · NVFP4 experts, FP8 attention (NVIDIA ModelOpt) | 28% | 13–51 |
| Muse Glimmer 30B high · NVFP4 + FP8 mixed (NVIDIA ModelOpt) | 22% | 9–45 |
| Gemma 4 31B thinking on · QAT W4A16 | 17% | 6–39 |
| # | Model and config | Score c@3 · 95% CI | Tasks |
|---|---|---|---|
| 1 | GPT-6 Astra effort medium | 100%95% CI 82–100 | 18 |
| 2 | Claude Opus 5.5 effort high | 94%95% CI 74–99 | 18 |
| 2 | Claude Opus 5.5 effort medium | 94%95% CI 74–99 | 18 |
| 2 | Claude Opus 5.5 effort low | 94%95% CI 74–99 | 18 |
| 2 | Gemini 4 Argon effort medium | 94%95% CI 74–99 | 18 |
| 2 | GPT-6 Astra effort high | 94%95% CI 74–99 | 18 |
| 2 | GPT-6.1 Sol effort high | 94%95% CI 74–99 | 18 |
| 8 | Claude Opus 4.8 effort high | 89%95% CI 67–97 | 18 |
| 8 | Gemini 4 Argon effort low | 89%95% CI 67–97 | 18 |
| 8 | Gemini 4 Argon effort high | 89%95% CI 67–97 | 18 |
| 8 | GPT-5.6 Sol effort medium | 89%95% CI 67–97 | 18 |
| 8 | Muse Wonder effort medium | 89%95% CI 67–97 | 18 |
| 8 | Muse Wonder effort low | 89%95% CI 67–97 | 18 |
| 14 | Claude Fable 5.1 effort high | 83%95% CI 61–94 | 18 |
| 14 | Claude Opus 4.8 effort medium | 83%95% CI 61–94 | 18 |
| 14 | Claude Sonnet 5.5 effort high | 83%95% CI 61–94 | 18 |
| 14 | Claude Sonnet 5.5 effort low | 83%95% CI 61–94 | 18 |
| 14 | Grok 4.6 effort high | 83%95% CI 61–94 | 18 |
| 14 | Grok 4.7 effort high | 83%95% CI 61–94 | 18 |
| 14 | Muse Wonder effort high | 83%95% CI 61–94 | 18 |
| 21 | Claude Opus 4.8 effort low | 78%95% CI 55–91 | 18 |
| 21 | Claude Sonnet 5.5 effort medium | 78%95% CI 55–91 | 18 |
| 21 | DeepSeek V4.1 Flash FP8 · effort high | 78%95% CI 55–91 | 18 |
| 21 | Gemini 3.8 Flash effort medium | 78%95% CI 55–91 | 18 |
| 21 | GPT-6 Luna effort medium | 78%95% CI 55–91 | 18 |
| 21 | Muse Wonder effort max | 78%95% CI 55–91 | 18 |
| 27 | Claude Opus 4.8 thinking off | 72%95% CI 49–88 | 18 |
| 27 | Claude Sonnet 5 effort high | 72%95% CI 49–88 | 18 |
| 29 | Claude Haiku 5.5 effort medium | 67%95% CI 44–84 | 18 |
| 29 | Claude Sonnet 5 effort medium | 67%95% CI 44–84 | 18 |
| 29 | DeepSeek V4.1 Flash 1017 Native FP8, FP4 experts · SGLang · effort high | 67%95% CI 44–84 | 18 |
| 32 | Claude Haiku 5.5 effort high | 61%95% CI 39–80 | 18 |
| 32 | Claude Haiku 5.5 effort low | 61%95% CI 39–80 | 18 |
| 32 | MiMo V2.6 Pro FP8 · thinking on | 61%95% CI 39–80 | 18 |
| 35 | Claude Sonnet 5 effort low | 56%95% CI 34–75 | 18 |
| 35 | Inkling Small FP8 · effort high | 56%95% CI 34–75 | 18 |
| 37 | Claude Sonnet 5 thinking off | 50%95% CI 29–71 | 18 |
| 37 | DeepSeek V4 Pro FP8 · effort high | 50%95% CI 29–71 | 18 |
| 37 | GLM-5.3 FP8 · effort low | 50%95% CI 29–71 | 18 |
| 37 | GLM-5.3 Flash EXL3 4.0bpw experts, FP8 dense · vLLM + ExLlamaV3 · effort low | 50%95% CI 29–71 | 18 |
| 37 | Qwen3.8 Flash-Next INT4-AutoRound, 5 of 10 experts · TensorFold (Zig) · effort medium | 50%95% CI 29–71 | 18 |
| 42 | DeepSeek V4 Flash Vision experimental FP8 + FP4 experts · vLLM · effort high | 44%95% CI 25–66 | 18 |
| 42 | DeepSeek V4.1 Flash EXL3 2.9bpw · vLLM + ExLlamaV3 · effort high | 44%95% CI 25–66 | 18 |
| 42 | GLM-5.3 Flash FP8 · effort high | 44%95% CI 25–66 | 18 |
| 42 | MiMo V2.6 Flash FP8 · thinking on | 44%95% CI 25–66 | 18 |
| 42 | Qwen3.8 Flash-Next NVFP4 · vLLM · effort medium | 44%95% CI 25–66 | 18 |
| 42 | Qwen3.8 Flash-Next MLX 4-bit · TensorFold · effort medium | 44%95% CI 25–66 | 18 |
| 42 | Qwen3.8 Flash-Next thinking on | 44%95% CI 25–66 | 18 |
| 49 | DeepSeek V4.1 Flash Native FP8, FP4 experts · SGLang · effort high | 39%95% CI 20–61 | 18 |
| 49 | GLM-5.3 Flash EXL3 4.0bpw experts, FP8 dense · vLLM + ExLlamaV3 · effort high | 39%95% CI 20–61 | 18 |
| 49 | GLM-5.3 Flash EXL3 4.0bpw experts, 4-bit dense · TensorFold · effort high | 39%95% CI 20–61 | 18 |
| 49 | MiMo V2.6 Flash FP8 + MXFP4 experts · SGLang · thinking on | 39%95% CI 20–61 | 18 |
| 49 | Mistral Large 4 effort high | 39%95% CI 20–61 | 18 |
| 49 | Nemotron 3 Ultra thinking on | 39%95% CI 20–61 | 18 |
| 49 | Qwen3.8 27B AWQ-INT4 · vLLM · effort xhigh | 39%95% CI 20–61 | 18 |
| 49 | Qwen3.8 Flash-Next INT4-AutoRound, 5 of 10 experts · TensorFold (Zig) · effort medium | 39%95% CI 20–61 | 18 |
| 57 | Claude Haiku 4.5 thinking on | 33%95% CI 16–56 | 18 |
| 57 | GLM-5.3 Flash EXL3 4.0bpw experts, FP8 dense · vLLM + ExLlamaV3 · thinking off | 33%95% CI 16–56 | 18 |
| 57 | Nemotron 3.5 Super VL NVFP4 mixed precision (NVIDIA ModelOpt) · TensorFold (Zig) · thinking on | 33%95% CI 16–56 | 18 |
| 60 | Claude Haiku 4.5 thinking off | 28%95% CI 13–51 | 18 |
| 60 | MiniCPM-V 4.7 35B-A3B INT4 W4A16 experts, BF16 dense · vLLM · thinking on | 28%95% CI 13–51 | 18 |
| 60 | MiniMax M3.1 Flash NVFP4 experts, MXFP8 (QAT) · vLLM · effort high | 28%95% CI 13–51 | 18 |
| 60 | Ornith 1.5 122B NVFP4 experts, FP8 attention (NVIDIA ModelOpt) · vLLM · thinking on | 28%95% CI 13–51 | 18 |
| 60 | Qwen3.6 35B-A3B NVFP4 · vLLM · thinking on | 28%95% CI 13–51 | 18 |
| 60 | Qwen3.8 Flash-Next MLX 4-bit · MTPLX · effort medium | 28%95% CI 13–51 | 18 |
| 66 | Laguna S 2.1 FP4 · thinking on | 22%95% CI 9–45 | 18 |
| 66 | Muse Glimmer 30B NVFP4 + FP8 mixed (NVIDIA ModelOpt) · vLLM · effort high | 22%95% CI 9–45 | 18 |
| 66 | Qwen3.8 27B MLX 8-bit · MTPLX · effort low | 22%95% CI 9–45 | 18 |
| 66 | Qwen3.8 27B AWQ-INT4 · vLLM · effort low | 22%95% CI 9–45 | 18 |
| 70 | Qwen3.8 27B AWQ-INT4 · vLLM · effort medium | 19%95% CI 7–42 | 18 |
| 71 | Gemma 4 31B QAT W4A16 · vLLM · thinking on | 17%95% CI 6–39 | 18 |
| 71 | Ling 3.0 Flash BF16 · thinking on | 17%95% CI 6–39 | 18 |
| 71 | MiniCPM-V 4.7 35B-A3B BF16 · vLLM · thinking on | 17%95% CI 6–39 | 18 |
| 71 | Nemotron 3.5 Bolt IQ2_XXS + NVFP4 + Q8_0 mixed (NVIDIA ModelOpt) · TensorFold (Zig) · thinking on | 17%95% CI 6–39 | 18 |
| 71 | Qwen3.8 27B MLX 4-bit · MTPLX · effort low | 17%95% CI 6–39 | 18 |
| 71 | Qwen3.8 27B Splash 4-bit · Splash · effort low | 17%95% CI 6–39 | 18 |
| 77 | Gemma 4 26B-A4B NVFP4 · vLLM · thinking on | 11%95% CI 3–33 | 18 |
| 77 | Nemotron 3.5 Lightning NVFP4 · thinking on | 11%95% CI 3–33 | 18 |
Tasks
What's in the suite
Solve rate is the share of finished runs whose first answer to the task passed (pass@1), a rough guide to how hard models find it. Difficulty is the task author’s label; from results is what the solve rate says: easy when two thirds or more of the finished runs pass it, hard at a third or fewer, once five have graded it.
| Task | Difficulty | From results | Solve rate |
|---|---|---|---|
| Configure a new unlocked package in sfdx-project.jsonpackaging-unlocked-project-config | easy | medium | 65% |
| How second-generation managed packaging differs from 1GPpackaging-1gp-vs-2gp | easy | easy | 99% |
| Match packaging IDs to the commands that use thempackaging-package-id-prefixes | easy | easy | 83% |
| Package metadata that depends on unpackaged org metadatapackaging-create-org-dependent | easy | hard | 33% |
| Stop installs of an accidentally promoted managed versionpackaging-lock-promoted-version | easy | medium | 53% |
| Build a promotable package version in CIpackaging-version-create-release-candidate | medium | medium | 44% |
| Build an extension package against the promoted base versionpackaging-dependency-released-build | medium | easy | 81% |
| Create an unlocked package without the project namespacepackaging-create-unlocked-no-namespace | medium | medium | 47% |
| Managed 2GP project with ancestry and test-only metadatapackaging-managed-test-setup | medium | hard | 29% |
| Promote a package version and install it in production from CIpackaging-promote-and-install | medium | medium | 35% |
| Schedule a push upgrade for a wave of subscriber orgspackaging-push-upgrade-schedule | medium | hard | 11% |
| What --skip-validation means for a release pipelinepackaging-skip-validation-consequences | medium | medium | 58% |
| Abandon a released managed 2GP version through ancestrypackaging-abandon-ancestor | hard | medium | 56% |
| Declare multi-level dependencies across unlocked packagespackaging-transitive-dependencies | hard | hard | 22% |
| Move metadata from one unlocked package to another in productionpackaging-migrate-metadata-between-packages | hard | hard | 27% |
| Upload a Managed - Released first-generation package versionpackaging-1gp-managed-released-upload | hard | hard | 33% |
| Which removed managed 2GP components are hard deleted on upgrade?packaging-removed-components-upgrade | hard | hard | 4% |
| Which subscriber upgrades does a 2GP ancestry tree allow?packaging-ancestry-upgrade-paths | hard | hard | 25% |
Private evaluations
Want this for your team?
Azul Labs runs Forcebench privately for two kinds of Salesforce team.
Choosing a model to run yourself?
A private benchmark of your shortlist
Open-weight models at the quantisations and reasoning efforts you could run on infrastructure you control, tested on your kind of Salesforce work, with a written recommendation.
- Private tasks written from your work only ever run on local models; they are never sent to an API.
- Re-testing after any change of model, quantisation or engine is available.
- Typical turnaround is 2–3 weeks; large models take about a day of machine time per configuration.
Building or buying a Salesforce AI tool?
A private evaluation of your tool
Your tool on held-out tasks it has never seen, against API baselines (models reached through a hosted service) and Local ones (served on Forcebench’s own hardware), with a written report on where it holds up and where it fails.
- It can start as a smaller pilot, about 30 held-out tasks with your tool against two baselines, before a full evaluation.
- Repeat evaluations after your releases are available.
- Typical turnaround is 2–3 weeks.
Fixed fee, quoted up front. The quote depends on the number of tasks and the number of models, tools or configurations tested.
Or email leo@azl.au · azl.au