chore: ignora graphify-out gerado

This commit is contained in:
2026-10-28 15:59:30 +00:00
parent 0ff519f554
commit 75041136d2
26 changed files with 3023 additions and 1 deletions
+353
View File
@@ -0,0 +1,353 @@
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Modelo-Organizacao-Proc-Dev — Workflow</title>
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap" rel="stylesheet">
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: 'JetBrains Mono', monospace;
background: #020617;
min-height: 100vh;
padding: 2rem;
color: white;
}
.container { max-width: 1300px; margin: 0 auto; }
.header { margin-bottom: 2rem; }
.header-row { display: flex; align-items: center; gap: 1rem; margin-bottom: 0.5rem; }
.pulse-dot {
width: 12px; height: 12px; background: #22d3ee;
border-radius: 50%; animation: pulse 2s infinite;
}
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:0.5} }
h1 { font-size: 1.5rem; font-weight: 700; letter-spacing: -0.025em; }
.subtitle { color: #94a3b8; font-size: 0.875rem; margin-left: 1.75rem; }
.diagram-container {
background: rgba(15, 23, 42, 0.5);
border-radius: 1rem; border: 1px solid #1e293b;
padding: 1.5rem; overflow-x: auto;
}
svg { width: 100%; min-width: 1050px; display: block; }
.cards {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1rem; margin-top: 2rem;
}
.card {
background: rgba(15, 23, 42, 0.5);
border-radius: 0.75rem; border: 1px solid #1e293b; padding: 1.25rem;
}
.card-header { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.75rem; }
.card-dot { width: 8px; height: 8px; border-radius: 50%; }
.card-dot.cyan { background: #22d3ee; }
.card-dot.emerald { background: #34d399; }
.card-dot.violet { background: #a78bfa; }
.card-dot.amber { background: #fbbf24; }
.card-dot.rose { background: #fb7185; }
.card h3 { font-size: 0.875rem; font-weight: 600; }
.card ul { list-style: none; color: #94a3b8; font-size: 0.75rem; }
.card li { margin-bottom: 0.375rem; }
.footer { text-align: center; margin-top: 1.5rem; color: #475569; font-size: 0.75rem; }
</style>
</head>
<body>
<div class="container">
<!-- Header -->
<div class="header">
<div class="header-row">
<div class="pulse-dot"></div>
<h1>Modelo-Organizacao-Proc-Dev — Fluxo de Trabalho</h1>
</div>
<p class="subtitle">Workflow de projectos Descomplicar®: iniciação, sessão, registo e governança</p>
</div>
<!-- Main Diagram -->
<div class="diagram-container">
<svg viewBox="0 0 1050 780">
<defs>
<marker id="arrow" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
<polygon points="0 0, 10 3.5, 0 7" fill="#64748b" />
</marker>
<marker id="arrow-cyan" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
<polygon points="0 0, 10 3.5, 0 7" fill="#22d3ee" />
</marker>
<marker id="arrow-emerald" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
<polygon points="0 0, 10 3.5, 0 7" fill="#34d399" />
</marker>
<marker id="arrow-violet" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
<polygon points="0 0, 10 3.5, 0 7" fill="#a78bfa" />
</marker>
<marker id="arrow-rose" markerWidth="10" markerHeight="7" refX="9" refY="3.5" orient="auto">
<polygon points="0 0, 10 3.5, 0 7" fill="#fb7185" />
</marker>
<pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse">
<path d="M 40 0 L 0 0 0 40" fill="none" stroke="#1e293b" stroke-width="0.5"/>
</pattern>
<filter id="glow">
<feGaussianBlur stdDeviation="2" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<!-- Background Grid -->
<rect width="100%" height="100%" fill="url(#grid)" />
<!-- ================================================================
SECTION 1: FLUXO DE INICIAÇÃO DE PROJECTOS
================================================================ -->
<rect x="20" y="20" width="1010" height="155" rx="10" fill="transparent" stroke="#fbbf24" stroke-width="1" stroke-dasharray="8,4"/>
<text x="30" y="42" fill="#fbbf24" font-size="11" font-weight="600">F1: Iniciação de Projecto</text>
<!-- Step boxes -->
<rect x="40" y="60" width="100" height="50" rx="6" fill="rgba(30,41,59,0.5)" stroke="#94a3b8" stroke-width="1.5"/>
<text x="90" y="78" fill="white" font-size="10" font-weight="600" text-anchor="middle">Novo Projecto</text>
<text x="90" y="96" fill="#94a3b8" font-size="8" text-anchor="middle">Repositório</text>
<line x1="140" y1="85" x2="175" y2="85" stroke="#22d3ee" stroke-width="1.5" marker-end="url(#arrow-cyan)"/>
<rect x="180" y="60" width="130" height="50" rx="6" fill="rgba(8,51,68,0.4)" stroke="#22d3ee" stroke-width="1.5"/>
<text x="245" y="78" fill="white" font-size="10" font-weight="600" text-anchor="middle">desk.project</text>
<text x="245" y="96" fill="#94a3b8" font-size="8" text-anchor="middle">+ AGENTS.md</text>
<line x1="310" y1="85" x2="345" y2="85" stroke="#22d3ee" stroke-width="1.5" marker-end="url(#arrow-cyan)"/>
<rect x="350" y="60" width="140" height="50" rx="6" fill="rgba(8,51,68,0.4)" stroke="#22d3ee" stroke-width="1.5"/>
<text x="420" y="78" fill="white" font-size="10" font-weight="600" text-anchor="middle">docs/PLANS/</text>
<text x="420" y="96" fill="#94a3b8" font-size="8" text-anchor="middle">+ docs/SPECS/</text>
<line x1="490" y1="85" x2="525" y2="85" stroke="#22d3ee" stroke-width="1.5" marker-end="url(#arrow-cyan)"/>
<!-- Validation step -->
<rect x="530" y="55" width="130" height="60" rx="6" fill="rgba(136,19,55,0.2)" stroke="#fb7185" stroke-width="1.5" stroke-dasharray="4,3"/>
<text x="595" y="76" fill="#fb7185" font-size="10" font-weight="600" text-anchor="middle">validate-structure</text>
<text x="595" y="94" fill="#fb7185" font-size="8" text-anchor="middle">scripts/ .sh</text>
<line x1="660" y1="85" x2="695" y2="85" stroke="#34d399" stroke-width="1.5" marker-end="url(#arrow-emerald)"/>
<rect x="700" y="60" width="110" height="50" rx="6" fill="rgba(6,78,59,0.4)" stroke="#34d399" stroke-width="1.5"/>
<text x="755" y="80" fill="#34d399" font-size="11" font-weight="600" text-anchor="middle">CONFORME</text>
<text x="755" y="96" fill="#94a3b8" font-size="8" text-anchor="middle">Exit 0</text>
<!-- Error branch -->
<path d="M 595 115 L 595 130 Q 595 140 585 140 L 460 140 Q 450 140 450 130 L 450 112" fill="none" stroke="#fb7185" stroke-width="1.2" stroke-dasharray="4,3" marker-end="url(#arrow-rose)"/>
<text x="530" y="135" fill="#fb7185" font-size="8">FALHA (exit 1)</text>
<!-- Phase indicator -->
<circle cx="845" cy="85" r="20" fill="rgba(6,78,59,0.3)" stroke="#34d399" stroke-width="1.5"/>
<text x="845" y="90" fill="#34d399" font-size="12" font-weight="700" text-anchor="middle">DONE</text>
<!-- ================================================================
SECTION 2: FLUXO DE SESSÃO (Ciclo PDCA)
================================================================ -->
<rect x="20" y="195" width="1010" height="185" rx="10" fill="transparent" stroke="#34d399" stroke-width="1" stroke-dasharray="8,4"/>
<text x="30" y="217" fill="#34d399" font-size="11" font-weight="600">F2: Sessão de Trabalho (Agente/Humano)</text>
<!-- P - Plan -->
<rect x="40" y="240" width="130" height="55" rx="6" fill="rgba(8,51,68,0.4)" stroke="#22d3ee" stroke-width="1.5"/>
<text x="105" y="260" fill="white" font-size="10" font-weight="600" text-anchor="middle">1. PLAN</text>
<text x="105" y="278" fill="#94a3b8" font-size="8" text-anchor="middle">Contexto: AGENTS.md</text>
<text x="105" y="290" fill="#94a3b8" font-size="7" text-anchor="middle">+ MEMORY.md + CARL</text>
<line x1="170" y1="267" x2="205" y2="267" stroke="#22d3ee" stroke-width="1.5" marker-end="url(#arrow-cyan)"/>
<!-- D - Do -->
<rect x="210" y="240" width="130" height="55" rx="6" fill="rgba(6,78,59,0.4)" stroke="#34d399" stroke-width="1.5"/>
<text x="275" y="260" fill="white" font-size="10" font-weight="600" text-anchor="middle">2. DO</text>
<text x="275" y="278" fill="#94a3b8" font-size="8" text-anchor="middle">Executar (MCP/SSH)</text>
<text x="275" y="290" fill="#94a3b8" font-size="7" text-anchor="middle">Procurar dados reais</text>
<line x1="340" y1="267" x2="375" y2="267" stroke="#34d399" stroke-width="1.5" marker-end="url(#arrow-emerald)"/>
<!-- C - Check -->
<rect x="380" y="235" width="130" height="65" rx="6" fill="rgba(136,19,55,0.2)" stroke="#fb7185" stroke-width="1.5" stroke-dasharray="4,3"/>
<text x="445" y="256" fill="#fb7185" font-size="10" font-weight="600" text-anchor="middle">3. CHECK</text>
<text x="445" y="274" fill="#fb7185" font-size="8" text-anchor="middle">Validação estrutural</text>
<text x="445" y="286" fill="#94a3b8" font-size="7" text-anchor="middle">Testes / QG</text>
<text x="445" y="295" fill="#fb7185" font-size="7" text-anchor="middle">validate-structure.sh</text>
<line x1="510" y1="267" x2="545" y2="267" stroke="#fb7185" stroke-width="1.5" marker-end="url(#arrow-rose)"/>
<!-- Check fail branch back to Do -->
<path d="M 445 300 L 445 330 Q 445 345 435 345 L 275 345 Q 265 345 265 335 L 265 297" fill="none" stroke="#fb7185" stroke-width="1.2" stroke-dasharray="4,3" marker-end="url(#arrow-rose)"/>
<text x="340" y="340" fill="#fb7185" font-size="7">FALHA — corrigir</text>
<!-- A - Act -->
<rect x="550" y="240" width="150" height="55" rx="6" fill="rgba(76,29,149,0.4)" stroke="#a78bfa" stroke-width="1.5"/>
<text x="625" y="260" fill="white" font-size="10" font-weight="600" text-anchor="middle">4. ACT</text>
<text x="625" y="278" fill="#94a3b8" font-size="8" text-anchor="middle">REGISTAR: MEMORY.md</text>
<text x="625" y="290" fill="#94a3b8" font-size="7" text-anchor="middle">+ Comentário CRM</text>
<line x1="700" y1="267" x2="735" y2="267" stroke="#a78bfa" stroke-width="1.5" marker-end="url(#arrow-violet)"/>
<!-- Done -->
<circle cx="810" cy="267" r="20" fill="rgba(6,78,59,0.3)" stroke="#34d399" stroke-width="1.5"/>
<text x="810" y="272" fill="#34d399" font-size="12" font-weight="700" text-anchor="middle">OK</text>
<!-- ================================================================
SECTION 3: SEPARAÇÃO CRM | GITEA | HUB
================================================================ -->
<rect x="20" y="400" width="1010" height="165" rx="10" fill="transparent" stroke="#a78bfa" stroke-width="1" stroke-dasharray="8,4"/>
<text x="30" y="422" fill="#a78bfa" font-size="11" font-weight="600">F3: Separação de Responsabilidades (PROTOCOLO-CRM.md)</text>
<!-- CRM Column -->
<rect x="40" y="445" width="280" height="100" rx="8" fill="rgba(136,19,55,0.15)" stroke="#fb7185" stroke-width="1.5"/>
<rect x="40" y="445" width="280" height="22" rx="8" fill="rgba(136,19,55,0.3)"/>
<rect x="40" y="459" width="280" height="8" fill="rgba(136,19,55,0.3)"/>
<text x="180" y="461" fill="#fb7185" font-size="11" font-weight="600" text-anchor="middle">DESK CRM</text>
<text x="180" y="485" fill="#fb7185" font-size="10" font-weight="600" text-anchor="middle">Contentor de Tempo e Custos</text>
<text x="60" y="505" fill="#94a3b8" font-size="8">• Task Master (poucas, por projecto)</text>
<text x="60" y="519" fill="#94a3b8" font-size="8">• Timer — registo de horas</text>
<text x="60" y="533" fill="#94a3b8" font-size="8">• Comentários — visibilidade gestor/cliente</text>
<!-- Divider -->
<text x="340" y="495" fill="#475569" font-size="14" text-anchor="middle">|</text>
<text x="340" y="509" fill="#475569" font-size="14" text-anchor="middle">|</text>
<text x="340" y="523" fill="#475569" font-size="14" text-anchor="middle">|</text>
<!-- Gitea Column -->
<rect x="370" y="445" width="280" height="100" rx="8" fill="rgba(6,78,59,0.15)" stroke="#34d399" stroke-width="1.5"/>
<rect x="370" y="445" width="280" height="22" rx="8" fill="rgba(6,78,59,0.3)"/>
<rect x="370" y="459" width="280" height="8" fill="rgba(6,78,59,0.3)"/>
<text x="510" y="461" fill="#34d399" font-size="11" font-weight="600" text-anchor="middle">GITEA / REPO</text>
<text x="510" y="485" fill="#34d399" font-size="10" font-weight="600" text-anchor="middle">Oficina Técnica</text>
<text x="390" y="505" fill="#94a3b8" font-size="8">• Código, branches, PRs</text>
<text x="390" y="519" fill="#94a3b8" font-size="8">• Issues — detalhe técnico</text>
<text x="390" y="533" fill="#94a3b8" font-size="8">• Milestones + CI/CD</text>
<!-- Divider -->
<text x="670" y="495" fill="#475569" font-size="14" text-anchor="middle">|</text>
<text x="670" y="509" fill="#475569" font-size="14" text-anchor="middle">|</text>
<text x="670" y="523" fill="#475569" font-size="14" text-anchor="middle">|</text>
<!-- Hub Column -->
<rect x="690" y="445" width="320" height="100" rx="8" fill="rgba(120,53,15,0.15)" stroke="#fbbf24" stroke-width="1.5"/>
<rect x="690" y="445" width="320" height="22" rx="8" fill="rgba(120,53,15,0.3)"/>
<rect x="690" y="459" width="320" height="8" fill="rgba(120,53,15,0.3)"/>
<text x="850" y="461" fill="#fbbf24" font-size="11" font-weight="600" text-anchor="middle">HUB OBSIDIAN (06-Operacoes)</text>
<text x="850" y="485" fill="#fbbf24" font-size="10" font-weight="600" text-anchor="middle">Fonte de Verdade Centralizada</text>
<text x="710" y="505" fill="#94a3b8" font-size="8">• Procedimentos (PROC-*)</text>
<text x="710" y="519" fill="#94a3b8" font-size="8">• Quick References (QR-*)</text>
<text x="710" y="533" fill="#94a3b8" font-size="8">• Runbooks — troubleshooting</text>
<!-- ================================================================
SECTION 4: ECOSSISTEMA DE GOVERNANÇA
================================================================ -->
<rect x="20" y="585" width="1010" height="180" rx="10" fill="transparent" stroke="#fb7185" stroke-width="1" stroke-dasharray="8,4"/>
<text x="30" y="607" fill="#fb7185" font-size="11" font-weight="600">F4: Ecossistema de Governança</text>
<!-- CARL -->
<rect x="40" y="630" width="220" height="55" rx="6" fill="rgba(76,29,149,0.4)" stroke="#a78bfa" stroke-width="1.5"/>
<text x="150" y="650" fill="white" font-size="10" font-weight="600" text-anchor="middle">CARL — Regras Activas</text>
<text x="150" y="668" fill="#94a3b8" font-size="8" text-anchor="middle">MODELO-ORGANIZACAO</text>
<line x1="260" y1="657" x2="295" y2="657" stroke="#a78bfa" stroke-width="1.5" marker-end="url(#arrow-violet)"/>
<!-- ESTRUTURA.md -->
<rect x="300" y="630" width="160" height="55" rx="6" fill="rgba(8,51,68,0.4)" stroke="#22d3ee" stroke-width="1.5"/>
<text x="380" y="650" fill="white" font-size="10" font-weight="600" text-anchor="middle">ESTRUTURA.md</text>
<text x="380" y="668" fill="#94a3b8" font-size="8" text-anchor="middle">Hierarquia Standard</text>
<line x1="460" y1="657" x2="495" y2="657" stroke="#22d3ee" stroke-width="1.5" marker-end="url(#arrow-cyan)"/>
<!-- AGENTS.md -->
<rect x="500" y="630" width="160" height="55" rx="6" fill="rgba(8,51,68,0.4)" stroke="#22d3ee" stroke-width="1.5"/>
<text x="580" y="650" fill="white" font-size="10" font-weight="600" text-anchor="middle">AGENTS.md</text>
<text x="580" y="668" fill="#94a3b8" font-size="8" text-anchor="middle">Directrizes de Agentes</text>
<line x1="660" y1="657" x2="695" y2="657" stroke="#22d3ee" stroke-width="1.5" marker-end="url(#arrow-cyan)"/>
<!-- Script -->
<rect x="700" y="625" width="150" height="65" rx="6" fill="rgba(136,19,55,0.2)" stroke="#fb7185" stroke-width="1.5" stroke-dasharray="4,3"/>
<text x="775" y="646" fill="#fb7185" font-size="10" font-weight="600" text-anchor="middle">validate-structure.sh</text>
<text x="775" y="664" fill="#fb7185" font-size="8" text-anchor="middle">Validação automática</text>
<text x="775" y="676" fill="#94a3b8" font-size="7" text-anchor="middle">Exit 0 = OK</text>
<line x1="850" y1="657" x2="885" y2="657" stroke="#fb7185" stroke-width="1.5" marker-end="url(#arrow-rose)"/>
<!-- MEMORY.md -->
<rect x="890" y="630" width="120" height="55" rx="6" fill="rgba(6,78,59,0.4)" stroke="#34d399" stroke-width="1.5"/>
<text x="950" y="650" fill="white" font-size="10" font-weight="600" text-anchor="middle">MEMORY.md</text>
<text x="950" y="668" fill="#94a3b8" font-size="8" text-anchor="middle">Registo Final</text>
<!-- Bottom: AGENTS.md validation link -->
<path d="M 580 685 L 580 705 Q 580 715 570 715 L 150 715 Q 140 715 140 705 L 140 687" fill="none" stroke="#fb7185" stroke-width="1.2" stroke-dasharray="4,3" marker-end="url(#arrow-rose)"/>
<text x="360" y="712" fill="#fb7185" font-size="7">AGENTS.md referência o domínio CARL correspondente</text>
<!-- ================================================================
LEGEND
================================================================ -->
<rect x="20" y="780" width="1000" height="45" rx="8" fill="transparent" stroke="#1e293b" stroke-width="1"/>
<text x="36" y="797" fill="white" font-size="9" font-weight="600">Legenda:</text>
<rect x="120" y="787" width="14" height="9" rx="2" fill="rgba(8,51,68,0.4)" stroke="#22d3ee" stroke-width="1"/>
<text x="139" y="795" fill="#94a3b8" font-size="8">Governance</text>
<rect x="230" y="787" width="14" height="9" rx="2" fill="rgba(6,78,59,0.4)" stroke="#34d399" stroke-width="1"/>
<text x="249" y="795" fill="#94a3b8" font-size="8">Execução</text>
<rect x="330" y="787" width="14" height="9" rx="2" fill="rgba(76,29,149,0.4)" stroke="#a78bfa" stroke-width="1"/>
<text x="349" y="795" fill="#94a3b8" font-size="8">Registo</text>
<rect x="420" y="787" width="14" height="9" rx="2" fill="rgba(136,19,55,0.2)" stroke="#fb7185" stroke-width="1" stroke-dasharray="2,2"/>
<text x="439" y="795" fill="#94a3b8" font-size="8">Validação / Segurança</text>
<line x1="570" y1="791" x2="584" y2="791" stroke="#fb7185" stroke-width="1.2" stroke-dasharray="3,3"/>
<text x="589" y="795" fill="#94a3b8" font-size="8">Correcção (feedback loop)</text>
<rect x="710" y="787" width="14" height="9" rx="2" fill="transparent" stroke="#fbbf24" stroke-width="1" stroke-dasharray="4,2"/>
<text x="729" y="795" fill="#94a3b8" font-size="8">Fluxo/Fase</text>
</svg>
</div>
<!-- Info Cards -->
<div class="cards">
<div class="card">
<div class="card-header">
<div class="card-dot cyan"></div>
<h3>F1: Iniciação</h3>
</div>
<ul>
<li>• Criar repositório e desk.project</li>
<li>• Scaffold docs/PLANS + docs/SPECS</li>
<li>• AGENTS.md com directrizes do projecto</li>
<li>• Validar com scripts/validate-structure.sh</li>
<li>• Só é "conforme" com exit 0</li>
</ul>
</div>
<div class="card">
<div class="card-header">
<div class="card-dot emerald"></div>
<h3>F2: Sessão PDCA</h3>
</div>
<ul>
<li>• PLAN: Carregar AGENTS.md + MEMORY.md + CARL</li>
<li>• DO: Executar MCP/SSH — nunca assumir</li>
<li>• CHECK: validate-structure.sh + testes</li>
<li>• ACT: REGISTAR em MEMORY.md + CRM</li>
<li>• Se FALHA: loop back ao DO</li>
</ul>
</div>
<div class="card">
<div class="card-header">
<div class="card-dot violet"></div>
<h3>F3+F4: Governança</h3>
</div>
<ul>
<li>• CRM = tempo e custos (não granular)</li>
<li>• Gitea = código, issues, milestones</li>
<li>• Hub (06-Operacoes) = PROCs + Runbooks</li>
<li>• CARL regista decisões com recall keywords</li>
<li>• AGENTS.md aponta para CARL + MEMORY.md</li>
</ul>
</div>
</div>
<!-- Footer -->
<p class="footer">
Modelo-Organizacao-Proc-Dev • Descomplicar® • Task CRM #2134 • Domínio CARL: MODELO-ORGANIZACAO
</p>
</div>
</body>
</html>