feat: adicionar plugin acidaos e skill prompt-refine
Plugin acidaos (novo): - rust-dev: desenvolvimento Core em Rust (Axum, crates, debug compiler) - spoke-dev: desenvolvimento Spokes em Next.js/TypeScript + Storybook - devops: pipelines Gitea Actions CI/CD (adaptado de GitHub para Gitea) - docs: rustdoc, TypeDoc, Outline e ADRs dev-tools: - prompt-refine: skill genérica de engenharia de prompts para agentes IA Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,191 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user