Skip to content
View DeibyGS's full-sized avatar
🎯
Focusing
🎯
Focusing

Block or report DeibyGS

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
DeibyGS/README.md

Deiby Gorrin

Junior Python & TypeScript Developer · AI & LLM applications · open source maintainer (applyr, ClaudeStat)

I build tools for AI-assisted development with spec-driven workflows — human architecture, AI acceleration, everything measured.

Typing SVG

 

What I Build

Project What it does Stack Commits PRs ⭐
WodRival (private) Competitive fitness SaaS — scored workouts, live leaderboards, seasonal leagues, club management Next.js, Supabase, Tailwind, TypeScript 705 446 —
ClaudeStat Real-time monitor for AI dev sessions — cost, tokens, quota, MCP server. npm Node.js, TypeScript, MCP 198 80 34
Conductor (private) Multi-tenant ERP with Kafka microservices and async consumer pipeline Python, FastAPI, Docker, Kafka 169 3 —
applyr Job application tracker CLI — scoring, ATS CVs, duplicate detection. PyPI Python, SQLite, stdlib CLI 156 166 4
Gmail AI Agent AI email classification and automated responses Python, FastAPI, React, TypeScript, Gemini 65 28 0
EvoluFit Mobile Fitness tracking with offline sync React Native, Expo, TypeScript 35 14 0
EvoluFit Frontend Data visualization, community gamification, glassmorphism UI React 19, Vite, JavaScript, SCSS 44 5 0
EvoluFit Backend REST API — session logging, 1RM calc, health metrics, social Node.js, Express, MongoDB 82 7 0
Questionnaire Interactive quiz app for DAM/DAW exam prep TypeScript, Vite, SCSS 30 3 2
Portfolio deiby.dev — terminal-style personal site, bilingual ES/EN React 19, Vite, Tailwind, JavaScript 53 23 0
CatcherAuto Android automation — pixel scanning + ML Kit OCR Kotlin, ML Kit, Jetpack Compose 10 6 0
TechToJob Landing Competition landing for Torneo #2 — animated, i18n Next.js, React 19, Tailwind, TypeScript 26 25 1

Also: claudestat-mcp-bundle (standalone MCP server for ClaudeStat) · claudestat-alert-slack (Slack alerting) · claudestat-exporter-prometheus (Prometheus exporter)

 

Right Now

  • Looking for opportunities — junior/fullstack roles with AI focus
  • Maintaining claudestat and applyr — open source developer tools
  • Building WodRival — a competitive fitness SaaS (CrossFit / Hyrox): every workout is scored, ranked and comparable, with live leaderboards, seasonal leagues, club management and Stripe subscriptions

 

By the Numbers

3,100+ AI agent sessions across 23 projects 1,758 commits · 806 pull requests
7 models across 2 tools Published on npm + PyPI
19 automated hooks protecting branches, PRs and high-risk code 50+ custom tools — skills, commands, agents
1,230 tests in applyr · 2,952 tests in WodRival 41 ⭐ across public repos

All metrics tracked by ClaudeStat.

 

Publications

Claude Code from Zero — Amazon KDP (August 2026)
Practical guide to AI-assisted software development with Claude Code.
Amazon

 

How I Work

Spec-driven, not vibe-driven. Every feature starts as a living spec and runs through human gates that close the loop with drift detection — it's a feedback cycle, not a one-way pipeline. The spec is the source of truth; the AI implements, but my architecture and scope decisions stay human.

flowchart LR
    C[Constitution<br/>immutable rules] --> S[Specify<br/>assumptions first]
    S --> A[Assumptions Surface<br/>AI declares implicit choices]
    A --> S
    S -->|HUMAN GATE| P[Plan<br/>data-model + contracts]
    P -->|contracts LOCKED| T[Tasks<br/>atomic, test-first]
    T -->|HUMAN GATE| I[Implement<br/>AI, constrained by spec]
    I --> V[Validate<br/>traceability + drift]
    V -->|drift found| AM[/Amend<br/>same command, auto-detected/]
    AM --> S
    V -->|low risk| M[PR → Merge]
    V -->|high risk| X[Adversarial Verify<br/>fresh context, contract only]
    X -->|defect found| AM
    X -->|no defect| M
Loading

Without a spec, the AI makes thousands of micro-decisions silently. With one, those decisions are made explicitly by me — before a single line of code — and validated instead of trusted.

Not tied to one vendor's magic, either: I run this pipeline in two different AI coding tools side by side, from one shared template source — a feature can start in one and finish in the other without translating anything.

flowchart LR
    T[("Shared templates<br/>constitution · spec · plan · tasks")]
    T --> CC["Claude Code — /sdd"]
    T --> OC["OpenCode — /sdd"]
    CC <-.->|same repo,<br/>same spec files| OC
Loading

MoSCoW priorities — every acceptance criterion is one of these:

Priority Meaning Ships
[MUST] Non-negotiable, testable, locked Always
[SHOULD] Expected if scope holds When cheap
[COULD] Nice to have, optional When time allows
[WONT] Explicitly out of scope Never

The tradeoff I accept:

  • + An extra hour writing a spec saves three days of agent thrash (GitHub Engineering)
  • + Contracts freeze after planning — no signature drift mid-build
  • + Validate catches drift early: mismatched contracts, schema, untested [MUST] ACs
  • − Spec-first costs time before code exists — I skip it for one-line fixes and throwaway spikes

 

Two testers, on purpose

Tests written by whoever just read the implementation only prove the code does what it does — not what it should. That's circular verification, and it's the most common failure mode of AI-written tests.

So high-risk changes get a second pass from a verifier that runs in a fresh context and never sees the diff — only the acceptance criteria, the file paths and the public signatures. Independence is enforced structurally, not requested politely.

Standard tester Adversarial verifier
Source of truth The modified files The acceptance criteria
Sees the implementation Yes No — by design
Goal Cover the behavior Falsify it
On failure Pipeline blocked Logged as BUG-XXX, PR continues

Findings deliberately don't block the merge: blocking creates pressure to weaken the test, which is the one thing the verifier is forbidden to do. They ship as reports and get fixed in a separate PR.

No acceptance criteria, no run — without a contract it degrades into reading the code and testing what it already does. The gate is narrow on purpose: auth · money · data integrity · migrations · state machines · idempotency · offline sync. Everything else skips it.

 

AI Stack, Tooling & Background

AI Development Stack

Layer Details
Primary Claude Code — Opus 5, Sonnet 5, Haiku 4.5
Secondary OpenCode Go — DeepSeek v4 Flash, GLM-5, Mimo v2.5
MCP Servers ClaudeStat (custom), GitHub, Supabase, Engram, Context7, Gmail
Custom Skills 12 commands + 1 custom skill · 52 curated knowledge skills (CC) · 8 skills + 5 commands (OC)
Custom Agents 12 definitions — 11 specialized (backend, frontend, DB, DevOps, testing, adversarial verification, docs, git, design, planning) + 1 orchestrator
Hooks 19 quality gates across 6 lifecycle events
Project contexts 7 — per-repo stack, conventions and gotchas loaded on demand

Key commands: sdd (spec-driven dev) · dev (pipeline orchestrator) · git (safe operations) · chained-pr (split large PRs) · adversarial-test (hostile verification) · day-start/day-close (session persistence)

The hooks are the part that actually holds. Rules I have to remember get forgotten; rules the harness enforces don't. Editing a file matching auth|permission|migration|billing|… fires the adversarial gate automatically, and a PR over 500 changed lines triggers a split before it's opened — neither depends on me noticing.

 

Education

Programme Institution Status
Grado Superior DAM The Power, Madrid Completed 2026
Master Web Full Stack The Power, Madrid Completed 2026
Máster AI Engineer The Power, Madrid In progress (since Aug 2026)
Professional Uses of Generative AI BeJob, IBM Completed
Oracle SQL-PL/SQL Developer Cas-Training, Madrid Completed

IBM AI Fundamentals Oracle SQL 23ai OCI AI Foundations OCI Data Science

 

Experience

Internship — Mercanza (2026)
Developer on Conductor, a modular multi-tenant ERP. Built the Sales Emulator (Kafka producer) and Sales Manager (async consumer with PostgreSQL). 11-person team using GitLab, Docker, Kafka, FastAPI.

 

Portfolio  LinkedIn  Email

Madrid, Spain — Available for remote or on-site work

Pinned Loading

  1. claudestat claudestat Public

    Real-time execution trace and cost intelligence for Claude Code

    TypeScript 34 4

  2. questionnary questionnary Public

    Interactive quiz app for DAM/DAW students to prepare for final exams. Built with TypeScript, SCSS, and Vite.

    TypeScript 2

  3. dev-portfolio-deiby dev-portfolio-deiby Public

    Portfolio personal de deiby.dev — terminal-inspired, bilingue (ES/EN). React 19, Vite y Tailwind CSS, desplegado en Vercel.

    JavaScript

  4. evolufit-mobile evolufit-mobile Public

    App movil de EvoluFit (TFG DAM) — React Native y Expo con TypeScript: seguimiento de entrenamientos y sincronizacion offline.

    TypeScript

  5. gmail-ai-agent gmail-ai-agent Public

    AI email assistant — classifies Gmail messages into 9 categories and builds a daily briefing. Python, FastAPI, React, TypeScript, Google Gemini.

    TypeScript

  6. applyr applyr Public

    CLI job application tracker designed for AI coding agents

    Python 4