dev local: remove container dev extinto (CT 102), paths locais e systemd user timers
Desenvolvimento passa a local no desktop (/media/ealmeida/Dados/Dev), sem ssh_execute(server="dev"); crons /root/Dev migrados para systemd user timers; refs a sync Syncthing para dev removidas (regra 48).
This commit is contained in:
@@ -36,9 +36,9 @@ mcp__outline-api__search_documents "acidaos" # ver docs existentes
|
|||||||
mcp__gitea__get_dir_content acidaos-core/src/
|
mcp__gitea__get_dir_content acidaos-core/src/
|
||||||
```
|
```
|
||||||
|
|
||||||
**Gerar localmente (no container dev):**
|
**Gerar localmente (desktop):**
|
||||||
```bash
|
```bash
|
||||||
cd /root/Dev/acidaos-core
|
cd /media/ealmeida/Dados/Dev/acidaos-core
|
||||||
cargo doc --all-features --no-deps --open
|
cargo doc --all-features --no-deps --open
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -81,9 +81,9 @@ pub struct ComponenteX { ... }
|
|||||||
mcp__gitea__get_file_content acidaos-dashboard/typedoc.json
|
mcp__gitea__get_file_content acidaos-dashboard/typedoc.json
|
||||||
```
|
```
|
||||||
|
|
||||||
**Gerar (no container dev):**
|
**Gerar (localmente no desktop):**
|
||||||
```bash
|
```bash
|
||||||
cd /root/Dev/acidaos-dashboard
|
cd /media/ealmeida/Dados/Dev/acidaos-dashboard
|
||||||
pnpm typedoc --out docs/api src/
|
pnpm typedoc --out docs/api src/
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ mcp__gitea__get_file_content acidaos-dashboard/package.json
|
|||||||
|
|
||||||
**Estrutura a criar:**
|
**Estrutura a criar:**
|
||||||
```bash
|
```bash
|
||||||
# No container dev (Regra #48)
|
# Localmente no desktop (Regra #48 — CT 102 extinto)
|
||||||
cd /root/Dev
|
cd /media/ealmeida/Dados/Dev
|
||||||
npx create-next-app@latest acidaos-<nome> \
|
npx create-next-app@latest acidaos-<nome> \
|
||||||
--typescript \
|
--typescript \
|
||||||
--tailwind \
|
--tailwind \
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ def criar_pricing(c: canvas.Canvas, planos: list[dict]):
|
|||||||
| Controlo | Pixel-perfect | Aproximado |
|
| Controlo | Pixel-perfect | Aproximado |
|
||||||
| Fontes custom | Suporte completo | Limitado |
|
| Fontes custom | Suporte completo | Limitado |
|
||||||
| Melhor para | Proposta final PDF | Template editável pelo cliente |
|
| Melhor para | Proposta final PDF | Template editável pelo cliente |
|
||||||
| Ambiente | Servidor dev (`/root/Dev`) | Servidor dev ou local |
|
| Ambiente | Desktop local (`/media/ealmeida/Dados/Dev`) | Desktop local |
|
||||||
|
|
||||||
**Recomendação:** usar reportlab para proposta final; pptxgenjs se o cliente precisar de editar.
|
**Recomendação:** usar reportlab para proposta final; pptxgenjs se o cliente precisar de editar.
|
||||||
|
|
||||||
@@ -254,8 +254,8 @@ pip install reportlab Pillow
|
|||||||
# Registar fontes Nexa
|
# Registar fontes Nexa
|
||||||
from reportlab.pdfbase import pdfmetrics
|
from reportlab.pdfbase import pdfmetrics
|
||||||
from reportlab.pdfbase.ttfonts import TTFont
|
from reportlab.pdfbase.ttfonts import TTFont
|
||||||
pdfmetrics.registerFont(TTFont("Nexa-Bold", "/root/Dev/assets/fonts/Nexa-Bold.ttf"))
|
pdfmetrics.registerFont(TTFont("Nexa-Bold", "/media/ealmeida/Dados/Dev/assets/fonts/Nexa-Bold.ttf"))
|
||||||
pdfmetrics.registerFont(TTFont("Nexa-Light", "/root/Dev/assets/fonts/Nexa-Light.ttf"))
|
pdfmetrics.registerFont(TTFont("Nexa-Light", "/media/ealmeida/Dados/Dev/assets/fonts/Nexa-Light.ttf"))
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -22,20 +22,18 @@ mcp__notebooklm__notebook_query({
|
|||||||
|
|
||||||
## Regra #48 - Dev Container (OBRIGATÓRIO)
|
## Regra #48 - Dev Container (OBRIGATÓRIO)
|
||||||
|
|
||||||
**TODOS os projectos Next.js devem ser desenvolvidos no container dev.**
|
**TODOS os projectos Next.js são desenvolvidos LOCALMENTE no desktop (regra 48 — CT 102 extinto em 20-04-2026).**
|
||||||
|
|
||||||
```
|
```
|
||||||
SSH: server="dev" (mcp__ssh-unified__ssh_execute)
|
Ambiente: Bash local no desktop (sem SSH)
|
||||||
Path: /root/Dev/<projecto>
|
Path: /media/ealmeida/Dados/Dev/<projecto>
|
||||||
Sync: auto -> /media/ealmeida/Dados/Dev/<projecto> (Syncthing)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Workflow:**
|
**Workflow:**
|
||||||
1. `mcp__ssh-unified__ssh_execute server:"dev" command:"mkdir -p /root/Dev/<projecto>"`
|
1. `mkdir -p /media/ealmeida/Dados/Dev/<projecto>` (Bash local)
|
||||||
2. Desenvolver e testar no container
|
2. Desenvolver e testar no container
|
||||||
3. `npm run build` no container antes de deploy
|
3. `npm run build` no container antes de deploy
|
||||||
4. Deploy via EasyPanel
|
4. Deploy via EasyPanel
|
||||||
5. Syncthing propaga automaticamente
|
|
||||||
|
|
||||||
**NUNCA:** `npx create-next-app` directamente no PC local para projectos colaborativos.
|
**NUNCA:** `npx create-next-app` directamente no PC local para projectos colaborativos.
|
||||||
|
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ mcp__notebooklm__notebook_query({
|
|||||||
|
|
||||||
Integrar insights do NotebookLM nas recomendações e decisões.
|
Integrar insights do NotebookLM nas recomendações e decisões.
|
||||||
|
|
||||||
> **Regra #48:** Projectos PHP/Laravel/Symfony devem ser desenvolvidos no **container dev** (`server:"dev"`, path `/root/Dev/<projecto>`). Sincroniza automaticamente com o PC local via Syncthing.
|
> **Regra #48:** Projectos PHP/Laravel/Symfony são desenvolvidos **localmente no desktop** em `/media/ealmeida/Dados/Dev/<projecto>` (Bash local, sem SSH — CT 102 extinto em 20-04-2026).
|
||||||
|
|
||||||
## Quando Usar
|
## Quando Usar
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ mcp__notebooklm__notebook_query({
|
|||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Regra #48:** Projectos React devem ser desenvolvidos no **container dev** (`server:"dev"`, path `/root/Dev/<projecto>`). Sincroniza via Syncthing.
|
> **Regra #48:** Projectos React são desenvolvidos **localmente no desktop** em `/media/ealmeida/Dados/Dev/<projecto>` (Bash local, sem SSH — CT 102 extinto em 20-04-2026).
|
||||||
|
|
||||||
## Quando Usar
|
## Quando Usar
|
||||||
|
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ with sync_playwright() as p:
|
|||||||
Para testes que requerem Node.js/Python:
|
Para testes que requerem Node.js/Python:
|
||||||
```bash
|
```bash
|
||||||
# Via SSH MCP para o servidor dev
|
# Via SSH MCP para o servidor dev
|
||||||
mcp__ssh-unified__ssh_execute server="dev" command="cd /root/Dev/projecto && python test_automation.py"
|
cd /media/ealmeida/Dados/Dev/projecto && python test_automation.py # Bash local no desktop
|
||||||
```
|
```
|
||||||
|
|
||||||
### Instalacao Playwright (se necessario)
|
### Instalacao Playwright (se necessario)
|
||||||
@@ -140,7 +140,7 @@ pip install playwright
|
|||||||
playwright install chromium
|
playwright install chromium
|
||||||
```
|
```
|
||||||
|
|
||||||
No servidor dev, Playwright ja esta disponivel em `/root/Dev`.
|
No desktop, Playwright está disponível nos projectos em `/media/ealmeida/Dados/Dev`.
|
||||||
|
|
||||||
---
|
---
|
||||||
**Versao**: 1.0.0 | **Autor**: Descomplicar®
|
**Versao**: 1.0.0 | **Autor**: Descomplicar®
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ SE invocado directamente:
|
|||||||
| **Prioridade** | Conforme urgência |
|
| **Prioridade** | Conforme urgência |
|
||||||
|
|
||||||
**Exemplos de descrições válidas:**
|
**Exemplos de descrições válidas:**
|
||||||
- "Verificar logs `/root/Dev/imap-cleaner/cron.log` e `/root/Dev/auto-expense/auto-expense.log`. Reportar se houve erros ou se o pipeline correu bem."
|
- "Verificar logs `/media/ealmeida/Dados/Dev/imap-cleaner/cron.log` e `/media/ealmeida/Dados/Dev/auto-expense/auto-expense.log` (execução local via systemd user timers). Reportar se houve erros ou se o pipeline correu bem."
|
||||||
- "Correr /imap-triage e reportar faturas detectadas."
|
- "Correr /imap-triage e reportar faturas detectadas."
|
||||||
- "Verificar tarefas overdue no Desk CRM e sugerir as 3 mais urgentes."
|
- "Verificar tarefas overdue no Desk CRM e sugerir as 3 mais urgentes."
|
||||||
|
|
||||||
@@ -106,7 +106,7 @@ SE invocado directamente:
|
|||||||
## Wrapper Script (dev server)
|
## Wrapper Script (dev server)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# /root/Dev/aiktop-tasks/run-aiktop-tasks.sh
|
# /media/ealmeida/Dados/Dev/aiktop-tasks/run-aiktop-tasks.sh
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
export IS_SANDBOX=1
|
export IS_SANDBOX=1
|
||||||
LOG="$HOME/Dev/aiktop-tasks/aiktop-tasks.log"
|
LOG="$HOME/Dev/aiktop-tasks/aiktop-tasks.log"
|
||||||
@@ -117,7 +117,7 @@ echo "$(date) [END] exit=$EXIT_CODE" >> "$LOG"
|
|||||||
exit $EXIT_CODE
|
exit $EXIT_CODE
|
||||||
```
|
```
|
||||||
|
|
||||||
**Cron:** `*/15 * * * * /root/Dev/aiktop-tasks/run-aiktop-tasks.sh`
|
**Agendamento:** systemd user timer local (15 em 15 min) a correr `/media/ealmeida/Dados/Dev/aiktop-tasks/run-aiktop-tasks.sh`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ mcp__notebooklm__notebook_query({
|
|||||||
- [PROC-MCP-Troubleshooting-Erro-471.md](file:///media/ealmeida/Dados/Hub/06-Operacoes/Procedimentos/D7-Tecnologia/MCP/PROC-MCP-Troubleshooting-Erro-471.md)
|
- [PROC-MCP-Troubleshooting-Erro-471.md](file:///media/ealmeida/Dados/Hub/06-Operacoes/Procedimentos/D7-Tecnologia/MCP/PROC-MCP-Troubleshooting-Erro-471.md)
|
||||||
- [PROC-MCP-Google-Auth.md](file:///media/ealmeida/Dados/Hub/06-Operacoes/Procedimentos/D7-Tecnologia/MCP/PROC-MCP-Google-Auth.md)
|
- [PROC-MCP-Google-Auth.md](file:///media/ealmeida/Dados/Hub/06-Operacoes/Procedimentos/D7-Tecnologia/MCP/PROC-MCP-Google-Auth.md)
|
||||||
|
|
||||||
> **Regra #48:** Novos MCPs são desenvolvidos no **container dev** (`server:"dev"`, path `/root/Dev/<nome-mcp>`). Após validação, mover para `/home/ealmeida/mcp-servers/` em produção.
|
> **Regra #48:** Novos MCPs são desenvolvidos **localmente no desktop** em `/media/ealmeida/Dados/Dev/<nome-mcp>` (CT 102 extinto em 20-04-2026). Após validação, mover para `~/mcp-servers/` em produção.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ getCustomerNotes (camelCase), get_customer_notes_with_all_billing_details (>40 c
|
|||||||
|
|
||||||
### Fase 2: Implementation
|
### Fase 2: Implementation
|
||||||
|
|
||||||
1. Scaffold no container dev: `/root/Dev/<nome-mcp>/`
|
1. Scaffold local no desktop: `/media/ealmeida/Dados/Dev/<nome-mcp>/`
|
||||||
2. Implementar tools com **annotations obrigatórias** e validação Zod
|
2. Implementar tools com **annotations obrigatórias** e validação Zod
|
||||||
3. Definir capabilities completas (tools + resources + prompts)
|
3. Definir capabilities completas (tools + resources + prompts)
|
||||||
4. Responses em **dual format**: Markdown (text) + JSON (structuredContent)
|
4. Responses em **dual format**: Markdown (text) + JSON (structuredContent)
|
||||||
@@ -158,7 +158,7 @@ npm run eval:ci # build + evaluations (para CI/CD)
|
|||||||
## Estrutura de Projecto
|
## Estrutura de Projecto
|
||||||
|
|
||||||
```
|
```
|
||||||
/root/Dev/mcp-<nome>/ # Desenvolvimento (container dev)
|
/media/ealmeida/Dados/Dev/mcp-<nome>/ # Desenvolvimento (local, desktop)
|
||||||
├── package.json
|
├── package.json
|
||||||
├── tsconfig.json
|
├── tsconfig.json
|
||||||
├── src/
|
├── src/
|
||||||
|
|||||||
Reference in New Issue
Block a user