feat(ciclo-app): MVP Fase 1 completo — Ciclo das Estações#563
feat(ciclo-app): MVP Fase 1 completo — Ciclo das Estações#563bobzezo-iai wants to merge 22 commits intoSynkraAI:mainfrom
Conversation
24 stories across 4 epics implemented: Epic 1 - Infrastructure: - Turborepo monorepo with pnpm workspaces - 3 Next.js 15 apps (web, admin, landing) - 6 shared packages (ui, database, auth, config, email, utils) - Prisma ORM with PostgreSQL/Supabase (21+ models, 8 enums) - GitHub Actions CI (lint + typecheck + build + E2E) Epic 2 - Core CRUD: - Events CRUD with Server Actions - Ticket types, activities, facilitators management - Design System with seasonal theming (CSS custom properties) - Landing page with lead capture and UTM tracking - Public event pages with SSR/ISR Epic 3 - Checkout & Payments: - 3-step registration flow with CPF validation - MercadoPago (PIX/Boleto) + Stripe (Card) via fetch() - HMAC webhook signature validation - Cancellation policy engine (15d=80%, 7-14d=50%, <7d=0%) - QR Code with HMAC-SHA256 signed payloads - Check-in system with offline verification - Sun House room accommodation management Epic 4 - Communication & Polish: - Email service via Resend (confirmation, reminders, feedback) - Vercel cron for daily event reminders - Admin dashboard with KPIs and CSS-only charts - CRM: participant list, notes, role promotion, CSV export - SEO: sitemap, robots.txt, JSON-LD, Open Graph - PWA: Service Worker, install banner, offline fallback - E2E tests with Playwright (7 spec files, 17 tests) - Operational runbook and launch checklist - Production seed script Tech highlights: - Zero external SDK dependencies (all via fetch()) - Values in centavos internally, R$ display - RBAC: USER, THERAPIST, FACILITATOR, ADMIN - NextAuth.js v5 with credentials provider - ISR for public pages (300s revalidation) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Updated core-config.yaml, install-manifest.yaml, entity-registry.yaml - Added agent redirect files for deprecated agents (aiox-developer, aiox-orchestrator, db-sage, github-devops) across all IDE integrations (.antigravity, .claude/commands, .codex, .cursor, .gemini, .github) - Updated .claude/settings.json with new deny/allow rules - Updated .env.example with ciclo-app variables - Added .aiox-core/version.json and .aiox-core/package-lock.json Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…, require
- Replace require('crypto').timingSafeEqual with static import
- Fix non-null-asserted-optional-chain with nullish coalescing
- Prefix unused vars with underscore
- Remove unused dbPolicyToDomain import
- Add eslint-disable for base64 img element (QR Code)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fix .gitignore rule that was blocking ciclo-app/apps/ directory. Added !ciclo-app/apps/ exception to root .gitignore. apps/web (port 3000): - Landing page with lead capture, UTM tracking, ISR - Event pages with SSR, ticket display, cronograma, FAQ - 3-step registration flow with CPF validation - Payment pages: PIX (QR + countdown), Boleto, Card (Stripe Elements) - Webhooks: MercadoPago + Stripe with HMAC signature validation - User account: inscriptions list, cancel/transfer, QR Code display - Auth: NextAuth.js v5 with register, login, reset-password - PWA: Service Worker, install banner, offline fallback - SEO: sitemap, robots.txt, JSON-LD, Open Graph, canonical URLs - Check-in API with offline HMAC verification - Email reminders via Vercel cron apps/admin (port 3001): - Dashboard with KPIs and CSS-only bar charts - Events CRUD with Server Actions - Ticket types, activities, facilitators, FAQs management - Accommodations (Sun House rooms) management - Cancellation policy configuration - CRM: participants list, notes, role promotion, CSV export - Content management for editable landing page texts apps/landing (port 3002): - ISR landing page with seasonal theming - BaseTriadeFooter + BaseTriadeWatermark Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
144 arquivos corrigidos com acentuação adequada do português brasileiro em todas as strings literais de UI, mensagens de erro, labels, placeholders, meta tags e documentação. Correções incluem: - Estações, inscrição, confirmação, verificação, descrição - Política, próximos, você, já, não, até, após - Obrigatório, disponível, válido, número, código - Formulário, horário, período, crédito, cartão - Conexão, reconexão, transformação, proteção - Base Tríade (marca registrada com acento) - Verão, equinócio, solstício, cerimônia - Práticas, terapêuticas, experiência, equilíbrio Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adiciona exceção no .gitignore para docs/prd/ciclo-das-estacoes-app.md e inclui o PRD completo com acentuação ABNT2 corrigida. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- fix(cron): require CRON_SECRET in send-reminders endpoint (was optional, allowing unauthenticated access) - fix(seo): correct OG image references from .jpg to .svg matching actual file (5 locations in 3 files) QA Gate: 6 stories reviewed, all PASS. MVP Phase 1 complete (24/24 stories Done). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@bobzezo-iai is attempting to deploy a commit to the Pedro Valério Lopez's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
Important Review skippedToo many files! This PR contains 289 files, which is 139 over the limit of 150. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (11)
📒 Files selected for processing (289)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Welcome to aiox-core! Thanks for your first pull request.
What happens next?
- Automated checks will run on your PR
- A maintainer will review your changes
- Once approved, we'll merge your contribution!
PR Checklist:
- Tests pass (
npm test) - Linting passes (
npm run lint) - Commit messages follow Conventional Commits
Thanks for contributing!
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add complete design system specification (DESIGN-SYSTEM-SPEC.md) - Create SVG patterns: Triskle, FlowerOfLife, HexGrid, MandalaPattern - Create sacred components: HeroSacred, TriskleSpinner, SacredDivider - Create SeasonSelector visual component - Expand Tailwind config: 14 Base Triade colors, 11-step violet spectrum, sacred gradients, golden ratio spacing, organic border-radius, fluid typography, breathe/mandala/ethereal animations - Rewrite globals.css with full token system: seasonal palettes (4 seasons), glassmorphism (sacred/nature/light/season), glow effects, mandala-bg, gradient text, sacred borders - Update layout.tsx: Zilla Slab + Libre Franklin + Caveat + JetBrains Mono - Transform home page with aurora violet hero, mandala animation, crown chakra glow, glassmorphism cards, sacred dividers - Update BaseTriadeWatermark with generative mandala - Update BaseTriadeFooter with Triskle SVG - Update EventCard with glass-season + glow-violet hover - Update SeasonalButton with sacred/glass variants - Sync admin/landing globals.css with new token system - Fix TypeScript errors: EventStatus accent normalization, operator precedence Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…nav, 137s watermark BREAKING DESIGN CHANGE: Complete visual identity correction after user rejection. Research phase (@analyst): - 10 world-class references analyzed (Samsung Circular UX, Chopra, Wu Xing, etc.) - 7 common patterns identified, 8 anti-patterns documented Design spec v2 (@ux-design-expert): - 70/25/5 color hierarchy: earth tones / seasonal / violet accent only - Mandala of 4 seasons as functional navigation hub - Triskle watermark rotating at 137s (golden angle energy) - WCAG AA contrast guaranteed (13.2:1 ratio) Implementation (@dev): - Fonts restored to Playfair Display + Inter (DORA spec) - Hero: warm #fef9f0 background, #2d1810 text, high readability - 4-season mandala grid as central navigation on home - All violet dominance removed from web app (kept in landing) - Sacred dividers, event cards, buttons use golden/earth tones - Tailwind gradients made earth-tone dominant Quality gate: lint 8/8 pass, @ciclo/web + @ciclo/ui typecheck pass. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
57 arquivos corrigidos com acentuação portuguesa completa: - Estações, não Estacoes - Tríade, não Triade - Coração, Fígado, Pulmão, não sem acento - Todos os textos visíveis ao usuário (UI, metadata, docs) - Identificadores de código e slugs NÃO alterados Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Lockfile was gitignored globally. Added exception in .gitignore for ciclo-app/pnpm-lock.yaml so Vercel can resolve workspaces. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
nikolasdehor
left a comment
There was a problem hiding this comment.
Review — PR #563 (ciclo-app MVP Fase 1)
@bobzezo-iai, obrigado pelo trabalho. Analisei a estrutura, escopo e amostra de código. Tenho preocupações sérias com o escopo deste PR.
Escopo inadequado para aiox-core
Este PR adiciona 323 arquivos (+44K/-2K linhas) — um aplicativo full-stack completo (Next.js + Prisma + Supabase + MercadoPago/Stripe + Resend) como diretório top-level ciclo-app/. O repo aiox-core é descrito como "AI-Orchestrated System for Full Stack Development - Core Framework" — não é um monorepo de aplicações de negócio.
Um MVP completo com checkout, CRM, PWA, e2e tests e landing page deveria viver em repositório próprio. Incluí-lo aqui polui o core framework com lógica de domínio específica (gestão de eventos, ingressos, facilitadores). Isso dificulta manutenção e cria acoplamento desnecessário.
Problemas concretos
-
Lock files inflam o diff —
pnpm-lock.yaml(+5595),.aiox-core/package-lock.json(+1534) epackage-lock.jsonroot representam ~7K linhas de geração automática. O entity-registry.yaml (+5061/-1593) também infla significativamente. -
Modifica 38 arquivos fora de
ciclo-app/— altera.claude/settings.json,.env.example,entity-registry.yaml, configs de agentes em.antigravity/,.codex/,.cursor/,.gemini/,.github/— mudanças no core que deveriam ser PRs separados. -
PR da branch
maindo fork — dificulta iteração. Feature branches são recomendadas pelo CONTRIBUTING.md do projeto. -
Qualidade do código é razoável — o webhook Stripe tem boa estrutura (validação de assinatura, idempotência, tipagem). Mas isso não justifica o escopo.
Recomendação
Separar em: (1) PR para mudanças no core (agents, configs), (2) ciclo-app como repositório independente ou, se os maintainers preferirem, como submodule.
- Adicionar vercel.json com build config para monorepo - Configurar Prisma binary targets (rhel-openssl-3.0.x) para serverless - Adicionar outputFileTracingIncludes no next.config.ts para Prisma engine - Corrigir build errors: remover import UserRole inexistente (3 rotas admin) - Corrigir implicit any em events/schedule route - Adicionar Suspense boundary em login e reset-password (Next.js 15) - Converter páginas com DB para force-dynamic (home, eventos, sitemap) - Corrigir middleware: /profile → /minha-conta - Corrigir redirect: inscrições → inscricoes (path sem acento) - Adicionar next como devDependency no root para detecção Vercel Deploy: https://ciclo.basetriade.com Vercel: https://ciclo-app.vercel.app Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Layout nav: /minha-conta/inscrições → /minha-conta/inscricoes - Ambos os tabs apontam para inscricoes (Meus Dados ainda não implementado) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… [E5.1] - Navbar sticky com hamburger mobile e menu overlay (Client Component) - Hero compacto (removido min-h-[80vh]) com tagline e CTAs full-width - Mandala responsiva com 4 breakpoints progressivos (320-1024px) - 7 novas seções: Sobre, Propósitos, Programação, Facilitadoras, FAQ, Cancelamento, Info Práticas - Constantes TypeScript tipadas em lib/home-content.ts com fallback DB - CSS: --base-forest, .section-padding responsivo, emoji font-sizes - Acentuação ABNT2 completa em todos os textos visíveis - QA Gate: PASS (27/27 ACs aprovados) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…amação - Facilitadoras → Práticas e Modalidades (sem nomes, só conceitos) - Ginecologia Natural → Breathwork (respiração consciente) - Surf → Trilha Energética (caminhada contemplativa) - Nova seção "Quem Está por Trás" com gestoras: @koch.milenar, @podprana, Daniela - Programação típica atualizada com novas atividades modelo - WhatsApp: (47) 999 660 210 — Milena Koch - text-align: justify em parágrafos descritivos Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…pósito - Remover gestoras específicas (Milena, Lionara, Daniela) - Seção equipe agora é genérica e editável - Subtítulo: "Imersões sazonais de autocuidado, reconexão e transformação" - Contato WhatsApp sem nome pessoal - Remover interface Gestora não utilizada Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Gestoras → Idealização e Coordenação: iAi. ECOssistema Base Tríade® - WhatsApp: (47) 999 525 562 - Remover estacionamento gratuito - Navbar: Facilitadoras → Práticas - Assinatura iAi® no rodapé da home Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Substituir emojis por badges reais da marca (Primavera, Verão, Outono, Inverno) - Adicionar logo principal "Estações" no hero section - Incluir badge "Fases da Lua" nos assets - CSS responsivo para imagens (56px→96px em 4 breakpoints) - Usar Next.js Image para otimização automática Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Usuário preferiu emojis (mais clean) nos cards da mandala. Logo principal "Estações" mantida no hero section. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
MVP completo do aplicativo Ciclo das Estações — PWA Full-Stack para gestão, venda de ingressos, captação de leads e comunidade do programa da Base Tríade.
Epics implementados (24 stories, todas Done):
QA Fixes neste PR:
.jpgpara.svg(5 locais em 3 arquivos)Stack
Next.js 15 (App Router) | Prisma + Supabase | Tailwind + shadcn/ui | MercadoPago + Stripe | Resend | Turborepo
Test plan
/api/cron/send-remindersrejeita requests sem CRON_SECRET/og-default.svgcorretamentenpm run build)npm run typecheck)🤖 Generated with Claude Code