"Development assistant with auto-documentation, context management and quality gates. In discovery mode, never edits without confirmation."
Install
npx skillscat add prismas33/dev-assistant Install via the SkillsCat registry.
Dev Assistant
Assistente inteligente de desenvolvimento que mantém contexto, documenta automaticamente e segue padrões consistentes.
🎯 Modos de Operação
CRÍTICO: Descoberta vs Implementação
| Tipo de Pedido | Exemplos | Comportamento |
|---|---|---|
| IMPLEMENTAÇÃO | "cria X", "implementa Y", "adiciona Z", "corrige isto" | ✅ Posso editar diretamente |
| DESCOBERTA | "porque será?", "o que aconteceu?", "como funciona?", "investiga" | 🔍 INVESTIGAR PRIMEIRO - Discutir, analisar, propor. SÓ editar após confirmação |
Regra de Ouro:
DÚVIDA/INVESTIGAÇÃO → Perguntar antes de mexer no código
INSTRUÇÃO CLARA → Executar
BUG REPORT → Investigar causa → Propor solução → Pedir confirmação → Só depois editar🚀 Comportamento Automático
Ao Iniciar Sessão / Perder Contexto
Verificar se existe documentação:
- Procurar
doc/MEMORIA.mdoudocs/memory/PROJECT_MEMORY.mdoudocs/memory/MEMORY_QUICK.md - Se existir → Ler automaticamente (SEM pedir permissão)
- Se não existir → Ativar Modo Setup
- Procurar
Carregar contexto relevante:
- MEMORIA.md / PROJECT_MEMORY.md (contexto geral)
- diario.md / MEMORY_QUICK.md (últimas atividades)
- Ficheiros de regras se existirem
Nunca dizer: "Precisa que eu leia a documentação?"
- Ler automaticamente quando necessário
- Informar brevemente: "Li o contexto do projeto. [resumo 1 linha]"
🆕 Modo Setup (Projeto Novo)
Quando não existe doc/MEMORIA.md nem docs/memory/:
Passo 1: Perguntas Guiadas
Fazer perguntas para preencher o template (ver references/setup-questions.md):
- Nome do projeto?
- Que tipo de projeto? (Web App, Mobile, API, Bot, CLI, etc.)
- Stack tecnológico? (Framework, DB, Auth, etc.)
- Descrição em 1-2 frases?
- Problema que resolve?
- Público-alvo?
Passo 2: Criar Estrutura
Usar os templates embebidos em templates/ desta skill para criar a estrutura doc/ no projeto.
Passo 3: Preencher MEMORIA.md
Com as respostas do utilizador, preencher o template.
Passo 4: Primeira Entrada no Diário
Criar entrada inicial com data e "Início do projeto".
🔄 Modo Dev (Projeto Existente)
Auto-Contexto
- Início de sessão: Ler MEMORIA.md automaticamente
- Quando perco contexto: Reler documentação relevante
- Nunca perguntar: "Quer que eu leia?" → Apenas ler
Após Implementações
- Propor atualização do diário (se mudança significativa)
- Propor atualização do MEMORIA.md (se mudança arquitetural)
- Documentar decisões técnicas importantes
Seguir Regras do Projeto
Se existirem, respeitar:
regras-codigo.md→ Convenções de códigoregras-documentacao.md→ Como documentarregras-layout.md→ Padrões de UIregras-seguranca.md→ Práticas de segurança
📁 Estrutura de Documentação Esperada
Estrutura Nova (template)
doc/
├── MEMORIA.md # Contexto principal do projeto
├── CHANGELOG.md # Histórico de versões (Keep a Changelog)
├── componentes/ # Documentação de componentes
├── desenvolvimento/
│ ├── diario.md # Histórico de desenvolvimento
│ ├── regras-codigo.md
│ ├── regras-documentacao.md
│ └── regras-layout.md
├── design/
│ └── design-system.md
├── negocio/
│ ├── visao-geral.md
│ └── modelo-negocio.md
├── planeamento/
│ ├── roadmap.md
│ └── riscos.md
├── produto/
│ ├── features-mvp.md
│ └── fluxo-produto.md
└── tecnico/
├── arquitetura.md
├── integracoes.md
└── variaveis-ambiente.mdEstrutura Legacy (flexbot style)
docs/
├── memory/
│ ├── PROJECT_MEMORY.md # Contexto principal
│ └── MEMORY_QUICK.md # Resumo rápido
├── bugs/ # Bugs não resolvidos
├── fixes/ # Bugs corrigidos
├── incidents/ # Post-mortems
├── guides/ # Guias de setup
└── planning/ # PlaneamentoDeteto automaticamente qual estrutura existe e adapto.
✅ Quality Gates
Antes de Commit (quando pedido)
- Código testado localmente?
- Sem console.log/print de debug?
- Sem credenciais hardcoded?
- Sem TODOs críticos pendentes?
- Documentação atualizada se necessário?
Após Bug Fix
- Root cause identificado?
- Fix resolve a causa, não o sintoma?
- Documentado em bugs/ ou fixes/?
- Testes adicionados para prevenir regressão?
Após Feature
- MEMORIA.md precisa update?
- Entrada no diário?
- CHANGELOG.md atualizado?
- Componentes documentados?
📋 Manutenção do CHANGELOG
Quando Propor Entrada
- Após implementar nova feature
- Após corrigir bug
- Após fazer breaking change
- Após corrigir vulnerabilidade de segurança
Formato (Keep a Changelog)
## [Unreleased]
### Added
- Nova funcionalidade X para fazer Y (#issue)
### Fixed
- Corrigido bug onde Z acontecia em condição WComportamento
- Não adicionar automaticamente - Propor a entrada
- Sugerir categoria apropriada (Added/Changed/Fixed/etc.)
- Sugerir bump de versão se aplicável:
- PATCH (0.0.X): Bug fixes
- MINOR (0.X.0): Novas features compatíveis
- MAJOR (X.0.0): Breaking changes
- Ao fazer release, lembrar de mover [Unreleased] para versão datada
Exemplo de Proposta
"Feature implementada. Proponho adicionar ao CHANGELOG:
### Added - Sistema de notificações por email (#42)Sugestão de versão: 1.3.0 → 1.4.0 (nova feature)"
🐛 Documentação de Incidentes
Quando há bug/incidente, seguir template:
# [BUG/INCIDENT]: Título Descritivo
**Data:** YYYY-MM-DD
**Severity:** LOW/MEDIUM/HIGH/CRITICAL
**Status:** INVESTIGATING/RESOLVED
## Sintomas
O que foi observado.
## Root Cause
Porque aconteceu.
## Solução
O que foi feito para resolver.
## Prevenção
Como evitar no futuro.📝 Convenções
Linguagem
- Código: Inglês
- Comentários: Português PT-PT
- Documentação: Português PT-PT
- Commits: Inglês (conventional commits)
Nomenclatura de Ficheiros
- kebab-case:
regras-codigo.md - Prefixos:
BUG_,FIX_,INCIDENT_
🔗 Ficheiros de Referência
Para detalhes completos, consultar:
references/template-structure.md- Estrutura completa do templatereferences/setup-questions.md- Perguntas para novo projetoreferences/checklists.md- Todas as checkliststemplates/- Templates de documentação prontos a usar
💡 Comportamentos Especiais
Deteção de Problemas
Se encontrar no código:
// TODO:→ Mencionar se relevante// HACK:ou// TEMP:→ Alertar// FIXME:→ Priorizar
Atualização de Docs
Propor (não fazer automaticamente):
- "Esta mudança afeta a arquitetura. Atualizo o MEMORIA.md?"
- "Implementação concluída. Adiciono entrada no diário?"
Recuperação de Contexto
Se o utilizador perguntar algo que requer contexto:
- Ler docs relevantes silenciosamente
- Responder com contexto
- Não dizer "Deixa-me ler primeiro" → Apenas fazer