Skip to content

feat(ciclo-app): MVP Fase 1 completo — Ciclo das Estações#563

Open
bobzezo-iai wants to merge 22 commits intoSynkraAI:mainfrom
bobzezo-iai:main
Open

feat(ciclo-app): MVP Fase 1 completo — Ciclo das Estações#563
bobzezo-iai wants to merge 22 commits intoSynkraAI:mainfrom
bobzezo-iai:main

Conversation

@bobzezo-iai
Copy link

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):

  • Epic 1 — Fundação (5/5): Monorepo, schema, auth, design system, admin layout
  • Epic 2 — Core (6/6): CRUDs (eventos, facilitadores, ingressos, atividades), página pública, landing page
  • Epic 3 — Checkout (6/6): Fluxo inscrição, MercadoPago, Stripe, QR Code offline, cancelamento, cross-selling Sun House
  • Epic 4 — Comunicação (7/7): Email transacional, dashboard admin, CRM, PWA, SEO, testes e2e, checklist lançamento

QA Fixes neste PR:

  • Security: CRON_SECRET agora obrigatório no endpoint de cron (era opcional)
  • SEO: Referências OG image corrigidas de .jpg para .svg (5 locais em 3 arquivos)

Stack

Next.js 15 (App Router) | Prisma + Supabase | Tailwind + shadcn/ui | MercadoPago + Stripe | Resend | Turborepo

Test plan

  • Verificar endpoint /api/cron/send-reminders rejeita requests sem CRON_SECRET
  • Verificar meta tags OG referenciam /og-default.svg corretamente
  • Build passa sem erros (npm run build)
  • TypeScript sem erros (npm run typecheck)

🤖 Generated with Claude Code

bobzezo-iai and others added 8 commits March 5, 2026 20:22
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>
@vercel
Copy link

vercel bot commented Mar 6, 2026

@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.

@coderabbitai
Copy link

coderabbitai bot commented Mar 6, 2026

Important

Review skipped

Too many files!

This PR contains 289 files, which is 139 over the limit of 150.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: b0c815d2-2aba-4435-9368-589514a0abef

📥 Commits

Reviewing files that changed from the base of the PR and between fcfb757 and 30e2004.

⛔ Files ignored due to path filters (11)
  • .aiox-core/package-lock.json is excluded by !**/package-lock.json
  • ciclo-app/apps/web/public/icons/apple-touch-icon.svg is excluded by !**/*.svg
  • ciclo-app/apps/web/public/icons/icon-192x192.svg is excluded by !**/*.svg
  • ciclo-app/apps/web/public/icons/icon-512x512.svg is excluded by !**/*.svg
  • ciclo-app/apps/web/public/images/seasons/fases-da-lua.jpg is excluded by !**/*.jpg
  • ciclo-app/apps/web/public/images/seasons/inverno.jpg is excluded by !**/*.jpg
  • ciclo-app/apps/web/public/images/seasons/logo-estacoes.jpg is excluded by !**/*.jpg
  • ciclo-app/apps/web/public/images/seasons/outono.jpg is excluded by !**/*.jpg
  • ciclo-app/apps/web/public/images/seasons/primavera.jpg is excluded by !**/*.jpg
  • ciclo-app/apps/web/public/images/seasons/verao.jpg is excluded by !**/*.jpg
  • ciclo-app/apps/web/public/og-default.svg is excluded by !**/*.svg
📒 Files selected for processing (289)
  • .aiox-core/.claude/agent-memory/aiox-po/MEMORY.md
  • .aiox-core/.claude/agent-memory/aiox-sm/MEMORY.md
  • .aiox-core/core-config.yaml
  • .aiox-core/data/entity-registry.yaml
  • .aiox-core/install-manifest.yaml
  • .aiox-core/version.json
  • .antigravity/rules/agents/aiox-developer.md
  • .antigravity/rules/agents/aiox-orchestrator.md
  • .antigravity/rules/agents/db-sage.md
  • .antigravity/rules/agents/github-devops.md
  • .claude/commands/AIOX/agents/aiox-developer.md
  • .claude/commands/AIOX/agents/aiox-orchestrator.md
  • .claude/commands/AIOX/agents/db-sage.md
  • .claude/commands/AIOX/agents/github-devops.md
  • .claude/settings.json
  • .codex/agents/aiox-developer.md
  • .codex/agents/aiox-orchestrator.md
  • .codex/agents/db-sage.md
  • .codex/agents/github-devops.md
  • .cursor/rules/agents/aiox-developer.md
  • .cursor/rules/agents/aiox-orchestrator.md
  • .cursor/rules/agents/db-sage.md
  • .cursor/rules/agents/github-devops.md
  • .env.example
  • .gemini/rules/AIOX/agents/aiox-developer.md
  • .gemini/rules/AIOX/agents/aiox-orchestrator.md
  • .gemini/rules/AIOX/agents/db-sage.md
  • .gemini/rules/AIOX/agents/github-devops.md
  • .github/agents/aiox-developer.md
  • .github/agents/aiox-orchestrator.md
  • .github/agents/db-sage.md
  • .github/agents/github-devops.md
  • .gitignore
  • ciclo-app/.env.example
  • ciclo-app/.eslintrc.js
  • ciclo-app/.github/workflows/ci.yml
  • ciclo-app/.gitignore
  • ciclo-app/.prettierignore
  • ciclo-app/.prettierrc
  • ciclo-app/README.md
  • ciclo-app/apps/admin/.eslintrc.js
  • ciclo-app/apps/admin/app/admin/configuracoes/cancelamento/page.tsx
  • ciclo-app/apps/admin/app/admin/configuracoes/loading.tsx
  • ciclo-app/apps/admin/app/admin/configuracoes/page.tsx
  • ciclo-app/apps/admin/app/admin/error.tsx
  • ciclo-app/apps/admin/app/admin/espacos/[id]/edit/page.tsx
  • ciclo-app/apps/admin/app/admin/espacos/loading.tsx
  • ciclo-app/apps/admin/app/admin/espacos/novo/page.tsx
  • ciclo-app/apps/admin/app/admin/espacos/page.tsx
  • ciclo-app/apps/admin/app/admin/eventos/[id]/page.tsx
  • ciclo-app/apps/admin/app/admin/eventos/[id]/preview/page.tsx
  • ciclo-app/apps/admin/app/admin/eventos/loading.tsx
  • ciclo-app/apps/admin/app/admin/eventos/novo/page.tsx
  • ciclo-app/apps/admin/app/admin/eventos/page.tsx
  • ciclo-app/apps/admin/app/admin/facilitadores/[id]/edit/page.tsx
  • ciclo-app/apps/admin/app/admin/facilitadores/loading.tsx
  • ciclo-app/apps/admin/app/admin/facilitadores/novo/page.tsx
  • ciclo-app/apps/admin/app/admin/facilitadores/page.tsx
  • ciclo-app/apps/admin/app/admin/ingressos/loading.tsx
  • ciclo-app/apps/admin/app/admin/ingressos/page.tsx
  • ciclo-app/apps/admin/app/admin/inscricoes/loading.tsx
  • ciclo-app/apps/admin/app/admin/inscricoes/page.tsx
  • ciclo-app/apps/admin/app/admin/layout.tsx
  • ciclo-app/apps/admin/app/admin/leads/loading.tsx
  • ciclo-app/apps/admin/app/admin/leads/page.tsx
  • ciclo-app/apps/admin/app/admin/loading.tsx
  • ciclo-app/apps/admin/app/admin/page.tsx
  • ciclo-app/apps/admin/app/admin/participantes/[id]/page.tsx
  • ciclo-app/apps/admin/app/admin/participantes/loading.tsx
  • ciclo-app/apps/admin/app/admin/participantes/page.tsx
  • ciclo-app/apps/admin/app/admin/produtos/loading.tsx
  • ciclo-app/apps/admin/app/admin/produtos/page.tsx
  • ciclo-app/apps/admin/app/api/auth/[...nextauth]/route.ts
  • ciclo-app/apps/admin/app/globals.css
  • ciclo-app/apps/admin/app/layout.tsx
  • ciclo-app/apps/admin/app/page.tsx
  • ciclo-app/apps/admin/components/accommodations/room-form.tsx
  • ciclo-app/apps/admin/components/accommodations/room-list-client.tsx
  • ciclo-app/apps/admin/components/cancellation/cancellation-policy-form.tsx
  • ciclo-app/apps/admin/components/dashboard/bar-chart.tsx
  • ciclo-app/apps/admin/components/dashboard/kpi-card.tsx
  • ciclo-app/apps/admin/components/dashboard/period-filter.tsx
  • ciclo-app/apps/admin/components/dashboard/recent-leads.tsx
  • ciclo-app/apps/admin/components/dashboard/recent-registrations.tsx
  • ciclo-app/apps/admin/components/events/activity-manager.tsx
  • ciclo-app/apps/admin/components/events/event-form.tsx
  • ciclo-app/apps/admin/components/events/event-list-client.tsx
  • ciclo-app/apps/admin/components/events/faq-manager.tsx
  • ciclo-app/apps/admin/components/events/image-gallery-manager.tsx
  • ciclo-app/apps/admin/components/events/ticket-type-manager.tsx
  • ciclo-app/apps/admin/components/facilitators/facilitator-form.tsx
  • ciclo-app/apps/admin/components/facilitators/facilitator-list-client.tsx
  • ciclo-app/apps/admin/components/layout/admin-header.tsx
  • ciclo-app/apps/admin/components/layout/admin-shell.tsx
  • ciclo-app/apps/admin/components/layout/admin-sidebar.tsx
  • ciclo-app/apps/admin/components/layout/breadcrumb.tsx
  • ciclo-app/apps/admin/components/layout/nav-icon.tsx
  • ciclo-app/apps/admin/components/layout/sidebar-nav.tsx
  • ciclo-app/apps/admin/components/participants/notes-editor.tsx
  • ciclo-app/apps/admin/components/participants/participant-list-client.tsx
  • ciclo-app/apps/admin/components/participants/role-promotion.tsx
  • ciclo-app/apps/admin/lib/actions/accommodations.ts
  • ciclo-app/apps/admin/lib/actions/activities.ts
  • ciclo-app/apps/admin/lib/actions/cancellation-policy.ts
  • ciclo-app/apps/admin/lib/actions/dashboard.ts
  • ciclo-app/apps/admin/lib/actions/events.ts
  • ciclo-app/apps/admin/lib/actions/facilitators.ts
  • ciclo-app/apps/admin/lib/actions/mass-cancellation.ts
  • ciclo-app/apps/admin/lib/actions/participants.ts
  • ciclo-app/apps/admin/lib/actions/ticket-types.ts
  • ciclo-app/apps/admin/lib/auth-actions.ts
  • ciclo-app/apps/admin/lib/constants.ts
  • ciclo-app/apps/admin/lib/navigation.ts
  • ciclo-app/apps/admin/lib/slug.ts
  • ciclo-app/apps/admin/lib/validation.ts
  • ciclo-app/apps/admin/middleware.ts
  • ciclo-app/apps/admin/next-env.d.ts
  • ciclo-app/apps/admin/next.config.ts
  • ciclo-app/apps/admin/package.json
  • ciclo-app/apps/admin/postcss.config.js
  • ciclo-app/apps/admin/tailwind.config.ts
  • ciclo-app/apps/admin/tsconfig.json
  • ciclo-app/apps/landing/.eslintrc.js
  • ciclo-app/apps/landing/app/globals.css
  • ciclo-app/apps/landing/app/layout.tsx
  • ciclo-app/apps/landing/app/page.tsx
  • ciclo-app/apps/landing/next-env.d.ts
  • ciclo-app/apps/landing/next.config.ts
  • ciclo-app/apps/landing/package.json
  • ciclo-app/apps/landing/postcss.config.js
  • ciclo-app/apps/landing/tailwind.config.ts
  • ciclo-app/apps/landing/tsconfig.json
  • ciclo-app/apps/web/.eslintrc.js
  • ciclo-app/apps/web/app/(auth)/forgot-password/page.tsx
  • ciclo-app/apps/web/app/(auth)/layout.tsx
  • ciclo-app/apps/web/app/(auth)/login/page.tsx
  • ciclo-app/apps/web/app/(auth)/register/page.tsx
  • ciclo-app/apps/web/app/(auth)/reset-password/page.tsx
  • ciclo-app/apps/web/app/api/admin/registrations/resend-email/route.ts
  • ciclo-app/apps/web/app/api/admin/users/[id]/role/route.ts
  • ciclo-app/apps/web/app/api/admin/users/[id]/status/route.ts
  • ciclo-app/apps/web/app/api/auth/[...nextauth]/route.ts
  • ciclo-app/apps/web/app/api/auth/forgot-password/route.ts
  • ciclo-app/apps/web/app/api/auth/register/route.ts
  • ciclo-app/apps/web/app/api/auth/reset-password/route.ts
  • ciclo-app/apps/web/app/api/checkin/route.ts
  • ciclo-app/apps/web/app/api/cron/send-reminders/route.ts
  • ciclo-app/apps/web/app/api/events/[slug]/schedule/route.ts
  • ciclo-app/apps/web/app/api/events/[slug]/tickets/route.ts
  • ciclo-app/apps/web/app/api/leads/route.ts
  • ciclo-app/apps/web/app/api/payments/[paymentId]/status/route.ts
  • ciclo-app/apps/web/app/api/registrations/[id]/cancel/route.ts
  • ciclo-app/apps/web/app/api/registrations/[id]/qrcode/route.ts
  • ciclo-app/apps/web/app/api/registrations/[id]/transfer/route.ts
  • ciclo-app/apps/web/app/api/webhooks/mercadopago/route.ts
  • ciclo-app/apps/web/app/api/webhooks/stripe/route.ts
  • ciclo-app/apps/web/app/design-system/page.tsx
  • ciclo-app/apps/web/app/eventos/[slug]/cancellation-policy-display.tsx
  • ciclo-app/apps/web/app/eventos/[slug]/page.tsx
  • ciclo-app/apps/web/app/eventos/page.tsx
  • ciclo-app/apps/web/app/events/index.ts
  • ciclo-app/apps/web/app/globals.css
  • ciclo-app/apps/web/app/inscricao/[eventSlug]/dados/page.tsx
  • ciclo-app/apps/web/app/inscricao/[eventSlug]/esgotado/page.tsx
  • ciclo-app/apps/web/app/inscricao/[eventSlug]/layout.tsx
  • ciclo-app/apps/web/app/inscricao/[eventSlug]/pagamento/page.tsx
  • ciclo-app/apps/web/app/inscricao/[eventSlug]/page.tsx
  • ciclo-app/apps/web/app/inscricao/confirmada/[registrationId]/page.tsx
  • ciclo-app/apps/web/app/layout.tsx
  • ciclo-app/apps/web/app/minha-conta/inscricoes/[id]/cancel-form.tsx
  • ciclo-app/apps/web/app/minha-conta/inscricoes/[id]/page.tsx
  • ciclo-app/apps/web/app/minha-conta/inscricoes/[id]/qrcode/page.tsx
  • ciclo-app/apps/web/app/minha-conta/inscricoes/[id]/transfer-form.tsx
  • ciclo-app/apps/web/app/minha-conta/inscricoes/page.tsx
  • ciclo-app/apps/web/app/minha-conta/layout.tsx
  • ciclo-app/apps/web/app/minha-conta/page.tsx
  • ciclo-app/apps/web/app/offline/page.tsx
  • ciclo-app/apps/web/app/pagamento/[registrationId]/boleto/page.tsx
  • ciclo-app/apps/web/app/pagamento/[registrationId]/card/page.tsx
  • ciclo-app/apps/web/app/pagamento/[registrationId]/pix/page.tsx
  • ciclo-app/apps/web/app/page.tsx
  • ciclo-app/apps/web/app/privacidade/page.tsx
  • ciclo-app/apps/web/app/providers/session-provider.tsx
  • ciclo-app/apps/web/app/robots.ts
  • ciclo-app/apps/web/app/sitemap.ts
  • ciclo-app/apps/web/components/lead-capture-form.tsx
  • ciclo-app/apps/web/components/navbar.tsx
  • ciclo-app/apps/web/components/payment/boleto-payment-client.tsx
  • ciclo-app/apps/web/components/payment/card-payment-client.tsx
  • ciclo-app/apps/web/components/payment/pix-payment-client.tsx
  • ciclo-app/apps/web/components/pwa/install-banner.tsx
  • ciclo-app/apps/web/components/pwa/sw-register.tsx
  • ciclo-app/apps/web/components/qrcode/qr-display.tsx
  • ciclo-app/apps/web/components/registration/participant-form-client.tsx
  • ciclo-app/apps/web/components/registration/payment-step-client.tsx
  • ciclo-app/apps/web/components/registration/registration-layout-client.tsx
  • ciclo-app/apps/web/components/registration/registration-provider.tsx
  • ciclo-app/apps/web/components/registration/sold-out-client.tsx
  • ciclo-app/apps/web/components/registration/step-indicator.tsx
  • ciclo-app/apps/web/components/registration/ticket-selection-client.tsx
  • ciclo-app/apps/web/lib/actions/payment.ts
  • ciclo-app/apps/web/lib/actions/registration.ts
  • ciclo-app/apps/web/lib/db.ts
  • ciclo-app/apps/web/lib/events.ts
  • ciclo-app/apps/web/lib/home-content.ts
  • ciclo-app/apps/web/lib/qrcode-generator.ts
  • ciclo-app/apps/web/lib/site-content.ts
  • ciclo-app/apps/web/lib/validation/cpf.ts
  • ciclo-app/apps/web/lib/webhooks/processor.ts
  • ciclo-app/apps/web/lib/webhooks/signature.ts
  • ciclo-app/apps/web/middleware.ts
  • ciclo-app/apps/web/next-env.d.ts
  • ciclo-app/apps/web/next.config.ts
  • ciclo-app/apps/web/package.json
  • ciclo-app/apps/web/postcss.config.js
  • ciclo-app/apps/web/public/manifest.json
  • ciclo-app/apps/web/public/sw.js
  • ciclo-app/apps/web/tailwind.config.ts
  • ciclo-app/apps/web/tsconfig.json
  • ciclo-app/apps/web/vercel.json
  • ciclo-app/docs/design-system/DESIGN-SYSTEM-SPEC.md
  • ciclo-app/docs/launch-checklist.md
  • ciclo-app/docs/runbook.md
  • ciclo-app/package.json
  • ciclo-app/packages/auth/.eslintrc.js
  • ciclo-app/packages/auth/package.json
  • ciclo-app/packages/auth/src/auth.config.ts
  • ciclo-app/packages/auth/src/auth.ts
  • ciclo-app/packages/auth/src/crypto.ts
  • ciclo-app/packages/auth/src/guards.ts
  • ciclo-app/packages/auth/src/index.ts
  • ciclo-app/packages/auth/src/rate-limit.ts
  • ciclo-app/packages/auth/src/rbac.ts
  • ciclo-app/packages/auth/src/types.ts
  • ciclo-app/packages/auth/tsconfig.json
  • ciclo-app/packages/config/eslint/base.js
  • ciclo-app/packages/config/eslint/nextjs.js
  • ciclo-app/packages/config/eslint/react.js
  • ciclo-app/packages/config/package.json
  • ciclo-app/packages/config/tailwind/base.ts
  • ciclo-app/packages/config/typescript/base.json
  • ciclo-app/packages/config/typescript/library.json
  • ciclo-app/packages/config/typescript/nextjs.json
  • ciclo-app/packages/database/.eslintrc.js
  • ciclo-app/packages/database/package.json
  • ciclo-app/packages/database/prisma/schema.prisma
  • ciclo-app/packages/database/prisma/seed.ts
  • ciclo-app/packages/database/src/index.ts
  • ciclo-app/packages/database/tsconfig.json
  • ciclo-app/packages/email/.eslintrc.js
  • ciclo-app/packages/email/package.json
  • ciclo-app/packages/email/src/client.ts
  • ciclo-app/packages/email/src/index.ts
  • ciclo-app/packages/email/src/service.ts
  • ciclo-app/packages/email/src/templates/confirmation.ts
  • ciclo-app/packages/email/src/templates/feedback.ts
  • ciclo-app/packages/email/src/templates/reminder-24h.ts
  • ciclo-app/packages/email/src/templates/reminder-7d.ts
  • ciclo-app/packages/email/src/templates/shared-styles.ts
  • ciclo-app/packages/email/tsconfig.json
  • ciclo-app/packages/ui/.eslintrc.js
  • ciclo-app/packages/ui/package.json
  • ciclo-app/packages/ui/src/components/base-triade-footer.tsx
  • ciclo-app/packages/ui/src/components/base-triade-watermark.tsx
  • ciclo-app/packages/ui/src/components/sacred/hero-sacred.tsx
  • ciclo-app/packages/ui/src/components/sacred/sacred-divider.tsx
  • ciclo-app/packages/ui/src/components/sacred/triskle-spinner.tsx
  • ciclo-app/packages/ui/src/components/seasonal/event-card.tsx
  • ciclo-app/packages/ui/src/components/seasonal/facilitator-avatar.tsx
  • ciclo-app/packages/ui/src/components/seasonal/page-layout.tsx
  • ciclo-app/packages/ui/src/components/seasonal/season-selector.tsx
  • ciclo-app/packages/ui/src/components/seasonal/seasonal-badge.tsx
  • ciclo-app/packages/ui/src/components/seasonal/seasonal-button.tsx
  • ciclo-app/packages/ui/src/components/ui/avatar.tsx
  • ciclo-app/packages/ui/src/components/ui/badge.tsx
  • ciclo-app/packages/ui/src/components/ui/button.tsx
  • ciclo-app/packages/ui/src/components/ui/card.tsx
  • ciclo-app/packages/ui/src/components/ui/input.tsx
  • ciclo-app/packages/ui/src/components/ui/sheet.tsx
  • ciclo-app/packages/ui/src/components/ui/skeleton.tsx
  • ciclo-app/packages/ui/src/contexts/season-context.tsx
  • ciclo-app/packages/ui/src/index.ts
  • ciclo-app/packages/ui/src/lib/utils.ts
  • ciclo-app/packages/ui/src/patterns/mandala-pattern.tsx
  • ciclo-app/packages/ui/src/patterns/sacred-geometry.tsx
  • ciclo-app/packages/ui/src/patterns/triskle.tsx
  • ciclo-app/packages/ui/tsconfig.json
  • ciclo-app/packages/utils/.eslintrc.js
  • ciclo-app/packages/utils/package.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Welcome to aiox-core! Thanks for your first pull request.

What happens next?

  1. Automated checks will run on your PR
  2. A maintainer will review your changes
  3. Once approved, we'll merge your contribution!

PR Checklist:

Thanks for contributing!

bobzezo-iai and others added 6 commits March 6, 2026 15:52
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>
Copy link
Contributor

@nikolasdehor nikolasdehor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

  1. Lock files inflam o diffpnpm-lock.yaml (+5595), .aiox-core/package-lock.json (+1534) e package-lock.json root representam ~7K linhas de geração automática. O entity-registry.yaml (+5061/-1593) também infla significativamente.

  2. 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.

  3. PR da branch main do fork — dificulta iteração. Feature branches são recomendadas pelo CONTRIBUTING.md do projeto.

  4. 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.

bobzezo-iai and others added 8 commits March 7, 2026 15:10
- 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>
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.

2 participants