Skip to content
Back to skills

411 Github Actionsinstructions 7ac4f28b

ASecurity

Project-specific standards for GitHub Actions workflows in this repository

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
documentationnodeazuregitci/cdsecuritydocumentation

Works with

  • vscode

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 411-github-actionsinstructions_7ac4f28b --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 411 Github Actionsinstructions 7ac4f28b?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 411 Github Actionsinstructions 7ac4f28b
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-411-github-actionsinstructions-7ac4f28b/badge)](https://www.skillsdirectory.com/skills/tools-only-411-github-actionsinstructions-7ac4f28b)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
applyTo: ".github/workflows/*.yml,.github/workflows/*.yaml"
description: "Project-specific standards for GitHub Actions workflows in this repository"
---

# GitHub Actions Workflow Standards

Standards for creating and maintaining CI/CD workflows in this repository.
For general GitHub Actions best practices, rely on
[GitHub Actions documentation](https://docs.github.com/en/actions).

## Project Conventions

### Runner and Node.js

- **Runner**: `ubuntu-latest` for all jobs
- **Node.js**: Version `22` with `npm` caching
- **Dependencies**: `npm ci` (not `npm install`)

### Permissions

- Set `permissions` at workflow level (least privilege)
- Default: `contents: read`
- Add write permissions only when needed (e.g., `issues: write` for freshness checks)

### Triggers

- **PR validation**: Trigger on `pull_request` to `main`
- **Post-merge**: Trigger on `push` to `main`
- **Path filters**: Use `paths:` to scope workflows to relevant files
- **Manual**: Include `workflow_dispatch` for on-demand runs
- **Scheduled**: Use `schedule` with cron for periodic checks (e.g., weekly freshness)

### Action Versions

- Pin to **major version tags** (e.g., `@v4`), not `@main` or `@latest`
- Use current versions:

| Action | Version |
|--------|---------|
| `actions/checkout` | `@v4` |
| `actions/setup-node` | `@v4` |
| `actions/upload-artifact` | `@v4` |
| `actions/download-artifact` | `@v4` |
| `actions/cache` | `@v4` |

### Naming and Structure

- **Workflow file**: Descriptive kebab-case (e.g., `docs-freshness.yml`, `agent-validation.yml`)
- **Workflow `name`**: Human-readable title
- **Job `name`**: Clear, concise label
- **Step `name`**: Descriptive action (e.g., "Validate agent frontmatter")
- Start with a comment block describing purpose and trigger conditions

### Concurrency

Use `concurrency` to prevent duplicate runs:

```yaml
concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
```

## Existing Workflows

| Workflow | Purpose | Trigger |
|----------|---------|---------|
| `lint.yml` | Markdown lint + code quality | PR + push to main |
| `agent-validation.yml` | Agent/skill/VS Code config validation | Changes to agents/skills |
| `docs-freshness.yml` | Doc count/reference drift detection | Push to main + weekly |
| `link-check.yml` | Broken link detection | Changes to docs/agents |
| `create-release.yml` | Automated release creation | Manual dispatch |
| `avm-version-check.yml` | Azure Verified Module version checks | Scheduled |
| `azure-deprecation-tracker.yml` | Azure deprecation monitoring | Scheduled |

## Validation Scripts

Workflows run these project validators:

| Script | Purpose |
|--------|---------|
| `validate-artifact-templates.mjs` | Artifact H2 heading compliance |
| `validate-cost-estimate-templates.mjs` | Cost estimate heading compliance |
| `validate-agent-frontmatter.mjs` | Agent YAML frontmatter validation |
| `validate-skills-format.mjs` | Skill format validation |
| `validate-no-deprecated-refs.mjs` | Deprecated reference detection |
| `validate-vscode-config.mjs` | VS Code configuration validation |
| `check-docs-freshness.mjs` | Documentation freshness checks |

## Security

- Use OIDC for Azure authentication (no long-lived secrets)
- Use `permissions: contents: read` as the default
- Enable Dependabot for action version updates
- Never print secrets or tokens in workflow logs

## Patterns to Avoid

| Anti-Pattern | Solution |
|-------------|----------|
| Pinning to `@main` or `@latest` | Use `@v4` major version tags |
| `npm install` in CI | Use `npm ci` for deterministic installs |
| Missing `permissions` block | Always declare least-privilege permissions |
| Broad triggers (no path filter) | Scope with `paths:` to relevant files |
| Duplicate validation logic | Reuse existing validator scripts |
| `actions/upload-artifact@v3` | Use `@v4` (v3 is deprecated) |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…