Origem: FEAT-014, decisões D1, D8 e D9 (2026-09-25); Parsedown aprovado pelo Humano.
Lote Vinculado: BATCH-183.
Status: approved.
Autonomia: Nível 1 (supervisionado).
Depende de: contrato da req-177.
1. Contexto
O Markdown do Core (req-177) é a fonte única. O site público (conn2flow-site, req-006 daquele repositório) precisa dele como recursos do sistema. O formato de destino é o mesmo que o pipeline já sincroniza no Transforma MP:
-
publisher; -
publisher_pages(fields_values,html_template); -
pagescompublisher_id; -
menus.
2. Escopo técnico
-
Parsedown 1.7.x (MIT, arquivo único, PHP puro):
-
copiado em
cli/lib/parsedown/Parsedown.php, comLICENSE.txt; -
carregado por
require_once; -
sem Composer, sem ir para
gestor/e sem ser distribuído às instalações (roda só no build).
-
-
c2f docs:build --project=<id> [--source=<dir>] [--dry-run]:-
O projeto é resolvido por
ProjectEnvironmentResolver. A configuração vem de<gestor do projeto>/docs.config.json:-
fonte (padrão:
ai-workspacedo Core); -
idiomas;
-
mapeamento
secao → publisher; -
layout;
-
id do menu;
-
URL base do repositório para links de fonte.
-
-
Conversão com classes Tailwind explícitas (mapa em
DocsTailwindTheme), sem@tailwindcss/typography:-
títulos com âncoras;
-
parágrafos, listas, tabelas e citações;
-
código com botão de copiar;
-
callouts
> [!NOTE|TIP|IMPORTANT|WARNING|CAUTION].
-
-
Reescrita de links
.mdrelativos para@[[pagina#url-raiz]]@docs/.../. Link para doc inexistente é erro de build. -
Sumário "nesta página" (h2/h3) e navegação anterior/próximo pela ordem do menu.
-
Selo "Verificado contra o código":
verificado_emcom link para asfontesno GitHub. -
Gera, por idioma:
-
publisher_pages/<id>/<id>.html; -
pages/<id>/<id>.html; -
as entradas de
publisher-pages.jsonepages.json, mescladas por id: nunca remove recursos que não são de docs; -
menus/<menu>/…+menus.json, com a árvore por seção e ordem.
-
-
Gera
llms.txtellms-full.txt(índice e conteúdo integral em Markdown) como páginastype: "page"servidas emdocs/llms.txt, se o roteador permitir; senão, registra a limitação. -
Ids de recurso com prefixo
docs-e caminho derivado. A operação é idempotente: rodar duas vezes não gera diff. -
Docs
visibilidade: restritosão ignoradas, com aviso.
-
-
Testes PHPUnit:
-
conversão;
-
callouts;
-
reescrita de links e link quebrado;
-
sumário;
-
idempotência da mescla de JSON;
-
sandbox de projeto em diretório temporário.
-
3. Critérios de Aceite
-
php cli/c2f.php docs:build --project=[REDACTED] --dry-runlista os recursos a gerar sem escrever. -
Sem
--dry-run, gera os arquivos noconn2flow-site, e uma segunda execução não altera nada. -
Link quebrado no Markdown faz o comando sair com código ≠ 0 e mensagem apontando arquivo e linha.
-
PHPUnit verde e
git diff --checklimpo.