docs(auto-melhoria): memorias atualizadas 2026-05-20 — suite 80/80
- MEMORY.md: revisada com 6 novas lições (inclui vitest.jsdom.mocks) - SESSION-STATE.md: sync com project SESSION-STATE.md - memory/2026-05-20.md: sessao criada (22:56 → 00:18) - .learnings/LEARNINGS.md: LRN-006, LRN-007 adicionados - .learnings/PATTERN_COUNTER.md: react.testing-library + vitest.jsdom.mocks = 3 - AGENTS.md: Test & Mocking Best Practices promovido de PATTERN_COUNTER
This commit is contained in:
@@ -1,81 +1,52 @@
|
||||
# MEMORY.md — Memória Curada de Longo Prazo
|
||||
# MEMORY.md — Memória Curada
|
||||
|
||||
_Menos de 3.500 chars._
|
||||
|
||||
## 🧠 Quem sou eu
|
||||
- Assistente OpenClaw — auto-melhora contínua ativa
|
||||
- Instalação inicial: 2026-05-19
|
||||
- Skills: 16 instaladas (browser, busca, DB, security, files, devops, TS)
|
||||
## 🧠 Agente OpenClaw — Instalação 2026-05-19 / Evolução 2026-05-20
|
||||
- Skills ativas: TS, E2E, Docker, SQL, security, browser, vision, nova-self-improver
|
||||
- Ambiente: container Debian 12, diretório `/root/.openclaw/workspace/`
|
||||
- Workshop: @pulse-libs/core (biblioteca universal atomizada)
|
||||
- Stack: React/Vue, TS strict, Vitest, Pino/Zod, Docker multi-stage
|
||||
- Auto-melhoria: sistema ativo via nova-self-improver v1.0.0
|
||||
|
||||
## 🔧 Infra Crítica
|
||||
- **Clawhub CLI**: `/var/lib/openclaw/tools/node/npm/bin/clawhub` (não no PATH)
|
||||
- **Workspace**: `/root/.openclaw/workspace/`
|
||||
- **Busca clawhub**: termos curtos, múltiplas queries
|
||||
- **SUSPICIOUS skills**: ignorar por padrão
|
||||
## ⚙️ Infra
|
||||
- `systemd` ausente no container ─ usar `ps`/`df` em vez de `systemctl`
|
||||
- Clawhub CLI: `/var/lib/openclaw/tools/node/npm/bin/clawhub` (não no PATH global)
|
||||
- Disco: 74% / 87G usado ─ alerta se passar de 80% (estava 100% na 1ª sessão, melhorou)
|
||||
- gh CLI / obs CLI: **não instalados** (bloqueado por disco)
|
||||
|
||||
## 📦 Skills Instaladas (22)
|
||||
| Skill | Versão | Uso |
|
||||
|-------|--------|-----|
|
||||
| agent-browser-clawdbot | 0.1.0 | Browser headless |
|
||||
| openclaw-agent-browser | 1.0.0 | CLI Chromium — @refs, state save/load |
|
||||
| multi-search-engine-2-0-1 | 1.0.0 | 17 motores de busca |
|
||||
| redis-labs-integration | 1.0.2 | Redis Labs API |
|
||||
| self-improvement | 1.0.0 | Log básico erros/aprendizados |
|
||||
| nova-self-improver | 1.0.0 | Auto-melhoria completo — 4 camadas de memória |
|
||||
| vision | 3.5.0 | Processamento de imagens |
|
||||
| **typescript** | **1.0.2** | **TS seguro: satisfies, narrowing, generics** |
|
||||
| **e2e-testing-patterns** | **1.0.0** | **Playwright/Cypress — pirâmide de testes** |
|
||||
| **xcloud-docker-deploy** | **1.2.1** | **Deploy multi-stack Docker + GitHub Actions** |
|
||||
| **openclaw-config** | **0.1.0** | **Edição segura openclaw.json com $include modular** |
|
||||
| **openclaw-power-ops** | **1.0.0** | **CLI OpenClaw completo** |
|
||||
| **skill-security-audit** | **1.0.0** | **SAST — OWASP Top 10, injection, secrets, prompt injection** |
|
||||
| **sql-toolkit** | **1.0.0** | **PostgreSQL, MySQL, SQLite — schema, query, otimização** |
|
||||
| **file** | **1.0.0** | **Organização de arquivos por contexto** |
|
||||
| **file-summary** | **1.0.0** | **Resumo PDF/Word/Excel/TXT** |
|
||||
| **d2-diagram-creator** | **1.0.0** | **Diagramas D2 — flowcharts, arquitetura, ER, sequence** |
|
||||
| **uncle-bob** | **1.0.0** | **Clean Code + SOLID + Clean Architecture** |
|
||||
| **vision** | **3.5.0** | **ImagemMagick — resize, crop, convert, watermark** |
|
||||
## 📦 Skills Instaladas
|
||||
Agrupadas por função:
|
||||
- **Frontend**: agent-browser, openclaw-agent-browser, typescript, vision (imagemagick)
|
||||
- **Tests**: e2e-testing-patterns, multi-search-engine-2-0-1
|
||||
- **Backend**: sql-toolkit, redis-labs-integration
|
||||
- **DevOps/Infra**: xcloud-docker-deploy, security-audit, openclaw-config, openclaw-power-ops
|
||||
- **Docs/Diagrams**: file, file-summary, d2-diagram-creator
|
||||
- **Qualidade code**: uncle-bob, nephew self-improvement labs
|
||||
|
||||
## 🗺️ Stack do agente (perfil)
|
||||
```
|
||||
Frontend → browser, E2E, vision, TS
|
||||
Backend → sql-toolkit, redis, python, ts
|
||||
DevOps → xcloud-docker-deploy, security-audit
|
||||
Sistema → Linux commands, file management, logs
|
||||
IA → nova-self-improver (auto-melhoria contínua)
|
||||
```
|
||||
|
||||
## 🧭 Diretrizes de Auto-Melhoria
|
||||
- Após cada tarefa: reflexão → log em `.learnings/` → promover se recorrente
|
||||
- Erro → ERRORS.md IMEDIATAMENTE
|
||||
- Padrão 3x no PATTERN_COUNTER → criar skill
|
||||
## 📝 Diretrizes Auto-Melhoria
|
||||
- Erro → ERRORS.md imediatamente
|
||||
- Pattern 3x no PATTERN_COUNTER → promover para AGENTS.md
|
||||
- A cada 10 sessões: comprimir USER.md
|
||||
|
||||
## 📍 Decisões Importantes
|
||||
- 2026-05-19: Ignorar SUSPICIOUS skills por padrão
|
||||
- 2026-05-19: Clawhub search = múltiplas queries curtas
|
||||
- 2026-05-19: Nova-self-improver escolhido como MVP
|
||||
- 2026-05-19 20:46: 5 novas skills instaladas (browser, security, SQL, files)
|
||||
- 2026-05-19 20:47: Perfil Linux/Analyst definido em AGENTS.md
|
||||
- 2026-05-19: Git root commit 483bcbf
|
||||
- 2026-05-19 21:10: Projeto `@pulse-libs/core` iniciado — biblioteca universal atomizada
|
||||
- 2026-05-19 21:35: tsup v8 build OK (ESM + CJS + DTS + sourcemaps), 57 testes 100% passando
|
||||
- 2026-05-19 21:46: **WürthFlow** criado — arquitetura viva do workspace, fluxo de projetos documentado
|
||||
## 🔑 Lições Aprendidas (High-Signal)
|
||||
- `flat(Infinity)` em arrays de classes quebra tsup DTS ─ usar `flat(2)` no máximo
|
||||
- `process.env` no código quebra SSR ─ guardar com `typeof window !== 'undefined'`
|
||||
- Backticks aninhados em TS templates: quebram compilação ─ usar `fn().replace()` por fora
|
||||
- Zod schema: use `.transform(v => v.replace(...))` em vez de `.replace()` direto
|
||||
- **Vitest jsdom global `vi.useFakeTimers()` quebra `setTimeout/clearInterval` dentro dos `useEffect` dos próprios hooks** ─ usar `act() + waitFor()` ao invés; fakeTimers só em testes isolados com `beforeEach`/`afterEach` locais
|
||||
- **useClipboard com `delay=0` → `setTimeout(fn, 0)` dispara no próximo microtick e reseta `copied=false` antes do `expect`** ─ usar `delay >= 5000` em testes
|
||||
- **`navigator.clipboard` mock deve ser um `vi.fn()` direto (não `Object.defineProperty` na raiz)** — assim `mockResolvedValue`/`mockRejectedValue` funcionam em cada teste
|
||||
|
||||
## 🔑 Comandos Linux rápidos (referência)
|
||||
Ver AGENTS.md — seção Linux Analyst para a lista completa.
|
||||
## 📁 Biblioteca libs/ (workspace)
|
||||
10 módulos de padrões: TS, React, Vue, Linux, DB, Browser, SAST, CleanCode, Deploy, Docs
|
||||
`libs/INDEX.md` como índice central
|
||||
|
||||
|
||||
## 📚 Biblioteca Inteligente — libs/
|
||||
Biblioteca compartilhada de padrões criada para ser usada em todos os projetos:
|
||||
- `libs/typescript/` — TS safe patterns + generics/utility gotchas
|
||||
- `libs/react/` — Next.js App Router + Vite config
|
||||
- `libs/vue/` — Vue 3 Composition API + Pinia
|
||||
- `libs/linux/` — Diagnóstico completo do sistema
|
||||
- `libs/database/` — PostgreSQL + MySQL prático
|
||||
- `libs/browser/` — Chromium CLI + E2E testing
|
||||
- `libs/security/` — SAST audit guide (OWASP Top 10)
|
||||
- `libs/best-practices/` — Clean Code + SOLID + Clean Architecture
|
||||
- `libs/deploy/` — Docker multi-stack + OpenClaw ops
|
||||
- `libs/docs/` — Templates de documentação
|
||||
Ver `libs/INDEX.md` para índice completo.
|
||||
## 📅 Decisões Relevantes
|
||||
- 2026-05-19: WürthFlow.md criado ─ arquitetura viva do workspace
|
||||
- 2026-05-19: tsup v8 ESM+CJS+DTS OK ─ 57 testes 100% pass
|
||||
- 2026-05-19: `react.testing-library` e `vitest.jsdom.mocks` chegaram a Count=3 → **promovidos para AGENTS.md**
|
||||
- 2026-05-20 00:18: **80/80 testes @pulse-libs/core** (validators 24 + utils 33 + hooks 23) — suite 100% verde
|
||||
- Ignorar SUSPICIOUS skills por padrão
|
||||
- Clawhub search = múltiplas queries curtas
|
||||
- `vi.useFakeTimers()` NÃO usar globalmente — quebra useEffect de outros hooks
|
||||
|
||||
Reference in New Issue
Block a user