supply-chain-defence:harden
This skill should be used when the user asks to "harden npm config", "create .npmrc", "secure my npm setup", "configure lockfile-lint", "add preinstall script", "harden package.json", "generate security config", "add CI security checks", or "harden my project against supply chain attacks". Generates or updates configuration files only — does not install tools.
What this skill does
# Supply Chain Hardening
Generate or update project configuration files for supply chain security. This skill writes config files — it does not install tools (use `setup` for that).
## Reference Examples
Example config files are in `${CLAUDE_SKILL_DIR}/examples/`. Read the relevant example file as a template before generating each config. Adapt the template for the project's detected package manager and lockfile.
## Step 1: Detect Package Manager
Check for lockfiles in the project root:
| Lock file | Package manager | Config file |
|---|---|---|
| `pnpm-lock.yaml` | pnpm | `pnpm-workspace.yaml` |
| `package-lock.json` | npm | `.npmrc` |
| `yarn.lock` | yarn | `.yarnrc.yml` |
| None | pnpm (default) | `pnpm-workspace.yaml` |
## Step 2: Package Manager Config
Based on the detected package manager, read the corresponding example template and generate the config:
- **npm:** Read `${CLAUDE_SKILL_DIR}/examples/.npmrc` as template. Create or update the project's `.npmrc`. Preserve any existing settings that don't conflict (e.g., auth tokens, scoped registry entries). Only add/update the security-relevant settings from the template.
- **pnpm:** Read `${CLAUDE_SKILL_DIR}/examples/pnpm-workspace.yaml` as template. Add `minimumReleaseAge` to the project's existing `pnpm-workspace.yaml`. Preserve existing `packages` and other settings.
- **yarn:** Read `${CLAUDE_SKILL_DIR}/examples/.yarnrc.yml` as template. Add `npmMinimumReleaseAge` to the project's existing `.yarnrc.yml`. Preserve existing settings.
> **lockfile-lint compatibility — read before Steps 3–5.** `lockfile-lint` only
> ships **npm** and **yarn** lockfile parsers. Pointing it at a `pnpm-lock.yaml`
> or a bun lockfile fails with `Unable to find relevant lockfile parser`. For
> **pnpm and bun, skip every lockfile-lint step** below — those package managers
> verify lockfile integrity natively on a frozen-lockfile install. Wiring
> lockfile-lint into a pnpm/bun project breaks `install` (via a failing
> `preinstall`) and fails CI, so only add it for npm/yarn.
## Step 3: Lockfile-Lint Config (npm and yarn only)
**Skip this step for pnpm and bun.** For **npm or yarn**, read
`${CLAUDE_SKILL_DIR}/examples/.lockfile-lintrc` as a template and create
`.lockfile-lintrc` in the project root, substituting `path` and `type` for the
detected lockfile (`package-lock.json`/`npm` or `yarn.lock`/`yarn`).
## Step 4: package.json Security Scripts
Read `${CLAUDE_SKILL_DIR}/examples/package-json-scripts.json` as template. Add the appropriate scripts for the detected package manager:
- **npm / yarn:** add both a lockfile-lint `preinstall` (verifies the lockfile before every install) and an `audit:security` script.
- **pnpm / bun:** do **not** add a lockfile-lint `preinstall` — lockfile-lint cannot parse these lockfiles, so a `preinstall` would fail and break every install. Add only an `audit:security` script using the package manager's native audit (`pnpm audit` / `bun audit`); integrity is verified natively on a `--frozen-lockfile` install.
Use the package manager to add the scripts where possible (e.g., `npm pkg set` / `pnpm pkg set`). If that's not feasible, edit `package.json` directly — but only the `scripts` field, never dependency fields.
## Step 5: CI Workflow (GitHub Actions)
Ask the user if they want a CI security workflow. If yes:
Read `${CLAUDE_SKILL_DIR}/examples/github-actions/supply-chain-check.yml` as template. Create `.github/workflows/supply-chain-check.yml`, adapting for the detected package manager:
- Install with the frozen-lockfile flag (`npm ci` / `pnpm install --frozen-lockfile` / `yarn install --immutable`) and run the package manager's audit.
- Include the **lockfile-lint** step only for **npm/yarn**; omit it for pnpm/bun (it fails CI there).
- `npm audit signatures` requires an npm lockfile — include it only for npm/yarn; it errors in pnpm/bun-only projects.
## Verification
After making changes, summarise what was created/updated and remind the user to:
1. Review the changes
2. Commit the new config files
3. Restart Claude Code if hooks need to pick up new config settings
Related in Cloud & DevOps
appbuilder-action-scaffolder
IncludedCreate, implement, deploy, and debug Adobe Runtime actions with consistent layout, validation, and error handling. Use this skill whenever the user needs to add actions to an App Builder project, understand action structure (params, response format, web/raw actions), configure actions in the manifest, use App Builder SDKs (State, Files, Events, database), deploy and invoke actions via CLI, debug action issues, or implement patterns such as webhook receivers, custom event providers, journaling consumers, large payload redirects, action sequence pipelines, and Asset Compute workers. Also trigger when users mention serverless functions in Adobe context, action logging, IMS authentication for actions, or cron-style scheduled actions.
orchestrating-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. Use this skill when the user needs a multi-step Data Cloud pipeline, cross-phase troubleshooting, or data space and data kit management. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase sf data360 workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching phase-specific skill), the task is STDM/session tracing/parquet telemetry (use observing-agentforce), standard CRM SOQL (use querying-soql), or Apex implementation (use generating-apex).
github-project-automation
IncludedAutomate GitHub repository setup with CI/CD workflows, issue templates, Dependabot, and CodeQL security scanning. Includes 12 production-tested workflows and prevents 18 errors: YAML syntax, action pinning, and configuration. Use when: setting up GitHub Actions CI/CD, creating issue/PR templates, enabling Dependabot or CodeQL scanning, deploying to Cloudflare Workers, implementing matrix testing, or troubleshooting YAML indentation, action version pinning, secrets syntax, runner versions, or CodeQL configuration. Keywords: github actions, github workflow, ci/cd, issue templates, pull request templates, dependabot, codeql, security scanning, yaml syntax, github automation, repository setup, workflow templates, github actions matrix, secrets management, branch protection, codeowners, github projects, continuous integration, continuous deployment, workflow syntax error, action version pinning, runner version, github context, yaml indentation error
sf-datacloud
IncludedSalesforce Data Cloud product orchestrator for connect→prepare→harmonize→segment→act workflows. TRIGGER when: user needs a multi-step Data Cloud pipeline, asks to set up or troubleshoot Data Cloud across phases, manages data spaces or data kits, or wants a cross-phase `sf data360` workflow. DO NOT TRIGGER when: work is isolated to a single phase (use the matching sf-datacloud-* skill), the task is STDM/session tracing/parquet telemetry (use sf-ai-agentforce-observability), standard CRM SOQL (use sf-soql), or Apex implementation (use sf-apex).
fabric-cli
IncludedUse this skill for Fabric.so CLI workflows with the `fabric` terminal command: diagnose/install/login, search or browse a Fabric library, save notes/links/files, create folders, ask the Fabric AI assistant, manage tasks/workspaces, generate shell completion, check subscription usage, produce JSON output, and use Fabric as persistent agent memory. Do not use for Microsoft Fabric/Azure/Power BI `fab`, Daniel Miessler's Fabric framework, Python Fabric SSH, Fabric.js, or textile/fashion fabric.
lark
IncludedLark/Feishu CLI skills: lark-cli operations for docs, markdown, sheets, base, calendar, im, mail, task, okr, drive, wiki, slides, whiteboard, apps, approval, attendance, contact, vc, minutes, event. Use when the user needs to operate Lark/Feishu resources via lark-cli, send messages, manage documents, spreadsheets, calendars, tasks, OKRs, deploy web pages, or any Feishu/Lark workspace operations.