Sf Datacloud Act
Jaganpro/sf-skills
Salesforce Data Cloud Act phase. An agent skill from Jaganpro/sf-skills.
Publish and maintain the three Trailhead Trailmixes and the Cloudity badges of the sfdx-hardis training course.
$ npx skills add hardisgroupcom/sfdx-hardis --skill training-publish -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install hardisgroupcom/sfdx-hardis training-publish --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/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/training-publish .claude/skills/training-publish && 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 "training-publish" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/training-publish into .claude/skills/training-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "training-publish", 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/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/training-publishType 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 hardisgroupcom/sfdx-hardis --skill training-publish -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install hardisgroupcom/sfdx-hardis training-publish --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/training-publish .agents/skills/training-publish && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "training-publish" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/training-publish into .agents/skills/training-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "training-publish", 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 hardisgroupcom/sfdx-hardis --skill training-publish -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install hardisgroupcom/sfdx-hardis training-publish --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/training-publish .cursor/skills/training-publish && 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 "training-publish" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/training-publish into .cursor/skills/training-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "training-publish", 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/hardisgroupcom/sfdx-hardis.git --path .claude/skills/training-publish--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 hardisgroupcom/sfdx-hardis --skill training-publish -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install hardisgroupcom/sfdx-hardis training-publish --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/training-publish .gemini/skills/training-publish && 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 "training-publish" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/training-publish into .gemini/skills/training-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "training-publish", 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 hardisgroupcom/sfdx-hardis training-publishInstalls 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 hardisgroupcom/sfdx-hardis --skill training-publish -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/training-publish .github/skills/training-publish && 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 "training-publish" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/training-publish into .github/skills/training-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "training-publish", 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 hardisgroupcom/sfdx-hardis --skill training-publish -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install hardisgroupcom/sfdx-hardis training-publish --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/training-publish .opencode/skills/training-publish && 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 "training-publish" agent skill from https://github.com/hardisgroupcom/sfdx-hardis/tree/main/.claude/skills/training-publish into .opencode/skills/training-publish/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "training-publish", 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.
training-publishPublish and maintain the three Trailhead Trailmixes and the Cloudity badges of the sfdx-hardis training course.
Training Publish is an agent skill from hardisgroupcom/sfdx-hardis. Publish and maintain the three Trailhead Trailmixes and the Cloudity badges of the sfdx-hardis training course. Load it when creating, renaming or reordering a Trailmix, when writing the copy shown on Trailhead, when a lab URL changes and the Trailmix steps must follow, or when touching the badge names, badge pages or the claim instructions. Also use it when the user says "Trailmix", "Trailhead", "badge", "claim" or "how do people enroll".
Its SKILL.md is about 4.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Sales & Support. It works with Salesforce. The repository describes itself as: French-army-knife Toolbox for Salesforce. Orchestrates base commands and assist users with interactive wizards to make much more than native Salesforce CLI + Allows you to define…. The licence is AGPL-3.0.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 33d4de0. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
BashReadGrepGlobEditWriteFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gityarnFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
trailhead.salesforce.comsfdx-hardis-training.github.iosalesforce.comhardisgroupcom.github.ioFrom 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.
Training Publish loads about 4.3k tokens when it runs. Until then it costs about 115 tokens; SKILL.md has 1,955 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Bash, Read, Grep, Glob, Edit, WriteAutomated 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); files beside SKILL.md are not scanned.
The full file from hardisgroupcom/sfdx-hardis at commit 33d4de0, republished under its AGPL-3.0 licence (© hardisgroupcom). 1,955 words, ~4,259 tokens.
.claude/skills/training-publish/SKILL.md (or your agent's skills folder).The course itself lives in ../sfdx-hardis-training and is edited with [[training-update]].
This skill covers only the two surfaces outside that repository: the Trailmixes on
trailhead.salesforce.com, and the badge the course awards.
Re-check these once before any publishing session: the Trailhead UI changes.
| Capability | Available | Consequence |
|---|---|---|
| Add existing trails, modules, projects, superbadges as steps | Yes | Used for the conceptual warm-up steps |
| Add a Link step (any external URL) | Yes | The main mechanism: one per lab page and per reference doc page |
| Add a Task step (free text, no URL) | Yes | Used for "create your orgs" and "claim your badge" |
| Mark a Link or Task required for completion | Yes | On for every lab, off for optional reading |
| Reorder steps | Yes | The order in the Trailmix is the authoritative reading order |
| Public shareable URL | Yes | https://trailhead.salesforce.com/users/<handle>/trailmixes/<slug> |
| Custom description and cover | Yes | Copy below |
| Quizzes or hands-on challenges | No | Verification is the local check plus the claim issue audit |
| Award a Trailhead badge | No | Cloudity issues its own |
| Gate a step behind another | No | Order is a suggestion, so every lab states its own preconditions and reset |
| Nest a Trailmix inside a Trailmix | No (assumed) | Each level links the next with a plain Link step |
| Author-side reporting on who completed what | No | Completion data comes from the closed claim issues and badges/ |
| Localize one Trailmix | No | A translated course is a new Trailmix per language |
Authoring a real Trailhead badge is not an option: there is no self-serve program, and myTrailhead / Enablement Sites (Trailmaker Content) is retiring. A Trailmix is the only Trailhead-native surface open to us.
| Item | Value |
|---|---|
| Owning Trailhead account | nvuillamy (profile https://www.salesforce.com/trailblazer/nvuillamy) |
| Level 1 Trailmix | Salesforce DevOps with sfdx-hardis - Contributor Basics |
| Level 2 Trailmix | Salesforce DevOps with sfdx-hardis - Contributor Advanced |
| Level 3 Trailmix | Salesforce DevOps with sfdx-hardis - Release Manager |
| Expected URL shape | https://trailhead.salesforce.com/users/nvuillamy/trailmixes/salesforce-devops-with-sfdx-hardis-contributor-basics |
| Training site | https://sfdx-hardis-training.github.io/ |
| Lab URL shape | <site>/en/level-2-contributor-advanced/2-7-resolve-a-git-merge-conflict/ |
| Badge URL shape | <site>/badges/<github-handle>/ |
The training site URL is temporary. The course moved from
https://hardisgroupcom.github.io/sfdx-hardis-training/ to https://sfdx-hardis-training.github.io/
on 2026-10-02, and it will move again (a custom domain is planned). When it does, replace it in
every source of the three repositories, in one Pull Request per repository:
# from each of sfdx-hardis, ../vscode-sfdx-hardis and ../sfdx-hardis-training
git grep -lI 'sfdx-hardis-training.github.io' -- . ':!CHANGELOG.md'README.md, docs/, the command descriptions under src/commands/
(and the pages yarn build:doc generates from them), CLAUDE.md and the training-* skills.
Update this table and this note in the same change.CHANGELOG.md sections keep the URL they were written with.course.site in training-universe.json and
in course-site.yml (a check compares the two), and by hand in config/.sfdx-hardis.yml: the
ticketing URL builders and the Training menu links. Replace all three.LEGACY_SITE_URL in scripts/lib/urls.mjs is the first address of the course and never changes:
the forks learners made before the move still call it, and it redirects.test/fixtures/training-project/.sfdx-hardis.yml of the extension is a copy of the training
config/.sfdx-hardis.yml: the two must stay identical.Two cautions, both permanent:
labs/link-map.en.md of the training repository.One-line descriptions, what Trailhead shows in a card. Ready to paste:
If a single Trailmix is ever published instead of three, the title is
Salesforce DevOps with sfdx-hardis and the line is: A free hands-on course that builds a
complete Salesforce CI/CD pipeline on free orgs, one click at a time, from your first User
Story to a monitored production release.
Longer versions of the same three, for the description field when it accepts a paragraph, are
in the course README.md and the level index pages of the site. Keep them in step: the level
index page is what a learner reads right after the Trailmix card.
Every description ends with the same sentence: This course awards a Cloudity badge. It is not a certification.
Level 2 is recommended to contribute and required to start Level 3. Say both, in that order, wherever the prerequisites are listed: a learner may stop after Level 1 and deliver, and a release manager cannot review a deployment error they have never solved.
The steps are not a copy of the lab list. The shape, in order:
sfdx-hardis.cloudity.com.Lab titles and URLs come from training-manifest.json and labs/link-map.en.md in the
training repository, both generated by scripts/build/universe.mjs. Read them; never retype a
lab URL by hand, and re-check the whole step list whenever a lab is renamed, renumbered or
inserted, because the site URL is the file name.
Trailhead steps verified by hand and safe to link:
| Title | URL under trailhead.salesforce.com/ |
|---|---|
| Git and GitHub Basics for Effective Collaboration | content/learn/modules/git-and-git-hub-basics |
| Org Development Model | content/learn/modules/org-development-model |
| Package Development Model | content/learn/modules/sfdx_dev_model |
| App Development with Salesforce DX | content/learn/modules/sfdx_app_dev |
| DevOps Center: Quick Look | content/learn/modules/devops-center-quick-look |
| Explore the Software Development Lifecycle for Salesforce Admins (trail) | content/learn/trails/explore-the-software-development-lifecycle-for-salesforce-admins |
Do not add a step whose URL has not been opened by hand, and never link a Trailhead module published by a competing DevOps vendor, even when it is the closest match on the topic.
| Badge | Awarded when | Name |
|---|---|---|
| Level 1 | the Level 1 audit passes | sfdx-hardis Contributor Basics |
| Level 2 | the Levels 1 and 2 audits pass | sfdx-hardis Contributor Advanced |
| Level 3 | the Levels 1, 2 and 3 audits pass | sfdx-hardis Release Manager |
Three separate badges, each shown on the learner's page with its date. Each name says what the holder can do, which is what makes it worth putting on a profile.
Everything is free and GitHub-native, in hardisgroupcom/sfdx-hardis-training:
badges/_template.svg, Cloudity colors, badge name,
handle, date. Committed, no image service.scripts/build/site.mjs from the record, once per language, and
published at <site>/badges/<trailblazer>/ and <site>/<locale>/badges/<trailblazer>/. It shows
the badges earned with their dates, the Trailblazer profile the learner declared and the audit
result. Nothing is committed for it: a claim writes the record and the image, and a badge earned
before a language existed gains its page in it on the next build. One page per learner, so the
URL they share stays the same as they progress. This is the URL the learner shares.badges/<handle>.json, Open Badges shaped (issuer,
recipient, achievement, issuedOn, evidence), unsigned. Real certifications for clients and
partners, if they ever come, are a different scheme; this shape does not block it and these
URLs do not have to move.Two consequences to state in the claim instructions and accept up front: badges/ grows in the
repository forever, and learner GitHub handles become public in it.
A learner opens a GitHub issue from a form carrying the level, their Trailblazer username and
their public repository URL. claim.yml clones the repository, runs the audit, comments and
closes. Nobody reviews claims. The residual human duty is reading needs-work issues:
those are course bug reports.
The audit asserts outcomes, never procedures, never verifies org state, and never asks for
credentials. Its failure messages are the only support channel a learner has, so each one names
the lab, what was looked for and where. The rules live in scripts/verify/rules.mjs; editing
them is [[training-update]]'s job.
The course ships in English and French, labs/en/ and labs/fr/, mirrored file for file, with
English as the reference. Every translated page carries a source_rev front matter key naming the
English commit it was made from, so staleness is detectable.
A Trailmix cannot be localized, so each language is its own Trailmix per level: six today, three
English and three French. They are built from the same step list with /fr/ in place of /en/ in
every target, and labs/link-map.fr.md is generated by scripts/build/universe.mjs to hold exactly
those URLs, next to the English one. Read the link map rather than transcribing URLs: that file is
what link-check.yml proves resolves.
Two things the French Trailmix keeps in English:
sfdx-hardis Contributor Basics, Contributor Advanced and
Release Manager are one badge each, whatever language the learner took the course in, and the
badge pages are locale independentNever translated: command names, flags, config keys, branch names, org aliases, file paths, the cast names, and the badge names.
Small, and each can be settled when the phase that needs it arrives:
sync-check.yml mark the evidence link unreachable rather than revoke anything.© hardisgroupcom, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/training-publish of hardisgroupcom/sfdx-hardis.
Open the folder on GitHubat commit 33d4de0
Training Publish 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 |
|---|---|---|---|---|---|---|
| Training Publish this skillhardisgroupcom/sfdx-hardis | 402 | — | ~4.3k | Automated safety check: Notes | AGPL-3.0 | |
| Sf Datacloud ActJaganpro/sf-skills | 424 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Sf Datacloud ConnectJaganpro/sf-skills | 424 | — | ~1.9k | Automated safety check: Pass | MIT | |
| Sf Datacloud HarmonizeJaganpro/sf-skills | 424 | — | ~1.2k | Automated safety check: Pass | MIT | |
| Consumer Goods Accruals Datakit Deployforcedotcom/sf-skills | 1.1k | — | ~4.8k | Automated safety check: Pass | Apache-2.0 | |
| Salesforce Incident Runbookjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~1.1k | Automated safety check: Pass | MIT |
Jaganpro/sf-skills
Salesforce Data Cloud Act phase. An agent skill from Jaganpro/sf-skills.
Jaganpro/sf-skills
Salesforce Data Cloud Connect phase. An agent skill from Jaganpro/sf-skills.
Jaganpro/sf-skills
Salesforce Data Cloud Harmonize phase. An agent skill from Jaganpro/sf-skills.
forcedotcom/sf-skills
A skill your agent uses to deploy the TPM Liability Accruals data kit end to end to a Salesforce org.
jeremylongshore/tons-of-skills-marketplace
Run evidence-led Salesforce integration incident response from detection through containment, recovery, reconciliation, and prevention.
jeremylongshore/tons-of-skills-marketplace
Build Salesforce integration observability across application traces, platform status, limits, async jobs, events, logs, and business reconciliation.
hardisgroupcom/sfdx-hardis
Walks the sfdx-hardis training course end to end as a learner would, against a real Developer Edition org and fork, fixing broken steps and screenshots that no longer match.
hardisgroupcom/sfdx-hardis
Runs a full end-to-end test of sfdx-hardis promotion branches and backpromote against real Salesforce orgs and a throwaway repository, then writes a report.
hardisgroupcom/sfdx-hardis
Explains how the sfdx-hardis Salesforce CLI plugin is built: its TypeScript and Oclif stack, command layout, agent-mode flag and provider classes for git, notifications and AI.
hardisgroupcom/sfdx-hardis
Style rules for adding CHANGELOG.md entries: short, user-facing bullets grouped by command under the beta section, each linking the command's docs page.
hardisgroupcom/sfdx-hardis
Documentation standards for sfdx-hardis commands (description format with Command Behavior and Technical explanations sections, MkDocs site, build:doc).
hardisgroupcom/sfdx-hardis
Decision framework for fixing jscpd (copy-paste detector) errors.
Works with
Categories
Publish and maintain the three Trailhead Trailmixes and the Cloudity badges of the sfdx-hardis training course. Training Publish is an agent skill from hardisgroupcom/sfdx-hardis. Publish and maintain the three Trailhead Trailmixes and the Cloudity badges of the sfdx-hardis training course.
Training Publish fits situations like: the user says Trailmix; how do people enroll.
Run `npx skills add hardisgroupcom/sfdx-hardis --skill training-publish -a claude-code`. Or copy the skill folder (.claude/skills/training-publish in hardisgroupcom/sfdx-hardis) into .claude/skills/training-publish in your project. Claude Code loads it when a task matches its description.
Run `npx skills add hardisgroupcom/sfdx-hardis --skill training-publish -a codex`. Or copy the skill folder (.claude/skills/training-publish in hardisgroupcom/sfdx-hardis) into .agents/skills/training-publish 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 hardisgroupcom/sfdx-hardis --skill training-publish -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/training-publish, .gemini/skills/training-publish, .github/skills/training-publish and .opencode/skills/training-publish in your project.
Going by SKILL.md and its folder, Training Publish needs the command-line tools its instructions call (git and yarn). Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, Edit, Write.
SKILL.md names 4 domains. In commands or code: trailhead.salesforce.com, sfdx-hardis-training.github.io, salesforce.com and hardisgroupcom.github.io; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Training Publish is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.3k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Training Publish: Sf Datacloud Act (Jaganpro/sf-skills, 424 stars), Sf Datacloud Connect (Jaganpro/sf-skills, 424 stars), Sf Datacloud Harmonize (Jaganpro/sf-skills, 424 stars) and Consumer Goods Accruals Datakit Deploy (forcedotcom/sf-skills, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
hardisgroupcom (a GitHub organization) maintains it in hardisgroupcom/sfdx-hardis, which has 402 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 9, 2026.
Source: hardisgroupcom/sfdx-hardis on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.