feat: fundar plataforma mais humana

This commit is contained in:
Ami Soares
2026-04-30 06:42:00 -03:00
commit c9c1056193
183 changed files with 639629 additions and 0 deletions

137
src/mais_humana/contract.py Normal file
View File

@@ -0,0 +1,137 @@
"""Public contract export for the Mais Humana platform."""
from __future__ import annotations
from dataclasses import dataclass
from typing import Sequence
from .catalog import HUMAN_NEEDS, HUMAN_PROFILES, PLATFORMS
from .models import PlatformHumanReport, ReportBundle, as_plain_data, utc_now
@dataclass(slots=True)
class ContractSurface:
surface_id: str
title: str
description: str
output_files: tuple[str, ...]
consumers: tuple[str, ...]
def to_dict(self) -> dict[str, object]:
return as_plain_data(self)
@dataclass(slots=True)
class MaisHumanaContract:
contract_version: str
generated_at: str
platform_id: str
mission: str
surfaces: tuple[ContractSurface, ...]
profile_ids: tuple[str, ...]
platform_ids: tuple[str, ...]
need_ids: tuple[str, ...]
report_count: int
matrix_cells: int
total_code_lines: int
def to_dict(self) -> dict[str, object]:
return as_plain_data(self)
def default_surfaces() -> tuple[ContractSurface, ...]:
return (
ContractSurface(
surface_id="ecosystem_report",
title="Relatorio geral humano",
description="Leitura executiva do ecossistema por pessoas, plataformas, lacunas e riscos.",
output_files=(
"ecossistema/RELATORIO-GERAL-DO-ECOSSISTEMA-humana.md",
"relatorios-docx/RELATORIO-GERAL-DO-ECOSSISTEMA-humana.docx",
),
consumers=("CEO", "planejamento estrategico", "central de OS"),
),
ContractSurface(
surface_id="platform_reports",
title="Relatorios por plataforma",
description="Leitura por plataforma com perfis atendidos, gaps, evidencias e recomendacoes.",
output_files=("plataformas/*.md", "relatorios-docx/plataformas/*.docx"),
consumers=("gestor operacional", "suporte", "juridico", "financeiro"),
),
ContractSurface(
surface_id="human_matrix",
title="Matriz plataforma x perfil",
description="Tabela de score que mostra quem e atendido por qual plataforma.",
output_files=("matrizes/matriz-plataforma-perfil.csv", "graficos/matriz-plataforma-perfil.svg"),
consumers=("planejamento estrategico", "MCP", "UI Platform"),
),
ContractSurface(
surface_id="quality_gate",
title="Quality Gate Mais Humano",
description="Separacao entre readiness tecnico e prontidao para leitura humana.",
output_files=("ecossistema/QUALITY-GATE-MAIS-HUMANO.md", "dados/quality-gates.json"),
consumers=("gestor operacional", "auditoria", "central de OS"),
),
ContractSurface(
surface_id="service_orders",
title="Ordens orientadoras",
description="Ordens executivas e gerenciais criadas a partir de lacunas reais.",
output_files=("os-orientadoras/ordens-de-saida.json", "central/orders/**/*.md"),
consumers=("Codex", "nucleo de gestao operacional"),
),
)
def build_contract(bundle: ReportBundle, reports: Sequence[PlatformHumanReport]) -> MaisHumanaContract:
return MaisHumanaContract(
contract_version="mais-humana.contract.v1",
generated_at=utc_now(),
platform_id="tudo-para-ia-mais-humana",
mission=(
"Traduzir o estado tecnico do ecossistema Tudo Para IA em compreensao humana, "
"metas de atendimento, visao por perfil, relatorios executivos e orientacao de OS."
),
surfaces=default_surfaces(),
profile_ids=tuple(profile.profile_id for profile in HUMAN_PROFILES),
platform_ids=tuple(platform.platform_id for platform in PLATFORMS),
need_ids=tuple(need.need_id for need in HUMAN_NEEDS),
report_count=len(reports),
matrix_cells=bundle.matrix_cells,
total_code_lines=bundle.total_code_lines_analyzed,
)
def contract_markdown(contract: MaisHumanaContract) -> str:
lines = [
"# Contrato publico - tudo-para-ia-mais-humana",
"",
f"- contract_version: `{contract.contract_version}`",
f"- generated_at: `{contract.generated_at}`",
f"- platform_id: `{contract.platform_id}`",
f"- report_count: `{contract.report_count}`",
f"- matrix_cells: `{contract.matrix_cells}`",
f"- total_code_lines: `{contract.total_code_lines}`",
"",
"## Missao",
"",
contract.mission,
"",
"## Surfaces",
"",
]
for surface in contract.surfaces:
lines.append(f"### {surface.title}")
lines.append("")
lines.append(f"- surface_id: `{surface.surface_id}`")
lines.append("")
lines.append(surface.description)
lines.append("")
lines.append("Arquivos:")
for output in surface.output_files:
lines.append(f"- `{output}`")
lines.append("")
lines.append("Consumidores:")
for consumer in surface.consumers:
lines.append(f"- {consumer}")
lines.append("")
return "\n".join(lines).strip() + "\n"