Dónde se puede acceder a cada capacidad
Cada capacidad está disponible en las superficies donde tiene sentido; donde una superficie no puede soportar una capacidad, la celda indica N/A y el motivo. El mismo motor funciona detrás de todas las superficies: los puntos de entrada de Python, WebAssembly y MCP para las 0,35 capacidades son envoltorios finos sobre kshana::surface, que llama al código que ejecuta la línea de comandos.
Aquí se omite un pasaje que nombra clientes de IA de terceros; está en docs/SURFACES.md en GitHub.
| Capacidad | CLI | Rust | Python | WASM | MCP | Plugin | JetBrains | Notebook | Studio |
|---|---|---|---|---|---|---|---|---|---|
| Confianza del receptor de un buque, registro por lotes (puntuación de 0-100, motivos) | receiver-trust |
receiver_trust::assess::assess_vessel_log |
receiver_trust, assess_vessel_log |
receiver_trust, assess_vessel_log |
assess_receiver_log, assess_vessel_log |
/kshana-assess-receiver, skill vessel-receiver-trust |
Assess Receiver Trust | vessel-trust-and-training |
Página de confianza marítima |
| Confianza del receptor sobre un fragmento acotado de flujo (puntuaciones, estados, motivos; sin compuerta) | receiver-trust live |
receiver_trust::assess::assess_stream_excerpt |
receiver_trust_replay |
receiver_trust_replay |
assess_vessel_stream |
igual | Assess Receiver Stream (un registro almacenado) | vessel-trust-and-training |
Página de confianza marítima |
Geometría de satélites y clases de deducción (0,36: geometry buena/degradada/desconocida con motivos y DOP, una label buena/aceptable/mala que siempre se informa, el monitor geometry (nada salvo que la geometría sea mala, y entonces hasta 15 puntos; figura el último en monitors_run cuando decidió, de modo que el recuento de monitores del veredicto incluye la geometría), una class en cada deducción, geometry_model, geometry_summary) |
receiver-trust, receiver-trust live (en el JSON de resultado y en cada línea JSON; el CSV, el SVG, el veredicto de una línea y $PKSHT llevan una deducción de geometría como cualquier otra y, por lo demás, no cambian) |
receiver_trust::geometry, en EpochTrust, Deduction y EpochReport |
receiver_trust, assess_vessel_log, receiver_trust_replay (en los diccionarios devueltos) |
los mismos tres (en el JSON devuelto) | assess_receiver_log, assess_vessel_log, assess_vessel_stream (en la respuesta; la respuesta de un registro de buque conserva geometry_model y geometry_summary); trust_telemetry lo representa |
igual, skills vessel-receiver-trust, trust-telemetry |
las acciones anteriores imprimen la salida de la CLI, que lo incluye | vessel-trust-and-training (en el resultado que carga) |
pending: la página de confianza marítima aún no lo muestra (campos enumerados en docs/MARITIME-TRUST.md, elemento 6 de la vista de Studio) |
receiver-trust live como proceso en ejecución (stdin, archivo seguido, TCP, UDP, --gate, --listen) |
receiver-trust live |
receiver_trust::live::LiveEngine |
N/A | N/A | N/A | N/A | N/A | N/A | Tools: tarjeta Command line (el comando que se ejecuta; un navegador no es un proceso en la ruta de los datos) |
Paquete de evidencias: crear (firmado, ventana de un registro; 0,38: un lab-attestation opcional, la declaración del operador sobre una configuración de laboratorio, registrada en el manifiesto firmado y nunca verificada) |
receiver-trust evidence (--lab-attestation <file.toml>) |
evidence::create_bundle, evidence::create_bundle_attested, surface::evidence_create, surface::evidence_create_attested |
evidence_create (lab_attestation) |
N/A (clave de firma) | create_evidence_pack (lab_attestation_toml) |
/kshana-evidence-pack, skill evidence-pack |
Create Evidence Pack (sin campo de atestación en el cuadro de diálogo en 0,38: pending; la línea de comandos lo admite) | vessel-trust-and-training |
N/A (una clave de firma no debe estar en una página); Tools: tarjeta Command line |
Jammertest como árbitro (0,38): el catálogo publicado de NPRA y el plan de transmisión se leen como verdad programada (import), y un registro de receptor se puntúa frente a ellos por ensayo (score: latencia de detección, omisiones, falsas alarmas, tiempo de recuperación; MODELLED) |
jammertest import, jammertest score |
jammertest::plan, jammertest::score, surface::jammertest_import_json, surface::jammertest_score_json |
jammertest_import, jammertest_score |
jammertest_import, jammertest_score |
jammertest_import, jammertest_score |
/kshana-jammertest, skill jammertest |
N/A (necesita los archivos del plan y un registro en disco; ejecútelo desde un terminal) | N/A (todavía no hay notebook) | pending: una tarjeta Tools para la línea de comandos (la franja y las vistas de Studio son de WS-A) |
Paquete firmado de puntuación de Jammertest (jammertest score --key: el paquete de evidencias de confianza del receptor con el cuadro de puntuación y el calendario dentro de config.json) |
jammertest score --key <keyfile> --out <dir> |
jammertest::score_pack |
N/A (clave de firma) | N/A (clave de firma) | N/A (clave de firma: use create_evidence_pack sobre una ventana, o la línea de comandos) |
N/A | N/A | N/A | N/A (una clave de firma no debe estar en una página); Tools: tarjeta Command line |
Autoinforme del receptor (0,38): UBX-NAV-STATUS spoofDetState y UBX-SEC-SIG se leen en self_report en cada época, y la comparación receiver_self_report (ambos / solo el receptor / solo Kshana / ninguno) en el resultado; no genera ninguna alarma y no cambia ninguna puntuación |
receiver-trust (en el JSON de resultado; jammertest score) |
receiver_trust::ReceiverSelfReport, monitors::SelfReportEpoch, monitors::SelfReportSummary |
receiver_trust, assess_receiver_log (en los diccionarios devueltos) |
receiver_trust (en el JSON devuelto) |
assess_receiver_log (en la respuesta) |
/kshana-assess-receiver |
las acciones anteriores imprimen la salida de la CLI, que lo incluye | N/A | pending: la franja de la página Trust (WS-A; el campo es epochs[].self_report) |
| Formato de registro SBF de Septentrio (0,38, solo lectura: PVTGeodetic, MeasEpoch, RFStatus) | receiver-trust con [log] format = "sbf" |
receiver_trust::ingest::read_sbf, LogFormat::Sbf |
receiver_trust, assess_receiver_log (format = "sbf", registro como base64) |
igual | assess_receiver_log (base64) |
/kshana-assess-receiver |
las acciones anteriores | N/A | N/A (la página Trust no ofrece la carga de registros binarios en 0,38) |
receiver-trust live --serial <device> [--baud n]: una fuente NMEA serie o USB, solo lectura (abre el dispositivo para leer, nunca escribe en el receptor; --configure se rechaza) |
receiver-trust live --serial |
N/A (un dispositivo y un proceso) | N/A | N/A | N/A | N/A | N/A | N/A | Tools: tarjeta Command line (el comando que se ejecuta; un navegador no es un proceso en la ruta de los datos) |
| Paquete de evidencias: crear (firmado, ventana de un registro) | receiver-trust evidence |
evidence::create_bundle, surface::evidence_create |
evidence_create |
N/A (clave de firma) | create_evidence_pack |
/kshana-evidence-pack, skill evidence-pack |
Create Evidence Pack | vessel-trust-and-training |
N/A (una clave de firma no debe estar en una página); Tools: tarjeta Command line |
| Paquete de ida y vuelta de laboratorio (escenario, condiciones de ensayo, registro del receptor y puntuación vinculados por hash) | evidence round-trip |
evidence::build_round_trip_pack, surface::evidence_round_trip |
evidence_round_trip |
N/A (clave de firma) | create_round_trip_pack |
/kshana-evidence-pack |
N/A (las acciones de JetBrains están ligadas a un único archivo seleccionado; el paquete necesita un escenario, unas condiciones, un registro y una clave: ejecútelo desde el terminal del IDE) | N/A (una clave de firma no debe estar en una página); Tools: tarjeta Command line | |
| Paquete de evidencias: verificar | evidence verify |
evidence::verify_bundle |
evidence_verify |
evidence_verify |
verify_evidence_pack |
igual | Verify Evidence Pack (solo con clave fijada) | vessel-trust-and-training |
Tools: Evidence packs (verificar, adjuntar marca de tiempo) |
Telemetría de confianza (Prometheus, syslog CEF/LEEF, OTLP; 0,38: format = "mqtt", descubrimiento de Home Assistant y líneas de estado; --mqtt-tcp publica desde la CLI) |
trust-telemetry |
telemetry |
trust_telemetry |
trust_telemetry (salida de texto; sin socket) |
trust_telemetry |
/kshana-trust-telemetry, skill trust-telemetry |
Render Trust Telemetry (un resultado almacenado) | vessel-trust-and-training |
Tools: tarjeta Telemetry (pestaña Command line; solo formatos, sin sockets) |
Entradas de máquina y de sensor (0,38): receiver-trust formatos rtklib-pos, novatel, gnss-sdr y [log.imu] (csv, euroc) |
receiver-trust (escenario [log] format) |
receiver_trust::machines |
receiver_trust, assess_receiver_log (en línea) |
receiver_trust (en línea) |
assess_receiver_log (texto/base64 en línea; un path se rechaza) |
/kshana-assess-receiver |
Assess Receiver Trust | vessel-trust-and-training |
N/A (la página Trust de Studio lee los formatos que enumera; los formatos nuevos llegarán con su próximo traslado) |
Registro IMU a parámetros de sensor híbrido/de fusión (tabla [accel_classical] a partir de un registro estacionario, ajuste de Allan) |
imu-fit |
surface::imu_fit, receiver_trust::machines::imu_fit |
imu_fit |
imu_fit |
fit_imu_log |
/kshana-fit-imu |
N/A (todavía no hay acción de IDE) | N/A | N/A (el editor de escenarios de Studio admite la tabla pegada) |
Nodo ROS 2, repetidor UDP de GNSS-SDR, trust-telemetry --mqtt-tcp (integrations/ros2, integrations/gnss-sdr) |
procesos | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A (procesos de larga duración y sockets; formas de texto: trust_telemetry con mqtt) |
Verificación OSNMA de Galileo de páginas I/NAV o de un flujo UBX (docs/OSNMA.md) |
osnma verify |
osnma::cli::verify_report, surface::osnma_verify |
osnma_verify |
osnma_verify |
N/A (un flujo largo de receptor sin procesar conviene a la CLI y a Python; una herramienta de agente añadiría una superficie de entrada grande sin ningún beneficio) | N/A (los comandos del plugin se ejecutan sobre el servidor MCP, que no tiene herramienta OSNMA por el motivo indicado en la celda de MCP; ejecute kshana osnma verify) |
N/A (el resultado no significa nada sin una raíz de Merkle o una clave pública de confianza obtenidas del ICD por otra vía y, para la vigencia, una hora de referencia independiente; una acción de clic derecho no tiene dónde recibirlas, y un valor predeterminado sin fijar se leería como verificación; ejecute kshana osnma verify) |
N/A (entra un flujo, sale un informe JSON; sin notebook) | Tools: OSNMA |
| NMEA de entrenamiento con un registro del instructor | nmea-scenario |
nmea_synth::generate_from_toml |
nmea_training |
nmea_training |
generate_training_nmea |
/kshana-training-scenario, skill training-nmea-scenario |
Generate Training NMEA | vessel-trust-and-training |
Página de análisis posterior del entrenamiento |
| NMEA de entrenamiento transmitido a una dirección TCP o UDP | nmea-scenario --tcp/--udp |
nmea_synth::stream |
N/A | N/A | N/A | N/A | N/A | N/A | Tools: tarjeta Command line (transmite a una dirección) |
| Mapa de interferencias (ADS-B, AIS) | interference-map adsb|ais |
interference_map::api |
interference_map |
interference_map |
build_interference_map |
/kshana-interference-map, skill interference-map-route-exposure |
Build Interference Map | interference-map-route-exposure |
Página del mapa de interferencias |
| Región del emisor (ADS-B, AIS; MODELLED) | interference-map locate |
interference_map::api::emitter_regions_from_adsb_csv, emitter_regions_from_readsb_traces, emitter_regions_from_ais_csv |
interference_emitter_regions |
interference_emitter_regions |
N/A (aún no incluido; las superficies de Rust, Python y WASM lo cubren) | N/A | N/A | N/A (la publicación de regiones de emisores en el observatorio público es una decisión aparte del propietario y está desactivada) | |
| Exposición de ruta | route-exposure |
interference_map::api::route_exposure |
route_exposure |
route_exposure |
route_exposure |
igual | Route Exposure | interference-map-route-exposure |
Página del mapa de interferencias |
Plugin de Signal K y alimentación de compuerta de OpenCPN (docs/MARINE-INTEGRATIONS.md) |
integrations/, receiver-trust live --gate --listen |
N/A (procesos) | N/A | N/A | N/A | solo guía práctica: /kshana-marine-integrations, skill marine-integrations |
N/A | N/A | Tools: tarjeta Command line (guía práctica; un despliegue) |
| Exportación de test-bench (CSV de movimiento, NMEA, puntos de ruta, eventos para un simulador de laboratorio) | bench-export |
interop::testbench::export_with_notes, surface::bench_export |
bench_export |
bench_export |
export_test_bench |
/kshana-bench-export, skill test-bench-export |
Export Test-Bench Files | compliance-and-test-bench |
Tools: Test-bench export |
| Correspondencia de compliance a partir de ejecuciones (a qué filas de marcos públicos aportan evidencias a favor las ejecuciones) | compliance-report |
compliance::assess_texts, surface::compliance_report |
compliance_report |
compliance_report |
compliance_report |
/kshana-compliance-report, skill compliance-mapping |
Build Compliance Report | compliance-and-test-bench |
Tools: Compliance mapping |
| Tablas y fuentes de la correspondencia de compliance | compliance-report --mapping, --sources |
compliance::mapping, surface::compliance_mapping |
compliance_mapping |
compliance_mapping |
compliance_mapping |
igual | Show Compliance Mapping | N/A | Tools: Compliance mapping |
| Paquetes de normas (conjuntos de escenarios puntuados con umbrales fijados antes de la ejecución: perfiles de ensayo DHS RPCF, IMO MSC.1/Circ.1575, ICAO Doc 9849 Apéndice F) | standards-pack |
standards_pack, surface::standards_pack_list, surface::standards_pack_run |
standards_pack_list, standards_pack_run |
standards_pack_list, standards_pack_run |
list_standards_packs, run_standards_pack |
/kshana-standards-pack |
N/A (las acciones de JetBrains están ligadas a un archivo seleccionado; los paquetes están incorporados y no necesitan ninguno: ejecute kshana standards-pack desde el terminal del IDE) |
N/A (las tarjetas Tools de Studio para paquetes pertenecen al flujo de trabajo de Studio; la CLI o la salida de cualquier superficie alimenta la tarjeta Compliance mapping) | |
Comprobación de envíos de socios de datos (formato y metadatos de un envío de datos medidos, kshana.partner-submission/1; no puntúa nada) |
partner check |
partner::check_file, partner::check |
N/A (la comprobación lee archivos locales y su SHA-256; la API de Rust es la superficie de biblioteca y la CLI es la herramienta) | N/A (no hay sistema de archivos en la compilación para navegador) | N/A (MCP rechaza por diseño las fuentes de archivo (solo texto en línea)) | N/A (los comandos de barra llaman a herramientas MCP, y esta comprobación necesita archivos en disco) | N/A (las acciones de JetBrains están ligadas a un archivo seleccionado; un envío es una carpeta) | N/A (todavía no hay notebook) | N/A (Studio no tiene acceso al sistema de archivos; ejecute el comando) |
LunaNet Augmented Forward Signal: códigos, SB1/CRC/entrelazador y una comprobación frente a LSIS-AFS V1.0 (docs/LUNANET-AFS.md) |
lunanet-afs-check; señales lunanet-afs-i, lunanet-afs-q en iq scene/acquire/track/sweep |
iq::signals::lunanet, iq::lunanet_afs, surface::lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate |
lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate; iq_scene etc. con los dos nombres de señal |
lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate; iq_scene etc. mediante las ejecuciones breves en memoria |
lunanet_afs_check |
/kshana-lunanet-afs-check |
N/A (las acciones de JetBrains están ligadas a un archivo seleccionado; ejecute kshana lunanet-afs-check desde el terminal del IDE) |
N/A (una tarjeta de Studio es un elemento del flujo de trabajo de Studio; la CLI y todas las demás superficies lo incluyen) | |
Geometría del cielo bajo un perfil del horizonte: satélites visibles y enmascarados, DOP, covarianza ENU, elipse de error (docs/SKYLINE.md) |
sky |
geometry::sky_geometry, surface::sky_geometry |
sky_geometry |
sky_geometry |
sky_geometry |
/kshana-run (remite a la herramienta) |
N/A (un skyplot interactivo es una vista de navegador; kshana sky cubre los números) |
notebooks/geometry.ipynb |
— (la vista Geometry de Studio se añade por separado en 0,36) |
| Nube Monte Carlo del cielo (errores de mínimos cuadrados con semilla, RMS, contención del 95 %) | sky --monte-carlo <n> --seed <s> |
geometry::sky_monte_carlo |
sky_monte_carlo |
sky_monte_carlo |
N/A (muestras en bloque que un agente debe resumir, no transportar) | N/A (sin herramienta MCP) | N/A (como arriba) | N/A | — (como arriba) |
Preajustes y perfiles de horizonte (docs/SKYLINE.md) |
skyline --preset <name>, --presets, --profile <file> |
geometry::skyline_presets, geometry::skyline_profile |
skyline_presets, skyline_profile |
skyline_presets, skyline_profile |
sky_geometry (skyline_preset) |
igual | N/A (como arriba) | N/A | — (como arriba) |
| Skyplot como SVG | sky --svg |
geometry::skyplot_svg |
skyplot_svg |
skyplot_svg |
N/A (un agente lee los números de sky_geometry) |
N/A | N/A (como arriba) | N/A | — (como arriba) |
Sección de horizonte en un escenario ([skyline]: órbita e integridad con user_site, gnss-sim, jamming, leo-pvt, leo-pass, nmea-scenario) |
el archivo de escenario | skyline::SkylineCfg |
run, nmea_training |
run, nmea_training |
run_scenario, generate_training_nmea |
/kshana-run |
Run Kshana Scenario | N/A | — |
Enlace óptico de temporización a través de la atmósfera: disponibilidad por emplazamiento, diversidad de emplazamientos, técnicas de mejora, acoplamiento entre interrupción y holdover (tipo de escenario optical-atmosphere; docs/OPTICAL-ATMOSPHERE.md; MODELLED, emplazamientos ILLUSTRATIVE, orientativo) |
kshana scenarios/optical-atmosphere-network.toml, scenarios/optical-atmosphere-techniques.toml |
optical_atmosphere, optical_weather, optical_sitediv, optical_techniques, optical_outage_holdover |
run, run_typed |
run |
run_scenario |
/kshana-run |
Run Kshana Scenario | optical-atmosphere |
pending: aún no hay vista de Studio; el escenario se ejecuta en el ejecutor de escenarios de Studio y en la tarjeta Command line de Tools |
Prueba de holdover puntuada a partir de un registro de error de tiempo aportado por el operador: línea base, GNSS retirado por el operador, holdover, recuperación, medidos frente a las máscaras de la ITU-T (tipo de escenario holdover-test; docs/TIMING-HIL.md; MODELLED, orientativo; Kshana no transmite ni controla nada) |
kshana scenarios/holdover-test-example.toml, scenarios/holdover-test-ptp4l.toml |
holdover_test, telecom_timing |
run, run_typed |
run (samples o clock_log.text en línea; las claves de archivo se rechazan) |
run_scenario (solo en línea) |
/kshana-run |
Run Kshana Scenario | N/A (no hay notebook en 0,38; los escenarios de ejemplo se ejecutan en cualquier notebook mediante run) |
pending: aún no hay vista de Studio; el escenario se ejecuta en el ejecutor de escenarios de Studio y en la tarjeta Command line de Tools |
Presupuesto de errores de navegación y temporización de una cadena de fases de misión desde el lanzamiento hasta la entrada: ocho tipos de fase, reglas de traspaso, conversiones de marco y de escala de tiempo, una superposición de la red terrestre, el margen frente a los requisitos indicados y el eslabón más débil (tipo de escenario mission-thread; docs/MISSION-THREAD.md; MODELLED, entradas ILLUSTRATIVE, de carácter consultivo; solo fuentes públicas, sin respaldo) |
kshana scenarios/mission-thread-artemis-class.toml (desde una copia del repositorio: lee un recorte confirmado del kernel de la Luna) |
mission_thread |
run, run_typed |
run (moon_kernel_path es una clave de archivo y se rechaza; sin un kernel la Luna es la serie analítica y la fila de conversión lo indica) |
run_scenario (solo en línea; la clave del kernel se rechaza) |
/kshana-run |
Run Kshana Scenario | N/A (no hay cuaderno; el ejemplo se ejecuta en cualquier cuaderno mediante run desde una copia del repositorio) |
pending: aún no hay vista de Studio; el escenario se ejecuta en el ejecutor de escenarios de Studio y en la tarjeta Command line de Tools |
GNSS más allá de la constelación: disponibilidad de señales de GPS, GLONASS, Galileo, BDS, QZSS y NavIC para un usuario en una capa o en una trayectoria de LEO a transferencia lunar (folleto, patrón de transmisión paramétrico o medido, medio de rayo rasante, diseño de receptor de señal débil), un EKF GNSS a bordo para naves de órbita alta y de transferencia lunar, y navegación relativa en formación (tipo de escenario gnss-ssv; docs/SSV.md; MODELLED, orientativo; comparado con el folleto SSV del ICG bajo un preregistro, xval/gnss-ssv/RESULTS.md) |
kshana scenarios/gnss-ssv-shell.toml, gnss-ssv-heo.toml, gnss-ssv-lunar-weak.toml, gnss-ssv-nav-lunar.toml, gnss-ssv-formation-heo.toml |
ssv |
run, run_typed |
run (en línea; transmit.pattern_text lleva en línea un patrón medido) |
run_scenario (solo en línea; transmit.pattern_csv se rechaza) |
/kshana-run |
Run Kshana Scenario | N/A (no hay notebook en 0,38; los escenarios se ejecutan en cualquier notebook mediante run) |
pending: aún no hay vista de Studio; el escenario se ejecuta en el ejecutor de escenarios de Studio y en la tarjeta Command line de Tools |
Órbita y superficie lunares como infraestructura de navegación y geodésica: coherencia de la determinación de órbita, resolución de ambigüedades de fase de portadora, coestimación de marcos, vínculo espacial y sensibilidad a los números de Love (tipo de escenario lunar-infrastructure, study = ...; docs/LUNAR-INFRASTRUCTURE.md; MODELLED, entradas ILLUSTRATIVE, orientativo) |
kshana scenarios/lunar-infrastructure-od-consistency.toml (y los otros cinco ejemplos hermanos) |
lunar_infra |
run, run_typed |
run |
run_scenario |
/kshana-run |
Run Kshana Scenario | N/A (no hay notebook; los ejemplos se ejecutan en cualquier notebook mediante run) |
pending: aún no hay vista de Studio; los escenarios se ejecutan en el ejecutor de escenarios de Studio y en la tarjeta Command line de Tools |
Registros de reloj medidos leídos a una serie de fase: linuxptp ptp4l, phc2sys, ts2phc, chrony tracking y statistics, junto con reloj RINEX, TimeLab y TICC ([clock_log] / [series.clock_log]; docs/CLOCK-LOG-FORMATS.md; MODELLED, ninguna referencia independiente compara un análisis con otro lector) |
un escenario con [clock_log] |
clock_log::read_input |
run |
run (text solo en línea; sin lecturas de archivos en un navegador) |
run_scenario (text solo en línea; path se rechaza) |
/kshana-run |
Run Kshana Scenario | N/A (no hay notebook; un registro es un archivo que aporta el usuario) | pending: no hay vista de Studio; el ejecutor de escenarios de Studio admite el texto del escenario |
Enlace óptico de temporización a través de la atmósfera: disponibilidad por emplazamiento, diversidad de emplazamientos, técnicas de mejora, acoplamiento entre interrupción y holdover (tipo de escenario optical-atmosphere; docs/OPTICAL-ATMOSPHERE.md; MODELLED, emplazamientos ILLUSTRATIVE, orientativo) |
kshana scenarios/optical-atmosphere-network.toml, scenarios/optical-atmosphere-techniques.toml |
optical_atmosphere, optical_weather, optical_sitediv, optical_techniques, optical_outage_holdover |
run, run_typed |
run |
run_scenario |
/kshana-run |
Run Kshana Scenario | optical-atmosphere |
la vista Optical PNT de Studio (/studio/optical/, 0,38) dibuja los resultados registrados de los dos escenarios incluidos, con la serie temporal con semilla; el escenario también se ejecuta en el ejecutor de escenarios de Studio y en la tarjeta Command line de Tools |
Descarga de polígonos de tierra (interference-map fetch-land) |
--allow-network |
Código de la CLI | N/A | N/A | N/A | N/A | N/A | N/A | Tools: tarjeta Command line (necesita --allow-network) |
Benchmark (kshana-bench v1: puntuar una entrega frente a un archivo de verdad, página de clasificación; docs/BENCH.md, MODELLED, orientativo) |
bench score, bench leaderboard |
bench::score, bench::site::leaderboard_html, surface::bench_score, surface::bench_leaderboard |
bench_score, bench_leaderboard |
bench_score, bench_leaderboard |
score_benchmark, render_leaderboard |
N/A (las dos herramientas MCP lo incluyen; un comando de barra sobre dos archivos JSON no aporta nada) | N/A (no es una acción de IDE) | N/A (los notebooks educativos son un flujo de trabajo aparte) | N/A (la clasificación es la página estática bench/site/, trasladada al sitio tal cual; Studio no calcula nada) |
Herramientas de datos y de conjunto reservado del benchmark (bench truth|cases|baseline|seal|reveal-check|manifest|verify-manifest|validate) |
igual | bench::tasks, bench::seal |
N/A | N/A | N/A | N/A | N/A | N/A | N/A (la CLI lee directorios de conjuntos de datos y archivos de reloj y, para seal, un archivo de semilla secreta; una semilla no debe pasar por un agente ni por una página) |
Producto diario del observatorio y estudio de sensibilidad (interference-map daily|sensitivity; docs/observatory/METHOD.md) |
interference-map daily, interference-map sensitivity |
interference_map::observatory |
N/A | N/A | N/A | N/A | N/A | N/A | N/A (los comandos leen un directorio de archivo con cientos de miles de archivos, escriben cuatro archivos, entre ellos un PNG, y aplican el retraso de publicación de 24 h frente al reloj de la máquina que publica; el mapa CSV está en todas las superficies de la fila anterior) |
Studio#
Kshana Studio es la aplicación web construida sobre la compilación WebAssembly, de modo que existe una vista de Studio donde la columna WASM tiene un punto de entrada, y donde no lo tiene la celda remite a una tarjeta Command line (el comando que se ejecuta, con sus argumentos), nunca a un resultado calculado por Studio. Páginas (kshana.dev/studio/, en el cliente): Maritime trust (trust/), Training debrief (training/), Interference map (interference/), Geometry (geometry/: un skyplot representativo, perfil del horizonte, DOP, elipse de error y nube Monte Carlo del motor; 0,36), Lunar station (lunar/: la cobertura modelada de una estación de referencia lunar a partir del tipo lunar-station-coverage; 0,36) y la página Tools, cuyas secciones son OSNMA (#osnma), Evidence packs (#evidence), Test-bench export (#bench), Compliance mapping (#compliance), la pestaña Command line (tarjeta de telemetría, IQ, integraciones marinas: comandos que se ejecutan) y Use from your AI assistant (#ai). Un — en la columna de Studio de la tabla de subcomandos es un comando que no es una de las 0,35 capacidades que presenta Studio.
Por qué las celdas N/A son N/A#
Signal K y OpenCPN. Son consumidores del proceso en vivo en ejecución y de su compuerta TCP, de modo que son despliegues de línea de comandos; el plugin lleva un comando de guía práctica y una skill que remiten a
docs/MARINE-INTEGRATIONS.mdy no llaman a ninguna herramienta.Un proceso en ejecución.
receiver-trust livemantiene abierto un flujo, puede servir el flujo con compuerta a cualquier número de clientes TCP y se ejecuta hasta que se detiene. Una llamada de Python, una llamada de navegador, una llamada a una herramienta MCP y una acción de IDE devuelven cada una su resultado al terminar y no mantienen abierto un socket para otros. Python, WASM y MCP llevan en su lugar la forma acotada: un fragmento puntuado por el mismo motor, en el esquema en vivo (líneas JSON 1,3:position, una declaraciónadvisoryy lageometryde satélites en cada época, unaclassen cada deducción), sin socket y sin compuerta (la compuerta marca una posición como no válida en un flujo en vivo, algo que solo un proceso situado en la ruta de los datos puede hacer). Dos comportamientos pertenecen al proceso y no están en las herramientas de fragmentos: un flujo reproducido más rápido que el tiempo real mediantereceiver-trust livesin--replayse puntúa como no fiable (su hora no coincide con el reloj del anfitrión; un fragmento se lee sin reloj del anfitrión), y--udp <port>y--listen tcp:<port>se enlazan a la dirección de bucle local salvo que se indique una dirección.Telemetría de confianza. WASM lleva
trust_telemetry(input, format, host, input_kind, options_json): los mismos codificadores, que devuelven texto de Prometheus, líneas de syslog CEF o LEEF, o la carga JSON de OTLP para un flujo o un resultado por lotes, sin reloj (las líneas de syslog llevan la marca de tiempo nula de la RFC 5424) y sin enviar nada. Python (trust_telemetry) y MCP (trust_telemetry, con el comando del plugin/kshana-trust-telemetry) también la llevan. El resto detrust-telemetrysirve métricas de Prometheus, envía syslog y exporta OpenTelemetry desde un flujo en ejecución, por lo que es un proceso por naturaleza. Guía práctica: canalice el comando en vivo hacia él, o reproduzca un archivo de resultado (kshana trust-telemetry --result session.result.json --print-metrics); véaseTRUST-TELEMETRY.md. Un agente o un notebook que quiera las puntuaciones por época llama en su lugar a las funciones por lotes o de fragmentos.Crear un paquete en el navegador. Firmar necesita una clave privada, que no debe pasar por una página web; la compilación para navegador verifica paquetes (
evidence_verify) y las demás superficies los crean. La herramienta MCP nunca devuelve ni registra la semilla de firma y, sin ella, firma con una clave de un solo uso (integridad, no identidad); para una clave que importe, use la CLI. Lo mismo vale para transmitir NMEA de entrenamiento a una dirección: Python, WASM y MCP devuelven el texto generado, y la CLI lo envía.Suites de estudio.
--study <suite.toml>ejecuta un manifiesto que nombra archivos de escenario hermanos en disco. Las superficies en memoria admiten texto de escenario, no una carpeta de archivos, de modo que ejecutan cada miembro como un escenario (run,run_scenario,run_all).IQ de GNSS en el navegador y grabaciones que se reescriben. Una grabación son gigabytes de muestras, que una página no puede contener y que el protocolo MCP no debe transportar, de modo que WASM no tiene funciones de IQ y las herramientas MCP leen y escriben en un único directorio de trabajo (
KSHANA_MCP_IQ_DIR, con un presupuesto de muestras por llamada).iq extract,convertydecimateexisten para reescribir grabaciones en disco y siguen siendo solo de línea de comandos.iq labfityiq conditionsllevan texto, por lo que MCP los admite en línea (se rechaza un registro que nombra un archivo).La descarga de tierra. Es el único comando que abre una conexión de red, necesita el
curldel sistema y un--allow-networkexplícito, y comprueba un SHA-256 fijado. El navegador no tienecurl, y un agente de IA no debe obtener datos en nombre de un usuario; las demás superficies admiten en su lugar el archivo de tierra como texto (land_geojson).Archivos de trazas y directorios.
interference-map adsbsobre un directorio de trazas de readsb lee archivos del disco y es solo de línea de comandos; las superficies en memoria admiten texto CSV.
Cada subcomando de la línea de comandos y quién lo cubre#
Una fila por subcomando o modo de kshana --help. yes indica el punto de entrada; no es una laguna con su motivo; N/A es una superficie que no puede soportarlo por el motivo indicado arriba o en la última columna. Las acciones de JetBrains ejecutan la línea de comandos, de modo que un N/A ahí indica por qué no existe una acción de IDE.
| Subcomando | Python | WASM | MCP | Plugin | JetBrains | Notebook | Studio | Nota |
|---|---|---|---|---|---|---|---|---|
kshana <scenario.toml> (ejecutar, gráfico, tabla) |
run, run_full, run_typed |
run, chart_svg, summary, table_csv, run_all |
run_scenario, report_scenario, export_table_csv |
/kshana-run |
Run Kshana Scenario | quantum-vs-classical-gdop |
— | |
--validate <scenario.toml> |
validate_toml |
error_kind (una ejecución lanza un error ante un escenario no válido) |
validate_scenario |
/kshana-run |
Validate Scenario | — | ||
--study <suite.toml> |
N/A | N/A | N/A | N/A | N/A (nombra archivos hermanos en disco) | — | Una suite nombra archivos de escenario hermanos en disco (N/A arriba); ejecute cada miembro como un escenario | |
--export-sp3/-omm/-oem |
export_sp3, export_omm, export_oem |
export_sp3, export_omm, export_oem |
export_sp3, export_omm, export_oem |
/kshana-run |
Export Scenario | — | ||
--export <czml,kml,geojson,stk,sigmf> |
export_scenario, export_formats |
export_scenario, export_formats |
export_interop, list_export_formats |
/kshana-run |
Export Scenario | — | Los archivos se devuelven como texto (utf-8) o como base64 (las muestras SigMF) |
|
--import-route |
import_route |
import_route |
import_route |
/kshana-import-route |
Import Route | — | ||
--animate <svg,html,frames> |
animate_scenario |
animate_scenario |
animate_scenario |
/kshana-run |
Animate Scenario | — | Como máximo 120 fotogramas por llamada; las secuencias más largas usan la CLI | |
sky <request> (o indicadores), --monte-carlo, --svg |
sky_geometry, sky_monte_carlo, skyplot_svg |
sky_geometry, sky_monte_carlo, skyplot_svg |
sky_geometry (sin Monte Carlo, sin SVG) |
/kshana-run |
N/A (véase la fila de la capacidad) | — | Geometría MODELLED; salida en JSON o SVG | |
skyline --preset, --presets, --profile |
skyline_presets, skyline_profile |
skyline_presets, skyline_profile |
sky_geometry (skyline_preset) |
/kshana-run |
N/A (véase la fila de la capacidad) | — | Preajustes REPRESENTATIVE con procedencia | |
kinds [--json] |
scenario_kinds, list_kinds |
list_kinds |
list_scenario_kinds |
/kshana-run |
List Scenario Kinds | — | ||
example [<name>] |
list_examples, get_example |
list_examples, get_example |
list_example_scenarios, get_example_scenario |
/kshana-run |
Insert Example Scenario | — | Las características python y wasm compilan el texto de ejemplo en el binario (unos 0,7 MB) |
|
receiver-trust <scenario.toml> (por lotes) |
receiver_trust, assess_vessel_log |
receiver_trust, assess_vessel_log |
assess_receiver_log, assess_vessel_log |
/kshana-assess-receiver |
Assess Receiver Trust | vessel-trust-and-training |
Página de confianza marítima | |
receiver-trust live |
fragmento: receiver_trust_replay |
fragmento: receiver_trust_replay |
fragmento: assess_vessel_stream |
fragmento | Assess Receiver Stream (un registro almacenado, --file) |
Página de confianza marítima (fragmento); tarjeta Command line para el proceso | Un proceso en ejecución; el fragmento no tiene socket ni compuerta (N/A arriba) | |
trust-telemetry |
trust_telemetry |
trust_telemetry |
trust_telemetry |
/kshana-trust-telemetry |
Render Trust Telemetry (un resultado almacenado) | vessel-trust-and-training |
Tools: tarjeta Telemetry (pestaña Command line; solo formatos, sin sockets) | Solo texto en todas las superficies, sin socket; los exportadores en ejecución son un proceso (véase arriba) |
imu-fit <imu.csv> |
imu_fit |
imu_fit |
fit_imu_log |
/kshana-fit-imu |
N/A | — | Entra texto, sale JSON; MODELLED | |
osnma verify <pages|vectors.csv|stream.ubx> |
osnma_verify |
osnma_verify |
N/A (véase arriba) | N/A (véase arriba) | N/A (véase arriba) | Tools: OSNMA | El mismo JSON que --json, con la declaración orientativa en su campo advisory; la lectura del archivo pasa a ser bytes en memoria. Solo estado de autenticación: no es un servicio de integridad de la navegación, y no se afirma ningún rendimiento antisuplantación |
|
receiver-trust evidence (crear un paquete) |
evidence_create |
N/A | create_evidence_pack |
/kshana-evidence-pack |
Create Evidence Pack | vessel-trust-and-training |
Tools: tarjeta Command line (ninguna clave de firma en una página) | Ninguna clave de firma en un navegador |
jammertest import, jammertest score |
jammertest_import, jammertest_score |
jammertest_import, jammertest_score |
jammertest_import, jammertest_score |
/kshana-jammertest |
N/A (terminal; necesita archivos) | pending: Tools: tarjeta Command line | El plan y el catálogo se dan como texto; el paquete firmado (--key) es solo de línea de comandos (clave de firma) |
|
evidence round-trip |
evidence_round_trip |
N/A | create_round_trip_pack |
/kshana-evidence-pack |
N/A (como arriba) | Tools: tarjeta Command line (ninguna clave de firma en una página) | Ninguna clave de firma en un navegador; no se escribe ni se reproduce ninguna señal | |
evidence verify |
evidence_verify |
evidence_verify |
verify_evidence_pack |
/kshana-evidence-pack |
Verify Evidence Pack (solo con clave fijada) | vessel-trust-and-training |
Tools: Evidence packs (verificar, adjuntar marca de tiempo) | |
evidence keygen |
evidence_keygen |
N/A | N/A | N/A | N/A (el plugin nunca crea ni lee una clave privada) | Tools: tarjeta Command line | Python devuelve la clave en memoria con una advertencia; una clave privada no debe pasar por una conversación ni por una página | |
evidence attach-timestamp |
evidence_attach_timestamp |
evidence_attach_timestamp |
attach_evidence_timestamp |
/kshana-evidence-pack |
Attach Timestamp | Tools: Evidence packs (verificar, adjuntar marca de tiempo) | Token como bytes o base64, paquete actualizado devuelto en memoria; no se comprueba la firma de la autoridad (openssl ts -verify) |
|
nmea-scenario <scenario.toml> |
nmea_training |
nmea_training |
generate_training_nmea |
/kshana-training-scenario |
Generate Training NMEA | vessel-trust-and-training |
Página de análisis posterior del entrenamiento | |
nmea-scenario --tcp/--udp |
N/A | N/A | N/A | N/A | N/A (véase la Nota) | Tools: tarjeta Command line | Envía a una dirección (N/A arriba) | |
interference-map adsb|ais (CSV) |
interference_map |
interference_map |
build_interference_map |
/kshana-interference-map |
Build Interference Map | interference-map-route-exposure |
Página del mapa de interferencias | |
interference-map adsb (directorio de trazas) |
N/A | N/A | N/A | N/A | N/A (véase la Nota) | Tools: tarjeta Command line | Lee un directorio (N/A arriba) | |
interference-map locate (CSV) |
interference_emitter_regions |
interference_emitter_regions |
N/A (aún no incluido) | N/A | N/A | — | Regiones estimadas del emisor, MODELLED; los directorios de trazas y --tdoa son solo de línea de comandos |
|
interference-map fetch-land |
N/A | N/A | N/A | N/A | N/A (véase la Nota) | Tools: tarjeta Command line | Acceso a la red (N/A arriba) | |
interference-map daily, sensitivity |
N/A | N/A | N/A | N/A | N/A (véase la Nota) | — | Lee un directorio de archivo y escribe archivos; el retraso de publicación se aplica en la máquina que publica (N/A arriba) | |
bench score |
bench_score |
bench_score |
score_benchmark |
N/A (la herramienta MCP lo incluye) | N/A | — | Entra texto, sale texto; no se lee ni se escribe nada | |
bench leaderboard |
bench_leaderboard |
bench_leaderboard |
render_leaderboard |
N/A (la herramienta MCP lo incluye) | N/A | la página estática bench/site/ |
Texto HTML | |
bench truth|cases|baseline|seal|reveal-check|manifest|verify-manifest|validate |
N/A | N/A | N/A | N/A | N/A | — | Archivos de conjuntos de datos y una semilla secreta (N/A arriba) | |
route-exposure |
route_exposure |
route_exposure |
route_exposure |
/kshana-interference-map |
Route Exposure | interference-map-route-exposure |
Página del mapa de interferencias | |
bench-export |
bench_export |
bench_export |
export_test_bench |
/kshana-bench-export |
Export Test-Bench Files | Tools: Test-bench export | Devuelve texto, no escribe nada; sin señal | |
compliance-report |
compliance_report |
compliance_report |
compliance_report |
/kshana-compliance-report |
Build Compliance Report | Tools: Compliance mapping | ||
compliance-report --mapping, --sources |
compliance_mapping |
compliance_mapping |
compliance_mapping |
/kshana-compliance-report |
Show Compliance Mapping | — | ||
iq scene |
iq_scene, iq_scene_broadcast |
N/A | iq_scene |
/kshana-iq |
N/A (las grabaciones son gigabytes de archivos; véase la Nota) | — | Las muestras son archivos. --format sdrx[:ci16_le] (o una ruta de salida que termine en .sdrx) escribe metadatos ION GNSS SDR junto a las muestras: la CLI y MCP (format: "sdrx") los escriben; Python devuelve las muestras en memoria y no escribe ningún archivo, de modo que los metadatos no tienen forma en Python (N/A) |
|
standards-pack list, run, rows, tests |
standards_pack_list, standards_pack_run |
standards_pack_list, standards_pack_run |
list_standards_packs, run_standards_pack |
/kshana-standards-pack |
N/A (como arriba) | Tools: tarjeta Command line | Los escenarios están incorporados; no hay sistema de archivos; rows y tests imprimen las tablas de documentación confirmadas y son solo de CLI |
|
partner check <submission.toml> |
N/A | N/A | N/A | N/A | N/A | — | Lee un archivo de envío y su archivo de datos en disco y verifica el SHA-256; ninguna de esas superficies tiene la carpeta. Solo formato y metadatos, nada puntuado; véase docs/PARTNER-DATA.md |
|
lunanet-afs-check spec, symbols, generate |
lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate |
lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate |
lunanet_afs_check |
/kshana-lunanet-afs-check |
N/A (como arriba) | — | Los flujos de símbolos son texto de 0 y 1, de 4 MiB como máximo (MCP) o 100 fotogramas generados por llamada; no se verifican LDPC ni CRC-24Q de las subtramas 2 a 4; no se escribe ninguna señal | |
iq scene |
iq_scene, iq_scene_broadcast |
N/A | iq_scene |
/kshana-iq |
N/A (las grabaciones son gigabytes de archivos; véase la Nota) | — | Las muestras son archivos | |
iq acquire |
iq_acquire, iq_acq_surface |
N/A | iq_acquire |
/kshana-iq |
N/A (las grabaciones son gigabytes de archivos; véase la Nota) | — | ||
iq track |
iq_track, iq_loop_designs |
N/A | iq_track |
/kshana-iq |
N/A (las grabaciones son gigabytes de archivos; véase la Nota) | — | ||
iq sweep |
iq_sweep |
N/A | iq_sweep |
/kshana-iq |
N/A (las grabaciones son gigabytes de archivos; véase la Nota) | — | ||
iq labfit |
iq_labfit |
N/A | iq_labfit (registros en línea, sin archivos) |
/kshana-iq |
N/A (las grabaciones son gigabytes de archivos; véase la Nota) | — | ||
iq frontend |
iq_frontend |
N/A | iq_frontend |
/kshana-iq |
N/A (las grabaciones son gigabytes de archivos; véase la Nota) | — | ||
iq monitor |
iq_monitor |
N/A | iq_monitor |
/kshana-iq |
N/A (las grabaciones son gigabytes de archivos; véase la Nota) | — | --follow [--idle-timeout <s>] lee una grabación SigMF que todavía se está escribiendo, solo recepción (iq::io::follow::open_sigmf_follow en Rust): N/A para Python y MCP, porque una llamada que espera a que un archivo crezca no devuelve su resultado cuando termina el trabajo, el mismo motivo por el que receiver-trust live también es solo de línea de comandos; la grabación con su longitud actual se procesa mediante iq_monitor |
|
iq campaign, iq campaign report |
iq_campaign, iq_campaign_report |
N/A | iq_campaign, iq_campaign_status |
/kshana-iq |
N/A (las grabaciones son gigabytes de archivos; véase la Nota) | — | ||
iq conditions |
iq_test_conditions |
N/A | iq_test_conditions (texto, en línea) |
/kshana-iq |
N/A (las grabaciones son gigabytes de archivos; véase la Nota) | — | ||
iq inventory, info |
iq_inventory, iq_info |
N/A | iq_info |
/kshana-iq |
N/A (las grabaciones son gigabytes de archivos; véase la Nota) | — | El inventario de una carpeta es de Python y de la CLI; el servidor MCP lee un único directorio de trabajo | |
iq extract, convert, decimate |
N/A | N/A | N/A | N/A | N/A (véase la Nota) | — | Reescriben grabaciones en disco (N/A arriba) | |
la lista de señales (iq --help) |
iq_signals |
N/A | iq_signals |
/kshana-iq |
N/A (una lista; ejecute kshana iq --help) |
— |
Funciones de utilidad#
Pequeños puntos de entrada que no son una fila de capacidad, y dónde reside cada uno:
| Función | Superficie | Qué es |
|---|---|---|
version |
Python (kshana.version(), kshana.__version__), WASM (version), CLI (--version), MCP (la información del servidor) |
La versión del motor |
iq_read_epochs |
Python | Lee un archivo binario kshana.track-epoch/1 que escribió kshana iq track --epochs. N/A en los demás sitios: lee un archivo del disco (WASM no tiene sistema de archivos, MCP lee un único directorio de trabajo solo mediante las herramientas iq_*) |
encode_permalink, decode_permalink |
WASM | El códec de enlaces para compartir ?s= del playground del navegador (TOML del escenario a un token apto para URL y viceversa). N/A en los demás sitios: un enlace a una página web no tiene sentido para una línea de comandos, una llamada de Python o un agente |
Límites que difieren según la superficie#
| Superficie | Límite de entrada | Archivos |
|---|---|---|
| MCP | 4 MiB por entrada de texto (2 MiB y 20.000 épocas para un fragmento de flujo); las respuestas llevan como máximo 2000 líneas NMEA, 200 líneas de épocas no nominales y 4 MiB de GeoJSON o de archivos de paquete | solo contenido en línea: se rechaza un campo de escenario que nombre un archivo; las herramientas iq_* usan un único directorio de trabajo opcional, con cada ruta confinada en él |
MCP sobre HTTP (--http, autoalojado) |
como MCP, con un cuerpo de solicitud de 5 MiB, 120 s por solicitud y 8 solicitudes simultáneas de forma predeterminada | ninguno: las herramientas de archivos iq_* están desactivadas; todas las demás herramientas admiten contenido en línea |
| Python, Rust | 64 MiB por entrada de texto | receiver_trust puede nombrar un path que el proceso pueda leer |
| WASM | 64 MiB por entrada de texto, dentro de la propia memoria del navegador | ninguno: el navegador no tiene sistema de archivos, no se sube nada |
Niveles de evidencia y salvedades en todas las superficies#
- Un paquete de evidencias es un registro técnico de lo que el motor calculó a partir de un registro con unos ajustes indicados, con cada hash y una firma sobre ellos. No es un dictamen jurídico, una constatación de hechos sobre ningún suceso ni una aprobación. Un resultado superado de verify indica que el registro no ha cambiado; sin una clave pública de confianza, prueba solo la integridad frente a la clave que el propio paquete nombra.
- Los monitores de confianza del receptor y la puntuación de confianza son MODELLED: los umbrales son entradas declaradas y nada afirma cómo se comportan frente a una interferencia real. La salida es orientativa; Kshana no es un equipo de navegación homologado (IEC 61108, IEC 61162) y el operador sigue siendo responsable. Una puntuación alta no es prueba de una posición genuina.
- El mapa de interferencias es MODELLED (umbrales fijados de antemano, no validados frente a una medición de verdad de referencia). Una celda degradada no identifica la interferencia como causa; una celda no observada no es evidencia de una ruta despejada; describe informes pasados y no es una previsión. Es solo agregado: no se devuelve ningún identificador.
- El NMEA de entrenamiento es solo texto: no se sintetiza RF, IQ ni forma de onda, no se transmite nada, y nunca está destinado a los sistemas de navegación en vivo de un buque.
La etiqueta de evidencia y las salidas que no llevan ninguna#
Cada figura y tabla que escribe una ejecución lleva su nivel de evidencia (VALIDATED, MODELLED o PARTNER, el más débil de las filas del registro que la respaldan) y los identificadores de esas filas, en cada superficie que ejecuta un escenario: el JSON de resultados (clave evidence), el SVG del gráfico (elemento de metadatos y una línea bajo el trazado) y la tabla CSV (líneas de comentario # evidence:). La misma etiqueta está en las salidas de receiver-trust (CLI, MCP, Python), jammertest score --json, iq acquire, iq sweep, iq track --summary, iq monitor --json, el informe de ruta del mapa de interferencias, y dentro del config.json de cada paquete de evidencias (firmado; kshana evidence verify lo informa). Los identificadores de fila son estables (VM- y ocho dígitos hexadecimales, la columna ID de docs/VERIFICATION-MATRIX.md).
Estas salidas no llevan etiqueta, cada una por un motivo indicado (la lista es UNLABELLED_WRITERS en tests/evidence_labels_doc_sync.rs, que falla con un escritor que ni está etiquetado ni figura en la lista):
| Salida | Por qué no lleva etiqueta |
|---|---|
| archivos de resultados de kshana-bench | un esquema fijo fijado por los compromisos de datos reservados; cada uno lleva su propio label (MODELLED o medido) |
| productos diarios del observatorio de interferencias (GeoJSON, PNG, JSON de incidentes) | un esquema publicado y congelado; las salvedades de la nota del método los acompañan |
| archivos de celda, de tabla de puntuación y de informe de la campaña de iq | fijados por resumen criptográfico; cada uno indica la tabla de puntuación de la campaña que reexpone |
| muestras IQ, metadatos de SigMF y SDR, referencia de escena, flujos de épocas y de eventos de seguimiento, registros de sesiones en vivo | archivos ligados a un formato y flujos de registros que leen otras herramientas |
| exportaciones SP3, OMM, OEM, CZML, KML, GeoJSON, STK, de movimiento de test bench y NMEA; el flujo de formación NMEA | archivos ligados a un formato que leen herramientas de terceros |
| formatos de transmisión de telemetría (Prometheus, OTLP, CEF, LEEF) | definidos por sus formatos de transmisión |
| documentos generados (el propio registro, el estudio confirmado y las tablas de datos) | no son la salida de una ejecución |