faef9b47dc
Dify foi removido 06-03-2026. Skills brainstorm/discover ainda referenciam-no no corpo. Bump v1.2 + nota top-of-file. Reescrita workflow para próxima sessão. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
204 lines
4.5 KiB
Markdown
204 lines
4.5 KiB
Markdown
---
|
|
name: docs
|
|
description: Gerar documentação técnica do AcidaOS a partir do código — Rust (rustdoc), TypeScript (TypeDoc), e publicar no Outline. Usar quando "documentação acidaos", "gerar docs", "rustdoc", "typedoc", "acidaos-docs", documentar código do projecto.
|
|
allowed-tools: Read, Write, Bash, mcp__gitea__get_file_content, mcp__gitea__get_dir_content, mcp__outline-api__create_document, mcp__outline-api__update_document, mcp__outline-api__search_documents, mcp__memory-supabase__search_memories
|
|
---
|
|
|
|
# AcidaOS Docs
|
|
|
|
Skill para gerar e publicar documentação técnica do AcidaOS.
|
|
|
|
## Estratégia de Documentação
|
|
|
|
| Camada | Ferramenta | Destino |
|
|
|--------|-----------|---------|
|
|
| API interna Rust | `rustdoc` + comentários `///` | `/docs` no repo |
|
|
| Componentes React | TypeDoc + Storybook | Storybook deployed |
|
|
| Arquitectura | Mermaid.js diagramas | Outline (Wiki) |
|
|
| Endpoints API | OpenAPI/Swagger | Outline (Wiki) |
|
|
| Decisões técnicas | ADRs em Markdown | Outline (Wiki) |
|
|
|
|
## Protocolo
|
|
|
|
```
|
|
mcp__memory-supabase__search_memories "acidaos documentação"
|
|
mcp__outline-api__search_documents "acidaos" # ver docs existentes
|
|
```
|
|
|
|
---
|
|
|
|
## Operações
|
|
|
|
### 1. Gerar documentação Rust (`rustdoc`)
|
|
|
|
**Verificar comentários existentes:**
|
|
```
|
|
mcp__gitea__get_dir_content acidaos-core/src/
|
|
```
|
|
|
|
**Gerar localmente (no container dev):**
|
|
```bash
|
|
cd /root/Dev/acidaos-core
|
|
cargo doc --all-features --no-deps --open
|
|
```
|
|
|
|
**Verificar cobertura de documentação:**
|
|
```bash
|
|
cargo doc --all-features 2>&1 | grep "warning: missing documentation"
|
|
```
|
|
|
|
**Template comentários Rust:**
|
|
```rust
|
|
/// # ComponenteX
|
|
///
|
|
/// Breve descrição em uma linha.
|
|
///
|
|
/// ## Descrição detalhada
|
|
///
|
|
/// Explicação mais longa do comportamento e propósito.
|
|
///
|
|
/// ## Exemplos
|
|
///
|
|
/// ```rust
|
|
/// use acidaos_core::ComponenteX;
|
|
///
|
|
/// let c = ComponenteX::new("id");
|
|
/// assert!(c.is_valid());
|
|
/// ```
|
|
///
|
|
/// ## Erros
|
|
///
|
|
/// Retorna [`Error::Init`] se a inicialização falhar.
|
|
pub struct ComponenteX { ... }
|
|
```
|
|
|
|
---
|
|
|
|
### 2. Gerar documentação TypeScript (TypeDoc)
|
|
|
|
**Verificar configuração:**
|
|
```
|
|
mcp__gitea__get_file_content acidaos-dashboard/typedoc.json
|
|
```
|
|
|
|
**Gerar (no container dev):**
|
|
```bash
|
|
cd /root/Dev/acidaos-dashboard
|
|
pnpm typedoc --out docs/api src/
|
|
```
|
|
|
|
**Template JSDoc para componentes:**
|
|
```typescript
|
|
/**
|
|
* AgentStatusCard — Mostra o estado de um agente AcidaOS
|
|
*
|
|
* @example
|
|
* ```tsx
|
|
* <AgentStatusCard
|
|
* agentId="agent-123"
|
|
* onRefresh={() => refetch()}
|
|
* />
|
|
* ```
|
|
*/
|
|
export interface AgentStatusCardProps {
|
|
/** ID único do agente no Core */
|
|
agentId: string;
|
|
/** Callback chamado ao clicar em refrescar */
|
|
onRefresh?: () => void;
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
### 3. Publicar arquitectura no Outline
|
|
|
|
**Criar/actualizar diagrama de arquitectura:**
|
|
|
|
```javascript
|
|
mcp__outline-api__create_document({
|
|
title: "AcidaOS — Arquitectura Core",
|
|
text: `
|
|
# Arquitectura AcidaOS Core
|
|
|
|
## Hub-and-Spoke
|
|
|
|
\`\`\`mermaid
|
|
graph TD
|
|
A[acidaos-dashboard] -->|API REST| B[AcidaOS Core]
|
|
B --> C[Agent Kernel]
|
|
B --> D[Security & Sandboxing]
|
|
B --> E[Memory Engine]
|
|
B --> F[Observability]
|
|
\`\`\`
|
|
|
|
## Componentes
|
|
|
|
| Componente | Linguagem | Responsabilidade |
|
|
|-----------|-----------|-----------------|
|
|
| Core | Rust | Orquestração de agentes |
|
|
| Dashboard | Next.js | Interface de utilizador |
|
|
`,
|
|
collectionId: "<acidaos-collection-id>"
|
|
})
|
|
```
|
|
|
|
---
|
|
|
|
### 4. Criar ADR (Architecture Decision Record)
|
|
|
|
**Template ADR:**
|
|
```markdown
|
|
# ADR-<NNN>: <Título da Decisão>
|
|
|
|
**Data:** YYYY-MM-DD
|
|
**Estado:** [Proposto | Aceite | Depreciado | Substituído por ADR-NNN]
|
|
|
|
## Contexto
|
|
|
|
[Situação que levou à necessidade de tomar esta decisão]
|
|
|
|
## Opções Consideradas
|
|
|
|
1. **Opção A** — descrição breve
|
|
2. **Opção B** — descrição breve
|
|
|
|
## Decisão
|
|
|
|
[Opção escolhida e porquê]
|
|
|
|
## Consequências
|
|
|
|
**Positivas:**
|
|
- [Consequência positiva]
|
|
|
|
**Negativas / Trade-offs:**
|
|
- [Limitação ou custo]
|
|
```
|
|
|
|
---
|
|
|
|
## Quality Gate de Documentação
|
|
|
|
Antes de marcar tarefa como concluída:
|
|
|
|
- [ ] Rust: zero `missing documentation` warnings em `cargo doc`
|
|
- [ ] TypeScript: TypeDoc gera sem erros
|
|
- [ ] Novos módulos têm exemplos de uso nos comentários
|
|
- [ ] Diagramas Mermaid actualizado se arquitectura mudou
|
|
- [ ] ADR criado para decisões técnicas significativas
|
|
|
|
---
|
|
**Versão**: 1.0.0 | **Autor**: Descomplicar® | **Plugin**: acidaos
|
|
|
|
---
|
|
|
|
## Healing Log
|
|
|
|
Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.
|
|
|
|
```jsonl
|
|
{"date":"","issue":"","fix":"","source":"user|auto"}
|
|
```
|
|
|
|
*Adicionar nova linha após cada erro corrigido.*
|