4058 lines
140 KiB
JSON
4058 lines
140 KiB
JSON
{
|
|
"cases": [
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-5d2027200080cdc46bb65f26",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "none",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-228473216bb503bc783a215c",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-cb761d2f71e849f1c149b488",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-4582db63a0bb51ede7108d29",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-fb0ee31aef29fc1e827f9a6a",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-4aa82262a3f3e58f587663a6",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-4c516245ec963722a3dc7ee8",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-dabc8c8df47232d77d5e1541",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-a0a5fba1d3767fe3c2d63f33",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "none",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-3e31009425a0230ecef0ccd8",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-c23bb01b6d9294f0ebfdd9fc",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-7cce0df320947bdf44a99a25",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-7d3c3344e63eb8e867ee5bfe",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-f3675147f70d13633cb09512",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-ac1bd6962d0b5a4526fdd10a",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-5aef47da6b565cd6dcabe957",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-f9d8c5f22f456ec593c6f211",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "none",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-66c57ea342cf242a5393be0d",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-32e3856c59c82f31b106ac99",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-b1638bc1c123df15e80227d2",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-45895efc199646bc41cdf9e0",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-7a53c08cceab0e41c3359ed8",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-46699cee9bdfd53b87e78c36",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-36d8f0af32e85b3e0b279e05",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-5a1b22bdcb58bbcc237f14ac",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "none",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-0a88ddf3c1c8b14321813c32",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-606b442e56149662192ac879",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-89a9c0752f0b51866217bf84",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-1f3ffab2223eeaecbbdbed62",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-1c441a1661159cb6f7187ce1",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-aad100963e7d8379a24f2b57",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-e3eb826734091137b31cc07b",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-f8242138d8161a66bdd2d7cb",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "none",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-8f0f0dfa2a0a0cd0be6b658e",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-f9c3fc1327e3c1391868b696",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-0baf6ba10316a0cfd87f80ad",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-806a326c17d88486df9359d2",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-c992717a0c0a8d1f38b29b08",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-53a6aee1dc74bbd57220d67e",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-9c152223f8242817a79971bc",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-87c3f9c9b4e74cbc737cbda2",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "none",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-206da35bc71c92f44cfee34f",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-51957806f136b8a3e39c1b58",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-0ff808e4688a92886ff70527",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-d0ad8569490cf7d3fbf0fa6c",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-9cc8d387da8cc335efd68e3a",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-769cb1efd5f31fa84616585f",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-bf728d1d9afc76b2627a662a",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-049c398e0663b27fb5609985",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "none",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-0ff76ce14fffe9fe665251e1",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-1451df7001a804cc3ee552dc",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-2cc605680ae873c818865b33",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-cb226b7380849e26aa4d76c7",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-63a68ccc0d018e2fe1546090",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-20906dab1c11fbb4cebf2b62",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-2221a710356ed9e7607ef7f3",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-714c981b7e3ac0583c2a9b9f",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "none",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-c99a74dc347c76b2b57bb2e1",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-eb582edade7af46be10eea64",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-2acae1058db81e26fe74bf74",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-00a57f8e2a5229b50f48463f",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-2d76fae86d19d0550d374952",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-20ab0f83d53c3cd4c8a67f08",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-83f282f1d7fe2cca0bd27934",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_secondary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-90f58c90392bba2d16c0dbd8",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "none",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-7694790458af6a1d5b93d85b",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-e830494add59daf1410a11a6",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-b120f9fd5fa901c522ef7d14",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-ebe8bd703ba081cef5c7d379",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-7fe73882bbf81c6c267106d0",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-b65b014821b311f4c5991681",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-8049cd78fdda5b4b748f5074",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-584d53c3180c3596cb9021f0",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "none",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-ab6e1d396d8421f67657dcf1",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-af6f8916bf733c4a553d50e3",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-3b75f906ae19b7cac43af2f6",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-6372da5f33fc0af7df08e000",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-d95aca64f3bee2b9921624be",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-d71b3e6ba8346080dd3288e2",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-0bcdd168427902e850455395",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-cc007fc291a3b69cd7ea24c0",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "none",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-28d6a774f54ee1922b1f46a2",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-7f8126d5be90d3ed452a4b46",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-e3afeb4071ffdc5c8ca275cb",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-378670f0c0da94b76e41337f",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-2c08995b13ab2b04bb3b6ffe",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-9485cd580b4d0af0a7a973af",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-cbc55dafff001c0562f0bef3",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-22763dfd22f3427e4be37b5e",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "none",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-8a0be41aadd8f750a42b87a5",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-76fe8963137008f415c43ac2",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-c8c91cbc66392434a5d8d69c",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-0eabe7f254bd4d2b07edc4df",
|
|
"direct_delete_allowed": true,
|
|
"environment": "codex_server",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-5518aa68e537145ebd300456",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-8477ded0dcdcee9a35b00aed",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-6e5b815392f6834673d31925",
|
|
"direct_delete_allowed": false,
|
|
"environment": "codex_server",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-5ffa6841c55ac7d2dde25101",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "none",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-a65ecf1d26472ac2f80708da",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-a1f11a28529a69f3e95833e9",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-99abbd5a1eb0e7929af417f6",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-f4ad0bb16153300f1a25a901",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-80f4339eb402aa6cec167cd5",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-a5c6c14c3479502f1f9d7f4d",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-fa4fd8681fafee7c8f18af8c",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-6b1c1d1c9dfaf94b8efed10b",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "none",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-5b6db81da438edf0601a1182",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-33e1a31f6fc267e31bb4253d",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-c75fb638d286f8afaed9d2ba",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-748fbcdc57ec12fd1ce44e70",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-f7a758fe801cc5b4743ec151",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-afcdf7d73b4fe7cf4adea34f",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-4a9ee36e754c0302cddb200d",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-bc68bf7997276f2f14083341",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "none",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-343d4f8a2717542a5c14959f",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-d14074d435161e2497fad6da",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-2f10d6b61b7059a68dfbbe07",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-ad53abfd7c68c1effeb5f810",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-baabf5ef53d72a19ed7c2a59",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-6604445f7678fbb9a4156277",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-2590b640d600bc0d63323930",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-51804e769de8309aaefad244",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "none",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-535f4c2d93d5e413d8362dc8",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-cf5b961e74036f38575a686f",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-8cf2fe40310412db84d5416e",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-5be9c9d727f2bc8a211226e5",
|
|
"direct_delete_allowed": true,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-43c3023c40e233b8afa72afc",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-38c236c39f79265bcd40b8be",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "python_test_temp",
|
|
"case_id": "workspace-hygiene-policy-0cffebeafee9a325002b604a",
|
|
"direct_delete_allowed": false,
|
|
"environment": "gitlab_server",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": ".test-tmp",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"scratch criado por testes Python e comandos de validacao"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-d5151d41e08297b3206d1c33",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "none",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-7dae5783cb24fb8b763a0ac3",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-5cc4191363b70cf0aa7fb7ea",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-de16bb5fc3c83a3c2b3cdfe9",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-27b8e99b99322d1191afa957",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-36479d34daa393d20b712434",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-a6a83313cdc67b593f288949",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-c503d997fb7f21f84e21ea2b",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "inspect",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar footprint e executar apply apenas no fechamento",
|
|
"reason": "modo inspecao nunca apaga artefato",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "record_only"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-4de06bcc5dfa617a67a7fc97",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "none",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-d70bb38fcfedcba6216cb4b3",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-c8303b89af9eee76b80550de",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-4c91044db071ec4545422075",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-0272f8771437a7740f2f9136",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-21c823e66f985d3f8c4b9170",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-ad7a6d36e185c59b0f51e492",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-c4079fd105c06188b7648390",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "apply",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-89fea55e0f2e7eed2dc6aed9",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "none",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-11c6ae63b34d64d976737fd0",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-9e3adb794c568779110e8dbc",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-c98c7afd64d1bb2218ee70d5",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-24c958306c95534dbde3b460",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-839c53699769f17a64eaaa76",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-a655fea48365788022c7e790",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-2a5210ea72bd8bb5648c4211",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "closeout",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-e6a260203c0b6d8b214c146e",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "none",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"no_error",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-a2289586018365af90cf2177",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "not_found",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter ausente e registrar status",
|
|
"reason": "artefato ausente ou removivel por limpeza local aprovada",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"verify_absent"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "pass"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-f373ab409a5d865c4616b846",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "permission_denied",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-59be3a1386fd516a466bd267",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "directory_not_empty",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "reduzir conteudo acessivel e registrar filhos retidos",
|
|
"reason": "diretorio ainda contem filho retido por erro anterior",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-f10f55b6afd52c1a022b8b08",
|
|
"direct_delete_allowed": true,
|
|
"environment": "windows_primary",
|
|
"error_kind": "file_locked",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar caminho retido e solicitar owner autorizado",
|
|
"reason": "ACL ou processo externo reteve caminho depois de remover filhos acessiveis",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"best_effort_delete",
|
|
"continue_after_child_error",
|
|
"escalate_owner",
|
|
"record_acl_exception"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "owner_action_required"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-5be8f3602b299290f9a51e10",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unsafe_path",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "bloquear antes de qualquer escrita e registrar evidencia",
|
|
"reason": "path calculado sai do project_root ou cruza boundary de volume",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"block_before_write",
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "block_unsafe"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-fbfadb1b540661acbbc7f29c",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "central_write_denied",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "manter fallback no projeto real e registrar pendencia central",
|
|
"reason": "pasta central recusou escrita, mas projeto real deve registrar status",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"write_status_artifact",
|
|
"update_semantic_sql"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
},
|
|
{
|
|
"artifact_kind": "node_dependencies",
|
|
"case_id": "workspace-hygiene-policy-86fc556b8cde5f6021ca750e",
|
|
"direct_delete_allowed": false,
|
|
"environment": "windows_primary",
|
|
"error_kind": "unknown",
|
|
"execution_mode": "central_record",
|
|
"mcp_transit_required": true,
|
|
"next_action": "registrar erro bruto redigido e reavaliar proxima rodada",
|
|
"reason": "erro desconhecido deve ser evidenciado antes de nova tentativa",
|
|
"relative_path": "node_modules",
|
|
"remediation_actions": [
|
|
"write_status_artifact"
|
|
],
|
|
"required_evidence": [
|
|
"footprint_before",
|
|
"footprint_after",
|
|
"git_status_short",
|
|
"node_modules_absent",
|
|
"acl_error_excerpt",
|
|
"dependencias Node locais que nao devem sobreviver ao fechamento"
|
|
],
|
|
"status": "retain_with_evidence"
|
|
}
|
|
],
|
|
"cases_count": 1536,
|
|
"cases_total": 1536,
|
|
"generated_at": "2026-05-02T10:28:39+00:00",
|
|
"owner_action_count": 288,
|
|
"report_id": "workspace-hygiene-policy-9147f326520c9100",
|
|
"summary": [
|
|
"Policy cases: 1536.",
|
|
"Owner action cases: 288.",
|
|
"Unsafe path blocks: 192.",
|
|
"Best-effort cleanup must continue after child ACL errors and retain only inaccessible paths."
|
|
],
|
|
"transit_fields": [
|
|
"origin",
|
|
"destination",
|
|
"tool",
|
|
"payload",
|
|
"actor",
|
|
"permission",
|
|
"result",
|
|
"traceId",
|
|
"auditId",
|
|
"timestamp"
|
|
],
|
|
"unsafe_block_count": 192
|
|
} |