Agent skill

sfdx-hardis Training End-to-End Test

by hardisgroupcom in 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.

AGPL-3.0Auto-check: notesTesting & QA

Install sfdx-hardis Training End-to-End Test

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

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

GitHub CLI
$ gh skill install hardisgroupcom/sfdx-hardis training-e2e --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-e2e .claude/skills/training-e2e && 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-e2e
GitHub stars
400
Token cost
~2.6k tokens
SKILL.md length
1,163 words
Files
28 (incl. scripts)
Skills in repo
21
Repo updated
First seen
Licence
AGPL-3.0

At a glance

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.

  • Works in 7 steps: Read reference/runbook.md in full. It… → Run the cheap checks first, in $COURSE.… → Reset the fork: bash… → …
  • Verifying that every lab in the training course still works as written
  • SKILL.md covers What this skill contains, Before starting, Process and Rules for the run, plus 1 more section
  • Runs JavaScript and Shell scripts from its folder; calls node, yarn and bash

What it does

The point is to do the course rather than read it: in a real fork and real orgs, one lab at a time, fixing what breaks, so that every step works, every screenshot shows what the text says and no lab assumes something an earlier one did not deliver. Three sibling skills decide whether a change breaks a lab, perform the edits and handle Trailhead and badges, and this one is the only one that finds defects nobody predicted. It is used when asked to walk the labs, verify a level or check the course is current, or after a change large enough that reading the labs is not enough.

reference/runbook.md is the full procedure and is read first, covering fidelity levels, three passes per lab, notes per level and common traps. Scripts handle preflight checks, path settings, resetting the fork to what a new learner gets, a headless stand-in for the VS Code panel, per-lab image review, waiting on and merging pull requests, promotion between major branches and org authentication for lab 3.1. A reports folder holds earlier run reports.

When your agent uses it

  • Verifying that every lab in the training course still works as written
  • Checking that screenshots in a level still match the surrounding text
  • Re-running the course after a large change to sfdx-hardis or its VS Code extension

Example prompts

  • “Walk the training course end to end and fix whatever breaks.”
  • “Verify level 3 still works after the latest vscode-sfdx-hardis release.”
  • “Check that every screenshot in lab 2 still matches the text.”
  • “Reset the fork to what a brand new learner gets, then rerun the labs.”

Requirements

  • A Salesforce Developer Edition org
  • A fork of the training repository to run the labs against
  • Pre-approved tools (allowed-tools): Bash, Read, Grep, Glob, Edit, Write, WebFetch, AskUserQuestion

Workflow steps

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

  1. Read reference/runbook.md in full. It holds the fidelity levels, the traps of the five
  2. Run the cheap checks first, in $COURSE. There is no point walking 26 labs to find a dead
  3. Reset the fork: bash scripts/reset-fork.sh, and put the orgs back with
  4. Walk each lab with the three passes (runbook section 4), one lab at a time, in order
  5. Fix what you find, inside the run, in the repository that owns the defect (runbook section 8),
  6. Write the report into reports/training-e2e-report-.md (runbook section 10),
  7. Open one Pull Request per repository, cross-linked, in the order CLI, extension, training,

What it can do on your machine

Read from SKILL.md and the folder at commit 971ac89. 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
    • Edit
    • Write
    • WebFetch
    • AskUserQuestion

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 4 files in scripts/ (JavaScript and Shell, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • yarn
    • bash
    • python

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

  • Network

    Links to these hosts (documentation or services it may open):

    • developer.salesforce.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

sfdx-hardis Training End-to-End Test loads about 2.6k tokens when it runs. Until then it costs about 123 tokens; SKILL.md has 1,163 words of instructions outside code blocks.

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

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, Edit, Write, WebFetch, AskUserQuestion

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.

SKILL.md

The full file from hardisgroupcom/sfdx-hardis at commit 971ac89, republished under its AGPL-3.0 licence (© hardisgroupcom). 1,163 words, ~2,592 tokens.

Download SKILL.mdSave it as .claude/skills/training-e2e/SKILL.md (or your agent's skills folder). This skill also uses 27 other files; get the full folder from GitHub.
name
training-e2e
description
Walk the sfdx-hardis training course end to end as a learner would, against a real Developer Edition org and a real fork, checking that every step works and that every screenshot still matches the text, and fixing what it finds. Use when the user asks to test the training, walk the labs, run the course end to end, verify a level, check that the course is still up to date, or when a change to sfdx-hardis or vscode-sfdx-hardis is big enough that reading the labs is not enough.
allowed-tools
Bash, Read, Grep, Glob, Edit, Write, WebFetch, AskUserQuestion
argument-hint
[level or lab, e.g. 1, 2.3, all] [org alias] [what to focus on]
user-invocable
true
model
opus

Testing the training course end to end

Do the course. Not read it: do it, in a real fork, against real orgs, one lab at a time, and fix what breaks. The goal is that when a learner arrives, every step works, every screenshot shows what the text describes, and nothing assumes something an earlier lab did not deliver.

Three skills already cover the course and none of them does this: [[training-impact]] decides whether a change breaks a lab, [[training-update]] performs the edits, [[training-publish]] handles Trailhead and the badges. This one is the only one that finds the defects nobody predicted.

What this skill contains

FileUse
reference/runbook.mdThe full procedure: fidelity levels, the three passes per lab, per level notes, the traps. Read it first.
scripts/preflight.shEvery prerequisite in one screen, and what to ask the user for.
scripts/env.sh, env.mjsThe paths, all derived from this skill's own location, all overridable.
scripts/reset-fork.shPuts the fork and the clone back to what a brand new fork gives a learner.
scripts/panel.mjsThe headless stand-in for the VS Code panel: real command, real org, prompts answered from rules.
scripts/review-lab.mjsPer lab, every image with its pills, the text around it, and the file to open.
scripts/prflow.shWaits for a Pull Request's checks, merges when green, watches the deployment job.
scripts/promo.sh, tick.mjsThe same for a Pull Request between two major branches, ticking its pending manual step first when asked.
scripts/auth.mjsLab 3.1: Add/Configure Org for one branch, then its two secrets on the fork.
scripts/mon.mjsLab 3.8: Install Org Monitoring in the monitoring repository, then its secrets.
scripts/setsecrets.mjs, setsecrets-mon.mjsRead the secret values out of a command's log and store them.
scripts/sync.shMid-walk only: brings a course fix into the fork's major branches.
reports/One report per run.

Before starting

bash
bash .claude/skills/training-e2e/scripts/preflight.sh

It prints OK, WARN or MISSING per item. A MISSING is something to ask the user for, because the run cannot do it itself:

  • a Developer Edition org, signed up at https://developer.salesforce.com/signup and connected. Level 3 needs two: helios-prod (production in the fiction, and the Dev Hub) and helios-preprod. Prefer the orgfarm-* Developer Edition orgs already authenticated; a full walk needs a fresh daily scratch org allowance and a fresh API budget on the Dev Hub, both of which preflight prints;
  • gh signed in, with the repo and workflow scopes;
  • a Chrome signed in to GitHub, started with --remote-debugging-port=9222, for the labs that end on a GitHub or Salesforce page. Never automate a sign-in, and never send keystrokes to a window found by its title.

Decide with the user, if they have not said: which levels to walk (Level 1 alone is the quick pass; Level 3 is the long one), and whether to reset the fork first, which the answer should almost always be yes to.

Process

  1. Read reference/runbook.md in full. It holds the fidelity levels, the traps of the five previous runs, and the role split of Level 3 that is easy to break by being helpful.

  2. Run the cheap checks first, in $COURSE. There is no point walking 26 labs to find a dead link:

    bash
    node scripts/build/universe.mjs --check    # the generated files match what the sources say
    node scripts/build/lab-crossrefs.mjs --check       # pages.yml refuses to publish without these two
    node scripts/build/lab-command-links.mjs --check
    node scripts/verify/check-commands.mjs     # every command a lab needs still exists
    node scripts/verify/check-links.mjs        # every URL
    node scripts/verify/check-pills.mjs        # drawn pills versus referenced pills
    node scripts/i18n/check-i18n.mjs           # every locale answers every key of the generated pages
    node scripts/build/site.mjs && python -m zensical build -f course-site.yml
    node scripts/verify/check-site.mjs         # every page resolves every asset and every link
    node scripts/verify/check-nav.mjs          # one language per menu, and every picker comes back
    node scripts/verify/check-language-switch.mjs   # the picker after an instant navigation, and the cookie

    The last two open a browser, so they need playwright-core and a Chrome, which preflight.sh reports.

  3. Reset the fork: bash scripts/reset-fork.sh, and put the orgs back with node scripts/training.mjs teardown. Never delete and recreate the scratch orgs: the daily allowance does not come back.

  4. Walk each lab with the three passes (runbook section 4), one lab at a time, in order: read the published page as a learner, do every step at the highest fidelity that can do it, look at every image with review-lab.mjs and the Read tool. Then the lab's own Check my work.

    For the "do" pass, prefer the lab driver, which is the real UI over the real CLI:

    bash
    cd ../vscode-sfdx-hardis && yarn compile && yarn dev
    SFDX_HARDIS_LAB_WORKSPACE="$RUN" SFDX_HARDIS_LAB_ONLY=1.3 yarn test:ui:labs

    Fall back to scripts/panel.mjs for a lab labs/_assets/lab-drivers.json does not cover, and record which fidelity each lab got.

  5. Fix what you find, inside the run, in the repository that owns the defect (runbook section 8), then re-do the step. labs/en/ first, the other locales after.

  6. Write the report into reports/training-e2e-report-<yyyy-mm-dd>.md (runbook section 10), including the "what this run did not cover" section.

  7. Open one Pull Request per repository, cross-linked, in the order CLI, extension, training, each with an entry in that repository's CHANGELOG.md (## [beta] (main) in sfdx-hardis, ## Unreleased in the extension, the ## YYYY-MM-DD heading of the day in the course). Later fixes of the same run go on the same branch and Pull Request, never a new one. Then run the code-review skill at high on each and fix what it raises.

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

Rules for the run

  • Do the lab, do not improve on it. The moment you do something the lab did not tell the learner to do, stop: that is the finding. Fixing the environment quietly is how a course stays broken.
  • A question with no answer is a finding. panel.mjs stops when a prompt matches no rule, because a learner would be stuck on the same question. Decide which is wrong, the product or the lab, and say so.
  • Look at the screenshots. Every previous run let a stale one through by checking pill numbers instead of opening the image. The number check passes on a screenshot of a panel that no longer exists.
  • Be autonomous. Do not stop to ask whether to continue.
  • Report honestly. A lab not walked is "not covered", never "OK". Say which fidelity each lab was walked at.
  • Update the runbook whenever a trap costs you time, so the next run does not pay it again.

Known gaps of every run so far

State them again in the report unless you close them:

  • The webview DOM is still not clicked. The lab driver (yarn test:ui:labs in ../vscode-sfdx-hardis) runs the real panel and the real command together, which is what catches a webview-only defect. It still answers the question the panel received rather than clicking a pixel, and it only drives the labs labs/_assets/lab-drivers.json covers. Runbook section 9.
  • An agent is not a beginner. It reads past ambiguities a first-timer stops at, because it knows the product. Treat every sentence you had to re-read as a finding, and say in the report that prose clarity was not really tested.
  • The French side is walked only when asked, and it is the whole site now rather than the labs alone: the backlog, every story page, the badges and the Help page are generated in both languages, and each menu holds one language. labs/en/ is the reference and gets the walk; labs/fr/ is checked for structure by scripts/i18n/check-structure.mjs and its generated pages for completeness by scripts/i18n/check-i18n.mjs, neither of which is doing it.
  • Lab 1.1 installs tools that are already installed, so it is read and its screenshots are checked, never performed.
  • Levels 1 and 2 have been walked green several times; Level 3 is the one that keeps finding defects, and its Lab 3.8 (monitoring, second repository) is the least often run.

$ARGUMENTS

© 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

SKILL.md and 27 other files (scripts) in .claude/skills/training-e2e of hardisgroupcom/sfdx-hardis.

  • SKILL.md
  • reference/runbook.md
  • reports/README.md
  • reports/training-e2e-report-2026-09-21.md
  • reports/training-e2e-report-2026-09-23-level-3.md
  • reports/training-e2e-report-2026-09-23.md
  • reports/training-e2e-report-2026-09-24-lab-3-10.md
  • reports/training-e2e-report-2026-09-24-level-3-recheck.md
  • reports/training-e2e-report-2026-09-25.md
  • reports/training-e2e-report-2026-09-26-level-2-simulate.md
  • reports/training-e2e-report-2026-09-26.md
  • reports/training-e2e-report-2026-09-29.md
  • reports/training-e2e-report-2026-10-05.md
  • reports/training-e2e-report-2026-10-06.md
  • scripts/auth.mjs
  • scripts/env.mjs
  • scripts/env.sh
  • scripts/mon.mjs
  • … and 10 more

Open the folder on GitHubat commit 971ac89

Compare with similar skills

sfdx-hardis Training End-to-End Test 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.

sfdx-hardis Training End-to-End Test compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
sfdx-hardis Training End-to-End Test this skillhardisgroupcom/sfdx-hardis400—~2.6kAutomated safety check: NotesAGPL-3.0
Playwright E2Eforcedotcom/salesforcedx-vscode1k—~3kAutomated safety check: PassBSD-3-Clause
CodexBar Live QAsteipete/CodexBar22k—~1.2kAutomated safety check: PassMIT
Acceptance Evidence for Deliverieslobehub/lobehub83k—~9.7kAutomated safety check: PassApache-2.0
Senior QAnicepkg/auto-company1923 repos~1.1kAutomated safety check: NotesNone
Senpi Agent QA Harnesscode-yeongyu/senpi470—~2.7kAutomated safety check: NotesMIT

Similar skills

  • Playwright E2E

    forcedotcom/salesforcedx-vscode

    writing, running, and debugging Playwright tests; creating and recreating scratch orgs (Dreamhouse, minimal, non-tracking); working with their output from github actions

    1k GitHub stars~3k tokensUpdated today
    Testing & QAAuto-check passed
  • CodexBar Live QA

    steipete/CodexBar

    Runs live QA for the CodexBar app: provider usage matrix checks through its packaged CLI, config validation and menu checks, with 1Password-backed credentials handled safely.

    22k GitHub stars~1.2k tokensUpdated today
    Testing & QAAuto-check passed
  • Verifies a delivery end to end by driving the real product on a CLI, web, desktop or iOS Simulator surface, capturing evidence and publishing a round with the lh CLI.

    83k GitHub stars~9.7k tokensUpdated today
    Testing & QAAuto-check passed
  • Senior QA

    nicepkg/auto-company

    Comprehensive QA and testing skill for quality assurance, test automation, and testing strategies for ReactJS, NextJS, NodeJS applications.

    192 GitHub starsUsed in 3 repos~1.1k tokens
    Testing & QAAuto-check: notes
  • Senpi Agent QA Harness

    code-yeongyu/senpi

    Checks changes to the senpi coding agent by driving the real CLI from source in an isolated sandbox, over RPC, terminal UI, mock model and CLI smoke channels.

    470 GitHub stars~2.7k tokensUpdated today
    Testing & QAAuto-check: notes
  • tmux Real User Testing

    QwenLM/qwen-code

    Drives Qwen Code in a real tmux session the way a user would and saves a readable step-by-step transcript of each screen for maintainers to review.

    28k GitHub stars~2.3k tokensUpdated today
    Testing & QAAuto-check passed

More from hardisgroupcom/sfdx-hardis

All 21 skills in this repo
  • 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.

    400 GitHub stars~4.7k 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.

    400 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.

    400 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).

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

    hardisgroupcom/sfdx-hardis

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

    400 GitHub stars~613 tokensUpdated today
    Auto-check passed
  • I18n Usage

    hardisgroupcom/sfdx-hardis

    Code examples and patterns for using i18n translations in sfdx-hardis source code (uxLog, uxLogTable, prompts, markers).

    400 GitHub stars~479 tokensUpdated today
    Auto-check passed

Questions about sfdx-hardis Training End-to-End Test

What does sfdx-hardis Training End-to-End Test do?

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. The point is to do the course rather than read it: in a real fork and real orgs, one lab at a time, fixing what breaks, so that every step works, every screenshot shows what the text says and no lab assumes something an earlier one did not deliver. Three sibling skills decide whether a change breaks a lab, perform the edits and handle Trailhead and badges, and this one is the only one that finds defects nobody predicted.

When should I use sfdx-hardis Training End-to-End Test?

sfdx-hardis Training End-to-End Test fits situations like: verifying that every lab in the training course still works as written; checking that screenshots in a level still match the surrounding text; re-running the course after a large change to sfdx-hardis or its VS Code extension.

How do I install sfdx-hardis Training End-to-End Test in Claude Code?

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

How do I install sfdx-hardis Training End-to-End Test in Codex?

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

Can I use sfdx-hardis Training End-to-End Test 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-e2e -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-e2e, .gemini/skills/training-e2e, .github/skills/training-e2e and .opencode/skills/training-e2e in your project.

What does sfdx-hardis Training End-to-End Test need to run?

Going by SKILL.md and its folder, sfdx-hardis Training End-to-End Test needs JavaScript and a shell for the scripts in its folder and the command-line tools its instructions call (node, yarn, bash and python). Our summary lists: A Salesforce Developer Edition org; A fork of the training repository to run the labs against. Its frontmatter pre-approves these tools: Bash, Read, Grep, Glob, Edit, Write, WebFetch, AskUserQuestion.

Does sfdx-hardis Training End-to-End Test access the network?

SKILL.md names 1 domain. As links in the text: developer.salesforce.com. This is read from the text; nothing was executed.

Is sfdx-hardis Training End-to-End Test 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does sfdx-hardis Training End-to-End Test use?

sfdx-hardis Training End-to-End Test 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 sfdx-hardis Training End-to-End Test use?

About 2.6k tokens (SKILL.md is roughly 10k 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 sfdx-hardis Training End-to-End Test?

Skills that share tags, products or a category with sfdx-hardis Training End-to-End Test: Playwright E2E (forcedotcom/salesforcedx-vscode, 1k stars), CodexBar Live QA (steipete/CodexBar, 22k stars), Acceptance Evidence for Deliveries (lobehub/lobehub, 83k stars) and Senior QA (nicepkg/auto-company, 192 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains sfdx-hardis Training End-to-End Test?

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