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.
GitHub Actions (Recommended)
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:
- Schema validation (
effector.tomlstructure) - Type checking (all types resolve against the 40-type catalog)
- 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:

Next Steps
- Installation — get the CLI set up
- Security & Auditing — add permission auditing to CI
- Examples — see validation in action