book-workflow — Destilação → Diagrama → Auditoria → Liberação/Retorno
Convenções de Caminho (Leia Primeiro)
- Raiz do Plugin (= Raiz do Repositório) = dois níveis acima do diretório onde este SKILL.md está localizado (
skills/book-workflow/→../../), denotado como$PLUGIN. - Workspace = raiz do projeto atual aberto pelo usuário (cwd), denotado como
$WS. Os artefatos de destilação (books/,.work/,tools/,.dsh/) ficam todos em$WS. - Scripts de ponte/auditoria NÃO estão no workspace; ao chamá-los, use obrigatoriamente
--ws $WS, caso contrário não encontrarão a raiz do workspace. - Princípio: auditar primeiro, compilar depois — o
compileda fase 5 opera apenas em Bundles com todas as comportas verdes.
destilação cangjie (fases 0-4) → diagrama SVG (sob demanda) → ponte (palavra por palavra) → auditoria 4-comportas → compile se tudo verde → entrega
▲ │
└────────────────── retorno (mapeado ao estado) ◀── vermelho ────────────┘
Fase 0 — Bootstrap do Workspace (uma vez por workspace, idempotente)
python3 $PLUGIN/scripts/bootstrap.py $WS
Cria $WS/.venv (Python ≥3.10 + PyYAML + PyMuPDF), instala o conjunto de comportas dsh ($WS/tools/ e $WS/.dsh/), e verifica se o node está instalado (a comporta de diagramas depende do svg-lint; se faltar, ela marca "não aplicável"). Comandos posteriores usam $WS/.venv/bin/python (daqui em diante $PY).
Fase 1 — Destilação cangjie (Lado de Geração)
Primeiro, confirme a entrada: texto do livro original (caminho para PDF/EPUB/TXT/transcrição — se não houver texto, pare e peça ao usuário, não destile de memória), título + autor + ano de publicação, finalidade de uso (estudo/consulta → single; integração diária/combinação entre livros → pack).
Em seguida, leia completamente $PLUGIN/vendor/cangjie-skill/SKILL.md e execute-o rigorosamente (RIA-TV++ em cinco fases: compreensão Adler → extração paralela em 5 trilhas → tripla verificação → portão de promoção → cartão de capacidade RIA++ → Zettelkasten → teste de estresse). Este fluxo exige:
- Artefatos em
$WS/books/<slug>/(contendoverified.md,candidates/,rejected/,.cangjie/capabilities/); - Pare após a fase 4 (teste de estresse), antes da fase 5 (compilação/entrega), e entre no fluxo de diagrama e auditoria;
- Mantenha todo o rastro de auditoria; atualize o estado de retomada (
PIPELINE_STATE.md) a cada fase.
Fase 1.5 — Diagrama (svg-diagram, sob demanda)
Para cartões de capacidade de framework/processo/cálculo ou DIGEST que precisam de diagrama, leia primeiro $PLUGIN/vendor/svg-diagram/SKILL.md sobre as regras da casa e desenhe o SVG manualmente (pilha de fontes CJK, cinco grupos de cores semânticas, altura da caixa = tamanho da fonte × 3, espaçamento entre caixas ≥ 25px, linhas curvas C/Q, desenho correto de uma vez). Localização:
| Cenário | Localização | Forma de Referência |
|---|---|---|
| Diagrama de cartão de capacidade | $WS/books/<slug>/.cangjie/capabilities/resources/<cap-slug>.svg | Escreva o nome do recurso no corpo do cartão + declare resources: no Bundle dessa capacidade |
| Diagrama DIGEST/OVERVIEW | $WS/books/<slug>/assets/<nome>.svg |  caminho relativo |
Auto-verificação (erros devem ser zerados):
node $PLUGIN/vendor/svg-diagram/tools/svg-lint/bin/svg-lint.mjs <diagrama.svg>
Fase 2 — Ponte (Verificação Palavra por Palavra da Fonte Original)
$PY $PLUGIN/bridge/cangjie_to_dsh.py --book-dir $WS/books/<slug> --source <livro_original.txt|.md|.pdf> --task <slug> --ws $WS
Isso coloca o texto original em $WS/.work/<task>/book_text.md (extração automática para PDF — o objeto de ancoragem da auditoria é sempre o texto original do livro), analisa as citações da seção R de cada cartão de capacidade e compara caractere por caractere, ignorando espaços em branco, criando IDs de pool estáveis (CJ-NNN) e gerando pools no formato dsh e cópias de auditoria da skill. Qualquer citação que não corresponda ⇒ rc=1 cartão vermelho, retorne à fase 1 para corrigir a camada R.
Fase 3 — Auditoria de 4 Comportas (Avaliação de Estado)
$PY $PLUGIN/bridge/run_audit.py --task <slug> --ws $WS
Executa sequencialmente: construtor de pacote de evidências → cobertura do pool G-66 → consistência de âncora G-67 → fechamento de evidências G-68 → comporta de diagramas (integridade das referências SVG + conformidade com svg-lint). O estado é anexado a $WS/.work/<task>/audit-verdict.md (linha do tempo da auditoria).
Fase 4 — Liberação ou Retorno
| Estado | Ação |
|---|---|
| Tudo verde | Liberar → $PY $PLUGIN/vendor/cangjie-skill/scripts/cangjie.py compile --bundle $WS/books/<slug>/.cangjie/capabilities --out <destino de instalação confirmado pelo usuário> --output auto |
| Ponte/Verificação de fonte vermelho / G-67 vermelho | Retornar ao cangjie fase 2 (corrigir citações/âncoras de data na camada R), reexecutar ponte |
| G-66 vermelho (selecionado não caiu na camada R) | Retornar ao cangjie fase 1/1.5 (coletar mais candidatos/revisar eliminações), reexecutar ponte |
| G-68 vermelho (fechamento/deriva) | Primeiro reexecutar a entrada da auditoria; se ainda vermelho, verificar mapeamento de IDs nas fases 3/4 |
| Comporta de diagramas vermelho | Corrigir o diagrama ou adicionar referência conforme regras da casa, reexecutar entrada da auditoria |
Retorno é normal, não falha — com os itens de falha específicos fornecidos pela comporta (qual citação, qual ID, qual diagrama), corrija direcionadamente, sem refazer tudo.
Critérios de Julgamento (Quem Verifica O Quê)
- Fonte original: citação, após remoção de espaços, deve ser uma substring caractere por caractere do original — evita "citou mas não está no original".
- G-66: capacidades críticas/altas (marcadas como "esqueleto" pela ponte) devem ter citação na camada R de algum cartão — evita que unidades importantes sejam omitidas silenciosamente.
- G-67: na mesma linha, "data × citação" deve co-ocorrer em uma janela de 400 caracteres do original — evita âncoras temporais trocadas.
- G-68: cada ID de pool referenciado pela skill tem fechamento sha256 e o pool não sofre deriva — evita "referencia algo que não está mais no original/pool foi refeito sem reconstruir".
- Comporta de diagramas: o SVG referenciado deve existir; todos os SVGs devem passar no lint com error=0 — evita links quebrados e diagramas ruins.
Linha Vermelha de Qualidade
- Sem texto original, sem destilação; citações ≤ 150 caracteres/parágrafo (inglês ≤ 100 palavras).
- Exercícios sintéticos não podem se passar por casos do livro; na A1, se não houver caso no livro, marque honestamente.
- Não compilar, não instalar antes de todas as auditorias estarem verdes.
- Itens eliminados (
rejected/) devem manter justificativa; lacunas importantes devem ser registradas honestamente, sem fingir zero omissões. - Diagramas consistentes com o texto — se os dados mudaram, o diagrama deve mudar; um diagrama contraditório é pior do que nenhum.
- Conformidade de direitos autorais fica a cargo do usuário, conforme licença do livro original; este fluxo garante apenas "critérios executáveis, citações verificáveis".
Nicho Ecológico
- cangjie-skill (incluído em
$PLUGIN/vendor/): definição autoritativa da metodologia e fluxo de destilação. - dsh-distillation-director (mesmo local): implementação autoritativa das três comportas, scripts locais sem custo de API.
- svg-diagram (mesmo local): regras da casa para diagramas e linter.
- Esta skill faz apenas orquestração e consolidação de estados; as especificações a montante são definidas pelos SKILL.md/README dos três vendors. Em caso de conflito, prevalece o texto original do vendor, e as divergências são registradas aqui.