auto-sync: tudo-para-ia-mais-humana 2026-05-02 06:24:21
This commit is contained in:
@@ -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}"})
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
62750
src/mais_humana/generated_canonical_identity_registry.py
Normal file
62750
src/mais_humana/generated_canonical_identity_registry.py
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user