Escrever documentação técnica de qualidade — ADRs, module specs, decision logs — em Markdown padrão com diagramas Mermaid. Para uso de Architect e lead.
Scanned 9/20/2026
Install to Claude Code
npx -y skills add joaoguirunas/team-os --skill dev-technical-writing --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Dev Technical Writing?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/joaoguirunas-dev-technical-writing)More formats (shields.io, HTML) on the badges page.
---
name: dev-technical-writing
description: Escrever documentação técnica de qualidade — ADRs, module specs, decision logs — em Markdown padrão com diagramas Mermaid. Para uso de Architect e lead.
version: "1.1"
updated: "2026-04-21"
---
# Technical Writing para Software Complexo
## ADR — Architecture Decision Record
Toda decisão arquitetural relevante deve ser documentada em `docs/decisions/YYYY-MM-DD-{slug}.md`.
### Template ADR
```markdown
# ADR-{NNN}: {Título da Decisão}
**Data:** YYYY-MM-DD
**Status:** Proposto | Aceito | Depreciado | Substituído por ADR-{NNN}
**Contexto:** {O problema que precisa ser resolvido. Forças em jogo.}
## Decisão
{A decisão tomada, explicada de forma direta.}
## Consequências
**Positivas:**
- {benefício 1}
**Negativas:**
- {trade-off 1}
## Alternativas Consideradas
| Alternativa | Por que descartada |
|---|---|
| {opção A} | {motivo} |
## Diagrama (se aplicável)
\`\`\`mermaid
graph TD
A[Cliente] --> B[API Gateway]
B --> C[Auth Service]
B --> D[Core Service]
\`\`\`
```
## Module Spec
Documentação de módulo em `docs/modules/{module-name}.md`.
### Template Module Spec
```markdown
# Módulo: {Nome}
**Responsabilidade:** {Uma frase descrevendo o que este módulo faz}
**Owner:** {Agente ou pessoa responsável}
## Interface pública
\`\`\`typescript
// Exports principais
export function {functionName}(params: {ParamsType}): {ReturnType}
\`\`\`
## Dependências
- **Requer:** {módulos que este consome}
- **Expõe para:** {módulos que consomem este}
## Fluxo de dados
\`\`\`mermaid
sequenceDiagram
participant C as Client
participant M as {Module}
participant D as Database
C->>M: request
M->>D: query
D-->>M: result
M-->>C: response
\`\`\`
## Decisões relevantes
- [ADR-{NNN}]({link}) — {título}
```
## Smart Memory — Formato Obsidian
Documentos em `docs/smart-memory/` usam frontmatter com links relativos para navegação:
```markdown
---
title: {Título}
type: overview | story | decision | schema | research | task-log
agent: {nome-do-agente}
created: YYYY-MM-DD
updated: YYYY-MM-DD
tags: [tag1, tag2]
related: ["[[caminho/relativo]]"]
---
```
Links internos entre documentos: `[[caminho/relativo]]` — compatível com Obsidian.
## Diagramas Mermaid — Tipos Úteis
### Fluxo de dados (flowchart)
```mermaid
graph LR
A[Input] --> B{Validação}
B -- válido --> C[Processamento]
B -- inválido --> D[Erro 400]
C --> E[Resposta 200]
```
### Sequência de chamadas
```mermaid
sequenceDiagram
Client->>API: POST /auth/login
API->>DB: SELECT user WHERE email=?
DB-->>API: user record
API-->>Client: JWT token
```
### Entidades do banco
```mermaid
erDiagram
USER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
```
### Estado de um fluxo
```mermaid
stateDiagram-v2
[*] --> Pending
Pending --> Processing: start
Processing --> Done: success
Processing --> Failed: error
```
## Regras de escrita técnica
- **Uma ideia por parágrafo** — leitor deve entender sem reler
- **Voz ativa** — "o sistema valida" não "a validação é feita"
- **Exemplos concretos** — código > descrição abstrata
- **Mermaid no repo** — nunca imagens externas, diagramas devem versionar junto com código
- **Links entre docs** — ADR referencia módulo, módulo referencia ADR
- **Data em tudo** — decisão sem data não tem contexto temporal
- **Frontmatter obrigatório** — todo documento na smart-memory deve ter frontmatter completo
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!