agentleFS
SwastikPandey1024SwastikPandey1024/agentic-engineering-os/.agents/skills/ci-cd/SKILL.md

ci-cd

Skill1 starsChanged 3 months agoMITView on GitHub

Continuous Integration & Continuous Deployment pipeline authoring, GitHub Actions automation, automated testing gates, and release workflows.

  • Reads credentials
  • Installs packages

38 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use caching, api-versioning and 8 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • wpankSkill

    caching

    Caching strategies, invalidation, eviction policies, HTTP caching, distributed caching, and anti-patterns. Use when designing cache layers, choosing eviction policies, debugging stale data, or optimizing read-heavy workloads.

    Also in 5 projects that use this

  • wpankSkill

    api-versioning

    API versioning strategies — URL path, header, query param, content negotiation — with breaking change classification, deprecation timelines, migration patterns, and multi-version support. Use when evolving APIs, planning breaking changes, or managing version lifecycles.

    Also in 3 projects that use this

  • SentrySkill

    feature-flags

    Gate a Sentry feature behind a FlagPole feature flag. Use when adding a feature flag, registering a flag in temporary.py, checking a flag from Python or the frontend, enabling a flag in tests, or asking where FlagPole rollout config lives. Trigger on "add a feature flag", "gate this behind a flag", "register a flag", "features.has", "api_expose", "OrganizationFeature", "ProjectFeature", "FlagPole".

    Also in 4 projects that use this

  • OpenAISkill

    auth

    Authentication integration guidance — Clerk (native Vercel Marketplace), Descope, and Auth0 setup for Next.js applications. Covers middleware auth patterns, sign-in/sign-up flows, and Marketplace provisioning. Use when implementing user authentication.

    Also in 4 projects that use this

  • mylee04Skill

    shell-scripting

    Shell scripting best practices for cross-platform CLI tools

    Also in 3 projects that use this

  • MicrosoftSkill

    authentication

    Wire this in whenever the app uses or connects to data — records, a database, entities, per-user data, row-level security — or when the user wants sign-in, accounts, login, or protected pages. Rayfin data is always accessed as an authenticated user, so **data implies auth**; only a static page over public data skips it. The starter ships as a no-auth "hello world" that previews with no backend, and the full Fabric auth scaffolding is already in the project — this skill wires it in: AuthProvider + bootstrapAuth in main.tsx, the route guard in App.tsx, the sign-in page, sign-out, and the env/deploy requirement. Triggers: auth, authentication, sign in, sign-in, login, log in, sign out, logout, account, user, identity, protect route, require login, gated page, data, database, records, per-user, row-level security, who is the current user, Fabric auth, Entra.

    Also in 4 projects that use this

The file

We split this skill into the rules it gives an agent

5 rules. 0 are common, 3 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 25 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use this skill when:

    line 10
  2. Distinctive:

    Do NOT add bloated or slow CI steps for tools not actively configured in the project.

    line 15
  3. Very specific:

    NEVER hardcode secrets in YAML: Always reference ${{ secrets.MY_SECRET }}.

    line 130
  4. Very specific:

    NEVER use npm install in CI: Always use npm ci for deterministic, clean package installation based strictly on package-lock.json.

    line 131
  5. Distinctive:

    NEVER allow CI to fail silently: Ensure non-zero exit codes fail the job.

    line 132

“Common” is measured: kept by at least 6 in 10 of the 25 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

CI/CD Skill

1. When Should I Use This?

Use this skill when:

  • Creating or updating GitHub Actions workflows (.github/workflows/ci.yml).
  • Setting up automated formatting, linting, type-checking, and test validation gates on Pull Requests and pushes to main.
  • Configuring automated container builds, artifact releases, or cloud deployments.

Do NOT add bloated or slow CI steps for tools not actively configured in the project.


2. What Should I Inspect First?

  1. Existing Workflows: Inspect .github/workflows/ for existing jobs and secrets.
  2. Project Tooling: Inspect pyproject.toml, package.json, or Makefile to see exact local test and lint commands (ruff, pytest, npm test, tsc).
  3. Repository Secrets: Identify required environment secrets (e.g. DOCKERHUB_TOKEN, RENDER_API_KEY, VERCEL_TOKEN).

3. What Workflow Should I Follow?

Format & Lint (Ruff, ESLint)
              ↓
Type Checking (Mypy, TypeScript tsc)
              ↓
Unit & Integration Tests (Pytest, Vitest)
              ↓
Security Audit / Secret Scan
              ↓
Container Build / Artifact Packaging
              ↓
Automated Deployment (Main branch only)

Production GitHub Actions Workflow Template (ci.yml)

# .github/workflows/ci.yml
name: Continuous Integration

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  backend-lint-and-test:
    name: Backend CI
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4

      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.12"
          cache: "pip"

      - name: Install Dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -e ".[dev]"

      - name: Lint and Format Check (Ruff)
        run: |
          ruff check .
          ruff format --check .

      - name: Run Pytest Suite
        run: |
          pytest -v --tb=short --cov=app --cov-report=xml

  frontend-lint-and-test:
    name: Frontend CI
    runs-on: ubuntu-latest
    if: hashFiles('frontend/**') != ''
    defaults:
      run:
        working-directory: frontend
    steps:
      - name: Checkout Code
        uses: actions/checkout@v4

      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: "npm"
          cache-dependency-path: frontend/package-lock.json

      - name: Install Dependencies
        run: npm ci

      - name: TypeScript Type Check
        run: npm run type-check

      - name: Lint Check
        run: npm run lint

      - name: Run Unit Tests
        run: npm test -- --run

4. What Decisions Should I Make?

Pipeline RequirementImplementation Decision
Dependency CachingUse native actions caching (cache: 'pip' or actions/cache) to keep CI runs under 2 minutes.
Job ParallelizationRun backend and frontend CI jobs concurrently in separate runner instances.
Branch ProtectionRequire all CI checks to pass before pull requests can be merged into main.
Deployment GateRestrict deployment jobs strictly to github.ref == 'refs/heads/main' with explicit environment protection rules.

5. What Should I Avoid?

  • NEVER run slow end-to-end browser tests on every single commit: Separate heavy integration or E2E tests into nightly or scheduled triggers.
  • NEVER hardcode secrets in YAML: Always reference ${{ secrets.MY_SECRET }}.
  • NEVER use npm install in CI: Always use npm ci for deterministic, clean package installation based strictly on package-lock.json.
  • NEVER allow CI to fail silently: Ensure non-zero exit codes fail the job.

6. How Should I Verify Success?

# 1. Validate YAML syntax locally
python -c "import yaml; yaml.safe_load(open('.github/workflows/ci.yml'))"

# 2. Replicate CI commands locally before pushing
ruff check .
pytest -v
npm run type-check # (if frontend exists)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.