* docs(openspec): propose setup-foundation change Add OpenSpec change for SPEC Phase 0 — Foundation with proposal, design, capability specs, and implementation tasks. Populate openspec/config.yaml with project context and artifact rules. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: bootstrap Laravel 13 foundation (Fase 0) Implement OpenSpec change setup-foundation: Laravel 13 + Filament 5 admin panel, Livewire 4 public site shell, PostgreSQL via Compose, design tokens, role-based auth, quality gates (Pint/Larastan/Pest), FrankenPHP Dockerfile, and GitHub Actions CI with five blocking jobs. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ci): use valid APP_KEY for encryption in tests Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Cursor <cursoragent@cursor.com>
23 lines
1.3 KiB
YAML
23 lines
1.3 KiB
YAML
schema: spec-driven
|
|
|
|
context: |
|
|
Fonte de verdade: SPEC.md na raiz. Precedência: instrução do dono do produto > SPEC.md > ADRs > testes > convenções.
|
|
Produto: plataforma de assessoria de eventos, single-tenant, MVP. UI em pt-BR, timezone America/Fortaleza, BRL.
|
|
Stack: Laravel 13, Filament 5 (/admin), Livewire 4 + Blade + Alpine + Tailwind (site público),
|
|
PostgreSQL, FrankenPHP regular mode (sem worker mode), Vite, Pest 4 + Pest Browser, database queue.
|
|
Arquitetura: monólito modular. Interface -> Application (Actions/Queries) -> Domain (Enums/VOs) -> Infrastructure.
|
|
Domain não depende de Filament/Livewire. strict_types em todo PHP próprio.
|
|
Princípio: YAGNI. Nada da seção 4.2 "Fora do MVP". Sem repositórios genéricos, sem BaseService/BaseAction.
|
|
Dinheiro sempre em centavos BIGINT, nunca float. Status derivável não é persistido.
|
|
|
|
rules:
|
|
proposal:
|
|
- Referenciar os IDs de requisito do SPEC.md (WEB-xx, CRM-xx, ADM-xx, etc.)
|
|
- Incluir seção de não objetivos apontando para SPEC.md 4.2
|
|
specs:
|
|
- Cenários em WHEN/THEN derivados dos blocos gherkin do SPEC.md quando existirem
|
|
- Requisitos normativos em SHALL/MUST
|
|
tasks:
|
|
- Cada task é fatia vertical verificável (migration + regra + UI + teste quando aplicável)
|
|
- Nenhuma task marcada concluída sem gate de qualidade correspondente
|