尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Um app para cadastrar meus cães e preparar uma receita de alimentação natural cozida completa, confiável e prática para eles.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Alimentação natural cozida para cães. Cadastre seus cães e prepare uma receita completa, confiável e prática para eles. Escopo do MVP: ../escopo-mvp.md. Arquitetura: ../arquitetura-tecnica.md. Colaboração e histórico: ../HANDOVER.md e ../AGENTS.md. @papazilla/nutrition-engine é um port fiel de prototypes/calculadora-an-cozida.html (metodologia pública da Dra. Sylvia Angélico, cachorroverde.com.br).查看完整 README ↗
Manutenção dos Termos de Uso e da Política de Privacidade: consulte LEGAL.md. As versões públicas do site e a tela autenticada do app devem ser atualizadas juntas.
Alimentação natural cozida para cães. Cadastre seus cães e prepare uma receita completa, confiável e prática para eles.
Escopo do MVP: ../escopo-mvp.md. Arquitetura: ../arquitetura-tecnica.md.
Colaboração e histórico: ../HANDOVER.md e ../AGENTS.md.
papazilla/
├── apps/
│ └── web/ React + TypeScript + Vite (Capacitor depois)
├── packages/
│ ├── nutrition-engine/ Motor nutricional — TS puro, sem DOM/rede. Port de calculadora-an-cozida.html
│ ├── domain/ Tipos de pet, anamnese (20 seções) e receita; ponte anamnese→motor
│ ├── design-system/ Tokens (CSS + TS) e reset
│ └── validation/ Schemas Zod compartilhados app ↔ API
├── supabase/ migrations versionadas (perfis, pets, assinatura, receitas, fotos)
└── prototypes/ Referência congelada dos protótipos do Codex
npm install # na raiz de papazilla/
npm run dev # sobe o app web em http://localhost:5173
npm test # testes de todos os pacotes (Vitest)
npm run typecheck # tsc --noEmit em todos os pacotes
npm run build # build de produção do app web
Prévia visual da receita pronta e da imagem vertical, com dados ilustrativos:
inicie npm run dev e abra http://localhost:5173/recipe-design-preview.html.
Essa página serve para revisão de design e não integra o fluxo do produto.
@papazilla/nutrition-engine é um port fiel de prototypes/calculadora-an-cozida.html
(metodologia pública da Dra. Sylvia Angélico, cachorroverde.com.br).
calculateDailyPlan(input) → total diário, %, refeições, grupos, petiscos, suplemento, óleos, sal.buildRecipe({ plan, selection, days }) → gramas prontas/cruas por ingrediente, alertas contextuais.ENGINE_VERSION grava a versão usada em cada receita salva.Lacunas conhecidas (sem mapeamento aprovado, ver ../auditoria-calculadora-original-vs-app.md):
fase de vida, faixa etária do filhote, porte adulto e tendência de peso ainda não
são derivados da anamnese — packages/domain/src/anamnesis-to-plan.ts lista o que
falta resolver. Não inventar regras clínicas ou de fase de vida.
Copie .env.example para apps/web/.env.local e preencha com as chaves do
Supabase (projeto dev). Sem chaves, o app roda em modo desconectado.
VITE_SUPABASE_URL, VITE_SUPABASE_PUBLISHABLE_KEY — públicas, no bundle.SUPABASE_SERVICE_ROLE_KEY — só servidor (Vercel Functions), nunca no bundle.O app já usa Supabase para Auth, pets e leitura de assinatura. A criação de
receitas passa por api/recipes-create.ts, que calcula e salva o resultado
no servidor. O detalhe usa snapshots imutáveis; fornalhas ficam em
recipe_preparations. Compartilhamento imprimível e exclusão da conta estão
implementados em código. O modo desconectado ainda usa dados locais.
As migrations de receitas e grants foram aplicadas em dev e produção. Um teste
integrado com contas descartáveis passou em dev: criação de receita, RLS,
snapshot após edição do pet e registro de preparo. O empacotamento da API foi
validado em Preview e publicado em papazilla.app em 2026-09-18. A criação de
uma receita com assinatura ativa em produção e a integração Asaas no sandbox
ainda precisam de validação. Capacitor vem quando o fluxo web estiver estável.
Ver ../HANDOVER.md para o estado mais recente.