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:
2026-07-22 11:31:24 +01:00
parent 7194605255
commit 9ed9ba0e9f
9 changed files with 23 additions and 25 deletions
+4 -4
View File
@@ -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/
``` ```
+2 -2
View File
@@ -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"))
``` ```
--- ---
+4 -6
View File
@@ -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.
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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®
+3 -3
View File
@@ -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`
--- ---
+3 -3
View File
@@ -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/