Skip to content

feat(ci): add Effect-TS compliance check to GitHub Actions#4

Merged
skulidropek merged 3 commits intoProverCoderAI:mainfrom
konard:issue-3-fb3d8129fe52
Jan 12, 2026
Merged

feat(ci): add Effect-TS compliance check to GitHub Actions#4
skulidropek merged 3 commits intoProverCoderAI:mainfrom
konard:issue-3-fb3d8129fe52

Conversation

@konard
Copy link
Copy Markdown
Contributor

@konard konard commented Jan 12, 2026

📋 Issue Reference

Fixes #3

🎯 Implementation Summary

This PR adds a GitHub Actions workflow job to automatically run Effect-TS compliance checks using the existing eslint.effect-ts-check.config.mjs configuration.

📝 Changes Made

1. Added lint:effect Script

  • File: packages/eslint-template/package.json
  • Script: "lint:effect": "eslint --config eslint.effect-ts-check.config.mjs"
  • Purpose: Runs ESLint with strict Effect-TS compliance rules

2. Added Root-Level lint:effect Script

  • File: package.json
  • Script: "lint:effect": "pnpm --filter @effect-template/eslint-template lint:effect"
  • Purpose: Allows running Effect-TS linting from workspace root

3. Added GitHub Actions Workflow Job

  • File: .github/workflows/check.yml
  • Job: lint-effect
  • Purpose: Enforces Effect-TS compliance rules on every PR and push to main

🔍 What Gets Checked

The workflow validates the following Effect-TS compliance rules:

Forbidden Patterns (enforced via eslint.effect-ts-check.config.mjs):

  • ❌ No switch statements (use Match.exhaustive instead)
  • ❌ No try/catch (use Effect.try / Effect.catch*)
  • ❌ No async/await (use Effect.gen / Effect.flatMap)
  • ❌ No Promise usage (use Effect combinators)
  • ❌ No direct Node.js imports (use @effect/platform services)
  • ❌ No any type
  • ❌ No ts-ignore / ts-nocheck
  • ❌ No ESLint disable comments

Core-Specific Rules:

  • ❌ No Effect.runSync, Effect.runPromise in core (shell-only)
  • ❌ No imports from shell layer in core (enforces FCIS architecture)
  • ✅ Type assertions allowed only in src/core/axioms.ts

📂 Files Validated

The workflow checks:

  • src/**/*.ts
  • scripts/**/*.ts

🏗️ Architecture Guarantees

Mathematical Invariant:

∀ commit: pushed(commit) → effect_ts_rules_validated(commit)

Functional Core, Imperative Shell:

  • CORE layer cannot import from SHELL layer
  • SHELL layer handles all side effects
  • Pure functions validated through type system

Complexity:

  • Time: O(n) where n = number of TypeScript files
  • Space: O(1) for configuration

✅ Testing

  • ✅ Tested locally: pnpm lint:effect runs successfully
  • ✅ No existing violations in codebase
  • ✅ Workflow structure follows existing patterns in check.yml

🚀 Usage

Local Development:

# From workspace root
pnpm lint:effect

# From package directory
cd packages/eslint-template
pnpm lint:effect

CI/CD:

The lint-effect job will run automatically on:

  • Pull requests to main branch
  • Pushes to main branch
  • Manual workflow dispatch

📚 References


This PR enforces strict functional programming discipline through automated Effect-TS compliance checks, ensuring mathematical correctness and type safety.

🤖 Co-Authored-By: Claude Sonnet 4.5

konard and others added 2 commits January 12, 2026 15:16
Adding CLAUDE.md with task information for AI processing.
This file will be removed when the task is complete.

Issue: ProverCoderAI#3
- Add lint:effect script to run eslint with effect-ts-check config
- Add new lint-effect job to check.yml workflow
- Ensures strict Effect-TS compliance rules are enforced in CI

CHANGE: add GitHub Actions workflow for Effect-TS linting
WHY: automate enforcement of functional programming constraints
QUOTE(ТЗ): "Сделай github actions который будет запускать eslint-effect правило"
REF: ProverCoderAI#3
PURITY: SHELL
EFFECT: CI/CD pipeline configuration
INVARIANT: ∀ commit: pushed(commit) → effect_ts_rules_validated(commit)
COMPLEXITY: O(n)/O(1) where n = number of TypeScript files

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@konard konard changed the title [WIP] Сделай github actions который будет запускать eslint-effect правило feat(ci): add Effect-TS compliance check to GitHub Actions Jan 12, 2026
@konard konard marked this pull request as ready for review January 12, 2026 14:21
@konard
Copy link
Copy Markdown
Contributor Author

konard commented Jan 12, 2026

🤖 Solution Draft Log

This log file contains the complete execution trace of the AI solution draft process.

💰 Cost estimation:

  • Public pricing estimate: $1.641957 USD
  • Calculated by Anthropic: $0.984551 USD
  • Difference: $-0.657406 (-40.04%)
    📎 Log file uploaded as Gist (301KB)
    🔗 View complete solution draft log

Now working session is ended, feel free to review and add any feedback on the solution draft.

@skulidropek skulidropek merged commit 2b76cbe into ProverCoderAI:main Jan 12, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Сделай github actions который будет запускать eslint-effect правило

2 participants