Agent skill

Training Impact

by hardisgroupcom in hardisgroupcom/sfdx-hardis

Decide whether a change in sfdx-hardis or vscode-sfdx-hardis breaks a lab of the sfdx-hardis training, and name the labs it touches.

AGPL-3.0Auto-check: notesDevOps & Cloud

Install Training Impact

skills CLI
$ npx skills add hardisgroupcom/sfdx-hardis --skill training-impact -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install hardisgroupcom/sfdx-hardis training-impact --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/hardisgroupcom/sfdx-hardis.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/training-impact .claude/skills/training-impact && rm -rf skills-src

Use ~/.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/

Facts

Skill name
training-impact
GitHub stars
401
Token cost
~2.7k tokens
SKILL.md length
1,188 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Decide whether a change in sfdx-hardis or vscode-sfdx-hardis breaks a lab of the sfdx-hardis training, and name the labs it touches.

  • Works in 4 steps: List what the change touches. Be… → Look each one up in the reverse index. → Classify the impact with the table below. → …
  • The user says training impact
  • SKILL.md covers The sibling layout, What to read, The course is in two… and The procedure, plus 6 more sections
  • Calls node and git; reaches github.com

What it does

Training Impact is an agent skill from hardisgroupcom/sfdx-hardis. Decide whether a change in sfdx-hardis or vscode-sfdx-hardis breaks a lab of the sfdx-hardis training, and name the labs it touches. Load it for any change to a command name or flag, a prompt, --json output, a config key, a report file, a documentation page URL, an LWC panel, or any behavior a lab walks through. Also use it when the user says "training impact", "does this break the course", "which labs use this", or asks to check the training before merging.

Its SKILL.md is about 2.7k 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 DevOps & Cloud. It works with Salesforce and Visual Studio Code. 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.

When your agent uses it

  • The user says training impact
  • Does this break the course
  • Which labs use this
  • Asks to check the training before merging

Example prompts

  • “training impact”
  • “does this break the course”
  • “which labs use this”
  • “/training-impact”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Read, Grep, Glob

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. List what the change touches. Be specific and literal
  2. Look each one up in the reverse index.
  3. Classify the impact with the table below.
  4. State it in the analysis and in the design, even when it is "none". Name the labs.

What it can do on your machine

Read from SKILL.md and the folder at commit 9625b22. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Grep
    • Glob

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • node
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Training Impact loads about 2.7k tokens when it runs. Until then it costs about 120 tokens; SKILL.md has 1,188 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~120
When it runs · the whole SKILL.md, loaded when a task matches
~2.7k

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.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Grep, Glob

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from hardisgroupcom/sfdx-hardis at commit 9625b22, republished under its AGPL-3.0 licence (© hardisgroupcom). 1,188 words, ~2,655 tokens.

Download SKILL.mdSave it as .claude/skills/training-impact/SKILL.md (or your agent's skills folder).
name
training-impact
description
Decide whether a change in sfdx-hardis or vscode-sfdx-hardis breaks a lab of the sfdx-hardis training, and name the labs it touches. Load it for any change to a command name or flag, a prompt, --json output, a config key, a report file, a documentation page URL, an LWC panel, or any behavior a lab walks through. Also use it when the user says "training impact", "does this break the course", "which labs use this", or asks to check the training before merging.
allowed-tools
Bash, Read, Grep, Glob

Training impact

Three repositories move together now: sfdx-hardis, vscode-sfdx-hardis and sfdx-hardis-training. The existing rule that every change states its VS Code extension impact has a sibling: every change states its training impact, even when it is "none".

This skill answers one question: which labs does this change break, and does it need a training Pull Request?

It never edits the training repository. [[training-update]] does that, once this says there is an impact.

The sibling layout

sfdx-hardis-training is always a sibling of this repository, exactly like vscode-sfdx-hardis already is:

C:/git/  (or wherever this repository lives)
├── sfdx-hardis/            <- the skills live here, and only here
├── sfdx-hardis-training/   <- sibling, cloned if absent
└── vscode-sfdx-hardis/     <- sibling, the screenshot harness

The path is never configurable: a fixed layout is what lets the skills act without asking.

Clone it if it is missing, do not fail and do not work from a temporary directory:

bash
[ -d ../sfdx-hardis-training ] || git clone https://github.com/hardisgroupcom/sfdx-hardis-training.git ../sfdx-hardis-training
git -C ../sfdx-hardis-training fetch --all --prune

Read from the latest main unless the user says otherwise.

What to read

../sfdx-hardis-training/training-manifest.json, generated from the depends_on front matter of every lab. It holds, per lab: the commands, flags, config keys, documentation pages, panels and screenshots it relies on, plus a reverseIndex keyed by each of those.

bash
node -e "
const m = require('../sfdx-hardis-training/training-manifest.json');
const key = process.argv[1], value = process.argv[2];
console.log((m.reverseIndex[key] || {})[value] || 'no lab depends on it');
" commands hardis:work:save

It works offline and against the exact checked-out state, which is what makes this a check rather than a habit.

The course is in two languages, and one of them is the reference

The training ships in English and in French: labs/en/ and labs/fr/, mirrored file for file.

labs/en/ is the reference, and the impact is always computed from it. The manifest is generated from the English front matter, so reverseIndex names English lab ids and nothing else. That is correct and it is not a gap: a lab's depends_on is the same in every language, because the commands, flags, config keys and panels it relies on are the same.

What it means for the answer you give: a lab that is affected is affected in every locale. Each manifest entry carries a translations block naming the file and the URL of that lab in each other locale, so name them:

bash
node -e "
const m = require('../sfdx-hardis-training/training-manifest.json');
const lab = m.labs.find((one) => one.id === process.argv[1]);
console.log(lab.file, '+', Object.values(lab.translations || {}).map((t) => t.file).join(', '));
" lab-2-3

A change never breaks only the French version, and a French-only fix is never the answer: the correction goes into labs/en/ first and the translations follow. [[training-update]] has the procedure.

The procedure

  1. List what the change touches. Be specific and literal:
    • command ids (hardis:work:save)
    • flags (--check, --agent)
    • config keys (autoCleanTypes, useDeltaDeployment)
    • documentation page slugs (salesforce-devops-config-cleaning)
    • LWC panels (pipeline, backpromote, deploymentAction)
    • report file names and shapes
  2. Look each one up in the reverse index.
  3. Classify the impact with the table below.
  4. State it in the analysis and in the design, even when it is "none". Name the labs.

Classifying

What changedTraining impactWhat it needs
A command is renamed or removedBreaking. Every lab naming it stops workingA training Pull Request, in the same effort
A flag is renamed, or its default changesBreaking if a lab relies on the behaviorA training Pull Request
A prompt's wording or its choices changeText only, unless a lab tells the learner what to pickUpdate the lab step
A config key is renamedBreaking. Labs quote these in "Under the hood" blocksA training Pull Request
--json output or a report file changes shapeBreaking if scripts/verify/rules.mjs reads itA training Pull Request, and re-run the audit
A documentation page is renamedBreaking link. link-check.yml catches it monthly, which is too lateUpdate depends_on.docs and the lab links
An LWC panel is redesignedScreenshots are wrong, the text may still be right[[training-update]] re-runs the Helios capture
A new feature, nothing existing changedNone, unless it replaces a path a lab takesSay "none" and move on
Behaviour a seeded failure depends onBreaking, and silent. The lab still reads fine and the failure no longer firesA training Pull Request, and re-walk the lab
defaults/ci/manifest/package-no-overwrite.xmlText and screenshots. Helios ships a copy of it without RemoteSiteSetting, which Lab 3.5 addsCopy the change into Helios, check Labs 3.3 to 3.5

The screenshot rows are never just a re-capture. Every click a lab describes has to be shown, the pills have to be redrawn and every image has to be looked at again. The hard rules for that live in [[training-update]], section Screenshots: read them before sizing a panel change.

That last row is the dangerous one. The training deliberately seeds failures (a field excluded by .forceignore, a field that cannot be made required, a hardcoded id that trips PMD). A change that makes one of them stop failing turns a lab into a page describing something that does not happen, and no test anywhere notices.

Show full SKILL.md (438 more words)Show less

Checking it mechanically

bash
node scripts/check-training-impact.mjs
node scripts/check-training-impact.mjs --base main

It diffs the working tree against the base branch, extracts the command ids, flags, config keys and documentation slugs the diff touches, and names the labs that depend on them. Run it where the JSON schema check already runs.

It is a helper, not an oracle: it cannot see that a behavior changed under an unchanged name. The table above is the part that needs judgement.

What to output

In the analysis and the design, a Training impact section:

markdown
## Training impact

**Affected labs**: lab-2-3 (Lab 2.3), lab-2-4 (Lab 2.4), in `labs/en/` and `labs/fr/`

`commandsPostDeploy` gains a `retryCount` key. Both labs quote the YAML in their
"Under the hood" block, so both blocks are now incomplete rather than wrong.
No screenshot changes: the editor gains no field.

**Needs a training Pull Request**: yes, small. Load `training-update`.

When there is none, say so in one line and name what you checked:

markdown
## Training impact

None. The change touches `hardis:org:diagnose:unusedlicenses`, which no lab uses.

The labs are not a reliable record of the product

Worth knowing before you conclude a lab is fine. A pass that checked every claim in the course against the sources found six of the nine Level 2 labs and all eleven Level 3 labs carrying at least one wrong statement, and six of those labs could not be followed at all.

So when you are deciding whether a change affects a lab, do not read the lab and ask "does this still match". Read what the command or the panel does now, and ask whether the lab was ever right. The four shapes that keep appearing:

  • The command does more than its name says. hardis:work:resetselection soft-resets every commit since the branch point. A lab said in bold that it does not.
  • A promised failure cannot happen. A merge conflict needs both edits in the same region of a file; a permission the lab asks you to grant may already be granted.
  • A panel field does not exist, or not at that scope. sfdxHardisConfigHelper.ts decides what the settings panel renders; a branch-scoped key is invisible while the scope reads Global.
  • A setting is taught as active that this project leaves off.

If a change you are assessing lands anywhere near one of those, the honest answer is that the lab needs reading against the source, not just patching.

Process

One Pull Request per repository, cross-linked, exactly like the CLI and extension rule. Order: CLI first, then the extension, then the training. A change that invalidates a lab is not finished until the training Pull Request is open, and that Pull Request states which labs it re-verified.

Labs are versioned against a pinned sfdx-hardis version, so a breaking change does not break learners mid-course. The training Pull Request bumps the pin and updates the labs together.

  • [[training-update]] performs the edits once this says there is an impact
  • The vscode-sfdx-hardis skill, for the extension side of the same change
  • [[training-e2e]] walks the labs for real, which is what finds the impacts nobody predicted

© 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

Files

Just SKILL.md in .claude/skills/training-impact of hardisgroupcom/sfdx-hardis.

Open the folder on GitHubat commit 9625b22

Compare with similar skills

Training Impact 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.

Training Impact compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Training Impact this skillhardisgroupcom/sfdx-hardis401—~2.7kAutomated safety check: NotesAGPL-3.0
Web Console Local Tracesforcedotcom/salesforcedx-vscode1k—~796Automated safety check: PassBSD-3-Clause
Wdio Testingansible/vscode-ansible487—~2.2kAutomated safety check: PassMIT
Command UIforcedotcom/salesforcedx-vscode1k—~1.4kAutomated safety check: PassBSD-3-Clause
Devsydevsy-org/devsy110—~1.7kAutomated safety check: PassMPL-2.0
Services Extension Consumptionforcedotcom/salesforcedx-vscode1k—~5kAutomated safety check: PassBSD-3-Clause

Similar skills

  • Web Console Local Traces

    forcedotcom/salesforcedx-vscode

    Unblock hosted Web Console OTLP to localhost:4318. An agent skill from forcedotcom/salesforcedx-vscode.

    1k GitHub stars~796 tokensUpdated today
    DevOps & CloudAuto-check passed
  • Wdio Testing

    ansible/vscode-ansible

    Write, run, and debug WebDriverIO (WDIO) UI tests for the Ansible VS Code extension.

    487 GitHub stars~2.2k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Command UI

    forcedotcom/salesforcedx-vscode

    Command palette, CodeLens, context menus, package.nls titles, and NotificationModeService.

    1k GitHub stars~1.4k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Devsy

    devsy-org/devsy

    Operate Devsy workspaces and providers for end users. An agent skill from devsy-org/devsy.

    110 GitHub stars~1.7k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Services Extension Consumption

    forcedotcom/salesforcedx-vscode

    Consume the salesforcedx-vscode-services extension API. An agent skill from forcedotcom/salesforcedx-vscode.

    1k GitHub stars~5k tokensUpdated today
    Sales & SupportAuto-check passed
  • Changelog Entry

    certinia/debug-log-analyzer

    Write, review or trim CHANGELOG.md entries. An agent skill from certinia/debug-log-analyzer.

    114 GitHub stars~1.9k tokensUpdated today
    DevelopmentAuto-check passed

More from hardisgroupcom/sfdx-hardis

All 21 skills in this repo
  • sfdx-hardis Training End-to-End Test

    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.

    401 GitHub stars~2.6k tokensUpdated today
    Auto-check: notes
  • Promotion Branches E2E Test

    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.

    401 GitHub stars~5.5k tokensUpdated today
    Auto-check: notes
  • sfdx-hardis Architecture Guide

    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.

    401 GitHub stars~2.1k tokensUpdated today
    Auto-check passed
  • Changelog Style Rules

    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.

    401 GitHub stars~1.4k tokensUpdated today
    Auto-check passed
  • Documentation

    hardisgroupcom/sfdx-hardis

    Documentation standards for sfdx-hardis commands (description format with Command Behavior and Technical explanations sections, MkDocs site, build:doc).

    401 GitHub stars~1k tokensUpdated today
    Auto-check passed
  • Fix Jscpd

    hardisgroupcom/sfdx-hardis

    Decision framework for fixing jscpd (copy-paste detector) errors.

    401 GitHub stars~613 tokensUpdated today
    Auto-check passed

Categories

Questions about Training Impact

What does Training Impact do?

Decide whether a change in sfdx-hardis or vscode-sfdx-hardis breaks a lab of the sfdx-hardis training, and name the labs it touches. Training Impact is an agent skill from hardisgroupcom/sfdx-hardis. Decide whether a change in sfdx-hardis or vscode-sfdx-hardis breaks a lab of the sfdx-hardis training, and name the labs it touches.

When should I use Training Impact?

Training Impact fits situations like: the user says training impact; does this break the course; which labs use this; asks to check the training before merging.

How do I install Training Impact in Claude Code?

Run `npx skills add hardisgroupcom/sfdx-hardis --skill training-impact -a claude-code`. Or copy the skill folder (.claude/skills/training-impact in hardisgroupcom/sfdx-hardis) into .claude/skills/training-impact in your project. Claude Code loads it when a task matches its description.

How do I install Training Impact in Codex?

Run `npx skills add hardisgroupcom/sfdx-hardis --skill training-impact -a codex`. Or copy the skill folder (.claude/skills/training-impact in hardisgroupcom/sfdx-hardis) into .agents/skills/training-impact in your project. Codex loads it when a task matches its description.

Can I use Training Impact in Cursor, Gemini CLI or GitHub Copilot?

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-impact -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-impact, .gemini/skills/training-impact, .github/skills/training-impact and .opencode/skills/training-impact in your project.

What does Training Impact need to run?

Going by SKILL.md and its folder, Training Impact needs the command-line tools its instructions call (node and git). Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob.

Does Training Impact access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Training Impact safe to install?

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.

What licence does Training Impact use?

Training Impact 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.

How many tokens does Training Impact use?

About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Training Impact?

Skills that share tags, products or a category with Training Impact: Web Console Local Traces (forcedotcom/salesforcedx-vscode, 1k stars), Wdio Testing (ansible/vscode-ansible, 487 stars), Command UI (forcedotcom/salesforcedx-vscode, 1k stars) and Devsy (devsy-org/devsy, 110 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Training Impact?

hardisgroupcom (a GitHub organization) maintains it in hardisgroupcom/sfdx-hardis, which has 401 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 8, 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.