auto-sync: tudo-para-ia-mais-humana 2026-05-02 06:24:21

This commit is contained in:
2026-05-02 06:24:22 -03:00
parent 0de33e11e2
commit 819e98c978
47 changed files with 71953 additions and 1371 deletions

View File

@@ -105,6 +105,9 @@ IDENTITY_TRANSIT_FIELDS: tuple[str, ...] = (
"canonicalProjectId",
"currentProjectId",
"repositoryName",
"centralFolder",
"repoRemote",
"giteaRepository",
)
@@ -788,14 +791,28 @@ def write_identity_graph_artifacts(
(project_root / "matrizes" / "canonical-identity-acceptance-cases.csv", rows_to_csv(identity_acceptance_rows(graph))),
(project_root / "ecossistema" / "CANONICAL-IDENTITY-GRAPH.md", identity_graph_markdown(graph)),
]
records = list(identity_generated_records(project_root, central_platform_folder))
records = list(identity_generated_records(project_root, None))
central_failures: list[dict[str, str]] = []
central_record: GeneratedFile | None = None
central_target: Path | None = None
if central_platform_folder is not None:
targets.append((central_platform_folder / "reports" / "EXECUTADO__canonical-identity-graph.md", identity_graph_markdown(graph)))
central_target = central_platform_folder / "reports" / "EXECUTADO__canonical-identity-graph.md"
central_record = GeneratedFile(
path=str(central_target),
description="Copia central do grafo canonico de identidade.",
function="canonical identity central report",
file_type="markdown",
changed_by="mais_humana.canonical_identity",
change_summary="Registrada decisao canonica -platform e aliases no dossie central.",
relation_to_order="0035_EXECUTIVA__reconciliar-nome-canonico-real-alias-platform",
)
targets.append((central_target, identity_graph_markdown(graph)))
for path, content in targets:
try:
path.parent.mkdir(parents=True, exist_ok=True)
path.write_text(content, encoding="utf-8")
if central_target is not None and path == central_target and central_record is not None:
records.append(central_record)
except OSError as exc:
if central_platform_folder is not None and central_platform_folder in path.parents:
central_failures.append({"path": str(path), "error": f"{type(exc).__name__}: {exc}"})

View File

@@ -455,14 +455,14 @@ def next_output_order_specs() -> tuple[MaterializedOrderSpec, ...]:
role=OrderLifecycleRole.NEXT_OUTPUT,
),
_mgr(
"0057_GERENCIAL__decidir-nome-canonico-platform-sem-duplicar-repositorio",
"Decidir nome canonico platform sem duplicar repositorio",
"Resolver a divergencia entre nome institucional desejado e repo materializado.",
"O roteador manda institucionalizar o novo nome, mas o repo real/remoto ainda e sem sufixo.",
"Decisao com matriz de impacto, aliases, migracao e rollback de Git/MCP/Docs/UI.",
("README.md", "dados/mcp-publication-gate-mais-humana.json"),
("inventariar referencias", "aprovar alias", "planejar janela de sync"),
("nome canonico decidido", "alias registrado", "sem repo duplicado"),
"0057_GERENCIAL__governar-migracao-coordenada-do-nome-canonico-platform",
"Governar migracao coordenada do nome canonico platform",
"Transformar a decisao institucional ja aprovada em migracao controlada de Git, MCP, Docs e UI.",
"O roteador aprovou tudo-para-ia-mais-humana-platform como canonico, preservando aliases historicos.",
"Plano de migracao coordenada com aliases, rollback, hashes e bloqueio de repositorio duplicado.",
("README.md", "dados/canonical-identity-graph.json", "dados/mcp-publication-gate-mais-humana.json"),
("validar grafo canonico", "comparar remotes", "planejar janela de rename sem reset destrutivo"),
("decisao canonica aplicada", "alias preservado", "migracao futura com rollback"),
role=OrderLifecycleRole.NEXT_OUTPUT,
),
_mgr(

View File

@@ -594,6 +594,21 @@ def command_central_materialization(args: argparse.Namespace) -> int:
return 0
def command_canonical_identity(args: argparse.Namespace) -> int:
central_platform_folder = Path(args.central_platform_folder) if args.central_platform_folder else None
graph, records = run_canonical_identity_graph(
project_root=Path(args.project_root),
central_platform_folder=central_platform_folder,
use_generated=not bool(args.no_generated),
)
payload = {
"graph": identity_graph_payload(graph, limit_cases=20),
"generatedFiles": [record.path for record in records],
}
print(json.dumps(payload, ensure_ascii=False, indent=2))
return 0
def main(argv: list[str] | None = None) -> int:
parser = build_parser()
args = parser.parse_args(argv)
@@ -637,6 +652,8 @@ def main(argv: list[str] | None = None) -> int:
return command_mcp_admin_route_acceptance(args)
if args.command == "central-materialization":
return command_central_materialization(args)
if args.command == "canonical-identity":
return command_canonical_identity(args)
parser.error(f"unknown command: {args.command}")
return 2

File diff suppressed because it is too large Load Diff