Automate validation, type checking, and auditing in your pipeline.

CI/CD Integration

Every manifest change should be validated before it merges. Effector provides multiple ways to integrate with your CI pipeline.

The simplest path — use the official GitHub Action:

name: Effector Validate
on: [push, pull_request]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: '22'

      - uses: effectorHQ/effector-action@v1
        with:
          path: '.'
          fail-on-warnings: 'true'

The action runs:

  1. Schema validation (effector.toml structure)
  2. Type checking (all types resolve against the 40-type catalog)
  3. Permission verification (optional, with audit: 'true')

Errors appear as inline PR annotations — directly on the lines that need fixing.

Manual CI Setup

If you prefer explicit control, install and run the CLI directly:

name: Effector CI
on: [push, pull_request]

jobs:
  validate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: '22'

      - name: Install effector
        run: npm install -g @effectorhq/core

      - name: Validate manifest
        run: effector-core validate .

      - name: Check types
        run: effector-core check-types .

      - name: Audit permissions
        run: npx @effectorhq/audit check --strict .

      - name: Compile MCP output
        run: effector-core compile . -t mcp

GitLab CI

effector-validate:
  image: node:22
  stage: test
  script:
    - npm install -g @effectorhq/core
    - effector-core validate .
    - effector-core check-types .
  rules:
    - changes:
        - effector.toml
        - SKILL.md

Pre-commit Hook

Validate locally before pushing:

# .git/hooks/pre-commit
#!/bin/sh
npx @effectorhq/core validate . || exit 1

Or with Husky:

{
  "husky": {
    "hooks": {
      "pre-commit": "npx @effectorhq/core validate ."
    }
  }
}

JSON Output for CI Parsing

All CLI tools support --format json for machine-readable output:

npx @effectorhq/core validate . --format json
{
  "valid": true,
  "errors": [],
  "warnings": [],
  "types": {
    "input": "CodeSnippet",
    "output": "ReviewReport",
    "context": ["Repository"]
  }
}

Parse this in CI to build custom checks, dashboards, or notifications.

Multi-Tool Monorepo

For monorepos with multiple tools, validate each one:

- name: Validate all tools
  run: |
    for dir in tools/*/; do
      echo "Validating $dir"
      effector-core validate "$dir" || exit 1
    done

Badge Generation

Add a validation badge to your README:

npx @effectorhq/core badge .

This outputs a shields.io URL you can add to your README:

![effector validated](https://img.shields.io/badge/effector-validated-brightgreen)

Next Steps