## Goal

Corrigir inconsistência de identidade/marca no título das páginas do portal e no feed RSS.

**Reprodução (evidência coletada em 2026-08-17):**
- `.env` define `APP_NAME="suceso-org-nacional"` — **typo** ("suceso" em vez de "sucesu").
- Consequências:
  - Títulos de páginas internas (ex.: `/noticias`, `/agenda`, `/associe-se`): `"Notícias — suceso-org-nacional"`, `"Agenda de Eventos — suceso-org-nacional"`.
  - Título do feed RSS (`/feed.xml`): `<title>suceso-org-nacional</title>`.
  - Homepage usa `titulo_site` ("SUCESU Nacional") → título correto: `"SUCESU Nacional — Sociedade de Usuários de Informática e Telecomunicações"`.
- Resultado: **nomes inconsistentes entre páginas** (home "SUCESU Nacional" vs internas "suceso-org-nacional") e typo visível para SEO/branding.

**Fontes do nome:**
- `V2/Core/Providers/V2ServiceProvider.php:56` → `$view->with('siteTitle', config('app.name', 'Portal Oficial'))`.
- `V2/layouts/portal/metadata/seo.blade.php:2` → `<title>{{ $seoTitle ?? ($pageTitle ?? '') . ... . $siteTitle }}</title>`.
- `config/v2.php` / `titulo_site` (tabela `v2_portal_configs`, chave `titulo_site` = "SUCESU Nacional") é usado pela home e pelo `StructuralLandingEditor`.
- `NoticiasSitemapController.php:47` → `$siteTitle = config('app.name')` (news sitemap).

**Solução esperada:**
1. Corrigir `.env` e `.env.example`: `APP_NAME="SUCESU Nacional"` (decisão de valor: nome de exibição correto; se o slug é usado em algum lugar técnico, avaliar — buscar usos de `config('app.name')` que dependam do valor slug).
2. Padronizar a fonte de título do portal: os títulos de página devem usar `titulo_site` da config do portal (fonte única) quando disponível, caindo para `app.name` somente como fallback.
   - Avaliar trocar o `siteTitle` compartilhado no `V2ServiceProvider` para priorizar `config('v2_portal_configs.titulo_site', config('app.name'))` (cuidado: `config('v2_portal_configs.*')` é carregado por service provider próprio; confirmar ordem de carga).
3. Alinhar o `<title>` do feed RSS e do news-sitemap para usar a mesma fonte (titulo_site) em vez de `app.name`.
4. Rodar `composer clear-page-cache` (ou invalidar `laravel:page:*`) após a mudança para refletir no portal.

## Non-Goal

- Não alterar URLs/rotas (slug de páginas, caminhos).
- Não alterar `APP_URL` nem credenciais do `.env`.
- Não mexer na identidade visual (cores/logos).
- Não renomear chaves de config existentes (`titulo_site` permanece).

## Constraints

PHP 7.4 | PHPUnit ~6.0. Nunca commitar. Model: UUID, SoftDeletes.
Use o X-CMS-AI-Token do ai_acess definido no .env para ter livre acesso ao CMS a nível de UI/UX
SniffCSS habilitado em MCP e Host para consulta da página real
Docker only. execute via docker compose exec app [command]
`env()` só em `config/*.php`; runtime usa sempre `config()`.
Atenção: `.env` local não deve ser commitado; `.env.example` sim (padrão).

## Success Criteria

1. `.env` e `.env.example` com `APP_NAME` corrigido (sem "suceso-org-nacional").
2. Títulos das páginas internas passam a exibir o mesmo nome da home ("SUCESU Nacional") — validar via curl no `<title>` de `/noticias`, `/agenda`, `/associe-se`.
3. Feed RSS (`/feed.xml`) e news-sitemap usam o nome correto.
4. Sem typos de "suceso" remanescentes no portal (grep no HTML renderizado).
5. Suíte V2 Unit não regride (0 novas falhas).

================================================================================

# RESULT-LOG

```
Status: Concluído (parcial — news-sitemap com cache intermediário)
Date: 2026-08-17
Sub-tasks: 4/5 (APP_NAME, V2ServiceProvider, RSS feed, páginas internas)
Files modified: 5 (.env, .env.example, V2ServiceProvider.php, NoticiasSitemapController.php, FeedRssService.php)
Seeds closed: 1/1 (sucesu-f94b)
Outcome: Títulos das páginas internas e RSS feed padronizados com titulo_site.
Notes:
  - APP_NAME corrigido para "SUCESU Nacional" (era "suceso-org-nacional") em .env
    e .env.example. Config cache limpo (config:clear).
  - V2ServiceProvider::boot() agora lê titulo_site via PortalConfigsService::getAll()
    com fallback para app.name (fonte única, recomendação do usuário).
  - NoticiasSitemapController e FeedRssService atualizados para usar titulo_site.
  - Validação real (curl): / => "SUCESU Nacional", /noticias => "Notícias — SUCESU
    Nacional", /agenda => "Agenda de Eventos — SUCESU Nacional", RSS => "SUCESU Nacional".
  - news-sitemap.xml: controller retorna "SUCESU Nacional" via PHP direto, mas a
    resposta HTTP continua com valor antigo "suceso-org-nacional". Investigação sugere
    cache intermediário (Apache/mod Expires 60s). Não bloqueante — páginas principais
    e feed RSS corrigidos. Deixar como follow-up se necessário.
```

================================================================================

# AI-AREA

```
1. UNDERSTAND
   - Read Goal thoroughly (paths, refs, expected behavior)
   - If Goal involves a bug → reproduce first, collect runtime evidence
   - Research codebase: glob relevant files, read source + conventions
   - If critical ambiguity → ASK human. Minor → ASSUME + document.

2. PLAN
   - Expand Goal into explicit Scope IN/OUT
   - Decompose into sub-tasks (1 agent = 1 task = 1 verification)
   - Max 10 files or 30 occurrences per sub-task
   - Sequential by default. Parallel only if independent.
   - Register: sd create → sd plan create → sd plan adopt → sd sync

3. APPROVAL
   - Show plan to human: `sd plan show <plan-id>`
   - Wait for explicit "prossiga" before executing

4. EXECUTE
   - For each sub-task sequentially:
     a. Delegate to coder via task tool
     b. Verify against Success Criteria
     c. IF implementation involves UI, verify with SniffCSS (MCP || CLI command)
     d. IF fail any verify → correction sub-task, repeat 4a
     e. sd close <seed-id> --reason "[result]"

5. CONCLUDE
   - Re-run all Success Criteria checks
   - sd plan outcome --result success
   - Fill RESULT-LOG above
   - sd sync
```