referencia · 13 temas · 101 entradas
Manual
Esta página no se escribió: se generó. Cada entrada sale de la declaración que el
lenguaje ya tiene —los vocabularios cerrados, las relaciones que emite sobre sí mismo, los
verbos del comando—, así que no hay dónde quede vieja. Lo mismo se lee en la terminal con
oracle manual y oracle manual <tema>.
ambito
dónde obliga una medida (campo ambito)
- del_
origen - la medida obliga sólo cuando el proyecto evaluado es dueño de su origen; un consumidor ajeno puede leerla, pero no recibe su veredicto
- universal
- la medida obliga a todo proyecto que seleccione el catálogo y aporte la evidencia necesaria para evaluarla
operadores
los seis operadores de una tubería, y desde, que la encabeza
- agrupar
- junta las filas por una o más claves y calcula un agregado por grupo. Devuelve una fila por grupo, no una por fila: cambia de qué habla la tubería
- de
- nombra la relación de evidencia de la que salen las filas. Es el único operador que trae datos; todos los demás transforman lo que «de» trajo
- desde
- encabeza toda tubería. No es un paso: es la marca de que lo que sigue es una tubería y no otra cosa
- donde
- se queda con las filas que cumplen la condición. Sin él un rojo entrega como testigos todas las filas, también las que no ofendieron, y hay que leerlas a mano
- resumen
- cierra la tubería en un solo escalar, que es lo que el umbral compara. «contar» no evalúa la expresión: cuenta filas
- sin
- deja pasar cada fila para la que NINGUNA fila de la relación nombrada cumple la condición, y la deja tal como llegó: el alias nuevo sólo existe dentro de la condición
- unir
- cruza dos relaciones fila contra fila. Los alias de los dos lados conviven en la fila resultante, así que la condición puede hablar de ambos
segun
de dónde salió el número de un umbral (campo segun)
- contrato
- el número lo fija algo externo que no se negocia: una especificación, el formato de un archivo, una norma, la API de un tercero
- convencion
- el número lo eligió el equipo y vale porque está escrito, no porque se haya medido. Cambiarlo es una decisión, no la corrección de un error
- medicion
- el número salió de medir la cosa real con un instrumento que se puede nombrar. Es el origen más fuerte, porque otro puede repetir la medición y discutirlo
- tanteo
- el número es provisorio: se puso para arrancar y todavía nadie lo justificó. Declararlo así es honesto; dejarlo así mucho tiempo, no
etiqueta
qué enseña un caso del corpus (campo etiqueta)
- deuda_
de_ diseño - el defecto es real y el lenguaje todavía no puede expresarlo. Se guarda para que la falta quede escrita en vez de olvidarse
- falso_
rojo - la medida falló sobre algo que estaba bien. Enseña a ignorar el verificador, que es la forma más rápida de perderlo
- falso_
verde - la evidencia trae un defecto que una medida no debe dejar pasar. Nombra el peligro, no un episodio: vale igual si nadie llegó a caer en él, y es el caso que más enseña porque un verificador que calla ante esto es peor que no tenerlo
- medida_
correcta_ conclusion_ errada - la medida hizo lo que declara y aun así la conclusión fue equivocada: el error está en lo que se decidió medir, no en cómo se midió
- verde_
correcto - la medida pasó y correspondía. Hace falta tanto como un rojo: sin él, el mutador que quita el filtro sobrevive y nadie se entera
espera
resultado específico de un caso de defecto (campo opcional espera)
- sin_
evidencia - la medida debe declarar que no puede juzgar por falta de evidencia; sólo vale para un caso de defecto y se escribe después de `etiqueta`
procedencia
de dónde salió la evidencia de un caso (campo procedencia)
- construida
- la evidencia se escribió a mano para ejercer la medida. Es honesto y no cierra nada que no deba cerrarse
- generada
- la produjo un generador a partir de una especificación, no una corrida del mundo
- observada
- la evidencia es lo que devolvió una corrida que ocurrió. Es una afirmación sobre el pasado, y Oracle NO puede verificarla: ante la duda, `construida`
como_se_detecto
quién encontró el defecto (campo como_se_detecto)
- accidente
- apareció haciendo otra cosa, y nadie lo estaba buscando. Vale igual: dice que en el camino donde sí se buscaba no estaba
- herramienta_
ajena - lo señaló una herramienta de afuera de Oracle
- mutacion
- lo encontró el arnés al romper la medida a propósito
- observacion
- salió de mirar de frente una corrida real, con la intención de encontrar algo
- persona
- lo vio alguien leyendo el código o la salida, sin que ninguna herramienta lo señalara
relaciones
las relaciones que el lenguaje emite sobre sí mismo
- ambito_
de_ relacion - dónde puede aportar jurisdicción cada relación emitida; permite detectar una medida universal apoyada en evidencia que sólo pertenece a su origen
- caso
- cada caso del corpus: su polaridad, su procedencia, si la medida que reclama existe, y si es propio o heredado de una biblioteca
- medida_
en_ uso - cuántos casos evalúan cada medida y cuántos mutantes le sobreviven; es la relación con la que Oracle mide si una medida está ejercitada o es adorno
- mutador_
excluido - cada mutador que el arnés no corre, con la premisa declarada y si sigue disponible en el registro del arnés; ninguna exclusión debe aplicarse globalmente para que el denominador de mutación no baje en silencio
- opcion_
del_ vocabulario - cada opción de un vocabulario cerrado, con cuántas palabras la explican y si el manual la alcanza
- relacion_
documentada - si cada relación del lenguaje está nombrada en la especificación; existe para que una relación nueva no quede sin documentar en silencio
- sombra
- qué medidas heredadas se miden y se informan pero todavía no tumban la corrida, desde cuándo, con qué razón escrita y hace cuántos días — que es lo que permite envejecerlas y distinguir una transición de un estado permanente
- verbo_
del_ cli - cada verbo que el comando acepta y si la ayuda lo nombra; un verbo fuera de la ayuda es trabajo terminado que nadie va a encontrar
aritmetica
aritmética infija de expresiones
- a + b
- suma
- a - b
- resta, con un espacio a cada lado: el impresor la escribe así y `a-b` queda fuera de la forma única. Los nombres de macro con guion siguen válidos en encabezados
- a * b
- producto; se agrupa antes que + y -
- (a + b) * c
- los paréntesis cambian la precedencia; operadores del mismo nivel se agrupan de izquierda a derecha
- -1
- literal negativo; también se acepta después de un operador, como a - -1
- /
- no hay división infija ni escalar de división incorporada; declarà una escalar y llamala por su nombre
casos
evidencia en la superficie .caso
- tabla
- escribí una cabecera y filas cuando todas comparten campos con nombres imprimibles
- fila {…}
- usá una línea por fila si los campos difieren o no caben en una cabecera; conserva la evidencia completa
macros
si la relación es el universo a evaluar, usá la variante -requiere
- ninguno
- cuenta infracciones; una relación vacía significa cero infracciones
- ninguno-par
- cuenta infracciones entre pares; admite una relación vacía
- ninguno-par-requiere
- como ninguno-par, pero exige filas en la relación de origen
- ninguno-requiere
- como ninguno, pero exige filas en la relación de origen
- peor
- mide el peor exceso; admite una relación vacía
- peor-requiere
- como peor, pero exige filas en la relación de origen
verbos
los verbos del CLI, por sustantivo
- oracle biblioteca
- instaladas · listar · nueva · verificar
- oracle caso
- generar · listar · nuevo
- oracle manual
- ambito · aritmetica · casos · como_se_detecto · espera · etiqueta · macros · medidas · operadores · procedencia · relaciones · segun · verbos
- oracle medida
- expandir · listar · nueva · probar · revisar
- oracle
- censar · juzgar · reportar
- oracle plantilla
- sensor-prosa
- oracle proyecto
- cambios · cobertura · contexto · escalares · init · juzgar · relaciones · test
- oracle requisito
- importar
medidas
las medidas universales que Oracle trae, y qué NO ve cada una
- meta.
el_ caso_ reclama_ una_ medida_ que_ existe - mira todos los casos, propios y heredados, y ve el id que cada caso RECLAMA: un caso de biblioteca colgado puede señalar una selección incompleta del proyecto. NO confunde esto con un hueco declarado —un caso sin medida no reclama nada— y NO ve si el id que existe es el adecuado para ese caso. Si caso viene vacía no hay casos que reclamen medidas inexistentes y verde es correcto; además el arnés de aceptación exige un corpus no vacío por construcción antes de evaluar L2
- meta.
el_ caso_ se_ pone_ como_ debe - mira todos los casos, propios y heredados, y compara el veredicto contra la polaridad declarada: que un caso de biblioteca difiera en este entorno informa sobre este entorno. NO ve si el caso está bien etiquetado, ni si la evidencia que trae es la del defecto que dice traer. Si caso viene vacía no hay desacuerdos de polaridad y verde es correcto; además el arnés de aceptación exige un corpus no vacío por construcción antes de evaluar el nivel meta
- meta.
el_ hueco_ declarado_ explica_ por_ que - mira sólo casos propios (`es_heredado == false`) y ve que cada caso marcado explícitamente como hueco abierto tenga una explicación; los huecos de una biblioteca responden ante su certificación. NO juzga esa explicación ni confunde casos resueltos o límites humanos con trabajo pendiente. Si caso viene vacía no hay huecos abiertos sin explicar y verde es correcto; además el arnés de aceptación exige un corpus no vacío por construcción
- meta.
el_ nivel_ no_ se_ confunde_ con_ el_ dominio - compara el prefijo del nombre contra la relación de origen. NO ve si el dominio elegido es el correcto, ni si la medida mide lo que dice medir. Si medida viene vacía no hay medidas que confundan nivel con dominio y verde es correcto; además el catálogo evaluado contiene al menos las medidas meta por construcción
- meta.
el_ requisito_ nombra_ medidas_ que_ existen - mira cada medida que un requisito nombra en `medido_por` contra el catálogo efectivo. NO juzga si la medida nombrada mide de verdad la promesa, ni si una medida en sombra la cubre. Un requisito sin `medido_por` no nombra nada y queda fuera; sin requisitos no hay nada que nombrar y verde es correcto. No usa la macro «ninguno» porque la macro no admite `sin`
- meta.
la_ medida_ no_ se_ fija_ solo_ con_ evidencia_ fabricada - mira sólo casos propios (`es_heredado == false`), porque la fijación de una biblioteca es responsabilidad de su certificación. De esos casos mira lo que declaran sobre sí mismos. NO verifica que el commit exista, ni que la evidencia se corresponda con ese commit, ni que quien escribió `observada` haya observado algo. Un caso puede mentir en `procedencia` y esta medida no lo ve
- meta.
ningun_ campo_ sin_ unidad_ declarada - ve si cada campo de `campo_declarado` tiene `tiene_unidad` en false. NO juzga si la unidad declarada es la magnitud física correcta que emite el sensor
- meta.
ningun_ flotante_ comparado_ por_ igualdad_ en_ un_ filtro - mira literales flotantes escritos en la forma canónica, cuando son operandos directos de `==` o `!=` y ese comparador está debajo de un `donde`. NO ve un flotante que llega por una escalar ni uno que sale de un campo, NO juzga igualdades exactas fuera de un filtro, y NO mira el umbral final, del que ya se ocupa `meta.ningun_umbral_flotante_de_igualdad`
- meta.
ningun_ umbral_ de_ igualdad - mira sólo el operador final del umbral de cada medida. NO ve igualdades dentro de filtros o agregados, ni decide si `!=` es una política válida para un dominio concreto. Si medida viene vacía significa que no hay medidas en el catálogo que ofendan la regla y verde es correcto; además el catálogo evaluado contiene al menos las medidas meta por construcción
- meta.
ningun_ umbral_ flotante_ de_ igualdad - mira el operador y el tipo del valor final del umbral de cada medida. NO ve igualdades exactas dentro de expresiones o agregados — de ésas se ocupa el álgebra al evaluar — y NO juzga `==` sobre enteros, textos ni booleanos, que se comparan exacto
- meta.
ninguna_ cota_ mas_ alta_ que_ su_ deuda - compara la cota declarada contra el valor que dio la medida ensombrecida en esta corrida. Sólo mira las sombras que declaran cota y que llegaron a evaluarse: sin cota, o con `valor` en -1 porque la medida no corrió, queda verde acá. NO ve si la cota es correcta en un proyecto que no corrió esta medida, y NO baja la cota sola: obliga a bajarla a mano, que es la mitad del punto — el número lo escribe una persona y queda en el commit
- meta.
ninguna_ evidencia_ declara_ un_ referente_ sin_ huella - mira si cada declaración de `referente_declarado` trae `tiene_huella` en false. NO verifica que el referente exista, que la huella corresponda a él, que quien la escribió haya leído algo ni si sigue vigente; sólo exige la huella necesaria para una comparación posterior
- meta.
ninguna_ evidencia_ se_ juzga_ con_ referente_ vencido - compara las dos huellas declaradas para cada identidad en `referente_comparado`. NO verifica que el referente exista, que una huella corresponda a su contenido ni que quien la declaró haya leído algo
- meta.
ninguna_ medida_ sin_ alcance - ve si el `alcance` está VACÍO. NO impone una fórmula textual ni un idioma, y NO juzga si el punto ciego declarado es el correcto o el completo
- meta.
ninguna_ sombra_ envejece_ sin_ revisarse - publica la edad máxima en días entre las sombras que superan el trimestre; sin incumplimientos publica 0 y ningún testigo, no la edad máxima de las sombras recientes. NO juzga si el motivo sigue siendo válido, ni si alguien la miró en el medio, ni si el arreglo avanzó; una sombra revisada ayer y una olvidada hace un año se ven igual si la fecha no cambió. Tampoco ve una fecha que no se pueda leer o que esté en el futuro: eso da días negativos y lo mide `meta.toda_sombra_declara_una_fecha_real`. Sin sombras no hay antigüedad incumplida y verde es correcto
- meta.
ninguna_ sombra_ sobre_ una_ medida_ que_ no_ existe - compara contra el catálogo cargado. NO ve si el id está bien escrito ni sugiere a cuál se parecía
- meta.
ninguna_ sombra_ supera_ su_ cota - compara el valor que dio la medida ensombrecida contra la cota que su sombra declara, en esta corrida, y exige que ese valor exista. Sólo mira las sombras que declaran cota: una sin cota queda verde acá y se comporta como antes. NO verifica que la cota sea la deuda real de hoy —de eso se ocupa meta.ninguna_cota_mas_alta_que_su_deuda— ni que la medida ensombrecida siga existiendo en el catálogo —de eso se ocupa meta.ninguna_sombra_sobre_una_medida_que_no_existe—, así que una sombra con cota sobre una medida borrada dispara las dos y está bien que así sea
- meta.
ninguna_ sombra_ ya_ en_ verde - ve el veredicto de esta corrida. NO ve si el verde es estable ni si vino de evidencia flaca, y NO puede saber si mañana vuelve a ponerse roja
- meta.
se_ escribe_ en_ superficie - cuenta archivos JSON de medidas, casos y relaciones propios del proyecto en catalogos/, corpus/ y relaciones/. NO juzga archivos de bibliotecas, perfiles, historia ni el JSON canónico de intercambio
- meta.
toda_ cantidad_ comparada_ tiene_ unidad_ derivable - cree lo que la declaración dice y NO verifica que el sensor emita en esa unidad
- meta.
toda_ medida_ de_ ausencia_ declara_ requiere - detecta medidas cuya forma canónica contiene `unir` y `agrupar` pero ningún nodo `requiere`. NO demuestra que toda medida con ese patrón sea realmente de ausencia, ni que la relación requerida elegida sea la correcta
- meta.
toda_ medida_ declara_ su_ ambito - ve que el campo `ambito` esté declarado y no en `sin_declarar`. NO juzga si el ámbito declarado es el correcto: esa segunda pregunta no la contesta ninguna medida
- meta.
toda_ medida_ esta_ ejercitada - cuenta los casos del PROYECTO que la evalúan. NO exige nada de las medidas heredadas del catálogo base —de ésas responde oracle, con su propio corpus— ni ve si esos casos la ponen a prueba de verdad: para eso está la mutación. Si medida_en_uso viene vacía no hay medidas sin ejercitar y verde es correcto; además contiene una fila por medida cargada por construcción
- meta.
toda_ medida_ esta_ fijada - exige al menos un mutante y ninguno vivo sólo cuando `debe_tener_mutantes` es verdadero. NO vuelve a exigirlos a medidas heredadas —responde su corpus de origen— ni a las evaluadas aparte, y NO ve los mutadores que nadie escribió. Si medida_en_uso viene vacía no hay medidas sin fijar y verde es correcto; además contiene una fila por medida cargada por construcción
- meta.
toda_ medida_ filtra_ o_ agrupa - mira la forma declarada y exige al menos un `donde`, un `sin` o un `agrupar` —`sin` deja pasar sólo las filas sin pareja, así que filtra—. NO juzga si el filtro discrimina bien, si el agrupamiento tiene la clave correcta ni si un conteo total fue intencional
- meta.
toda_ medida_ lee_ campos_ que_ existen - ve si los campos leídos por las medidas están declarados en relaciones conocidas. NO ve relaciones sin declarar, ni si la variante leída es la que la medida filtra
- meta.
toda_ sombra_ declara_ desde_ y_ porque - ve si los dos campos están declarados. NO juzga si el motivo es bueno ni si la fecha es cierta, ni ve las medidas que deberían estar en sombra y no se pusieron
- meta.
toda_ sombra_ declara_ una_ fecha_ real - mira los días calculados, que salen negativos por dos motivos distintos: la fecha no se pudo leer, o está en el futuro. NO los distingue — el testigo trae la medida y los días, no la cadena original. Y NO juzga si una fecha legible es la verdadera: alguien puede escribir una de hace un mes sobre una sombra puesta hoy
- meta.
todo_ caso_ observado_ declara_ de_ donde_ salio - ve si el `origen` del caso nombra un comando o un registro. NO verifica que ese comando exista, que el registro esté ahí, que la corrida haya ocurrido ni que la evidencia salga de ella: un caso puede declarar los dos campos y mentir en los dos, y esta medida no lo ve. Tampoco mira los casos `construida` ni `generada`, que no afirman contacto con el mundo, ni los que no declaran procedencia — de eso se ocupa `meta.la_medida_no_se_fija_solo_con_evidencia_fabricada`
- meta.
todo_ tanteo_ explica_ por_ que - ve sólo tanteos con defensa vacía. NO exige prosa a mediciones, contratos ni convenciones, y NO juzga si la explicación escrita alcanza
- meta.
todo_ umbral_ declara_ de_ donde_ sale - ve si la etiqueta `segun` quedó en `sin_declarar`. NO juzga si la etiqueta elegida es verdadera ni si el número está bien defendido
- proceso.
afirmacion_ declara_ alcance - ve si el campo está VACÍO. NO ve si el alcance escrito es honesto, completo ni pertinente
- proceso.
arnes_ con_ bytecode_ frio - ve la corrida que lo declara. NO ve otras formas de caché: módulos ya importados en memoria, o un import hecho por otro test antes de la mutación. Si corrida_mutacion viene vacía significa que no hubo corridas con bytecode caliente en la sesión y verde es correcto
- proceso.
codigo_ con_ mutante_ que_ lo_ mata - cuenta mutantes de código de la ronda cuyo estado fue «pasaron» sin estar declarados como equivalentes. NO ve los mutadores que nadie escribió ni los operadores que el perfil de mutación no contempla: un mutante que no existe no puede sobrevivir. Tampoco juzga por sí sola si la ronda fue concluyente —eso lo mide proceso.ronda_mutacion_concluyente— ni si el bytecode estaba frío. Si mutante viene vacía o sin mutantes de código, la medida NO concluye —lo declara en requiere, y sale SIN EVIDENCIA en vez de verde—
- proceso.
modulo_ alcanzable - sigue los imports estáticos desde las entradas declaradas, y descuenta los `__init__.py` vacíos, que son marcadores de paquete. NO ve la carga dinámica —importlib, un plugin, un punto de entrada por configuración— así que un módulo vivo por esa vía sale marcado, y si `alcanzable` viene vacía la medida NO concluye: lo declara en `requiere` y sale SIN EVIDENCIA en vez de verde
- proceso.
modulo_ con_ consumidor - cuenta importadores que no son tests, agrupando por módulo. Si `importa` viene vacía la medida NO concluye —lo declara en `requiere`, y sale SIN EVIDENCIA en vez de verde—. NO distingue un importador que usa el módulo de uno que lo importa y no lo llama
- proceso.
ronda_ mutacion_ concluyente - ve los estados estructurados publicados por cada corrida. Una ronda parcial marcada con parcial == true se considera inconclusa para propósitos de verificación formal del catálogo. NO distingue por sí sola si un código no cero fue una aserción o un error: eso depende del protocolo explícito del runner. Si corrida_mutacion viene vacía significa que no hubo rondas de mutación inconclusas y verde es correcto
- proceso.
sintaxis_ valida_ tras_ edicion_ masiva - ve archivos marcados como no parseables. NO ve el daño que SÍ parsea: una regex puede cambiar el significado de una línea sin romper la sintaxis. Si archivo viene vacía significa que no se detectaron archivos con sintaxis rota tras la edición masiva y verde es correcto
- proceso.
test_ con_ mutante_ que_ lo_ mata - cuenta mutantes que ningún caso observó, de ninguna de las cuatro maneras. NO ve los mutantes que nadie generó: una medida sin ningún mutador aplicable da cero y sale verde. Tampoco distingue un mutante equivalente —imposible de matar— de uno que el corpus todavía no fija; esa diferencia hay que declararla a mano. Si mutante viene vacía o sin mutantes de medida, la medida NO concluye —lo declara en requiere, y sale SIN EVIDENCIA en vez de verde—
- proceso.
verificacion_ vigente - cuenta cambios marcados como código vivo. En v0.1 NO compara fechas ni sabe cuál verificación quedó vieja: cualquier cambio vivo la invalida. Hace falta comparar contra el commit de la verificación. Si cambio viene vacía significa que no hubo cambios recientes, por lo que la verificación sigue vigente
- proceso.
verificador_ sin_ falsos_ rojos - ve hallazgos que YA fueron etiquetados como falsos. NO puede decidir sola si un hallazgo es real: alguien tuvo que mirarlo. Si hallazgo viene vacía significa que el verificador no reportó nada, por lo que el mundo está limpio de falsos rojos
- simulacion.
corrida_ reproducible - compara dos ejecuciones con la MISMA semilla. NO ve si el resultado depende de algo de afuera —la hora, el orden de un diccionario, un archivo— que hoy casualmente no cambió. Si corrida viene vacía la medida NO concluye —lo declara en requiere, y sale SIN EVIDENCIA en vez de verde—.
- simulacion.
la_ traza_ no_ tiene_ huecos - compara cuántos eventos hay contra el instante final, asumiendo que el tiempo arranca en cero y avanza de a uno. NO ve trazas donde varios eventos comparten instante, ni sabe si el que falta es importante. Si evento viene vacío la medida NO concluye —lo declara en requiere, y sale SIN EVIDENCIA en vez de verde—.
- simulacion.
no_ se_ agoto_ el_ presupuesto - ve la clasificación producida por el contrato de terminación. NO ve si el presupuesto era razonable, ni si una corrida que terminó a tiempo lo hizo por el motivo correcto. Si corrida viene vacía la medida NO concluye —lo declara en requiere, y sale SIN EVIDENCIA en vez de verde—.
Generado con oracle manual --html desde
tools/manual.py.