docs(obsidian): vault pulse sync — 5 notas (Home, pulse-3d-landing, pulse-dev, design-tokens, pulse-libs)
This commit is contained in:
@@ -0,0 +1,49 @@
|
|||||||
|
version: '3.9'
|
||||||
|
|
||||||
|
networks:
|
||||||
|
public:
|
||||||
|
external: true
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
pulse-libs-data:
|
||||||
|
projects-landing-data:
|
||||||
|
|
||||||
|
services:
|
||||||
|
# ─── Serviços existentes (mantidos) ───
|
||||||
|
games-demo:
|
||||||
|
image: nginx:alpine
|
||||||
|
networks: [public]
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
update_config:
|
||||||
|
parallelism: 1
|
||||||
|
delay: 10s
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
max_attempts: 3
|
||||||
|
|
||||||
|
projects-landing:
|
||||||
|
image: projects-landing:latest
|
||||||
|
networks: [public]
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
update_config:
|
||||||
|
parallelism: 1
|
||||||
|
delay: 10s
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
max_attempts: 3
|
||||||
|
|
||||||
|
pulse-libs:
|
||||||
|
image: pulse-libs:latest
|
||||||
|
command: node server.mjs
|
||||||
|
networks: [public]
|
||||||
|
deploy:
|
||||||
|
replicas: 2
|
||||||
|
update_config:
|
||||||
|
parallelism: 1
|
||||||
|
delay: 10s
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
max_attempts: 3
|
||||||
|
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
{"maintainable":true,"attachmentFolderPath":"Attachments","newFileLocation":"folder","newFileFolderPath":"Inbox","defaultNewNoteName":"Untitled","livePreview":true,"readableLineLength":true,"strictLineBreaks":false,"foldHeading":true,"foldIndent":true,"showFrontmatter":true,"propertiesInDocument":true}
|
||||||
Vendored
+1
@@ -0,0 +1 @@
|
|||||||
|
{"excluded":["templates","Trash","Attachments"]}
|
||||||
@@ -0,0 +1,73 @@
|
|||||||
|
---
|
||||||
|
title: "Design Tokens 3D — Referência"
|
||||||
|
created: 2026-05-20
|
||||||
|
tags: [design-system, tokens, threejs, codex]
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🎨 Design Tokens 3D — Referência
|
||||||
|
|
||||||
|
## Equivalência: 2D ↔ ↔ World 3D
|
||||||
|
|
||||||
|
| Nível 2D | Equivalente 3D |
|
||||||
|
|---------|---------------|
|
||||||
|
| Cores hex | `material.color` (THREE.Color) |
|
||||||
|
| Espaçamento px | Posições/posição no mundo (units) |
|
||||||
|
| Raio border-radius | `roundedBoxGeometry.radius` |
|
||||||
|
| Font-size px | `Text.fontSize` (unidades 3D) |
|
||||||
|
| Box-shadow | `pointLight` + `emissive` material |
|
||||||
|
|
||||||
|
## Material Tokens
|
||||||
|
|
||||||
|
```ts
|
||||||
|
material3d.floating = {
|
||||||
|
roughness: 0.08, // polido/espelhado
|
||||||
|
metalness: 0.75, // metálico
|
||||||
|
emissive: '#1e3a8a',
|
||||||
|
emissiveIntensity: 0.3,
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Scene Tokens
|
||||||
|
|
||||||
|
```ts
|
||||||
|
scene: {
|
||||||
|
background: '#050510',
|
||||||
|
fogNear: 8, fogFar: 40, fogColor: '#050510'
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Camera Tokens
|
||||||
|
|
||||||
|
```ts
|
||||||
|
camera3d = {
|
||||||
|
fov: 60,
|
||||||
|
position: [0, 0, 12] as [number, number, number],
|
||||||
|
scrollRange: { start:[0,0,12], end:[0,-8,6] }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Animation Tokens
|
||||||
|
|
||||||
|
```ts
|
||||||
|
animation = {
|
||||||
|
instant: 0.1, quick: 0.25, normal: 0.4, slow: 0.7, cinematic: 1.2
|
||||||
|
easeOut: [0.16, 1, 0.3, 1], // ease-out-expo
|
||||||
|
spring: { type:'spring', stiffness:300, damping:20 }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Uso nos átomos 3D
|
||||||
|
|
||||||
|
```tsx
|
||||||
|
// FloatingMesh recebe todos os material3d tokens como props
|
||||||
|
<FloatingMesh
|
||||||
|
color={tokens.color.accent}
|
||||||
|
metalness={tokens.material3d.floating.metalness}
|
||||||
|
roughness={tokens.material3d.floating.roughness}
|
||||||
|
/>
|
||||||
|
```
|
||||||
|
|
||||||
|
## Referência
|
||||||
|
- Três tipo de luz: `pointLight` (colorida), `directionalLight` (sol), `ambientLight` (ambiente)
|
||||||
|
- Niebla: `<fog attach="fog" args={['#050510', 8, 40]} />`
|
||||||
|
- Performance: `<Canvas dpr={[1,2]} shadows antialias={true} />`
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
title: "pulse-3d-landing — Docker + Deploy"
|
||||||
|
created: 2026-05-20
|
||||||
|
tags: [docker, deploy, threejs, vite]
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🐳 pulse-3d-landing — Docker Stack
|
||||||
|
|
||||||
|
## Local Dev
|
||||||
|
```bash
|
||||||
|
npm run dev # Vite dev server :5173
|
||||||
|
```
|
||||||
|
|
||||||
|
## Build production
|
||||||
|
```bash
|
||||||
|
npm run build # → dist/
|
||||||
|
npm run preview # preview estático
|
||||||
|
```
|
||||||
|
|
||||||
|
## Dockerfile (multi-stage)
|
||||||
|
```dockerfile
|
||||||
|
# Stage 1: build
|
||||||
|
FROM node:24-alpine AS build
|
||||||
|
WORKDIR /app
|
||||||
|
COPY package*.json ./
|
||||||
|
RUN npm ci --only=production 2>/dev/null; npm install
|
||||||
|
COPY . .
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
# Stage 2: produção
|
||||||
|
FROM nginx:alpine
|
||||||
|
COPY --from=build /app/dist /usr/share/nginx/html
|
||||||
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
||||||
|
EXPOSE 80
|
||||||
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
|
```
|
||||||
|
|
||||||
|
## Deploy no Swarm
|
||||||
|
```bash
|
||||||
|
docker build -t pulse-3d-landing:v1 .
|
||||||
|
docker tag pulse-3d-landing:v1 registry.octal.tec.br/pulse/pulse-3d-landing:v1
|
||||||
|
docker push registry.octal.tec.br/pulse/pulse-3d-landing:v1
|
||||||
|
|
||||||
|
# Adicionar ao compose da stack project ou criar stack separada
|
||||||
|
docker stack deploy -c runbooks/3d-landing-stack.yml web3d
|
||||||
|
```
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# 🏠 Home — Vault Pulse
|
||||||
|
|
||||||
|
Bem-vindo ao **Vault Pulse**, a memória operativa do agente Pulse.
|
||||||
|
|
||||||
|
## 📂 Estrutura
|
||||||
|
```
|
||||||
|
Inbox/ — notas temporárias antes de classificar
|
||||||
|
Projetos/ — projetos ativos (@pulse-libs, pulse-dev, pulse-memory)
|
||||||
|
Docker/ — stacks, compose, troubleshoot do Swarm
|
||||||
|
Dev/ — dev environment, workflows, taskboard
|
||||||
|
Logs/ — logs agrupados por data
|
||||||
|
Memorias/ — MEMORY.md + memórias diárias indexadas
|
||||||
|
Templates/ — templates para notas diárias e projetos
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔗 Notas Principais
|
||||||
|
- `[[MEMORY]]` — memória curada do agente Pulse
|
||||||
|
- `[[Agent-Pulse]]` — identidade, skills, configuração
|
||||||
|
- `[[Dev-Environment-Overview]]` — overview completo do ambiente dev
|
||||||
|
- `[[Swarm-Stacks-Reference]]` — referência das 10 stacks do Swarm Octal
|
||||||
|
- `[[Task-Protocol]]` — protocolo de tasks entre agentes
|
||||||
|
|
||||||
|
## ⚡ Quick Actions
|
||||||
|
- Criar nota: `Ctrl/Cmd+N`
|
||||||
|
- Nova tarefa: `board.octal.tec.br`
|
||||||
|
- Ver stacks: `docker stack ls`
|
||||||
|
- Ver agentes: `board.octal.tec.br` → aba Agentes
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
---
|
||||||
|
title: "pulse-3d-landing — Landing Page 3D"
|
||||||
|
created: 2026-05-20
|
||||||
|
tags: [projeto, web3d, threejs, design-system, atomic-design]
|
||||||
|
projeto: pulse-3d-landing
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🎨 pulse-3d-landing — Landing Page 3D
|
||||||
|
|
||||||
|
## Stack
|
||||||
|
- **Vite** + **React 18** + **TypeScript**
|
||||||
|
- **@react-three/fiber** + **drei** — Three.js no React
|
||||||
|
- **framer-motion** — animações CSS/UI
|
||||||
|
- **npm install + build OK** ✅
|
||||||
|
|
||||||
|
## Atomic Design
|
||||||
|
|
||||||
|
| Nível | Qtd | Componentes |
|
||||||
|
|-------|-----|-------------|
|
||||||
|
| Átomos | 11 | Button, Badge, Card, Divider, GradientText, FloatingText, LightGlow, ThemeToggle, Typography, FloatingMesh, ParticleField |
|
||||||
|
| Moléculas | 3 | FloatingMesh, ParticleField, FeatureCard3d |
|
||||||
|
| Organismos | 2 | HeroScene3d, FeaturesScene3d |
|
||||||
|
| Templates | 2 | SceneCanvas, ThreePage |
|
||||||
|
| Páginas | 1 | App.tsx (Hero + Features + About + CTA) |
|
||||||
|
|
||||||
|
## Design Tokens (8 domínios)
|
||||||
|
|
||||||
|
```
|
||||||
|
space → 8px grid (0–11)
|
||||||
|
font → Inter + JetBrains Mono (xs → 6xl)
|
||||||
|
color → HSL base + accent (#2563eb) + secondary (#7c3aed)
|
||||||
|
shadow → none → glow/glow2 (accent/secondary glow)
|
||||||
|
radius → none → full (9999px)
|
||||||
|
material3d → scene/ambient/directional/point/floating/particle/text3d
|
||||||
|
camera3d → fov 60, scrollRange [0,0,12] → [0,-8,6]
|
||||||
|
animation → instant/quick/normal/slow/cinematic + easing
|
||||||
|
```
|
||||||
|
|
||||||
|
## Seções da Landing
|
||||||
|
|
||||||
|
| Seção | Descrição | Elementos 3D |
|
||||||
|
|-------|-----------|------------|
|
||||||
|
| **Hero** | Título GradientText + CTA bar | Torus flutuante + 2 anéis orbitais + cubo + esfera |
|
||||||
|
| **Features** | Grid 6 cards micro-animados | 6 cubos em círculo orbitando |
|
||||||
|
| **About** | Filosofia + bullet list | — |
|
||||||
|
| **CTA** | Botões + footer | — |
|
||||||
|
|
||||||
|
## Micro-interações
|
||||||
|
- `HeroScene3d`: scroll move câmera de `z:12→8` e `y:0→-3`
|
||||||
|
- `FeaturesScene3d`: grupo gira continuamente + Float em cada cubo
|
||||||
|
- `FloatingMesh`: hover → scale 1.12x, giro 2x, glow intensifica
|
||||||
|
- `ParticleField`: 3000 partículas com som senoidal vertical
|
||||||
|
- `ThemeToggle`: alterna CSS var `--bg` + `--text` + grid invertido
|
||||||
|
|
||||||
|
## Dark / Light 3D
|
||||||
|
- Dark: `#050510` bg, accent azul elétrico, secondary violeta
|
||||||
|
- Light: `#f8fafc` bg → css `filter: invert` no grid
|
||||||
|
|
||||||
|
## Acessibilidade
|
||||||
|
- `aria-label` em todos os controles
|
||||||
|
- `focus-visible` outline 2px accent
|
||||||
|
- `scroll-behavior: smooth`
|
||||||
|
- WCAG AAA color contrast
|
||||||
|
|
||||||
|
## Como rodar
|
||||||
|
```bash
|
||||||
|
cd /root/Obsidian-Pulse/pulse-3d-landing # (link simbólico)
|
||||||
|
npm install
|
||||||
|
npm run dev # → http://localhost:5173
|
||||||
|
npm run build # → dist/
|
||||||
|
```
|
||||||
|
|
||||||
|
## Repositório
|
||||||
|
Código-fonte: `pulse-3d-landing/` no workspace Pulse (committed em Gitea pulse-memory)
|
||||||
|
|
||||||
|
## Hotlinks
|
||||||
|
- [[MEMORY]] → portal principal do agente Pulse
|
||||||
|
- [[Dev-Environment-Overview]] → stack dev Swarm
|
||||||
|
- [[Swarm-Stacks-Reference]] → todas as stacks
|
||||||
|
|
||||||
|
## Referências
|
||||||
|
- Atomic Design: Brad Frost
|
||||||
|
- Three.js: https://threejs.org/docs
|
||||||
|
- React Three Fiber: https://docs.pmnd.rs/react-three-fiber
|
||||||
|
- Framer Motion: https://www.framer.com/motion
|
||||||
@@ -0,0 +1,99 @@
|
|||||||
|
---
|
||||||
|
title: "Dev Environment Full-Stack Pulse"
|
||||||
|
created: 2026-05-20
|
||||||
|
tags: [dev, swarm, agents, taskboard, hot-reload]
|
||||||
|
projeto: pulse-dev
|
||||||
|
---
|
||||||
|
|
||||||
|
# 🚀 Dev Environment Full-Stack Pulse
|
||||||
|
|
||||||
|
## Stack Swarm `dev` — arquitetura
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────────────────┐
|
||||||
|
│ DEV ORCHESTRATOR │
|
||||||
|
│ (taskboard + Redis queue + log stream) │
|
||||||
|
├─────────────────────────────────────────────────────────────────┤
|
||||||
|
│ FRONTEND 5173 │ BACKEND 3001 │ WORKERS (FEBE_DEV_OPS) │
|
||||||
|
│ Vite HMR │ tsx HMR │ │
|
||||||
|
│ [1 réplica] │ [1 réplica] │ [2 FE] [2 BE] [1 DevOps] │
|
||||||
|
├─────────────────────────────────────────────────────────────────┤
|
||||||
|
│ Redis 6379 — fila `dev-tasks` + canal `dev-logs` │
|
||||||
|
└─────────────────────────────────────────────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
## Serviços ativos
|
||||||
|
|
||||||
|
| Serviço | Imagem | Porta | DOMÍNIO |
|
||||||
|
|---------|--------|-------|---------|
|
||||||
|
| redis | redis:8-alpine | 6379 | interno |
|
||||||
|
| taskboard | nginx:alpine | 80 | `board.octal.tec.br` |
|
||||||
|
| dev-frontend | node:24-alpine | 5173 | `frontend.octal.tec.br` |
|
||||||
|
| dev-backend | node:24-alpine | 3001 | `api.octal.tec.br` |
|
||||||
|
| agent-frontend ×2 | node:24-alpine | — | workers |
|
||||||
|
| agent-backend ×2 | node:24-alpine | — | workers |
|
||||||
|
| agent-devops ×1 | node:24-alpine | — | workers |
|
||||||
|
|
||||||
|
## API Backend (porta 3001)
|
||||||
|
|
||||||
|
| Rota | Método | Descrição |
|
||||||
|
|------|--------|-----------|
|
||||||
|
| `/health` | GET | Health check |
|
||||||
|
| `/tasks` | GET | Listar todas as tarefas |
|
||||||
|
| `/tasks` | POST | Criar tarefa (adiciona na fila `dev-tasks`) |
|
||||||
|
| `/tasks/:id` | PUT | Atualizar tarefa |
|
||||||
|
| `/agents` | GET | Listar agentes conectados |
|
||||||
|
|
||||||
|
## Task Protocol (Redis)
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "uuid",
|
||||||
|
"type": "feature|bug|refactor|test|devops",
|
||||||
|
"priority": "low|medium|high|critical",
|
||||||
|
"domain": "frontend|backend|devops|fullstack",
|
||||||
|
"title": "...",
|
||||||
|
"description": "...",
|
||||||
|
"files_affected": ["src/..."],
|
||||||
|
"acceptance_criteria": ["..."],
|
||||||
|
"created_at": "2026-05-20T19:00:00Z",
|
||||||
|
"status": "pending|in_progress|done|blocked",
|
||||||
|
"assignee": null | "agent-frontend" | "agent-backend" | "agent-devops"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Agentes (worker loop)
|
||||||
|
|
||||||
|
- `agent-frontend` ×2 — React/Vite specialist, BLPOP domínio=frontend|fullstack
|
||||||
|
- `agent-backend` ×2 — Node/Express specialist, BLPOP domínio=backend|fullstack
|
||||||
|
- `agent-devops` ×1 — Docker Swarm specialist, BLPOP domínio=devops
|
||||||
|
|
||||||
|
Ciclo: `claimTask → log(AGENT) → process (2-6s) → done → redis.publish`
|
||||||
|
|
||||||
|
## Hot Reload
|
||||||
|
|
||||||
|
| Serviço | Comando | Sistema |
|
||||||
|
|---------|---------|---------|
|
||||||
|
| Frontend | `npx vite --host 0.0.0.0 --port 5173` | Vite HMR (WS connect) |
|
||||||
|
| Backend | `npx tsx watch --dir ./src server.ts` | tsx HMR (restart em mudança) |
|
||||||
|
|
||||||
|
Código montado via volume bind mount (`:cached`) — qualquer alteração arquivo → hot reload instantâneo.
|
||||||
|
|
||||||
|
## Vault Obsidian
|
||||||
|
|
||||||
|
- Caminho: `/root/Obsidian-Pulse/`
|
||||||
|
- Estrutura: Inbox / Projetos / Docker / Dev / Codex / Logs / Memorias / Templates
|
||||||
|
- Skill: obsidian-vault-linker instalada e pronta
|
||||||
|
|
||||||
|
## Hotlinks
|
||||||
|
|
||||||
|
- `[[Swarm-Stacks-Reference]]` — todas as 11 stacks
|
||||||
|
- `[[Task-Protocol]]` — protocolo de tasks entre agentes
|
||||||
|
- `[[MEMORY]]` — memória curada do Pulse
|
||||||
|
- `[[DEV-STACK-YML]]` — compose da stack `dev`
|
||||||
|
|
||||||
|
## Referências
|
||||||
|
|
||||||
|
- runbook: `pulse-docs/runbooks/dev-stack.yml`
|
||||||
|
- guia: `pulse-docs/runbooks/dev-environment.md`
|
||||||
|
- MEMORY.md → `{{project: pulse-memory → MEMORY.md}}`
|
||||||
Reference in New Issue
Block a user