La mayoría de las decisiones organizativas dejan un rastro en algún lugar — un correo electrónico, un ticket, un comentario en una herramienta de flujo de trabajo, una línea en una hoja de cálculo. Ese rastro rara vez está estructurado, rara vez está anclado en el tiempo de forma evidente ante manipulaciones, y rara vez está diseñado para sobrevivir fuera del sistema que lo creó. Cuando una decisión se cuestiona posteriormente — en una auditoría, una disputa, una investigación regulatoria o una investigación interna — reconstruir exactamente qué se decidió, por quién, en qué rol declarado, y bajo qué condiciones, puede ser lento, incompleto o imposible.
Human Structured Intake ofrece a una persona una forma estructurada de declarar una decisión en el momento en que se cierra: el tipo de decisión, quién la declaró y en qué rol, cuándo se cerró, el contexto de clasificación y umbral aplicable, si estaba involucrado un gate de disponibilidad, y cualquier señal que quedara sin resolver. EVIDE luego canonicaliza esa declaración, calcula un hash determinista sobre ella, y la preserva como un registro recuperable de forma independiente.
Esta distinción atraviesa cada campo documentado en esta página. Cuando un valor usa una palabra como «verified», esa palabra describe lo que una persona o un mecanismo previo declaró — no una evaluación realizada por EVIDE misma, salvo que se indique lo contrario para ese campo específico.
Los siete escenarios a continuación son ejemplos ilustrativos de cómo diferentes funciones podrían usar Human Structured Intake. Cada uno muestra el tipo de decisión involucrada, información que razonablemente podría declararse y, igualmente importante, el límite de lo que la preservación de ese registro por parte de EVIDE establece y no establece.
Evento / ContextoSe le pide a un Compliance Officer que autorice temporalmente una excepción a un procedimiento que normalmente estaría bloqueado, bajo presión de tiempo y con una justificación de negocio documentada.
Decisión HumanaEl officer aprueba una excepción temporal y acotada, sujeta a condiciones específicas y a un punto de revisión definido.
Información que Podría Declararse
Valor ReconstructivoUn revisor, auditor o regulador posterior puede reconstruir que la excepción fue declarada, por quién, en qué rol, bajo qué condiciones declaradas de umbral y disponibilidad, sin depender de la memoria del officer o de un registro de sistema que mientras tanto podría haberse rotado.
Evento / ContextoUn Security Operations Center detecta un comportamiento anómalo. Un responsable humano revisa la telemetría disponible y debe decidir si permitir que la operación continúe, bloquear, aislar o escalar.
Decisión HumanaEl responsable autoriza la continuidad operativa mientras avanza una investigación, en lugar de un aislamiento inmediato.
Información que Podría Declararse
provisional, ya que la investigación aún no está cerradaverified_partial, si se examinaron algunas pero no todas las señales relevantesValor ReconstructivoSi el incidente se agrava posteriormente, el registro preserva exactamente lo que se sabía, y lo que se señaló explícitamente como desconocido, en el momento en que se tomó la decisión, distinguiendo la retrospectiva genuina de la información que realmente estaba disponible en el momento de la decisión.
verified_partial junto con un array unresolved_signals poblado suele ser más honesto que un verified prematuro, usando solo valores y relaciones realmente admitidos por el validador.Evento / ContextoUn sistema asistido por IA produce una recomendación sobre un candidato o empleado. Un revisor humano examina esa recomendación y toma la decisión final.
Decisión HumanaEl revisor acepta, modifica o anula la recomendación automatizada.
Información que Podría Declararse
Valor ReconstructivoEl registro ayuda a preservar una separación estructural entre lo que el sistema automatizado recomendó y lo que el ser humano realmente decidió, una distinción a menudo difícil de reconstruir a posteriori solo a partir de los registros del sistema.
Evento / ContextoUn sistema antifraude bloquea una transacción por considerarla de alto riesgo. Un analista de fraude revisa el caso y debe decidir si liberarla, mantenerla bloqueada o escalarla.
Decisión HumanaEl analista libera la transacción tras la revisión, juzgando que la señal de riesgo era un falso positivo.
Información que Podría Declararse
Valor ReconstructivoEl registro preserva el contexto declarado de la anulación humana — quién autorizó la liberación, cuándo, y sobre qué base declarada — independientemente de si la transacción resulta luego ser legítima o no.
Evento / ContextoUna línea de producción se detiene automáticamente tras detectarse una anomalía. Un responsable técnico revisa las condiciones relevantes y debe decidir si autoriza un reinicio.
Decisión HumanaEl responsable autoriza el reinicio, habiendo revisado la información diagnóstica disponible.
Información que Podría Declararse
Valor ReconstructivoSi posteriormente se repite un fallo relacionado, el registro preserva exactamente qué gate diagnóstico se declaró haber sido comprobado, y con qué alcance, antes de autorizar el reinicio.
verified_partial más una lista de señales no resueltas poblada, en lugar de un verified completo.Evento / ContextoUn agente de IA solicita realizar una acción sensible. Antes de la ejecución, una autoridad humana debe aprobar, rechazar, condicionar o escalar la solicitud.
Decisión HumanaLa autoridad humana aprueba la acción solicitada, sujeta a condiciones declaradas.
Información que Podría Declararse
Valor ReconstructivoHuman Structured Intake registra la decisión humana de autorizar. Deliberadamente no es la misma función que declarar el perímetro operativo dentro del cual el agente estaba autorizado (esa es la extensión separada de declarations documentada en la JSON Schema Reference), y no es un mecanismo automático de autorización de ejecución.
Evento / ContextoDurante un incidente de ciberseguridad, un responsable debe elegir entre cursos de acción en competencia bajo presión de tiempo, por ejemplo aislar un servidor frente a mantener un servicio operativo a pesar de un indicador de compromiso.
Decisión HumanaEl responsable declara un curso de acción elegido, junto con la información disponible en ese momento.
Información que Podría Declararse
provisional durante un incidente activoValor ReconstructivoLas líneas de tiempo de los incidentes se reconstruyen con frecuencia a posteriori bajo escrutinio. Una declaración estructurada y anclada en el tiempo reduce la dependencia de reconstruir la intención a partir de la memoria o de registros no diseñados para uso probatorio.
Dos marcas de tiempo diferentes aparecen en cada registro de Human Structured Intake, y responden a dos preguntas diferentes:
| Marca de Tiempo | Qué responde |
|---|---|
decision.closure_timestamp_utc | ¿Cuándo se cerró la decisión en sí? Este es el momento en que la persona declara que la decisión realmente se tomó — introducido por la persona, en UTC. |
| Intake Timestamp | ¿Cuándo recibió y preservó EVIDE este registro? Esto lo genera el servidor en el momento en que se procesa el intake, no lo introduce la persona. |
Estos dos momentos son frecuentemente diferentes, y esa diferencia es esperada, no un error. Una decisión podría cerrarse a las 16:00 y registrarse en EVIDE recién a las 18:03 — debido a un paso de flujo de trabajo retrasado, un proceso de envío por lotes, o simplemente porque la persona que la registra lo hizo más tarde ese día.
decision_closure_timestamp_utc es un valor declarado por la persona que completa el intake. No es una marca de tiempo criptográfica o «confiable» de cuándo ocurrió realmente la decisión en el mundo real — EVIDE no tiene forma independiente de confirmar que la hora de cierre declarada sea precisa. Lo que EVIDE preserva, de forma independiente, es el Intake Timestamp: el momento en que el registro mismo fue recibido y canonicalizado.Los siete campos a continuación proporcionan contexto operativo y organizativo. Se comparten con los otros tipos de intake de EVIDE y no son específicos del modelo probatorio Human Structured — se documentan aquí brevemente, por completitud, en lugar de con la misma profundidad que los campos de la siguiente sección.
| Campo | Tipo | Requisito | Qué es |
|---|---|---|---|
title | cadena | Obligatorio | Etiqueta corta del registro. Verificado en el código: este valor se copia directamente en decision.summary en el payload canónico — no es un campo separado y sin relación. |
business_area_id | entero | Obligatorio | El área de negocio a la que pertenece el intake. Verificado en el código: debe hacer referencia a un área de negocio existente y activa, de lo contrario la solicitud se rechaza. |
description | cadena | Opcional | Descripción de texto libre almacenada junto con el registro. No incluida en el payload probatorio canónico en sí. |
context_reference | cadena | Opcional | Referencia operativa de texto libre para uso interno. |
notes | cadena | Opcional | Notas internas de texto libre. |
topic | cadena | Opcional | Etiqueta de tema de texto libre para organizar los intakes. |
case_reference | cadena | Opcional | Referencia de texto libre al caso o expediente. Es el mismo campo utilizado por la búsqueda «Evidence from the same case» disponible en otras partes de EVIDE. |
evidence_reference | cadena | Opcional | Referencia probatoria de texto libre para referencias cruzadas internas. |
Estos campos proporcionan contexto operativo y organizativo para localizar y gestionar el intake dentro de la plataforma. No forman parte del modelo probatorio Human Structured documentado en el resto de esta página, y su presencia o ausencia no afecta a los campos probatorios a continuación.
Los catorce campos a continuación son los campos específicos del modelo probatorio Human Structured — verificados individualmente contra HumanStructuredIntakeService.php. La tabla ofrece un resumen rápido; sigue una ficha explicativa completa para cada campo.
| Campo | Tipo | Requisito |
|---|---|---|
decision_type | cadena | Obligatorio |
decision_closure_timestamp_utc | fecha/hora | Obligatorio |
authority_role | cadena | Obligatorio |
authority_id | cadena | Opcional |
authority_verification_note | cadena | Opcional |
classification_status | enum | Opcional |
threshold_status | enum | Opcional |
threshold_reference | cadena | Condicional |
threshold_attribution_status | enum | Opcional |
trace_access | cadena | Opcional |
boundary_readiness_status | enum | Obligatorio |
readiness_gate_identifier | cadena | Condicional |
readiness_gate_scope_reference | cadena | Condicional |
unresolved_signals[] | array de cadenas | Condicional |
decision.type
Una etiqueta de texto libre que describe la categoría de la decisión o intervención humana registrada — por ejemplo, qué tipo de decisión es, no lo que la decisión concluyó.
Sin este campo, un registro ni siquiera indicaría qué tipo de decisión o intervención se registró. Le da a cada otro campo del registro una categoría a la cual vincularse.
Siempre — este campo es obligatorio para cada Human Structured Intake.
Elija una etiqueta lo suficientemente específica para distinguir esta decisión de otras decisiones de un tipo diferente, pero no duplique la narrativa completa que pertenece al campo title (que se convierte en decision.summary). Un buen tipo de decisión nombra la categoría de la acción; el title/summary describe esta instancia específica.
Distinto del campo común title, que se copia directamente en decision.summary — una breve descripción en lenguaje natural de esta decisión específica. decision_type nombra la categoría; decision.summary narra la instancia.
Un Compliance Officer que aprueba una excepción temporal de política podría registrar el tipo de decisión como «Aprobación de excepción de compliance.» Un responsable técnico que autoriza un reinicio de producción podría usar «Autorización de reinicio de línea de producción.»
decision.closure_timestamp_utc
El momento declarado en que la decisión humana en sí se cerró — no el momento en que el registro se envió a EVIDE. Vea la sección dedicada Cierre de la Decisión arriba para la distinción completa con el Intake Timestamp.
Una decisión y su preservación probatoria rara vez ocurren exactamente en el mismo instante. Registrar la hora de cierre declarada, por separado de la hora de intake generada por el servidor, es lo que permite una reconstrucción histórica precisa de cuándo ocurrió realmente la decisión.
Siempre — este campo es obligatorio. Introduzca el momento en que la decisión realmente se cerró, en UTC, no el momento en que está completando el formulario.
Use el momento real en que se cerró la decisión, expresado en UTC en lugar de hora local. Si no está seguro de su desfase UTC local, una herramienta como time.is/UTC puede ayudar a evitar un error de varias horas.
Una línea de producción se detiene a las 14:32 hora local. El responsable técnico revisa las condiciones y autoriza un reinicio, cerrando esa decisión a las 16:00 hora local — pero solo registra el intake en EVIDE a las 18:03, tras terminar otras tareas urgentes. La marca de tiempo de cierre preserva las 16:00 (convertidas a UTC); el Intake Timestamp preserva por separado las 18:03.
authority.role
El rol organizativo, en qué calidad, se declara que se tomó la decisión — distinto de la identidad de la persona que la tomó.
Un nombre por sí solo no indica en qué calidad organizativa se tomó una decisión. El rol ayuda a un lector posterior a reconstruir la autoridad organizativa declarada detrás de la decisión, independientemente de quién ocupara específicamente ese rol en ese momento.
Siempre — este campo es obligatorio para cada Human Structured Intake.
Use el título del rol organizativamente relevante para esta decisión — ej. «Compliance Officer,» «SOC Manager,» «HR Director,» «Fraud Analyst,» «Plant Manager.» Texto libre, no una lista fija.
Distinto de authority_id (quién) y de la identidad DAPI de la sesión conectada (vea Identificador de la Autoridad a continuación). El rol responde a «en qué calidad», no «qué persona específica».
La misma persona podría ocupar varios roles en diferentes decisiones; el mismo rol podría ser ocupado por diferentes personas a lo largo del tiempo. Registrar el rol, por separado del individuo, mantiene legible el contexto organizativo incluso cuando cambia el personal.
authority.id
Un identificador declarado de quién tomó la decisión. Verificado en el código: si se deja en blanco, este campo toma por defecto el nombre completo del usuario actualmente conectado — pero puede modificarse, para el caso legítimo de registrar una decisión tomada por otra persona.
No todas las decisiones registradas en EVIDE fueron tomadas por la persona que opera el teclado. Permitir que este campo sea editable permite a una persona registrar con precisión una decisión tomada por un colega, manteniendo a la vez preservada por separado la identidad verificada de la sesión subyacente.
Déjelo en blanco cuando usted, el usuario conectado, sea la persona que tomó la decisión — su nombre se usará automáticamente. Complételo explícitamente cuando esté registrando una decisión tomada por una persona diferente.
No trate este campo como un sustituto, o una modificación, de la identidad verificada de su propia cuenta — esa identidad se preserva por separado y automáticamente, independientemente de lo que introduzca aquí.
Verificado en el código: cada registro Human Structured también lleva authority.dapi_number, el identificador DAPI de la sesión realmente conectada y autenticada — establecido automáticamente por el servidor en cada envío y nunca leído del formulario. authority.id y authority.dapi_number son deliberadamente independientes: el primero es una etiqueta declarada, el segundo es la identidad verificada de la sesión.
Un asistente introduce una decisión en EVIDE en nombre de un gerente que realmente tomó la decisión. El asistente deja su propia sesión autenticada (preservada automáticamente como authority.dapi_number), pero establece authority_id con el nombre del gerente, reflejando con precisión quién realmente tomó la decisión.
authority_id no es lo mismo que una autoridad verificada de forma independiente. Es un valor declarado, de texto libre, que por defecto coincide con el usuario conectado, pero puede ser sobrescrito.authority.dapi_number.authority.id haya sido él mismo verificado de forma independiente frente a un sistema de identidad externo.authority.verification
Una nota de texto libre, declarada opcionalmente, que la persona que registra la decisión puede usar si pretende vincular la autoridad declarada a una referencia más específica — por ejemplo, una referencia DAPI para la persona o el rol involucrados.
Le da al declarante una forma de agregar una referencia más específica a la autoridad declarada, sin exigirla en cada registro.
Cuando desee declarar una referencia más específica vinculada a la autoridad detrás de esta decisión, y dicha referencia esté genuinamente disponible para usted.
No use este campo como si escribirlo constituyera una verificación. Es una nota declarada, no una comprobación realizada por EVIDE.
authority_verification_status calculado en el servidor en la respuesta de la API se convierte en claimed en lugar de declared — documentado en su totalidad en la JSON Schema Reference. Esto refleja que se declaró una referencia, no que se verificó.Un Compliance Officer hace referencia a una identidad vinculada a un DAPI interno como contexto de apoyo para la autoridad declarada detrás de la aprobación de una excepción, sin que esa referencia sea comprobada de forma independiente por EVIDE.
claimed describe lo que se declaró, no lo que se verificó.intervention.classification_status
La clasificación asignada a esta decisión se considera consolidada, sin ambigüedad conocida bajo la categorización activa en el momento del cierre.
Ejemplo: un caso de fraude revisado y cerrado con una categorización clara y no controvertida.
No significa: que la clasificación esté fijada de forma permanente o sea inmune a revisión futura — solo que no se conocía ninguna ambigüedad al cierre.
La clasificación sigue siendo tentativa o pendiente de refinamiento — podría cambiar a medida que se dispone de más información.
Ejemplo: una investigación de seguridad activa donde la categoría del incidente puede revisarse mientras continúa la investigación.
No significa: que la decisión en sí esté incompleta — la decisión aún puede finalizarse mientras su clasificación permanece provisional.
La clasificación se asigna a pesar de un desacuerdo interpretativo conocido, o una superposición con otra categoría.
Ejemplo: una decisión donde dos personas razonables podrían categorizar el mismo caso de manera diferente, y ese desacuerdo se conoce al cierre.
No significa: que la decisión subyacente sea inválida — solo que su categorización conlleva una tensión interpretativa reconocida.
Hace observable la calidad operativa de una clasificación en el momento del depósito, en lugar de presentar cada clasificación con la misma confianza no expresada.
Cuando tenga una opinión sobre cuán consolidada, provisional o controvertida es la clasificación asignada a esta decisión.
Si no tiene base para juzgar la estabilidad de la clasificación, es aceptable dejar este campo sin establecer en lugar de adivinar — el campo es opcional, y el sistema no asume ningún estado predeterminado si está ausente.
intervention.classification_context.threshold_status
Se declara que se alcanzó un umbral de decisión relevante.
Ejemplo: una política interna requería una justificación documentada por encima de cierto nivel de riesgo, y se proporcionó.
Se declara que no se alcanzó un umbral de decisión relevante.
Ejemplo: la revisión encontró que las condiciones requeridas para la aprobación automática no se cumplían, lo que requirió intervención manual.
Existe un umbral en este contexto, pero si se alcanzó no se conoce en el momento del cierre. Esto es diferente de not_defined — aquí, un umbral genuinamente aplica, pero su estado no pudo establecerse.
No se definió ningún umbral para este caso en absoluto. Esto es diferente de unknown — aquí no hay un umbral aplicable que evaluar, en lugar de uno sin resolver.
Un umbral, en este contexto, es un criterio de decisión predefinido — un límite de política, una regla operativa, una condición de aprobación — frente al cual se puede evaluar una decisión. Este campo declara si se alcanzó dicho umbral.
Expone si un umbral de decisión aplicaba a este caso, y si es así, su estado declarado — información que a menudo es implícita y no documentada en las herramientas de flujo de trabajo ordinarias.
Cuando un umbral, regla o condición de política definida es relevante para esta decisión.
Cuando ningún umbral de este tipo aplica realmente a esta decisión — en ese caso, not_defined es el valor preciso, no simplemente dejar el campo vacío si tiene motivos para declarar activamente que no aplica ningún umbral.
threshold_reference a continuación — si threshold_status es not_defined, cualquier valor introducido en threshold_reference es descartado silenciosamente por el servidor, incluso si se envía.unknown no debe leerse como equivalente a «no existe ningún umbral». Eso es lo que significa not_defined. unknown significa que un umbral aplica, pero su estado no pudo establecerse.intervention.classification_context.threshold_reference
Una referencia de texto libre al umbral, política o regla específica citada en threshold_status arriba.
Permite rastrear el umbral declarado hasta algo concreto — un documento de política, un procedimiento, un control interno — en lugar de permanecer como una afirmación general sin atribuir.
Cuando threshold_status es met, not_met, o unknown, y tiene disponible una referencia específica — por ejemplo, un nombre de política, un código de procedimiento, o un identificador de documento, dados solo como ejemplos ilustrativos compatibles con este campo de texto libre.
threshold_status es not_defined, este campo es descartado por el servidor incluso si se envía un valor. No es necesario dejarlo vacío defensivamente — el servidor lo aplica de todos modos, pero es buena práctica dejarlo vacío cuando no se define ningún umbral.intervention.classification_context.threshold_authority.attribution_status
Se definió una autoridad única, identificable y atribuible para el umbral al cierre.
Ejemplo: una política explícitamente propiedad de un comité nombrado.
Cuándo usarlo: cuando puede señalar un propietario claro único del umbral.
El umbral se define a través de múltiples fuentes, sin una autoridad única atribuible.
Ejemplo: una regla ensamblada a partir de varios documentos de orientación interna superpuestos sin un propietario único.
Malentendido común: fragmented no significa que el umbral sea inválido — solo que su propiedad está distribuida.
El umbral está presente en la práctica pero no estaba formalmente definido o atribuible al cierre.
Ejemplo: una norma interna no escrita pero aplicada de forma consistente.
Malentendido común: implicit no significa que los umbrales informales sean ilégitimos — solo que carecen de atribución formal.
La autoridad detrás del umbral no pudo verificarse en el momento del cierre.
Ejemplo: el declarante es consciente de que existe un umbral pero no puede identificar quién lo posee.
La atribución del umbral describe cuán claramente la autoridad o propiedad detrás del umbral citado arriba puede rastrearse hasta una persona, rol o comité específico — no si el umbral en sí se alcanzó.
Se vuelve relevante precisamente cuando se declara un estado de umbral de met o not_met, pero la propiedad de ese umbral no es claramente atribuible a una única fuente — haciendo que esa ambigüedad en sí forme parte del registro preservado.
Cuando tenga una opinión sobre cuán claramente atribuible es la propiedad del umbral citado.
intervention.trace.access
Una referencia de texto libre que permite a alguien posteriormente localizar el contexto más amplio de esta decisión dentro del sistema donde realmente ocurrió — un ticket, un ID de caso, una referencia de pista de auditoría, una referencia de registro, o una referencia de flujo de trabajo, dadas como ejemplos ilustrativos de lo que es semánticamente compatible con este campo.
Una decisión rara vez existe aislada del rastro operativo más amplio que la rodeó. Este campo preserva un puntero a ese rastro, sin que EVIDE necesite recibir o almacenar el rastro en sí.
Siempre que exista una referencia específica y localizable en otro sistema — un número de ticket, un expediente de caso, o una entrada de registro de auditoría — que un revisor posterior pudiera usar para encontrar más contexto.
handoff.boundary_readiness.status
Ningún gate independiente ha evaluado este objeto. La parte declarante afirma solo considerarlo listo, sin que se haya realizado una comprobación independiente.
Cuándo elegirlo: este es el valor predeterminado honesto cuando no estaba involucrado ningún mecanismo de disponibilidad separado — no es un valor más débil o menor, es el preciso para esa situación.
Un gate de disponibilidad independiente confirmó la estabilidad a través de lo que declara ser visibilidad completa, sin señales no resueltas.
Cuándo elegirlo: solo cuando un mecanismo genuinamente separado — distinto de la persona o el sistema que tomó la decisión — realizó esta evaluación.
Malentendido común: este valor no puede autodeclararse simplemente sintiéndose confiado sobre una decisión; significa específicamente que estuvo involucrado un gate independiente.
Un gate independiente confirmó lo que pudo observar, pero declara explícitamente que algunas señales relevantes permanecen sin resolver.
Cuándo elegirlo: cuando estaba involucrado un gate de disponibilidad pero su visibilidad era genuinamente incompleta — requiere al menos una entrada en unresolved_signals.
Un gate de disponibilidad intentó una evaluación, pero la visibilidad disponible para él fue insuficiente para alcanzar cualquier conclusión de estabilidad. Esto demuestra que se intentó la diligencia, no que el proceso fallara.
Cuándo elegirlo: cuando un intento genuino de evaluación de disponibilidad no pudo llegar a una conclusión debido a visibilidad insuficiente — también requiere al menos una entrada en unresolved_signals.
La disponibilidad del boundary declara cuán lista se considera esta decisión, en el momento del cierre, para su preservación probatoria — específicamente, si un gate de disponibilidad independiente la evaluó, y qué pudo y no pudo observar ese gate. Es una declaración sobre el estado de disponibilidad, no una propiedad que EVIDE misma mida o confirme.
Diferentes decisiones conllevan grados muy diferentes de disponibilidad confirmada de forma independiente antes de preservarse. Agruparlas todas en un solo estado indiferenciado ocultaría exactamente la información que un revisor posterior más necesita: ¿fue esta decisión comprobada de forma independiente antes de registrarse, y si es así, con qué grado de completitud?
Siempre — este campo es obligatorio para cada Human Structured Intake.
Pregúntese concretamente: ¿un mecanismo genuinamente separado de quien tomó la decisión evaluó la disponibilidad de este objeto antes de que se registrara? Si no estaba involucrado ningún mecanismo de este tipo, el valor honesto es candidate. Si estaba involucrado uno, elija entre verified, verified_partial, o unverifiable según cuán completa fue realmente la visibilidad de ese mecanismo.
Verificado en el código: visibility_surface (un campo interno en el payload canónico) se deriva mecánicamente de este valor mediante una correspondencia fija — nunca es una elección separada realizada por la persona que completa el formulario. Este valor también rige si readiness_gate_identifier/readiness_gate_scope_reference y unresolved_signals son obligatorios (vea Relaciones Condicionales entre Campos a continuación para las reglas exactas).
candidate, tanto readiness_gate_identifier como readiness_gate_scope_reference se vuelven obligatorios juntos. Si este valor es verified_partial o unverifiable, al menos una entrada en unresolved_signals se vuelve obligatoria.Un responsable técnico que autoriza un reinicio de producción después de una anomalía podría declarar verified_partial si un gate diagnóstico automatizado comprobó la mayoría, pero no todos, los sensores relevantes antes del reinicio — registrándose el sensor específico no comprobado como señal no resuelta.
verified en este campo es un valor declarado en el modelo de datos, no una evaluación realizada por EVIDE. EVIDE misma no comprueba si el gate declarado realmente operó, o si sus conclusiones fueron precisas.candidate como un envío deficiente o incompleto — es el valor estructuralmente preciso siempre que no estuviera genuinamente involucrado ningún gate de disponibilidad independiente.verified describe lo que se declaró sobre un gate previo o independiente — nunca es la propia verificación de EVIDE de la decisión.handoff.boundary_readiness.readiness_gate.identifier
Un gate, en este contexto, es cualquier mecanismo — humano o automatizado — que realizó la evaluación de disponibilidad declarada en boundary_readiness_status. Este campo nombra o identifica ese mecanismo.
Permite rastrear la evaluación de disponibilidad declarada hasta algo específico, en lugar de permanecer como una afirmación general sin atribuir.
Obligatorio siempre que boundary_readiness_status sea distinto de candidate — es decir, siempre que se declare un gate independiente.
readiness_gate_scope_reference siempre que boundary_readiness_status no sea candidate. Si falta alguno de los dos bajo esa condición, la solicitud se rechaza. Ninguno de los dos campos se solicita cuando el estado es candidate.Una comprobación diagnóstica utilizada antes de autorizar un reinicio de producción, o el código de procedimiento interno que rige una revisión de excepción de compliance.
handoff.boundary_readiness.readiness_gate.scope_reference
Mientras readiness_gate_identifier nombra el mecanismo o control declarado que operó, este campo describe el perímetro o alcance que ese mecanismo se declara haber cubierto.
Un gate nombrado es más útil cuando también se especifica su cobertura — la misma comprobación diagnóstica podría cubrir toda una instalación en un caso y una sola máquina en otro.
Obligatorio bajo la misma condición que readiness_gate_identifier arriba: siempre que boundary_readiness_status sea distinto de candidate.
Distinto de readiness_gate_identifier: uno nombra el mecanismo, el otro describe lo que se declara que cubrió.
Para un reinicio de línea de producción, el identificador podría nombrar el control diagnóstico utilizado, mientras que la referencia de alcance nombra la máquina o línea específica que cubrió ese control.
handoff.boundary_readiness.unresolved_signals
Una señal no resuelta es un elemento específico que permaneció sin resolver o sin atribuir en el momento en que se realizó la evaluación de disponibilidad — el «por qué» declarado detrás de un resultado verified_partial o unverifiable, no solo el hecho de que ocurriera.
Sin esta lista, un lector que se encuentre con «Disponibilidad del boundary: verified_partial» sabría que algo estaba incompleto, pero no qué — a menudo la información individual más útil para una reconstrucción posterior de la decisión.
Obligatorio siempre que boundary_readiness_status sea verified_partial o unverifiable — se requiere al menos una entrada en ese caso.
No se usa, y normalmente se deja vacío, cuando el estado es candidate o verified, ya que en esos casos no se declara ninguna brecha sin resolver.
Enumere cada elemento específico que permaneció sin resolver, tan concretamente como sea posible — se admiten varias entradas cuando más de una señal permaneció abierta.
Directamente regido por boundary_readiness_status: obligatorio (mínimo una entrada) cuando ese valor es verified_partial o unverifiable.
boundary_readiness_status es verified_partial o unverifiable y este array está vacío, la solicitud se rechaza.Para el escenario de autorización SOC en los Casos de Uso Empresarial anteriores, esto podría decir: «Origen de dos solicitudes API aún no atribuido.»
Las reglas a continuación se verifican directamente contra el validador en HumanStructuredIntakeService.php — no se asumen a partir de los nombres de los campos o de patrones generales de documentación.
| Si… | Entonces… |
|---|---|
threshold_status = not_defined | Cualquier valor enviado en threshold_reference es descartado por el servidor, incluso si está presente en la solicitud. |
boundary_readiness_status ≠ candidate | readiness_gate_identifier Y readiness_gate_scope_reference se vuelven ambos obligatorios juntos. Si falta alguno, la solicitud se rechaza. |
boundary_readiness_status ∈ {verified_partial, unverifiable} | unresolved_signals[] se vuelve obligatorio, con un mínimo de una entrada. Un array vacío se rechaza bajo esta condición. |
Una entrada de evidence_references[] incluye un hash_value | hash_scope y hashed_by se vuelven ambos obligatorios juntos para esa entrada. Una declaración de hash parcial — un valor sin ambos — se rechaza. |
visibility_surface, un campo interno dentro del payload canónico, siempre se deriva mecánicamente de boundary_readiness_status mediante una correspondencia fija. Nunca es un valor elegido directamente por la persona que completa el formulario.Una referencia externa de evidencia permite que un Human Structured Intake apunte a un artefacto — un documento, una captura de pantalla, un archivo de registro, una política — que permanece bajo el control de la propia organización, sin que ese artefacto se cargue nunca en EVIDE ni sea posesión de EVIDE. Verificado en el código: esto reutiliza, sin modificaciones, la estructura exacta evidence_references[] ya documentada en la JSON Schema Reference — no es un mecanismo paralelo o específico de Human.
Esto importa porque resuelve una tensión real y común: una organización a menudo necesita preservar una declaración verificable sobre una decisión, evitando deliberadamente entregar un documento interno sensible a cualquier sistema externo. Las referencias externas de evidencia permiten que ambas cosas sucedan a la vez.
POLICY-CREDIT-REV7. La organización mantiene ese documento bajo su propio control. El Human Structured Intake puede preservar una referencia declarada a esa política y, cuando esté disponible, su digest SHA-256 — sin que EVIDE reciba nunca el documento en sí.artifact_type | Tipo declarado de texto libre — ej. screenshot, pdf, policy_document. No es una enumeración fija. |
pointer | Una referencia específica de la implementación a la ubicación del artefacto. EVIDE no la resuelve, desreferencia ni recupera. |
declared_origin | Descripción de texto libre de dónde proviene el artefacto. |
declared_relationship | Descripción de texto libre de cómo se relaciona el artefacto con esta decisión. |
declared_description | Descripción de texto libre legible por humanos. |
declared_retention_status | Uno entre persistent_storage, rolling_buffer, unknown. Verificado en el código: nunca se establece automáticamente por defecto — incluido solo si la persona lo selecciona activamente. |
Una referencia puede llevar opcionalmente un digest SHA-256 declarado del artefacto. Vea la sección dedicada SHA-256 a continuación para lo que esto establece exactamente y lo que no establece.
SHA-256 es una función hash criptográfica: toma cualquier archivo y produce de forma determinista un digest de longitud fija, de modo que incluso un cambio minúsculo en el archivo produce un digest completamente diferente. En una referencia externa de evidencia, un digest SHA-256 declarado permite a una parte posterior que posea el artefacto real comprobar si coincide con lo declarado en el momento del intake.
Verificado en el código: la validación del hash en este canal es puramente sintáctica — el servidor confirma que el valor declarado tiene exactamente 64 caracteres hexadecimales, nada más. EVIDE no recibe el artefacto y no puede comprobar si el digest declarado realmente le corresponde. El valor declarado se preserva exactamente como se introdujo, nunca normalizado a mayúsculas o minúsculas.
La distinción que importa está entre cinco cosas separadas: el artefacto externo en sí (nunca recibido por EVIDE); la referencia declarada al mismo; el digest declarado (opcional, comprobado solo sintácticamente); una comparación de hash posterior que otra persona podría realizar; y la preservación de la declaración por parte de EVIDE — la única de estas cinco cosas que EVIDE realmente realiza.
El principio general: preservación estructurada de la declaración y su contexto probatorio declarado asociado, exactamente como se envió, canonicalizado y sometido a hash de forma determinista y evidente ante manipulaciones.
Volviendo al escenario de Compliance de los Casos de Uso Empresarial: se le pide a una Compliance Officer, Jane Whitfield, que apruebe una excepción temporal a la lista de verificación estándar de incorporación de proveedores, bajo una justificación de negocio documentada y un punto de revisión definido.
Cierra la decisión a las 16:00 UTC, pero registra el intake más tarde, a las 18:03 UTC, tras terminar una llamada. Declara su rol como Compliance Officer, hace referencia a la política interna que rige excepciones de este tipo, y anota que un comité de revisión interno — un mecanismo independiente de su propia decisión — confirmó las condiciones relevantes con visibilidad completa antes de que ella tomara su decisión. Hace referencia al ticket interno que rastrea esta excepción, y declara por separado un documento de política con su digest SHA-256, conservado internamente en lugar de cargarse en EVIDE.
Cada valor a continuación se elige para ser internamente coherente y compatible con las reglas condicionales documentadas arriba — los campos se incluyen porque encajan en este caso específico, no simplemente para demostrar que cada campo existe.
Este es el payload canónico que EVIDE construye a partir del ejemplo anterior — verificado campo por campo contra HumanStructuredIntakeService.php. Los campos generados automáticamente por el servidor (nunca leídos del formulario) están marcados en consecuencia.
"evide_schema": "2.1", "source_system": "evide_web_human", // generado por el servidor, fijo para este canal "source_reference": "web:1042:a3f91c2d", // generado por el servidor "source_timestamp_utc": "2026-04-07T18:03:00Z", // generado por el servidor -- cuándo EVIDE procesó este intake "decision": { "type": "Compliance exception approval", "status": "finalized", // siempre fijo en este canal "closure_timestamp_utc": "2026-04-07T16:00:00Z", // declarado -- vea Cierre de la Decisión arriba "summary": "Temporary exception to vendor onboarding checklist" // copiado del campo común "title" }, "authority": { "id": "Jane Whitfield", // declarado (por defecto el usuario conectado si está vacío) "role": "Compliance Officer", "dapi_number": "DAPI-2K9-XXXX", // siempre generado por el servidor desde la sesión, nunca desde el formulario "verification": "Linked to internal DAPI reference for the review board" }, "intervention": { "classification_status": "stable", "classification_context": { "threshold_status": "met", "threshold_reference": "Internal policy COM-EXC-04, section 3.2", "threshold_authority": { "attribution_status": "attributed" } }, "trace": { "access": "Ticket COMP-2026-0417" } }, "handoff": { "reconstruction_independence": "declared", // fijo "submission_status": "not_submitted", // fijo en el momento del intake "acceptance_status": "not_claimed", // fijo en el momento del intake "boundary_readiness": { "status": "verified", "visibility_surface": "declared_complete", // derivado mecánicamente del status anterior "readiness_gate": { "identifier": "COM-EXC-04 review board", "scope_reference": "Vendor onboarding exceptions, Q2 2026" } } }, "extensions": ["evidence_references"], "evidence_references": [ { "artifact_type": "policy_document", "pointer": "internal://policies/vendor-onboarding-v3", "declared_origin": "internal policy repository", "declared_description": "Policy document supporting this exception approval", "hash": { "algorithm": "SHA-256", "value": "cabbcf9f83fb765cd82569e477b6b3abf51d81eba9b3b92f8e9904be98a1a2f8" }, "hash_scope": "full_file", "hashed_by": "internal document management system" } ]
unresolved_signals está correctamente ausente aquí — solo es obligatorio cuando boundary_readiness.status es verified_partial o unverifiable, no verified como en este ejemplo.Human Structured Intake existe para que una decisión humana declarada, y su contexto probatorio declarado, puedan sobrevivir fuera del sistema que los produjo — recuperables de forma independiente, sometidos a hash determinista, y anclados en el tiempo.