- Add <meta name="description"> block to base template
- Add <meta name="robots" content="noindex, nofollow"> on preview, error,
flow-step, and not-available pages (ephemeral content)
- Add og:locale meta tag for pt_BR
- Add robots block and canonical block to base layout
- Create robots.txt (disallow /health, reference sitemap)
- Add dynamic /sitemap.xml route from flow registry
- Create SVG favicon and update link tag
- All 60 tests passing
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
- Extract buildApp() from server.ts into app.ts for reuse
- Create api/index.ts as Vercel serverless function entry point
- Add vercel.json with rewrites (static assets + catch-all to API)
- Build script now copies static assets to public/ and templates to dist/
- Include src/templates/** in serverless function bundle
- Local dev and tests continue to work unchanged (60/60 passing)
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3
Fastify v5 + TypeScript + Nunjucks + Tailwind CSS v4 application that
guides Brazilian lawyers through a step-by-step flow to collect case
details and assemble optimized prompts for Jus IA.
Includes:
- Flow engine with registry pattern for area/subtipo flows
- Complete trabalhista/horas-extras flow (2 steps, legal references)
- MPA state management via hidden form fields
- Chip-selector UI with 44px touch targets
- Optional LLM integration for contextual refinement questions
- Prompt builder with template interpolation and URL delivery
- Progressive enhancement JS (copy-to-clipboard)
- Deep link support (/:area/:subtipo)
- Brand design tokens from Jusbrasil guidelines
https://claude.ai/code/session_01CvrcMDqfCKWV2hC3xpRbx3