AuditCore Habilidad de Auditoría Multiagente y Generación de Papeles de Trabajo (AuditCore Multi-Agent Audit Skill)
I. Descripción General de la Arquitectura (Overview)
La habilidad AuditCore adopta la arquitectura "Host-Brain + Deterministic-Core":
- Comité de revisión ciega multiagente sin clave API externa: Reutiliza directamente la capacidad de envío de subagentes del agente anfitrión (Claude Code, Antigravity, Codex, OpenClaw, etc.), lanzando cuatro roles de auditoría con contextos físicamente aislados (
junior-auditor,challenger-auditor,fact-checker,senior-partner). - Núcleo de algoritmo patentado determinista (
scripts/audit_cli.py): A través de un motor CLI con estado, ejecuta forzosamente cifrado y anonimización de PII con cadena hash SHA-256, filtrado de tres niveles de importancia, penetración de reglas deterministas de seis dimensiones (Ley de Benford, Z-Score, anomalías de decenas/centenas de miles, contabilización en fin de semana, transacciones fraccionadas para evitar aprobación, asientos en rojo/duplicados), recuperación híbrida de normativas sin PyTorch $H(q, c_i)$, grafo causal de evidencia de cuatro capas con validación de grafo bipartito, retroceso local de corte mínimo en máquina de estados DAG, y generación automática de papeles de trabajo Word (.docx) / Markdown (.md) de cuatro elementos según CSA-1131 con reversión de PII.
II. Tres Reglas de Hierro (IRON RULES — La violación de cualquiera invalida la auditoría)
REGLA DE HIERRO 1: Puerta de Aislamiento de Privacidad Cero Fugas (Zero-Leakage Privacy Gate)
- Prohibido leer directamente el archivo contable original: Antes o después de ejecutar
scripts/audit_cli.py init, está absolutamente prohibido usarpandas,python,cat,heado cualquier herramienta de lectura de archivos para ver el contenido del archivo.xlsx/.csvoriginal del usuario. - Prohibido tocar la caja fuerte cifrada: El archivo
.auditcore_workspace/cases/<CASE_ID>/.vault_do_not_read.jsongenerado porinitcontiene el mapeo real de empresas y cuentas cifrado con XOR-SHA256-HMAC. El anfitrión y cualquier subagente tienen prohibido leer o descifrar este archivo. - Razonamiento anonimizado en todo el proceso: Toda la exploración SQL y el razonamiento de los cuatro roles ciegos deben usar estrictamente marcadores de posición anonimizados como
PERSON_0001,ACCT_0001; los nombres reales de las empresas solo se restauran localmente durante la etapa finalaudit_cli.py exportmediante el script determinista.
REGLA DE HIERRO 2: Contrato de Aislamiento de Subagentes Ciegos de Cuatro Roles (Blinded Subagent Isolation)
- En el modo
full-audit, está prohibido que el modelo "hable solo" interpretando los cuatro roles en la conversación principal. - Se debe, en orden de la máquina de estados, leer el archivo de contrato del rol correspondiente en
agents/y derivar subagentes independientes (usando las herramientasinvoke_subagent/Task/Agentdel anfitrión):- Auditoría inicial:
agents/junior-auditor.md-> enviar--role junior - Revisión independiente:
agents/challenger-auditor.md-> enviar--role challenger - Verificación de hechos:
agents/fact-checker.md-> enviar--role factcheck - Socio senior:
agents/senior-partner.md-> enviar--role senior
- Auditoría inicial:
- Regla de compatibilidad descendente: Solo si el entorno anfitrión no admite ninguna herramienta de envío de subagentes, se pueden generar los JSON de cada rol de forma independiente y paso a paso en la sesión principal, pero después de cada paso se debe llamar inmediatamente a
audit_cli.py commitpara su verificación mediante el grafo de evidencia determinista. Nunca se deben saltar pasos ni combinar.
REGLA DE HIERRO 3: Puerta de Control CLI con Estado y Bucle de Retroceso de Corte Mínimo (Stateful CLI & Minimum-Cut Rollback)
- Cada conclusión de rol debe enviarse mediante
scripts/audit_cli.py commit --role <role>. Si se viola el orden de la máquina de estados, el CLI devolverá el código de salida2(STATE_GUARD_VIOLATION). - Cuando, tras enviar
factcheck, la puntuación de consistencia global $S_{\text{global}} < \theta$ (por defecto0.80), el CLI ejecutará automáticamente un retroceso local de corte mínimo dependiente de dependencias, devolviendo"rollback_triggered": truejunto conrollback_diagnosis.arbitration_probe(sonda de arbitraje), y retrocederá el estado aSTATE_JUNIOR_AUDIToSTATE_CHALLENGER_REVIEW. - Cuando se encuentre
rollback_triggered: true, se debe inyectarrollback_diagnosisen el rol objetivo y reenviar el subagente hasta que la consistencia sea suficiente para entrar enSTATE_SENIOR_PARTNER. ¡Prohibido escribir manualmente papeles de trabajo falsos para saltarexport!
III. Tabla de Rutas de los Cinco Modos Operativos (5 Operational Modes)
Selecciona automáticamente el modo correspondiente según la solicitud del usuario (por defecto se ejecuta full-audit):
| Nombre del Modo | Escenario de Aplicación y Palabras Clave | Ruta de Ejecución |
|---|---|---|
full-audit(Flujo completo por defecto) | Auditar archivos contables, detectar integralmente fraudes/deficiencias de control interno y generar papeles de trabajo formales | Ejecutar completamente el Protocolo de Máquina de Estados de Cinco Pasos (Sección IV) (init $\to$ sql $\to$ bucle de revisión ciega de cuatro roles con retroceso de corte mínimo $\to$ export) |
quick-scan(Escaneo rápido) | "Escanea rápidamente anomalías", "No ejecutes la simulación multiagente, solo mira los resultados del escaneo de reglas" | 1. Ejecutar audit_cli.py init --file <PATH> --case <ID> --mode quick2. Opcionalmente, ejecutar audit_cli.py export --case <ID> --out-dir <DIR> para exportar rápidamente los papeles de trabajo del escaneo de reglas |
sql-explore(Penetración en caja de arena SQL) | Ejecutar consultas agregadas personalizadas entre períodos sobre el archivo contable inicializado | Ejecutar audit_cli.py sql --case <ID> --query "SELECT ... FROM financial_ledger ..." (solo consultas SELECT / WITH de solo lectura) |
law-lookup(Recuperación híbrida de normativas) | "Busca cláusulas de normativa sobre división de transacciones/contabilización en fin de semana/evidencia de auditoría" | Ejecutar audit_cli.py law --query "<palabra clave o pregunta>" --top-k 5, que genera directamente la cadena de evidencia ponderada $E(q)$ y la conclusión de razonamiento cualitativo de cuatro etapas $\Psi$ |
workpaper(Reexportación de papeles de trabajo) | Para casos ya finalizados, cambiar el nombre de la entidad, período contable o directorio de exportación | Ejecutar audit_cli.py export --case <ID> --entity-name "<Nombre de la entidad>" --period "<Período>" --out-dir <DIR> |
Para parámetros detallados del CLI y esquemas JSON, consulte:
references/schemas.md.
IV. Protocolo de Ejecución de Máquina de Estados de Cinco Pasos para full-audit (5-Step Stateful Protocol)
Suponga que el directorio raíz de la habilidad es <SKILL_DIR> (que contiene scripts/audit_cli.py). Si el usuario no proporciona un archivo contable y solicita una demostración, se puede usar directamente el archivo contable de muestra con alta simulación de fraude incluido: <SKILL_DIR>/examples/sample_vouchers_2026.xlsx.
Paso 1: Inicializar Archivo Contable, Cifrar y Anonimizar, y Penetrar Reglas Deterministas (init)
python3 <SKILL_DIR>/scripts/audit_cli.py init \
--file "<RUTA_DEL_EXCEL_O_CSV_DEL_USUARIO>" \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--lang "es"
- Registrar el JSON devuelto:
stats,schema_ddl,rule_findings,anomaly_samples,evidence_chain. - En este punto, la máquina de estados se encuentra en
STATE_DYNAMIC_SQL_EXPLORATION.
Paso 2: Consulta de Penetración en Caja de Arena SQL de Solo Lectura (sql)
Basándose en schema_ddl y rule_findings, escriba una consulta SQL de verificación agregada sobre la tabla anonimizada financial_ledger (por ejemplo, verificar el número de transacciones fraccionadas del mismo proveedor en el mismo día y el monto acumulado, o resumir montos anómalos por cuenta deudora):
python3 <SKILL_DIR>/scripts/audit_cli.py sql \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--query "SELECT Date, Vendor, COUNT(*) AS tx_count, SUM(Amount) AS total_amount FROM financial_ledger GROUP BY Date, Vendor HAVING tx_count >= 2 OR total_amount >= 100000 ORDER BY total_amount DESC"
- La máquina de estados avanza a
STATE_JUNIOR_AUDIT.
Paso 3: Bucle de Revisión Ciega Multiagente Independiente y Retroceso de Corte Mínimo (commit Loop)
3.1 Derivar Auditor Junior (STATE_JUNIOR_AUDIT)
- Leer
<SKILL_DIR>/agents/junior-auditor.md. - Enviar subagente (o paso independiente), pasando solo
stats,rule_findings,anomaly_samples, resultadossql,evidence_chainanonimizados (si es una repetición por retroceso, pasar ademásrollback_diagnosis). - Obtener el JSON devuelto por el subagente (que contiene
analysis,risk_score,cited_reg_ids), enviarlo al CLI:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role junior \
--payload '<JUNIOR_JSON>'
- La máquina de estados avanza a
STATE_CHALLENGER_REVIEW.
3.2 Derivar Revisor Independiente (STATE_CHALLENGER_REVIEW)
- Leer
<SKILL_DIR>/agents/challenger-auditor.md. - Enviar subagente independiente, pasando evidencia anómala anonimizada,
evidence_chainy eljunior_reportyjunior_scorede la auditoría inicial, solicitando una revisión independiente con escepticismo profesional. - Obtener el JSON devuelto (que contiene
rebuttal,adjusted_risk_score), enviarlo al CLI:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role challenger \
--payload '<CHALLENGER_JSON>'
- La máquina de estados avanza a
STATE_FACT_CHECK.
3.3 Derivar Verificador de Hechos y Verificar Consistencia Global (STATE_FACT_CHECK)
- Leer
<SKILL_DIR>/agents/fact-checker.md. - Enviar subagente independiente para realizar un desglose de hechos atómicos (
claims) y un mapeo de evidencia de grafo bipartito (evidence_mapping) sobre las conclusiones de la auditoría inicial y la revisión. - Obtener el JSON devuelto (que contiene
analysis,support_score,conflict_score,conflict_type,claims,evidence_mapping), enviarlo al CLI:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role factcheck \
--payload '<FACTCHECK_JSON>'
- Verificar
current_stateyrollback_triggereddevueltos por el CLI:- Si
"rollback_triggered": true: significa que el grafo de evidencia tiene un conflicto grave ($S_{\text{global}} < \theta$), el CLI ha eliminado automáticamente el subgrafo de razonamiento peor y ha retrocedido arollback_target_state(generalmenteSTATE_JUNIOR_AUDIT). Debe extraer elrollback_diagnosisdevuelto (que contienearbitration_probeycsa_guidance), volver a 3.1 (o 3.2) y reenviar el subagente para corregir la conclusión. - Si
"current_state": "STATE_SENIOR_PARTNER": significa que la consistencia del grafo de evidencia es suficiente, pasando al Paso 4.
- Si
Paso 4: Derivar Socio Senior para el Veredicto Final y los Asientos de Ajuste de Auditoría (STATE_SENIOR_PARTNER)
- Leer
<SKILL_DIR>/agents/senior-partner.md. - Enviar subagente independiente, pasando estadísticas anonimizadas, cadena de evidencia normativa, conclusiones de auditoría inicial/revisión verificadas, para generar el veredicto final (
final_verdict,final_risk_score,reasoning,action_item,suggested_aje). - Enviarlo al CLI:
python3 <SKILL_DIR>/scripts/audit_cli.py commit \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--role senior \
--payload '<SENIOR_JSON>'
- La máquina de estados avanza a
STATE_WORKPAPER_GENERATION.
Paso 5: Ensamblar Papeles de Trabajo de Cuatro Elementos, Evaluar la Calidad $Q(Y)$, Revertir PII y Exportar Papeles de Trabajo CSA-1131 (export)
python3 <SKILL_DIR>/scripts/audit_cli.py export \
--case "CASE_2026_01" \
--workspace ".auditcore_workspace" \
--out-dir "./audit_outputs" \
--entity-name "Entidad auditada" \
--period "Período 2026"
- El CLI revertirá automáticamente los nombres de entidad PII y generará:
workpaper_docx_path: Papel de trabajo de auditoría formal.docxWord conforme a la Norma China de Auditoría Nº 1131;workpaper_markdown_path: Papel de trabajo de auditoría estructurado.md;quality_evaluation: Informe de evaluación que incluye $Q_{\text{ev}}$, $Q_{\text{con}}$, $Q_{\text{cmp}}$, puntuación total $Q(Y)$ y resultados de verificación de alucinaciones de tolerancia cero.
- Informar al usuario sobre los hallazgos finales de la auditoría, mostrar los nombres reales de las entidades involucradas restaurados, los asientos de ajuste de auditoría (AJE), la puntuación de calidad $Q(Y)$ y las rutas de los archivos
.docx/.mdgenerados.
V. Tabla de Excusas Comunes y Prevención de Pereza (Rationalization Table & Red Flags)
| Excusa Común del Agente (Rationalization) | Realidad y Contramedida de Hierro (Reality & Iron Rule) |
|---|---|
"El archivo contable es pequeño, usaré pandas.read_excel para ver rápidamente qué columnas y proveedores tiene." | Infracción grave (viola la REGLA DE HIERRO 1). Si se lee el archivo original directamente, los nombres de empresa y números de cuenta en texto plano quedan expuestos en el contexto LLM, rompiendo por completo el límite de privacidad. Primero y únicamente se debe ejecutar audit_cli.py init. |
| "Para ahorrar tiempo, escribiré directamente los JSON de la auditoría inicial, revisión, verificación de hechos y socio senior en un solo bloque de código y los enviaré consecutivamente." | Infracción grave (viola la REGLA DE HIERRO 2). Inventar los cuatro roles en un solo contexto provoca un sesgo de confirmación grave. Si el anfitrión admite subagentes, deben derivarse de forma independiente; incluso si se ejecutan secuencialmente, se debe leer la retroalimentación del grafo de evidencia del CLI después de cada commit antes de pasar al siguiente paso. |
"Después de enviar factcheck, se activó rollback_triggered: true. Simplemente modificaré la puntuación en el JSON y enviaré senior directamente." | La puerta de control de estado lo intercepta directamente (código de salida 2). Tras el retroceso, la máquina de estados está en STATE_JUNIOR_AUDIT (o STATE_CHALLENGER_REVIEW). Sin volver a ejecutar los roles anteriores según rollback_diagnosis.arbitration_probe, la máquina de estados nunca permitirá el paso a STATE_SENIOR_PARTNER. |
"Ya conozco la conclusión de la auditoría, escribiré un informe Markdown yo mismo para el usuario, no necesito llamar a audit_cli.py export." | Infracción grave (viola la REGLA DE HIERRO 3). Un informe escrito a mano no puede descifrar los nombres reales de las empresas en .vault_do_not_read.json (solo puede generar PERSON_0001), y carece de la estructura patentada de cuatro elementos $Y={\text{idx},\text{aje},\text{jud},\text{log}}$, la puntuación de calidad $Q(Y)$ y el papel de trabajo formal .docx CSA-1131. |
Red Flags — Deténgase inmediatamente y vuelva al protocolo CLI si tiene alguno de estos pensamientos:
- Prepararse para ejecutar
pd.read_excel/pd.read_csv/open()para leer el archivo financiero original del usuario - Prepararse para leer
.vault_do_not_read.json - Inventar durante el análisis números de artículos que no aparecen en
evidence_chain(esto activará la degradación de tolerancia cerohallucinated_citations, reduciendo forzosamente $Q(Y)$ a $\le 0.40$) - Saltarse el paso
sqlo cualquier pasocommit --rolee intentar directamenteexport