create-writerkit 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +264 -0
- package/SUGESTOES_WORKFLOW_AGENTICO.md +47 -0
- package/memory/schema.md +18 -0
- package/package.json +1 -1
- package/scripts/reference_checker.py +49 -0
- package/skills/writerkit-chapter/SKILL.md +21 -0
- package/skills/writerkit-code/SKILL.md +17 -0
- package/skills/writerkit-drafting/SKILL.md +17 -0
- package/skills/writerkit-init/SKILL.md +1 -1
- package/skills/writerkit-init/resources/tools.json +1 -1
- package/skills/writerkit-integration/SKILL.md +18 -0
- package/skills/writerkit-planning/SKILL.md +1 -1
- package/skills/writerkit-publication/SKILL.md +16 -0
- package/skills/writerkit-review/SKILL.md +20 -0
- package/skills/writerkit-revision/SKILL.md +16 -0
- package/skills/writerkit-setup/SKILL.md +1 -1
- package/skills/writerkit-validation/SKILL.md +17 -0
- package/skills/writerkit-validation/resources/tools.json +9 -0
- package/skills/writerkit-validation/scripts/reference_checker.py +49 -0
- package/standards/checklists.md +28 -0
- package/workflow/orchestrator.md +15 -0
- package/writerkit_antigo/memory/schema.md +18 -0
- package/writerkit_antigo/scripts/reference_checker.py +49 -0
- package/writerkit_antigo/skills/skill_code.md +10 -0
- package/writerkit_antigo/skills/skill_drafting.md +10 -0
- package/writerkit_antigo/skills/skill_integration.md +10 -0
- package/writerkit_antigo/skills/skill_planning.md +10 -0
- package/writerkit_antigo/skills/skill_publication.md +10 -0
- package/writerkit_antigo/skills/skill_review.md +10 -0
- package/writerkit_antigo/skills/skill_revision.md +10 -0
- package/writerkit_antigo/skills/skill_setup.md +10 -0
- package/writerkit_antigo/skills/skill_validation.md +10 -0
- package/writerkit_antigo/standards/checklists.md +28 -0
- package/writerkit_antigo/workflow/orchestrator.md +15 -0
package/README.md
ADDED
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
# create-writerkit
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/create-writerkit)
|
|
4
|
+
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
|
|
6
|
+
# Versão em Português
|
|
7
|
+
|
|
8
|
+
O create-writerkit é uma ferramenta de linha de comando (CLI) desenvolvida para inicializar, estruturar e gerenciar projetos de livros técnicos e científicos escritos em LaTeX.
|
|
9
|
+
|
|
10
|
+
A ferramenta prepara um ambiente profissional completo, estruturando pastas padronizadas, analisando automaticamente templates LaTeX customizados para extrair regras e estilos (o DNA do template), injetando habilidades (skills) de inteligência artificial no assistente Antigravity (Gemini), e preparando um ambiente virtual Python para verificação automatizada de referências e compilações.
|
|
11
|
+
|
|
12
|
+
## Instalação
|
|
13
|
+
|
|
14
|
+
Como o create-writerkit foi desenhado para ser um inicializador de projetos (estilo create-react-app), a forma recomendada de utilizá-lo é diretamente via npx, sem necessidade de instalação global permanente:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
npx create-writerkit nome-do-seu-projeto
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Caso prefira instalar globalmente no sistema, utilize o gerenciador de pacotes npm:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install -g create-writerkit
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
E execute o comando da seguinte forma:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
create-writerkit nome-do-seu-projeto
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Como Usar (Menu Interativo)
|
|
33
|
+
|
|
34
|
+
Ao executar o comando, o assistente iniciará um questionário interativo no terminal para configurar o escopo do projeto.
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Bem-vindo ao assistente de configuração do WriterKit!
|
|
38
|
+
Configuração dos parâmetros iniciais do projeto.
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### Perguntas do Assistente:
|
|
42
|
+
|
|
43
|
+
1. Nome do livro ou projeto: define o título do livro (por exemplo, Algoritmos e Estruturas de Dados).
|
|
44
|
+
2. Tipo de obra: escolha entre as opções disponíveis:
|
|
45
|
+
* Livro Texto (Didático)
|
|
46
|
+
* Manual Técnico / Documentação
|
|
47
|
+
* Tese / Dissertação Acadêmica
|
|
48
|
+
* Monografia / TCC
|
|
49
|
+
* Artigo Científico Extenso
|
|
50
|
+
3. Tom principal da escrita: define a personalidade do texto gerado ou revisado pela inteligência artificial:
|
|
51
|
+
* Científico Rigoroso (foco em formalismo matemático e teórico)
|
|
52
|
+
* Acadêmico Padrão (linguagem formal, citações e pesquisa)
|
|
53
|
+
* Técnico / Pragmático (direto ao ponto, focado no mercado)
|
|
54
|
+
* Didático / Acessível (linguagem amigável, analogias e passo a passo)
|
|
55
|
+
4. Template LaTeX próprio: selecione se você possui um template existente (arquivos .cls, .sty, etc.). Caso selecione Sim, o assistente solicitará o caminho do diretório onde o template está armazenado para copiar e analisar o código automaticamente.
|
|
56
|
+
5. Confirmação de Estrutura: autorização para criar a estrutura padrão de diretórios.
|
|
57
|
+
6. Exemplos de Código: define se o livro conterá blocos de código e a linguagem de programação principal (por exemplo, Python, TypeScript, Rust, C++, etc.).
|
|
58
|
+
|
|
59
|
+
## Estrutura de Diretórios Gerada
|
|
60
|
+
|
|
61
|
+
Abaixo está a estrutura de diretórios gerada no projeto:
|
|
62
|
+
|
|
63
|
+
```text
|
|
64
|
+
meu-livro/
|
|
65
|
+
├── chapters/ # Arquivos .tex contendo os capítulos divididos
|
|
66
|
+
├── codes/ # Códigos fonte de exemplo estruturados por capítulo
|
|
67
|
+
├── images/ # Imagens (PNG, SVG) e diagramas TikZ
|
|
68
|
+
├── configs/ # Arquivos de estilo (.sty) e classe (.cls)
|
|
69
|
+
├── fonts/ # Fontes personalizadas utilizadas no documento
|
|
70
|
+
├── templates/ # Arquivos originais do template LaTeX importado
|
|
71
|
+
├── output/ # Estrutura compilável final e PDFs de saída
|
|
72
|
+
├── memory/
|
|
73
|
+
│ └── memory.json # Arquivo de estado e controle de metadados
|
|
74
|
+
├── venv/ # Ambiente virtual Python isolado
|
|
75
|
+
└── main.tex # Arquivo mestre de compilação LaTeX
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### O Arquivo memory.json
|
|
79
|
+
|
|
80
|
+
Este arquivo é o núcleo de integração entre o projeto LaTeX e as inteligências artificiais de escrita (como o Antigravity ou Gemini). Ele armazena as seguintes informações:
|
|
81
|
+
|
|
82
|
+
* Metadados da obra: título, tom de escrita, idioma e linguagem de programação.
|
|
83
|
+
* DNA do Template: comandos e ambientes LaTeX permitidos, cores institucionais identificadas nos arquivos .cls ou .sty e configurações do pacote listings.
|
|
84
|
+
* Log de Decisões: histórico cronológico de alterações, revisões e decisões tomadas no projeto, permitindo que a inteligência artificial mantenha consistência histórica.
|
|
85
|
+
|
|
86
|
+
## Análise Automática de Templates (DNA Extraction)
|
|
87
|
+
|
|
88
|
+
Ao fornecer o caminho para um template LaTeX existente durante o assistente, o CLI lê os arquivos .cls, .sty e .tex buscando por:
|
|
89
|
+
|
|
90
|
+
* Comandos customizados: mapeamento de newcommand, renewcommand e def.
|
|
91
|
+
* Ambientes: definições de newenvironment.
|
|
92
|
+
* Cores do tema: definições de definecolor.
|
|
93
|
+
* Configurações de listings: parametrização do pacote lstset.
|
|
94
|
+
|
|
95
|
+
### Injeção de Regras e Diretrizes via Comentários
|
|
96
|
+
|
|
97
|
+
Você pode instruir a inteligência artificial diretamente a partir de comentários nos seus arquivos LaTeX de template. O processador analisa linhas com palavras-chave específicas e as insere automaticamente como regras obrigatórias de estilo na memória do projeto.
|
|
98
|
+
|
|
99
|
+
Use os seguintes formatos no seu template:
|
|
100
|
+
|
|
101
|
+
```latex
|
|
102
|
+
% REGRA: Use sempre a macro \codebox{} para destacar trechos de terminal.
|
|
103
|
+
% ATENÇÃO: Nunca compile imagens fora do ambiente TikZ oficial.
|
|
104
|
+
% IMPORTANTE: Todas as listagens de código devem ter legenda e label descritivo.
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Integração com o Antigravity (Gemini CLI)
|
|
108
|
+
|
|
109
|
+
Ao finalizar a execução, o create-writerkit instala automaticamente as habilidades (skills) essenciais no diretório do seu assistente Gemini local em `~/.gemini/antigravity/skills/writerkit/`:
|
|
110
|
+
|
|
111
|
+
1. `writerkit-init`: orquestra as etapas de inicialização e as regras de estruturação.
|
|
112
|
+
2. `writerkit-setup`: realiza o alinhamento de pilares editoriais e extração de DNA de templates.
|
|
113
|
+
3. `writerkit-planning`: cria roteiros didáticos e planejamentos de conteúdo para novos capítulos.
|
|
114
|
+
4. `writerkit-chapter`: orquestra o fluxo de produção de um capítulo.
|
|
115
|
+
5. `writerkit-drafting`: gera conteúdo conceitual preliminar em LaTeX.
|
|
116
|
+
6. `writerkit-code`: desenvolve e valida algoritmos no padrão da memória.
|
|
117
|
+
7. `writerkit-integration`: consolida texto, código e diagramas TikZ.
|
|
118
|
+
8. `writerkit-review`: realiza análises crítica e pedagógica.
|
|
119
|
+
9. `writerkit-validation`: faz a verificação técnica de estrutura e referências bibliográficas.
|
|
120
|
+
10. `writerkit-revision`: refatora o conteúdo com base nos feedbacks recebidos.
|
|
121
|
+
11. `writerkit-publication`: prepara o arquivo final pronto para compilação.
|
|
122
|
+
|
|
123
|
+
### Ambiente Virtual Python (venv)
|
|
124
|
+
|
|
125
|
+
O CLI cria automaticamente a pasta venv no ambiente local. Esse ambiente isolado é preparado para rodar ferramentas auxiliares integradas com as habilidades de inteligência artificial, como scripts de validação de referências bibliográficas (reference_checker.py), garantindo que nenhuma dependência quebre no sistema global.
|
|
126
|
+
|
|
127
|
+
## Sugestões de Melhoria e Feedback
|
|
128
|
+
|
|
129
|
+
Este projeto é mantido por Ricardo Sekeff. Caso encontre falhas, tenha ideias de novas funcionalidades ou queira sugerir melhorias no processo de injeção e análise de templates LaTeX, envie uma mensagem para o endereço:
|
|
130
|
+
|
|
131
|
+
[ricardosekeff@gmail.com](mailto:ricardosekeff@gmail.com)
|
|
132
|
+
|
|
133
|
+
O seu feedback é muito importante para tornar o fluxo de escrita acadêmica com inteligência artificial mais robusto.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
# English Version
|
|
138
|
+
|
|
139
|
+
create-writerkit is a command-line interface (CLI) tool designed to initialize, structure, and manage technical and scientific book projects written in LaTeX.
|
|
140
|
+
|
|
141
|
+
The tool configures a complete, professional authoring environment by generating standardized folder trees, automatically parsing custom LaTeX templates to extract styles and rules (template DNA), injecting specialized AI skills into your Antigravity (Gemini) assistant, and setting up an isolated Python virtual environment for automated reference validation and compilation tasks.
|
|
142
|
+
|
|
143
|
+
## Installation
|
|
144
|
+
|
|
145
|
+
Since create-writerkit is designed to be a project bootstrapper (similar to create-react-app), the recommended way to use it is directly via npx, without installing it globally:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
npx create-writerkit your-project-name
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
If you prefer to install it globally on your machine, run the following npm command:
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
npm install -g create-writerkit
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Then, run it anytime using:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
create-writerkit your-project-name
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Usage (Interactive Wizard)
|
|
164
|
+
|
|
165
|
+
When you run the command, an interactive setup wizard will guide you through configuring your book parameters in your terminal.
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
Welcome to the WriterKit setup wizard!
|
|
169
|
+
Configure the initial parameters of your project.
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Setup Wizard Questions:
|
|
173
|
+
|
|
174
|
+
1. Book or Project Name: set your book title (for example, Algorithms and Data Structures).
|
|
175
|
+
2. Book Type: choose from the available options:
|
|
176
|
+
* Textbook (Didactic)
|
|
177
|
+
* Technical Manual / Documentation
|
|
178
|
+
* Thesis / Dissertation
|
|
179
|
+
* Graduation Project / Thesis (TCC)
|
|
180
|
+
* Extended Scientific Paper
|
|
181
|
+
3. Writing Tone: establishes the personality of the AI-generated or AI-reviewed text:
|
|
182
|
+
* Rigorous Scientific (focused on mathematical and theoretical formalism)
|
|
183
|
+
* Standard Academic (formal language, heavy focus on research and citations)
|
|
184
|
+
* Technical / Pragmatic (straight to the point, industry and execution-focused)
|
|
185
|
+
* Didactic / Accessible (friendly language, analogies and step-by-step approach)
|
|
186
|
+
4. Custom LaTeX Template: select if you have your own LaTeX template files (.cls, .sty, etc.). If you select Yes, you will be asked to provide the path to your template folder so the CLI can scan it.
|
|
187
|
+
5. Structure Confirmation: confirm the generation of the default WriterKit directory tree.
|
|
188
|
+
6. Code Examples: indicate if your book contains code blocks, and choose the primary programming language (for example, Python, TypeScript, Rust, C++, etc.).
|
|
189
|
+
|
|
190
|
+
## Directory Structure Generated
|
|
191
|
+
|
|
192
|
+
Below is the directory structure generated in the project:
|
|
193
|
+
|
|
194
|
+
```text
|
|
195
|
+
my-book/
|
|
196
|
+
├── chapters/ # .tex files containing divided chapters
|
|
197
|
+
├── codes/ # Source code snippets organized by chapter
|
|
198
|
+
├── images/ # Images (PNG, SVG) and TikZ diagrams
|
|
199
|
+
├── configs/ # Class files (.cls) and style sheets (.sty)
|
|
200
|
+
├── fonts/ # Custom fonts used in the document
|
|
201
|
+
├── templates/ # Copy of your original imported LaTeX templates
|
|
202
|
+
├── output/ # Final compilable outputs and generated PDFs
|
|
203
|
+
├── memory/
|
|
204
|
+
│ └── memory.json # State and metadata configuration file
|
|
205
|
+
├── venv/ # Isolated Python virtual environment
|
|
206
|
+
└── main.tex # LaTeX compilation master file
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### The memory.json File
|
|
210
|
+
|
|
211
|
+
This file serves as the bridge between your LaTeX source files and writing assistants (such as Antigravity or Gemini). It keeps track of:
|
|
212
|
+
|
|
213
|
+
* Project Metadata: title, writing tone, language, and primary programming language.
|
|
214
|
+
* Template DNA: allowed custom LaTeX commands, environments, official color tokens extracted from .cls or .sty files, and listings configuration.
|
|
215
|
+
* Decision Log: a chronological history of editorial decisions and project steps, allowing the AI to understand past context.
|
|
216
|
+
|
|
217
|
+
## Automated Template Parsing (DNA Extraction)
|
|
218
|
+
|
|
219
|
+
When providing a custom LaTeX template path, the CLI scans the .cls, .sty, and .tex files to extract:
|
|
220
|
+
|
|
221
|
+
* Custom Commands: definitions of newcommand, renewcommand and def.
|
|
222
|
+
* Environments: definitions of newenvironment.
|
|
223
|
+
* Theme Colors: color tokens created via definecolor.
|
|
224
|
+
* Listings Configurations: code block customizations defined in lstset.
|
|
225
|
+
|
|
226
|
+
### Writing AI Instructions via Code Comments
|
|
227
|
+
|
|
228
|
+
You can write instructions for the AI directly inside your LaTeX template files. The parser checks for comments starting with specific keywords and records them as mandatory guidelines in the project memory.
|
|
229
|
+
|
|
230
|
+
Use these formats in your template:
|
|
231
|
+
|
|
232
|
+
```latex
|
|
233
|
+
% REGRA: Always use the \codebox{} macro to highlight console commands.
|
|
234
|
+
% ATENÇÃO: Never compile vector images outside the official TikZ environment.
|
|
235
|
+
% IMPORTANTE: All code listings must have a caption and a label.
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Antigravity (Gemini CLI) Integration
|
|
239
|
+
|
|
240
|
+
Upon successful setup, create-writerkit automatically installs essential AI skills directly to your local Gemini assistant directory in `~/.gemini/antigravity/skills/writerkit/`:
|
|
241
|
+
|
|
242
|
+
1. `writerkit-init`: orchestrates project creation steps and folder structures.
|
|
243
|
+
2. `writerkit-setup`: aligns editorial standards and extracts LaTeX template DNA.
|
|
244
|
+
3. `writerkit-planning`: creates pedagogical chapter outlines and content planning.
|
|
245
|
+
4. `writerkit-chapter`: orchestrates the production workflow of a chapter.
|
|
246
|
+
5. `writerkit-drafting`: generates initial conceptual content in LaTeX.
|
|
247
|
+
6. `writerkit-code`: develops and validates code blocks following memory standards.
|
|
248
|
+
7. `writerkit-integration`: consolidates text, code, and TikZ diagrams.
|
|
249
|
+
8. `writerkit-review`: performs critical pedagogical and technical peer-review.
|
|
250
|
+
9. `writerkit-validation`: runs structural validation and reference validation.
|
|
251
|
+
10. `writerkit-revision`: refactors content based on received feedback.
|
|
252
|
+
11. `writerkit-publication`: finalizes the chapter and makes it ready for compilation.
|
|
253
|
+
|
|
254
|
+
### Python Virtual Environment (venv)
|
|
255
|
+
|
|
256
|
+
The CLI configures a local venv folder. This isolated environment is ready to execute assistant scripts, such as a bibliography verification script (reference_checker.py), ensuring that system-wide dependencies are not affected.
|
|
257
|
+
|
|
258
|
+
## Suggestions & Feedback
|
|
259
|
+
|
|
260
|
+
This project is maintained by Ricardo Sekeff. If you encounter bugs, have feature requests, or want to suggest improvements to the template parser and skill integration, please reach out via email:
|
|
261
|
+
|
|
262
|
+
[ricardosekeff@gmail.com](mailto:ricardosekeff@gmail.com)
|
|
263
|
+
|
|
264
|
+
Your suggestions are highly valuable to build a better, AI-assisted academic writing workflow.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Análise e Sugestões de Melhoria no Workflow do WriterKit
|
|
2
|
+
|
|
3
|
+
Após a análise do repositório, nota-se que o **WriterKit** possui uma estrutura excepcional de orquestração editorial em pipeline linear (fases de 0 a 9) com ênfase rigorosa em _Zero Hallucination_, forte uso de memória de estado (`memory.json`) e ferramentas específicas (ex. `reference_checker.py`). Este design funciona de forma excelente dentro do contexto de _skills_ que rodam no **Antigravity / Gemini CLI**.
|
|
4
|
+
|
|
5
|
+
No entanto, considerando as **tendências atuais de sistemas agênticos**, podemos aprimorar esse workflow para ir além da execução "passo a passo" dependente da invocação manual do usuário, tornando-o mais autônomo, robusto e multi-modal.
|
|
6
|
+
|
|
7
|
+
Abaixo, apresento sugestões baseadas nos avanços mais recentes em engenharia agêntica:
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Transição de Execução Linear para Grafos Cíclicos (State Machines / DAGs)
|
|
12
|
+
Atualmente, o processo exige que o usuário avance linearmente: `setup` -> `planning` -> `drafting` -> `review` -> `revision` etc.
|
|
13
|
+
|
|
14
|
+
**Tendência Agêntica:** Sistemas modernos (como implementados em LangGraph) utilizam grafos de fluxo de trabalho não-lineares, permitindo **loops de auto-correção (Self-Correction Loops)**.
|
|
15
|
+
* **Sugestão:** Integrar um mecanismo onde a fase de `Review` ou `Validation` possa, de forma autônoma, retroceder (devolver a execução) à fase de `Drafting` ou `Code Development` se uma falha for encontrada no checklist (`checklists.md`), sem precisar de um humano dizendo "corrija isso". O log de decisões seria atualizado justificando a regressão temporal.
|
|
16
|
+
|
|
17
|
+
## 2. Paradigma Multi-Agente (Sistemas de Especialistas Múltiplos)
|
|
18
|
+
Atualmente as skills trocam o "chapéu" do mesmo LLM dependendo do momento.
|
|
19
|
+
**Tendência Agêntica:** Designar personas com "System Prompts" conflitantes/complementares, simulando uma redação humana (Actor-Critic framework).
|
|
20
|
+
* **Sugestão de Papéis Autônomos:**
|
|
21
|
+
* **Agente Pesquisador (Researcher Agent):** Realiza RAG e busca online (`reference_checker.py`), validando links ativamente *enquanto* o capítulo é rascunhado.
|
|
22
|
+
* **Agente Redator (Writer Agent):** Foca apenas na escrita e no fluxo da narrativa baseada no tom, ignorando o LaTeX neste momento.
|
|
23
|
+
* **Agente Tipógrafo / Engenheiro LaTeX (Typesetter Agent):** Foca exclusivamente na conversão da prosa para LaTeX e TikZ.
|
|
24
|
+
* **Agente Revisor Crítico (Reviewer Agent):** Opera como o "Peer Reviewer", aplicando rigorosamente o `checklists.md` e devolvendo o texto ao Agente Redator ou Engenheiro se a nota de aprovação não for atingida.
|
|
25
|
+
|
|
26
|
+
## 3. Sandboxing Nativo para Validação de Código e Compilação LaTeX
|
|
27
|
+
No modelo atual, há ênfase na não-halucinação de comandos LaTeX, mas não está claro se há uma pré-compilação em "sandbox" automatizada e de código (`developing-code`).
|
|
28
|
+
**Tendência Agêntica:** O LLM cria código e tenta rodar em uma Sandbox (Code Interpreter / Execução de bash), lendo a saída do terminal (Stdout/Stderr) e alterando seu próprio código caso falhe.
|
|
29
|
+
* **Sugestão:** Implementar na fase `integrating-assets` / `validating-references` uma **Tool Calling de Compilação**. O agente invoca (via `pdflatex` ou `latexmk` em docker local/sandbox) o `main.tex`. O agente lê as primeiras linhas do `main.log`. Se houver "Undefined control sequence", o agente corrige o erro e tenta novamente. O mesmo vale para execução dos códigos gerados na fase de `developing-code`.
|
|
30
|
+
|
|
31
|
+
## 4. RAG de Memória Longa (Long-term Context & Consistency)
|
|
32
|
+
O `memory.json` já representa um avanço incrível. Contudo, em livros grandes, o contexto pode estourar as janelas atuais ou tornar o processamento ineficiente.
|
|
33
|
+
**Tendência Agêntica:** Vector Databases locais (como ChromaDB, Faiss) ou summarização hierárquica baseada em grafos para manutenção da coesão.
|
|
34
|
+
* **Sugestão:** Durante a fase de `drafting-content` de um capítulo avançado (ex. Capítulo 5), a skill deve realizar RAG sobre os `.tex` e os logs de decisão dos Capítulos 1 ao 4, para que possa referenciar organicamente: *"Como vimos na Seção 2.3..."*. Essa busca semântica dentro dos capítulos já gerados mantém a coesão sem sobrecarregar a janela de contexto.
|
|
35
|
+
|
|
36
|
+
## 5. Tool Calling Proativo (Function Calling como Ação Padrão)
|
|
37
|
+
**Tendência Agêntica:** Em vez de depender do prompt instruir o agente, as ferramentas são expostas como nativas à API do modelo (Tool/Function Calling).
|
|
38
|
+
* **Sugestão:** O `writerkit-init/resources/tools.json` já é um começo. O framework poderia expor comandos de terminal diretamente para o Gemini CLI. Quando o agente precisa verificar uma referência, ele não apenas "pede para rodar" ou finge que rodou: ele emite a chamada de função `check_references(url, doi)`, lê o JSON de retorno real da API (ou de scripts em Python como o `reference_checker.py`), e baseia o texto de forma determinística na resposta.
|
|
39
|
+
|
|
40
|
+
## 6. Feedback Humano (Human-in-the-Loop - HITL) com Aceleração de UX
|
|
41
|
+
**Tendência Agêntica:** Agentes pedem aprovação do humano apenas em "Portões de Decisão" (Decision Gates) críticos, operando autonomamente no resto.
|
|
42
|
+
* **Sugestão:** Reduzir a carga do usuário de ter que invocar manualmente cada etapa 0 a 9. Em vez disso, o usuário diz *"Inicie o fluxo do Capítulo 2"*. O sistema roda até gerar o *Blueprint* (`planning`), pausa para o usuário aprovar (Y/n), e então dispara autonomamente as fases de 4 a 8 de uma vez. Pausa novamente só ao fim da validação (`validation`) com um PDF/Log para o humano aprovar e seguir ao próximo passo de revisão/publicação final.
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
### Conclusão e Próximos Passos (Integração Antigravity/Gemini)
|
|
47
|
+
A evolução natural para o **WriterKit** no ecossistema **Gemini CLI / Antigravity** é torná-lo um **"Meta-Agente Orquestrador"**. O usuário conversaria com apenas um agente mestre (ex. `writerkit-orchestrator`), que chamaria em background as skills de inicialização, escrita, revisão e compilação, manipulando o `memory.json` e as pastas locais de forma autônoma e pedindo permissão apenas nas quebras estruturais do projeto.
|
package/memory/schema.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Módulo de Memória e Estado
|
|
2
|
+
|
|
3
|
+
O arquivo de memória (ex: `memory.json`) deve ser mantido e atualizado constantemente pelas *skills*.
|
|
4
|
+
|
|
5
|
+
## Estrutura de Metadados do Projeto
|
|
6
|
+
* **`title`**: Título da obra.
|
|
7
|
+
* **`theme`**: Tema central e escopo.
|
|
8
|
+
* **`language`**: Idioma da obra (ex: pt-BR).
|
|
9
|
+
* **`depth`**: Nível de profundidade (Graduação, Mestrado, Técnico).
|
|
10
|
+
* **`rigor`**: Nível de formalismo matemático/teórico.
|
|
11
|
+
* **`tone`**: Personalidade do texto (Formal, Professoral, Crítico).
|
|
12
|
+
* **`code_style`**: Linguagem e guia de estilo de código.
|
|
13
|
+
* **`visual_style`**: Padrão para imagens e diagramas (ex: TikZ, preto e branco).
|
|
14
|
+
* **`latex_template`**: Referências aos arquivos `.tex`, `.cls` e `.sty` utilizados.
|
|
15
|
+
|
|
16
|
+
## Logs e Controle
|
|
17
|
+
* **`chapters`**: Status e metadados de cada capítulo.
|
|
18
|
+
* **`decision_log`**: Histórico temporal (timestamps) de todas as decisões tomadas.
|
package/package.json
CHANGED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import re
|
|
2
|
+
import urllib.request
|
|
3
|
+
import urllib.error
|
|
4
|
+
import urllib.parse
|
|
5
|
+
import json
|
|
6
|
+
from typing import Dict
|
|
7
|
+
|
|
8
|
+
# SCRIPT DE VALIDAÇÃO DE REFERÊNCIAS (Reference Checker)
|
|
9
|
+
# Objetivo: Garantir a veracidade de artigos citados no livro, prevenindo alucinações da IA.
|
|
10
|
+
|
|
11
|
+
def check_paper_existence(title: str, first_author: str = "") -> bool:
|
|
12
|
+
base_url = "https://api.crossref.org/works?"
|
|
13
|
+
query_params = {"query.title": title, "rows": 3}
|
|
14
|
+
if first_author:
|
|
15
|
+
query_params["query.author"] = first_author
|
|
16
|
+
|
|
17
|
+
url = base_url + urllib.parse.urlencode(query_params)
|
|
18
|
+
|
|
19
|
+
try:
|
|
20
|
+
req = urllib.request.Request(url, headers={'User-Agent': 'WriterKit-Antigravity/1.0'})
|
|
21
|
+
with urllib.request.urlopen(req) as response:
|
|
22
|
+
if response.status == 200:
|
|
23
|
+
data = json.loads(response.read().decode())
|
|
24
|
+
items = data.get("message", {}).get("items", [])
|
|
25
|
+
if items:
|
|
26
|
+
return True
|
|
27
|
+
return False
|
|
28
|
+
except urllib.error.URLError as e:
|
|
29
|
+
print(f"Erro ao acessar CrossRef: {e}")
|
|
30
|
+
return False
|
|
31
|
+
|
|
32
|
+
def validate_bibtex(bibtex_content: str) -> Dict[str, str]:
|
|
33
|
+
results = {}
|
|
34
|
+
entries = bibtex_content.split("@")
|
|
35
|
+
for entry in entries[1:]:
|
|
36
|
+
title_match = re.search(r'title\s*=\s*[{"]([^}"]+)[}"]', entry, re.IGNORECASE)
|
|
37
|
+
author_match = re.search(r'author\s*=\s*[{"]([^}"]+)[}"]', entry, re.IGNORECASE)
|
|
38
|
+
id_match = re.search(r'^[^\{]+\{([^,]+),', entry)
|
|
39
|
+
|
|
40
|
+
if title_match and id_match:
|
|
41
|
+
ref_id = id_match.group(1).strip()
|
|
42
|
+
title = title_match.group(1).strip()
|
|
43
|
+
author = author_match.group(1).split(' and ')[0].strip() if author_match else ""
|
|
44
|
+
|
|
45
|
+
print(f"Verificando referência [{ref_id}]: {title}...")
|
|
46
|
+
is_valid = check_paper_existence(title, author)
|
|
47
|
+
results[ref_id] = "VERIFICADA_E_VALIDA" if is_valid else "FALHA_NA_VERIFICACAO"
|
|
48
|
+
|
|
49
|
+
return results
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: writerkit-chapter
|
|
2
|
+
description: Orchestrates the end-to-end workflow for producing a book chapter, sequentially invoking individual skills.
|
|
3
|
+
metadata:
|
|
4
|
+
triggers: chapter production, chapter orchestration, book writing pipeline, writerkit chapter
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Chapter Orchestrator (writerkit-chapter)
|
|
8
|
+
|
|
9
|
+
Este workflow orquestra o fluxo ponta-a-ponta para a produção de um capítulo, invocando sequencialmente as skills individuais.
|
|
10
|
+
|
|
11
|
+
## Etapas do Workflow
|
|
12
|
+
1. **Planning** (`/writer-planning`): Define chapter objectives, outline sections, identify code examples.
|
|
13
|
+
2. **Drafting** (`/writer-drafting`): Use chapter template, write conceptual content, add placeholders.
|
|
14
|
+
3. **Code Development** (`/writer-code`): Implement and test code examples externally (mapping accents).
|
|
15
|
+
4. **Integration** (`/writer-integration`): Insert validated code into chapter, add explanations.
|
|
16
|
+
5. **Review** (`/writer-review`): Self-review using the production checklist.
|
|
17
|
+
6. **Validation** (`/writer-validation`): Run validation scripts (including the Reference Checker).
|
|
18
|
+
7. **Revision** (`/writer-revision`): Address issues and improve clarity.
|
|
19
|
+
8. **Publication** (`/writer-publication`): Finalize and publish chapter.
|
|
20
|
+
|
|
21
|
+
*Nota: Todas as decisões e transições de estado devem ser registradas no `decision_log` da memória.*
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: writerkit-code
|
|
2
|
+
description: Use when the user asks to develop, validate, or insert programming code and algorithms into the LaTeX book project.
|
|
3
|
+
metadata:
|
|
4
|
+
triggers: code development, algorithm writing, listings configuration, code formatting, syntax highlighting
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Code Development
|
|
8
|
+
|
|
9
|
+
## When to Use This Skill
|
|
10
|
+
- Writing or refactoring source code snippets for the book.
|
|
11
|
+
- Embedding code blocks using `listings` or `algorithm` environments.
|
|
12
|
+
- Configuring syntax highlighting and code formatting options.
|
|
13
|
+
|
|
14
|
+
## How to Use It
|
|
15
|
+
1. **Follow Style Guidelines:** Read the code style configuration from `./memory/memory.json` (Action: `READ_CODE_STYLE`).
|
|
16
|
+
2. **Develop & Validate Code:** Write clean, compilable code in the target programming language.
|
|
17
|
+
3. **Accented Characters Mapping (Critical Requirement):** Map Latin accented characters in the `listings` or `algorithm` environments using `literate` dictionary (e.g. `literate={(á}{{\'a}}1 {é}{{\'e}}1 ...}`) to avoid compilation/rendering issues (blank spaces) on TexPage.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: writerkit-drafting
|
|
2
|
+
description: Use when drafting the raw textual and conceptual content for a book chapter in LaTeX.
|
|
3
|
+
metadata:
|
|
4
|
+
triggers: chapter drafting, conceptual content, raw text generation, writing placeholders
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Chapter Drafting
|
|
8
|
+
|
|
9
|
+
## When to Use This Skill
|
|
10
|
+
- Writing initial conceptual content for a book chapter.
|
|
11
|
+
- Drafting text sections based on the planning outline.
|
|
12
|
+
- Inserting code or image placeholders.
|
|
13
|
+
|
|
14
|
+
## How to Use It
|
|
15
|
+
1. **Read Metadata:** Retrieve the project goals, tone, language, and guidelines from `./memory/memory.json` (Action: `READ_METADATA`).
|
|
16
|
+
2. **Draft Conceptual Content:** Write the chapter content in LaTeX, ensuring you adhere to the professor/didactic tone and scientific rigor defined in the setup phase.
|
|
17
|
+
3. **Insert Placeholders:** Use `\INPUTCODE{id}` and `\INPUTIMG{id}` placeholders for code snippets and images to be integrated later.
|
|
@@ -20,7 +20,7 @@ This skill orchestrates the full lifecycle of technical book production, from in
|
|
|
20
20
|
The workflow is divided into 8 mandatory phases. **Phase 0 is required once per project.**
|
|
21
21
|
|
|
22
22
|
0. **Initialization** (`writerkit-init`): **MANDATORY FIRST STEP.**
|
|
23
|
-
- Copy the `/home/sekeff/.gemini/antigravity/skills/writerkit-init/memory/` directory to the local project root as `./memory/`.
|
|
23
|
+
- Copy the `/home/sekeff/.gemini/antigravity/skills/writerkit/writerkit-init/memory/` directory to the local project root as `./memory/`.
|
|
24
24
|
- Create the following project structure:
|
|
25
25
|
- `./chapters`: For chapter `.tex` files.
|
|
26
26
|
- `./codes`: For code snippet `.tex` files, organized by `./codes/chapterxx/`.
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
{
|
|
9
9
|
"name": "check_references",
|
|
10
10
|
"description": "Verifies the real-world existence of scientific articles",
|
|
11
|
-
"execute": "python3 /home/sekeff/.gemini/antigravity/skills/writerkit-init/scripts/reference_checker.py"
|
|
11
|
+
"execute": "python3 /home/sekeff/.gemini/antigravity/skills/writerkit/writerkit-init/scripts/reference_checker.py"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: writerkit-integration
|
|
2
|
+
description: Use to integrate code snippets, TikZ diagrams, and images into the chapter text, replacing placeholders.
|
|
3
|
+
metadata:
|
|
4
|
+
triggers: content integration, TikZ diagrams, code embedding, cross-references
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Content Integration
|
|
8
|
+
|
|
9
|
+
## When to Use This Skill
|
|
10
|
+
- Inserting final validated code snippets into the LaTeX chapter files.
|
|
11
|
+
- Generating TikZ diagrams and illustrations.
|
|
12
|
+
- Setting up and validating cross-references between text, code, and figures.
|
|
13
|
+
|
|
14
|
+
## How to Use It
|
|
15
|
+
1. **Read Chapter Data:** Fetch the current chapter data and plans from `./memory/memory.json` (Action: `READ_CHAPTER_DATA`).
|
|
16
|
+
2. **Replace Placeholders:** Replace the `\INPUTCODE{id}` and `\INPUTIMG{id}` placeholders with the actual validated code files and images.
|
|
17
|
+
3. **Generate TikZ Diagrams:** Create TikZ diagrams following the `visual_style` guidelines.
|
|
18
|
+
4. **Ensure Cross-References:** Verify that all cross-references (`\ref`, `\label`, `\cite`) are functional and correct.
|
|
@@ -15,4 +15,4 @@ metadata:
|
|
|
15
15
|
1. **Review Book Metadata:** Load project goals from `./memory/memory.json`.
|
|
16
16
|
2. **Generate Outline:** Create a detailed structure including conceptual sections, code snippets, and TikZ illustrations.
|
|
17
17
|
3. **Set Learning Objectives:** Define what the student/reader should master by the end of the chapter.
|
|
18
|
-
4. **Save Plan:** Record the approved outline in the project memory.
|
|
18
|
+
4. **Save Plan:** Record the approved outline in the project memory (Action: `WRITE_CHAPTER_PLAN`).
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: writerkit-publication
|
|
2
|
+
description: Use to finalize the chapter and update the global book index for compilation on TexPage.
|
|
3
|
+
metadata:
|
|
4
|
+
triggers: finalize chapter, book publication, global index update, compile ready
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Chapter Publication
|
|
8
|
+
|
|
9
|
+
## When to Use This Skill
|
|
10
|
+
- Preparing a completed, revised chapter for production.
|
|
11
|
+
- Compiling the final LaTeX output files.
|
|
12
|
+
- Updating the global book indices.
|
|
13
|
+
|
|
14
|
+
## How to Use It
|
|
15
|
+
1. **Generate Final LaTeX:** Ensure the LaTeX code for the chapter is clean, complete, and placed in the target output structure.
|
|
16
|
+
2. **Finalize Chapter State:** Mark the chapter as completed and update the global index in the project memory (Action: `FINALIZE_CHAPTER`).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
name: writerkit-review
|
|
2
|
+
description: Use to perform a critical pedagogical and technical peer review of the drafted chapter.
|
|
3
|
+
metadata:
|
|
4
|
+
triggers: peer review, chapter audit, pedagogical critique, technical verification
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Chapter Review
|
|
8
|
+
|
|
9
|
+
## When to Use This Skill
|
|
10
|
+
- Auditing a completed chapter draft before final validation.
|
|
11
|
+
- Assessing technical accuracy and educational clarity.
|
|
12
|
+
- Evaluating depth of explanations against target audience level.
|
|
13
|
+
|
|
14
|
+
## How to Use It
|
|
15
|
+
1. **Read Project Context:** Review book objectives and audience level from the project memory.
|
|
16
|
+
2. **Act as Peer Reviewer:** Critique the draft objectively as a blind peer reviewer. Assess:
|
|
17
|
+
- Clarity of arguments and explanations.
|
|
18
|
+
- Technical accuracy of concepts and code.
|
|
19
|
+
- Pedagogical suitability for the target audience.
|
|
20
|
+
3. **Log Decisions:** Save the review notes, recommendations, and decisions to the decision log in `./memory/memory.json` (Action: `LOG_DECISION`).
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: writerkit-revision
|
|
2
|
+
description: Use to refactor and improve the chapter based on review feedback and validation findings.
|
|
3
|
+
metadata:
|
|
4
|
+
triggers: chapter revision, feedback refactoring, style improvement, text editing
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Chapter Revision
|
|
8
|
+
|
|
9
|
+
## When to Use This Skill
|
|
10
|
+
- Editing chapter content after receiving feedback from the Review and Validation phases.
|
|
11
|
+
- Refactoring sections to improve flow and tone.
|
|
12
|
+
|
|
13
|
+
## How to Use It
|
|
14
|
+
1. **Apply Corrections:** Address specific review comments and fix any syntax or reference errors found.
|
|
15
|
+
2. **Refine Prose:** Enhance text readability and logical flow while maintaining scientific and academic rigor.
|
|
16
|
+
3. **Update Chapter State:** Record the updated state and revision notes in `./memory/memory.json` (Action: `UPDATE_CHAPTER_STATE`).
|
|
@@ -23,4 +23,4 @@ metadata:
|
|
|
23
23
|
- **Primary Programming Language:** For syntax highlighting and accent mapping.
|
|
24
24
|
- **Reference Style:** (e.g., ABNT, IEEE).
|
|
25
25
|
3. **Map Characters:** Configure the `literate` dictionary for the `listings` package to handle accented characters in code.
|
|
26
|
-
4. **Persist State:** Save all configurations, including the **mapped commands/environments and colors**, to `./memory/memory.json` and log the completion in the `decision_log`.
|
|
26
|
+
4. **Persist State:** Save all configurations, including the **mapped commands/environments and colors**, to `./memory/memory.json` (Action: `WRITE_INITIAL_STATE`) and log the completion in the `decision_log`.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: writerkit-validation
|
|
2
|
+
description: Use to check LaTeX syntax, environment integrity, and run academic reference validation.
|
|
3
|
+
metadata:
|
|
4
|
+
triggers: compile check, reference validation, LaTeX syntax, structural check
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Structural & Reference Validation
|
|
8
|
+
|
|
9
|
+
## When to Use This Skill
|
|
10
|
+
- Verifying LaTeX compilation readiness and syntax.
|
|
11
|
+
- Checking that all LaTeX environments are closed properly.
|
|
12
|
+
- Validating the authenticity of academic citations.
|
|
13
|
+
|
|
14
|
+
## How to Use It
|
|
15
|
+
1. **Read Metadata:** Load the project's metadata and reference styles from `./memory/memory.json` (Action: `READ_METADATA`).
|
|
16
|
+
2. **Check LaTeX Structure:** Run structural checks on the `.tex` files to verify that all environments (like `\begin` and `\end` tags) are balanced and closed.
|
|
17
|
+
3. **Run Reference Checker:** Invoke the bibliography reference validation script to check the validity of references in the BibTeX or text citations against the database (e.g. using `check_references` tool).
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import re
|
|
2
|
+
import urllib.request
|
|
3
|
+
import urllib.error
|
|
4
|
+
import urllib.parse
|
|
5
|
+
import json
|
|
6
|
+
from typing import Dict
|
|
7
|
+
|
|
8
|
+
# SCRIPT DE VALIDAÇÃO DE REFERÊNCIAS (Reference Checker)
|
|
9
|
+
# Objetivo: Garantir a veracidade de artigos citados no livro, prevenindo alucinações da IA.
|
|
10
|
+
|
|
11
|
+
def check_paper_existence(title: str, first_author: str = "") -> bool:
|
|
12
|
+
base_url = "https://api.crossref.org/works?"
|
|
13
|
+
query_params = {"query.title": title, "rows": 3}
|
|
14
|
+
if first_author:
|
|
15
|
+
query_params["query.author"] = first_author
|
|
16
|
+
|
|
17
|
+
url = base_url + urllib.parse.urlencode(query_params)
|
|
18
|
+
|
|
19
|
+
try:
|
|
20
|
+
req = urllib.request.Request(url, headers={'User-Agent': 'WriterKit-Antigravity/1.0'})
|
|
21
|
+
with urllib.request.urlopen(req) as response:
|
|
22
|
+
if response.status == 200:
|
|
23
|
+
data = json.loads(response.read().decode())
|
|
24
|
+
items = data.get("message", {}).get("items", [])
|
|
25
|
+
if items:
|
|
26
|
+
return True
|
|
27
|
+
return False
|
|
28
|
+
except urllib.error.URLError as e:
|
|
29
|
+
print(f"Erro ao acessar CrossRef: {e}")
|
|
30
|
+
return False
|
|
31
|
+
|
|
32
|
+
def validate_bibtex(bibtex_content: str) -> Dict[str, str]:
|
|
33
|
+
results = {}
|
|
34
|
+
entries = bibtex_content.split("@")
|
|
35
|
+
for entry in entries[1:]:
|
|
36
|
+
title_match = re.search(r'title\s*=\s*[{"]([^}"]+)[}"]', entry, re.IGNORECASE)
|
|
37
|
+
author_match = re.search(r'author\s*=\s*[{"]([^}"]+)[}"]', entry, re.IGNORECASE)
|
|
38
|
+
id_match = re.search(r'^[^\{]+\{([^,]+),', entry)
|
|
39
|
+
|
|
40
|
+
if title_match and id_match:
|
|
41
|
+
ref_id = id_match.group(1).strip()
|
|
42
|
+
title = title_match.group(1).strip()
|
|
43
|
+
author = author_match.group(1).split(' and ')[0].strip() if author_match else ""
|
|
44
|
+
|
|
45
|
+
print(f"Verificando referência [{ref_id}]: {title}...")
|
|
46
|
+
is_valid = check_paper_existence(title, author)
|
|
47
|
+
results[ref_id] = "VERIFICADA_E_VALIDA" if is_valid else "FALHA_NA_VERIFICACAO"
|
|
48
|
+
|
|
49
|
+
return results
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Padrão de Checklist para Produção de Capítulos
|
|
2
|
+
|
|
3
|
+
Durante as etapas de **Review** e **Validation**, o agente deve percorrer rigorosamente o checklist abaixo e registrar o resultado na memória.
|
|
4
|
+
|
|
5
|
+
## 1. Technical Accuracy (Precisão Técnica)
|
|
6
|
+
- [ ] Os exemplos de código foram validados externamente e estão corretos?
|
|
7
|
+
- [ ] As explicações conceituais estão em conformidade com o estado da arte e o rigor matemático exigido?
|
|
8
|
+
- [ ] O uso de APIs/Bibliotecas nos exemplos condiz com a versão mais recente/estável suportada pelo projeto?
|
|
9
|
+
|
|
10
|
+
## 2. Consistency (Consistência)
|
|
11
|
+
- [ ] A terminologia técnica é uniforme ao longo de todo o capítulo e consistente com os capítulos anteriores?
|
|
12
|
+
- [ ] O estilo de formatação do código (identação, convenção de nomes) segue o `code_style` definido na memória?
|
|
13
|
+
- [ ] O mapeamento de acentuação (literate) no LaTeX está implementado corretamente nos blocos de código?
|
|
14
|
+
|
|
15
|
+
## 3. Readability (Legibilidade e Fluidez)
|
|
16
|
+
- [ ] O texto possui cadência lógica (introdução, desenvolvimento, conclusão parcial) sem saltos bruscos?
|
|
17
|
+
- [ ] A linguagem está adequada ao tom estabelecido na memória?
|
|
18
|
+
- [ ] Os parágrafos são coesos e evitam jargões desnecessários quando não explicados previamente?
|
|
19
|
+
|
|
20
|
+
## 4. Completeness (Completude)
|
|
21
|
+
- [ ] Os pré-requisitos lógicos para a compreensão do capítulo foram declarados?
|
|
22
|
+
- [ ] Os objetivos de aprendizagem traçados na fase de *Planning* foram integralmente alcançados?
|
|
23
|
+
- [ ] Há uma seção de fechamento/resumo que consolida o conhecimento adquirido?
|
|
24
|
+
|
|
25
|
+
## 5. Cross-references (Referências e Navegação)
|
|
26
|
+
- [ ] Todos os *labels* e *refs* internos (imagens, tabelas, algoritmos) foram validados e não apontam para locais nulos?
|
|
27
|
+
- [ ] Todas as citações bibliográficas (\cite) correspondem a uma entrada válida no arquivo BibTeX?
|
|
28
|
+
- [ ] **Validação Externa:** Todas as referências bibliográficas foram verificadas com sucesso em bases acadêmicas (Google Scholar, ScienceDirect, IEEE, etc.)?
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Workflow Orquestrador: `/writerkit-chapter`
|
|
2
|
+
|
|
3
|
+
Esta *skill* orquestra o fluxo ponta-a-ponta para a produção de um capítulo, invocando sequencialmente as *skills* individuais.
|
|
4
|
+
|
|
5
|
+
## Etapas do Workflow
|
|
6
|
+
1. **Planning** (`/writer-planning`): Define chapter objectives, outline sections, identify code examples.
|
|
7
|
+
2. **Drafting** (`/writer-drafting`): Use chapter template, write conceptual content, add placeholders.
|
|
8
|
+
3. **Code Development** (`/writer-code`): Implement and test code examples externally (mapping accents).
|
|
9
|
+
4. **Integration** (`/writer-integration`): Insert validated code into chapter, add explanations.
|
|
10
|
+
5. **Review** (`/writer-review`): Self-review using the production checklist.
|
|
11
|
+
6. **Validation** (`/writer-validation`): Run validation scripts (including the Reference Checker).
|
|
12
|
+
7. **Revision** (`/writer-revision`): Address issues and improve clarity.
|
|
13
|
+
8. **Publication** (`/writer-publication`): Finalize and publish chapter.
|
|
14
|
+
|
|
15
|
+
*Nota: Todas as decisões e transições de estado devem ser registradas no `decision_log` da memória.*
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Módulo de Memória e Estado
|
|
2
|
+
|
|
3
|
+
O arquivo de memória (ex: `memory.json`) deve ser mantido e atualizado constantemente pelas *skills*.
|
|
4
|
+
|
|
5
|
+
## Estrutura de Metadados do Projeto
|
|
6
|
+
* **`title`**: Título da obra.
|
|
7
|
+
* **`theme`**: Tema central e escopo.
|
|
8
|
+
* **`language`**: Idioma da obra (ex: pt-BR).
|
|
9
|
+
* **`depth`**: Nível de profundidade (Graduação, Mestrado, Técnico).
|
|
10
|
+
* **`rigor`**: Nível de formalismo matemático/teórico.
|
|
11
|
+
* **`tone`**: Personalidade do texto (Formal, Professoral, Crítico).
|
|
12
|
+
* **`code_style`**: Linguagem e guia de estilo de código.
|
|
13
|
+
* **`visual_style`**: Padrão para imagens e diagramas (ex: TikZ, preto e branco).
|
|
14
|
+
* **`latex_template`**: Referências aos arquivos `.tex`, `.cls` e `.sty` utilizados.
|
|
15
|
+
|
|
16
|
+
## Logs e Controle
|
|
17
|
+
* **`chapters`**: Status e metadados de cada capítulo.
|
|
18
|
+
* **`decision_log`**: Histórico temporal (timestamps) de todas as decisões tomadas.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import re
|
|
2
|
+
import urllib.request
|
|
3
|
+
import urllib.error
|
|
4
|
+
import urllib.parse
|
|
5
|
+
import json
|
|
6
|
+
from typing import Dict
|
|
7
|
+
|
|
8
|
+
# SCRIPT DE VALIDAÇÃO DE REFERÊNCIAS (Reference Checker)
|
|
9
|
+
# Objetivo: Garantir a veracidade de artigos citados no livro, prevenindo alucinações da IA.
|
|
10
|
+
|
|
11
|
+
def check_paper_existence(title: str, first_author: str = "") -> bool:
|
|
12
|
+
base_url = "https://api.crossref.org/works?"
|
|
13
|
+
query_params = {"query.title": title, "rows": 3}
|
|
14
|
+
if first_author:
|
|
15
|
+
query_params["query.author"] = first_author
|
|
16
|
+
|
|
17
|
+
url = base_url + urllib.parse.urlencode(query_params)
|
|
18
|
+
|
|
19
|
+
try:
|
|
20
|
+
req = urllib.request.Request(url, headers={'User-Agent': 'WriterKit-Antigravity/1.0'})
|
|
21
|
+
with urllib.request.urlopen(req) as response:
|
|
22
|
+
if response.status == 200:
|
|
23
|
+
data = json.loads(response.read().decode())
|
|
24
|
+
items = data.get("message", {}).get("items", [])
|
|
25
|
+
if items:
|
|
26
|
+
return True
|
|
27
|
+
return False
|
|
28
|
+
except urllib.error.URLError as e:
|
|
29
|
+
print(f"Erro ao acessar CrossRef: {e}")
|
|
30
|
+
return False
|
|
31
|
+
|
|
32
|
+
def validate_bibtex(bibtex_content: str) -> Dict[str, str]:
|
|
33
|
+
results = {}
|
|
34
|
+
entries = bibtex_content.split("@")
|
|
35
|
+
for entry in entries[1:]:
|
|
36
|
+
title_match = re.search(r'title\s*=\s*[{"]([^}"]+)[}"]', entry, re.IGNORECASE)
|
|
37
|
+
author_match = re.search(r'author\s*=\s*[{"]([^}"]+)[}"]', entry, re.IGNORECASE)
|
|
38
|
+
id_match = re.search(r'^[^\{]+\{([^,]+),', entry)
|
|
39
|
+
|
|
40
|
+
if title_match and id_match:
|
|
41
|
+
ref_id = id_match.group(1).strip()
|
|
42
|
+
title = title_match.group(1).strip()
|
|
43
|
+
author = author_match.group(1).split(' and ')[0].strip() if author_match else ""
|
|
44
|
+
|
|
45
|
+
print(f"Verificando referência [{ref_id}]: {title}...")
|
|
46
|
+
is_valid = check_paper_existence(title, author)
|
|
47
|
+
results[ref_id] = "VERIFICADA_E_VALIDA" if is_valid else "FALHA_NA_VERIFICACAO"
|
|
48
|
+
|
|
49
|
+
return results
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Skill: `/writer-code`
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
Desenvolvimento e validação de algoritmos.
|
|
5
|
+
|
|
6
|
+
## Instruções de Execução
|
|
7
|
+
Desenvolva o código seguindo o padrão da memória. **Requisito Crítico:** Mapeie caracteres acentuados latinos no ambiente `listings` ou `algorithm` usando `literate={(á}{{\'a}}1 {é}{{\'e}}1 ...}` para evitar falhas de renderização (espaços em branco) no TexPage.
|
|
8
|
+
|
|
9
|
+
## Interação com a Memória
|
|
10
|
+
**Ação:** `READ_CODE_STYLE`
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Skill: `/writer-drafting`
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
Geração de conteúdo textual bruto em LaTeX.
|
|
5
|
+
|
|
6
|
+
## Instruções de Execução
|
|
7
|
+
Escreva o conteúdo conceitual seguindo o outline. Use o tom professoral e rigor científico definidos. Utilize placeholders `\INPUTCODE{id}` e `\INPUTIMG{id}` para futura integração.
|
|
8
|
+
|
|
9
|
+
## Interação com a Memória
|
|
10
|
+
**Ação:** `READ_METADATA`
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Skill: `/writer-integration`
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
Consolidar texto, código e diagramas TikZ.
|
|
5
|
+
|
|
6
|
+
## Instruções de Execução
|
|
7
|
+
Substitua placeholders pelos códigos validados. Gere diagramas em TikZ conforme o visual_style. Garanta referências cruzadas funcionais.
|
|
8
|
+
|
|
9
|
+
## Interação com a Memória
|
|
10
|
+
**Ação:** `READ_CHAPTER_DATA`
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Skill: `/writer-planning`
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
Estruturar a ementa e objetivos do capítulo.
|
|
5
|
+
|
|
6
|
+
## Instruções de Execução
|
|
7
|
+
Com base no tema do livro, gere um outline detalhado (H1, H2, H3). Identifique onde entrarão exemplos de código e diagramas. Registre o plano aprovado na memória do projeto.
|
|
8
|
+
|
|
9
|
+
## Interação com a Memória
|
|
10
|
+
**Ação:** `WRITE_CHAPTER_PLAN`
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Skill: `/writer-publication`
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
Finalização para o TexPage.
|
|
5
|
+
|
|
6
|
+
## Instruções de Execução
|
|
7
|
+
Gere o código LaTeX final pronto para compilação. Atualize o índice global do livro na memória.
|
|
8
|
+
|
|
9
|
+
## Interação com a Memória
|
|
10
|
+
**Ação:** `FINALIZE_CHAPTER`
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Skill: `/writer-review`
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
Análise crítica e pedagógica.
|
|
5
|
+
|
|
6
|
+
## Instruções de Execução
|
|
7
|
+
Atue como um revisor de pares cego. Critique a clareza, a precisão técnica e se o nível de profundidade está adequado ao público-alvo definido na memória.
|
|
8
|
+
|
|
9
|
+
## Interação com a Memória
|
|
10
|
+
**Ação:** `LOG_DECISION`
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Skill: `/writer-revision`
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
Refatoração do conteúdo pós-revisão.
|
|
5
|
+
|
|
6
|
+
## Instruções de Execução
|
|
7
|
+
Aplique as correções sugeridas na etapa de Review e Validation. Melhore a fluidez do texto mantendo o rigor científico.
|
|
8
|
+
|
|
9
|
+
## Interação com a Memória
|
|
10
|
+
**Ação:** `UPDATE_CHAPTER_STATE`
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Skill: `/writer-setup`
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
Inicializar projeto e assimilar padrões LaTeX.
|
|
5
|
+
|
|
6
|
+
## Instruções de Execução
|
|
7
|
+
Analise os arquivos .tex, .cls e .sty fornecidos. Extraia pacotes, comandos customizados e estrutura de preâmbulo. Inicialize o arquivo de memória com os parâmetros de profundidade, idioma e tom definidos pelo usuário.
|
|
8
|
+
|
|
9
|
+
## Interação com a Memória
|
|
10
|
+
**Ação:** `WRITE_INITIAL_STATE`
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Skill: `/writer-validation`
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
Verificação técnica de estrutura e compilação.
|
|
5
|
+
|
|
6
|
+
## Instruções de Execução
|
|
7
|
+
Verifique a sintaxe LaTeX, fechamento de ambientes e integridade estrutural. Invoque o script de checagem de referências bibliográficas.
|
|
8
|
+
|
|
9
|
+
## Interação com a Memória
|
|
10
|
+
**Ação:** `READ_METADATA`
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Padrão de Checklist para Produção de Capítulos
|
|
2
|
+
|
|
3
|
+
Durante as etapas de **Review** e **Validation**, o agente deve percorrer rigorosamente o checklist abaixo e registrar o resultado na memória.
|
|
4
|
+
|
|
5
|
+
## 1. Technical Accuracy (Precisão Técnica)
|
|
6
|
+
- [ ] Os exemplos de código foram validados externamente e estão corretos?
|
|
7
|
+
- [ ] As explicações conceituais estão em conformidade com o estado da arte e o rigor matemático exigido?
|
|
8
|
+
- [ ] O uso de APIs/Bibliotecas nos exemplos condiz com a versão mais recente/estável suportada pelo projeto?
|
|
9
|
+
|
|
10
|
+
## 2. Consistency (Consistência)
|
|
11
|
+
- [ ] A terminologia técnica é uniforme ao longo de todo o capítulo e consistente com os capítulos anteriores?
|
|
12
|
+
- [ ] O estilo de formatação do código (identação, convenção de nomes) segue o `code_style` definido na memória?
|
|
13
|
+
- [ ] O mapeamento de acentuação (literate) no LaTeX está implementado corretamente nos blocos de código?
|
|
14
|
+
|
|
15
|
+
## 3. Readability (Legibilidade e Fluidez)
|
|
16
|
+
- [ ] O texto possui cadência lógica (introdução, desenvolvimento, conclusão parcial) sem saltos bruscos?
|
|
17
|
+
- [ ] A linguagem está adequada ao tom estabelecido na memória?
|
|
18
|
+
- [ ] Os parágrafos são coesos e evitam jargões desnecessários quando não explicados previamente?
|
|
19
|
+
|
|
20
|
+
## 4. Completeness (Completude)
|
|
21
|
+
- [ ] Os pré-requisitos lógicos para a compreensão do capítulo foram declarados?
|
|
22
|
+
- [ ] Os objetivos de aprendizagem traçados na fase de *Planning* foram integralmente alcançados?
|
|
23
|
+
- [ ] Há uma seção de fechamento/resumo que consolida o conhecimento adquirido?
|
|
24
|
+
|
|
25
|
+
## 5. Cross-references (Referências e Navegação)
|
|
26
|
+
- [ ] Todos os *labels* e *refs* internos (imagens, tabelas, algoritmos) foram validados e não apontam para locais nulos?
|
|
27
|
+
- [ ] Todas as citações bibliográficas (\cite) correspondem a uma entrada válida no arquivo BibTeX?
|
|
28
|
+
- [ ] **Validação Externa:** Todas as referências bibliográficas foram verificadas com sucesso em bases acadêmicas (Google Scholar, ScienceDirect, IEEE, etc.)?
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Workflow Orquestrador: `/writerkit-chapter`
|
|
2
|
+
|
|
3
|
+
Esta *skill* orquestra o fluxo ponta-a-ponta para a produção de um capítulo, invocando sequencialmente as *skills* individuais.
|
|
4
|
+
|
|
5
|
+
## Etapas do Workflow
|
|
6
|
+
1. **Planning** (`/writer-planning`): Define chapter objectives, outline sections, identify code examples.
|
|
7
|
+
2. **Drafting** (`/writer-drafting`): Use chapter template, write conceptual content, add placeholders.
|
|
8
|
+
3. **Code Development** (`/writer-code`): Implement and test code examples externally (mapping accents).
|
|
9
|
+
4. **Integration** (`/writer-integration`): Insert validated code into chapter, add explanations.
|
|
10
|
+
5. **Review** (`/writer-review`): Self-review using the production checklist.
|
|
11
|
+
6. **Validation** (`/writer-validation`): Run validation scripts (including the Reference Checker).
|
|
12
|
+
7. **Revision** (`/writer-revision`): Address issues and improve clarity.
|
|
13
|
+
8. **Publication** (`/writer-publication`): Finalize and publish chapter.
|
|
14
|
+
|
|
15
|
+
*Nota: Todas as decisões e transições de estado devem ser registradas no `decision_log` da memória.*
|