Skip to content

Claude (on-mention assistant) #7

Claude (on-mention assistant)

Claude (on-mention assistant) #7

Workflow file for this run

name: Claude code review (Reusable)
on:
workflow_dispatch:
inputs:
review_instructions:
description: 'Custom instructions for Claude code review'
required: false
default: |
- Convention over Configuration with Functional Purity - This framework/project will be a true integrated system for Data Engineering & Data pipelines - which collectively works with other libraries, but pieces built specifically for each other to Data Engineering that work as one cohesive whole. Framework also must be unified abstraction layer. Framework makes best architectural decisions as well. Wherever applicable Data Engineers interact with APIs & exposed patterns/ layers not the underlying logic which libraries gives us to use.
- Best scala functional programming design patterns. Best practices of SOLID patterns, creational, structural & behavioral design patterns. Best scala functional programming design patterns - all best possible patterns that suits us & solve problems may be Kleisl etc.
- We are writing data pipelines. So say goodbye to config/metadata chaos! Let Scala’s type & effect systems co-author them with you. We want to show how we built a contract-first, pluggable platform using Giter8, Refined, Cats Effect, ZIO, Kyo & Caprese ( Kyo & Caprese experimental only) - delivering compile-time guarantees and fiber-safe execution.
- What if your data platform stopped relying on configuration-driven / metadata-driven and postmortems - and instead enforced correctness, traceability, and effect boundaries at compile time?
- We want to build a production-ready data pipeline archetype system in Scala. We want to use Giter8 templates to scaffold pipelines that are contract-driven, type-safe, effectful, and pluggable - all enforced through the Scala type system and effect libraries.
- 📦 Giter8 templates bootstrap consistent, compile-time safe projects • 🛡️ Refined types validate configuration before runtime • ✅ Cats ValidatedNel catches multi-rule violations in DQ checks • 🔌 Type classes enable pluggable validation and ingestion • ⚙️ ZIO Layers and Cats Effect offer fiber-safe orchestration • 🚀 Trait-based runners switch between Spark, Flink, and Kafka • 📊 Data Quality and custom rules enforce data contract quality at runtime • 🧠 Experimental: Kyo - tracks multiple effects via intersection types and Caprese - capture-checking tracks capabilities
- Use potential & power of Scala ecosystem but not over engineer it.
- All possible USPs of Scala - Monads, Pattern Matching, Generics, Variance, Type classes, Type class patterns, Self Types, Structural types, F-Bounded Polymorphism, Higher-Kinded Types, Reflections, Lazy Evals, Concurrency with Futures, Implicits. All we need to make best use of yet keeping simplicity by not over engineering it. Apply only where they fit perfectly to solve that bit of problem or make other things relevant & elegant.
- For project specific types create plenty of type aliases. Create type class patterns etc.
- Use Zio & Cats-Effect separately because we are providing an option of Effect system. Use cats core as well - Semigroups, Monoids, Monads, Functors, Applicatives, Creative Type class patterns etc.
- We need to be creative, innovative & something like Wow such a thing can be achieved who'd have never thought about such things in Data Engineering Data Pipelines.
- No Over Engineering - Keep simplicity, scalable, understandable, adaptable yet creative - We need to be creative, innovative & something like Wow such a thing can be achieved who'd have never thought about such things in Data Engineering Data Pipelines.
- Code quality and best practices
- Potential bugs or issues
- Performance considerations
- Security concerns
- Test coverage
- Documentation clarity
- Overall maintainability
- Give revised code of each & every improvement from above points
- Give revised code of all suggest improvements
- Give revised improvements in project structure as well
# Prevent multiple Claude reviews for the same PR from running simultaneously
concurrency:
group: ${{ github.repository }}-claude-review-${{ github.event.pull_request.number || github.event.issue.number }}
cancel-in-progress: false
jobs:
claude-review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
issues: read
id-token: write
steps:
- name: Checkout PR
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha || github.event.issue.pull_request.head.sha }}
- name: Run Claude code improvements
uses: anthropics/claude-code-action@beta
with:
mode: agent
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
direct_prompt: ${{ github.event.inputs.review_instructions }}