Onde cada capacidade é acessível
Toda capacidade está disponível nas superfícies em que faz sentido; onde uma superfície não consegue carregar uma capacidade, a célula diz N/A e explica por quê. O mesmo motor roda por trás de cada superfície: os pontos de entrada Python, WebAssembly e MCP das capacidades da 0,35 são camadas finas sobre kshana::surface, que chama o código que a linha de comando executa.
Uma passagem que cita clientes de IA de terceiros foi omitida aqui; ela está em docs/SURFACES.md no GitHub.
| Capacidade | CLI | Rust | Python | WASM | MCP | Plugin | JetBrains | Notebook | Studio |
|---|---|---|---|---|---|---|---|---|---|
| Confiança do receptor de embarcação, log em lote (pontuação de 0 a 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 confiança marítima |
| Confiança do receptor em um trecho limitado de fluxo (pontuações, estados, motivos; sem gate) | receiver-trust live |
receiver_trust::assess::assess_stream_excerpt |
receiver_trust_replay |
receiver_trust_replay |
assess_vessel_stream |
igual | Assess Receiver Stream (um log armazenado) | vessel-trust-and-training |
Página de confiança marítima |
Geometria dos satélites e classes de dedução (0,36: geometry boa/degradada/desconhecida com motivos e DOP, um label bom/regular/ruim sempre informado, o monitor geometry (nada, a menos que a geometria seja ruim; então, até 15 pontos; listado por último em monitors_run quando decidiu, de modo que a contagem de monitores do veredito inclui a geometria), uma class em toda dedução, geometry_model, geometry_summary) |
receiver-trust, receiver-trust live (no JSON de resultado e em toda linha JSON; o CSV, o SVG, o veredito de uma linha e $PKSHT carregam uma dedução de geometria como qualquer outra e, no mais, permanecem inalterados) |
receiver_trust::geometry, em EpochTrust, Deduction e EpochReport |
receiver_trust, assess_vessel_log, receiver_trust_replay (nos dicts retornados) |
os mesmos três (no JSON retornado) | assess_receiver_log, assess_vessel_log, assess_vessel_stream (na resposta; a resposta de um log de embarcação mantém geometry_model e geometry_summary); trust_telemetry o renderiza |
igual, skills vessel-receiver-trust, trust-telemetry |
as ações acima imprimem a saída da CLI, que a traz | vessel-trust-and-training (no resultado que ele carrega) |
pendente: a página de confiança marítima ainda não o mostra (campos listados em docs/MARITIME-TRUST.md, item 6 da visão do Studio) |
receiver-trust live como um processo em execução (stdin, arquivo acompanhado, TCP, UDP, --gate, --listen) |
receiver-trust live |
receiver_trust::live::LiveEngine |
N/A | N/A | N/A | N/A | N/A | N/A | Tools: cartão Command line (o comando a executar; um navegador não é um processo no caminho dos dados) |
Pacote de evidências: criar (assinado, janela de um log; 0,38: um lab-attestation opcional, a declaração do operador sobre uma montagem de laboratório, registrada no manifesto assinado, 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 (chave de assinatura) | create_evidence_pack (lab_attestation_toml) |
/kshana-evidence-pack, skill evidence-pack |
Create Evidence Pack (sem campo de attestation na caixa de diálogo na 0,38: pendente; a linha de comando o aceita) | vessel-trust-and-training |
N/A (uma chave de assinatura não pertence a uma página); Tools: cartão Command line |
Jammertest como árbitro (0,38): o catálogo e o plano de transmissão publicados da NPRA lidos como verdade agendada (import), um log de receptor pontuado em relação a ele por teste (score: latência de detecção, perdidos, falsos alarmes, tempo de recuperação; 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 (precisa dos arquivos do plano e de um log em disco; execute-o em um terminal) | N/A (ainda não há notebook) | pendente: um cartão de Tools para a linha de comando (a faixa e as visões do Studio são do WS-A) |
Pacote assinado de pontuação do Jammertest (jammertest score --key: o pacote de evidências de confiança do receptor com o placar e o cronograma dentro de config.json) |
jammertest score --key <keyfile> --out <dir> |
jammertest::score_pack |
N/A (chave de assinatura) | N/A (chave de assinatura) | N/A (chave de assinatura: use create_evidence_pack em uma janela, ou a linha de comando) |
N/A | N/A | N/A | N/A (uma chave de assinatura não pertence a uma página); Tools: cartão Command line |
Autorrelato do receptor (0,38): UBX-NAV-STATUS spoofDetState e UBX-SEC-SIG lidos em self_report a cada época, e a comparação receiver_self_report (ambos / somente o receptor / somente o Kshana / nenhum) no resultado; não levanta alarme e não altera nenhuma pontuação |
receiver-trust (no JSON de resultado; jammertest score) |
receiver_trust::ReceiverSelfReport, monitors::SelfReportEpoch, monitors::SelfReportSummary |
receiver_trust, assess_receiver_log (nos dicts retornados) |
receiver_trust (no JSON retornado) |
assess_receiver_log (na resposta) |
/kshana-assess-receiver |
as ações acima imprimem a saída da CLI, que a traz | N/A | pendente: a faixa da página Trust (WS-A; o campo é epochs[].self_report) |
| Formato de log Septentrio SBF (0,38, somente leitura: PVTGeodetic, MeasEpoch, RFStatus) | receiver-trust com [log] format = "sbf" |
receiver_trust::ingest::read_sbf, LogFormat::Sbf |
receiver_trust, assess_receiver_log (format = "sbf", log como base64) |
igual | assess_receiver_log (base64) |
/kshana-assess-receiver |
as ações acima | N/A | N/A (o envio de logs binários não é oferecido na página Trust na 0,38) |
receiver-trust live --serial <device> [--baud n]: um fluxo NMEA serial ou USB, somente leitura (abre o dispositivo para leitura, nunca escreve no receptor; --configure é recusado) |
receiver-trust live --serial |
N/A (um dispositivo e um processo) | N/A | N/A | N/A | N/A | N/A | N/A | Tools: cartão Command line (o comando a executar; um navegador não é um processo no caminho dos dados) |
| Pacote de evidências: criar (assinado, janela de um log) | receiver-trust evidence |
evidence::create_bundle, surface::evidence_create |
evidence_create |
N/A (chave de assinatura) | create_evidence_pack |
/kshana-evidence-pack, skill evidence-pack |
Create Evidence Pack | vessel-trust-and-training |
N/A (uma chave de assinatura não pertence a uma página); Tools: cartão Command line |
| Pacote de ida e volta de laboratório (cenário, condições de teste, log do receptor e pontuação ligados por hash) | evidence round-trip |
evidence::build_round_trip_pack, surface::evidence_round_trip |
evidence_round_trip |
N/A (chave de assinatura) | create_round_trip_pack |
/kshana-evidence-pack |
N/A (as ações do JetBrains são vinculadas a um arquivo selecionado; o pacote precisa de um cenário, condições, um log e uma chave: execute-o no terminal da IDE) | N/A (uma chave de assinatura não pertence a uma página); Tools: cartão Command line | |
| Pacote de evidências: verificar | evidence verify |
evidence::verify_bundle |
evidence_verify |
evidence_verify |
verify_evidence_pack |
igual | Verify Evidence Pack (somente com chave fixada) | vessel-trust-and-training |
Tools: Evidence packs (verificar, anexar carimbo de tempo) |
Telemetria de confiança (Prometheus, syslog CEF/LEEF, OTLP; 0,38: format = "mqtt", descoberta do Home Assistant e linhas de estado; --mqtt-tcp publica a partir da CLI) |
trust-telemetry |
telemetry |
trust_telemetry |
trust_telemetry (saída de texto; sem socket) |
trust_telemetry |
/kshana-trust-telemetry, skill trust-telemetry |
Render Trust Telemetry (um resultado armazenado) | vessel-trust-and-training |
Tools: cartão Telemetry (aba Command line; somente formatos, sem sockets) |
Entradas de máquina e de sensores (0,38): receiver-trust formatos rtklib-pos, novatel, gnss-sdr e [log.imu] (csv, euroc) |
receiver-trust (cenário [log] format) |
receiver_trust::machines |
receiver_trust, assess_receiver_log (em linha) |
receiver_trust (em linha) |
assess_receiver_log (texto/base64 em linha; um path é recusado) |
/kshana-assess-receiver |
Assess Receiver Trust | vessel-trust-and-training |
N/A (a página Trust do Studio lê os formatos que lista; novos formatos virão com o próximo port dela) |
Log de IMU para parâmetros de sensores híbridos/de fusão (tabela [accel_classical] a partir de um log estacionário, 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 (ainda não há ação de IDE) | N/A | N/A (o editor de cenários do Studio recebe a tabela colada) |
Nó ROS 2, relé UDP do GNSS-SDR, trust-telemetry --mqtt-tcp (integrations/ros2, integrations/gnss-sdr) |
processos | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A (processos de longa duração e sockets; formas de texto: trust_telemetry com mqtt) |
Verificação OSNMA do Galileo de páginas I/NAV ou de um fluxo UBX (docs/OSNMA.md) |
osnma verify |
osnma::cli::verify_report, surface::osnma_verify |
osnma_verify |
osnma_verify |
N/A (um fluxo bruto longo de receptor se adequa à CLI e ao Python; uma ferramenta de agente acrescentaria uma superfície de entrada grande sem benefício) | N/A (os comandos de plugin rodam sobre o servidor MCP, que não tem ferramenta OSNMA pelo motivo indicado na célula do MCP; execute kshana osnma verify) |
N/A (o resultado nada significa sem uma raiz de Merkle ou chave pública confiável, obtida do ICD por outra via e, para a atualidade, uma referência de tempo independente; uma ação de clique com o botão direito não tem onde recebê-las, e um padrão sem fixação seria lido como verificação; execute kshana osnma verify) |
N/A (um fluxo de entrada, um relatório JSON de saída; sem notebook) | Tools: OSNMA |
| NMEA de treinamento com um log de instrutor | 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 debriefing de treinamento |
| NMEA de treinamento transmitido para um endereço TCP ou UDP | nmea-scenario --tcp/--udp |
nmea_synth::stream |
N/A | N/A | N/A | N/A | N/A | N/A | Tools: cartão Command line (transmite para um endereço) |
| Mapa de interferência (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 do mapa de interferência |
| Região do emissor (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 (ainda não incluído; as superfícies Rust, Python e WASM o cobrem) | N/A | N/A | N/A (a publicação de regiões de emissores no observatório público é uma decisão separada do responsável e está desativada) | |
| Exposição de rota | route-exposure |
interference_map::api::route_exposure |
route_exposure |
route_exposure |
route_exposure |
igual | Route Exposure | interference-map-route-exposure |
Página do mapa de interferência |
Plugin Signal K e feed de gate do OpenCPN (docs/MARINE-INTEGRATIONS.md) |
integrations/, receiver-trust live --gate --listen |
N/A (processos) | N/A | N/A | N/A | apenas guia prático: /kshana-marine-integrations, skill marine-integrations |
N/A | N/A | Tools: cartão Command line (guia prático; uma implantação) |
| Exportação para test bench (CSV de movimento, NMEA, waypoints, eventos para um simulador de laboratório) | 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: exportação para test bench |
| Mapeamento de compliance a partir de execuções (de quais linhas de frameworks públicos o conjunto de execuções fornece evidências em apoio de) | 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: mapeamento de compliance |
| Tabelas e fontes do mapeamento de compliance | compliance-report --mapping, --sources |
compliance::mapping, surface::compliance_mapping |
compliance_mapping |
compliance_mapping |
compliance_mapping |
igual | Show Compliance Mapping | N/A | Tools: mapeamento de compliance |
| Pacotes de padrões (conjuntos de cenários pontuados, com limiares declarados antes da execução: perfis de teste do 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 (as ações do JetBrains são vinculadas a um arquivo selecionado; os pacotes são incorporados e não precisam de nenhum: execute kshana standards-pack no terminal da IDE) |
N/A (os cartões de Tools do Studio para pacotes pertencem à frente de trabalho do Studio; a CLI ou a saída de qualquer superfície alimenta o cartão de mapeamento de compliance) | |
Verificação de envio de parceiro de dados (formato e metadados de um envio de dados medidos, kshana.partner-submission/1; não pontua nada) |
partner check |
partner::check_file, partner::check |
N/A (a verificação lê arquivos locais e seus SHA-256; a API Rust é a superfície de biblioteca e a CLI é a ferramenta) | N/A (sem sistema de arquivos na build para navegador) | N/A (o MCP recusa fontes de arquivo por projeto (apenas texto embutido)) | N/A (os comandos com barra chamam ferramentas do MCP, e esta verificação precisa de arquivos em disco) | N/A (as ações do JetBrains estão ligadas a um arquivo selecionado; um envio é uma pasta) | N/A (ainda não há notebook) | N/A (o Studio não tem acesso ao sistema de arquivos; execute o comando) |
LunaNet Augmented Forward Signal: códigos, SB1/CRC/entrelaçador e uma verificação em relação ao LSIS-AFS V1.0 (docs/LUNANET-AFS.md) |
lunanet-afs-check; sinais lunanet-afs-i, lunanet-afs-q em 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. com os dois nomes de sinal |
lunanet_afs_check_spec, lunanet_afs_check_symbols, lunanet_afs_generate; iq_scene etc. por meio das execuções curtas em memória |
lunanet_afs_check |
/kshana-lunanet-afs-check |
N/A (as ações do JetBrains são vinculadas a um arquivo selecionado; execute kshana lunanet-afs-check no terminal da IDE) |
N/A (um cartão do Studio é um item da frente de trabalho do Studio; a CLI e todas as outras superfícies o trazem) | |
Geometria do céu sob um skyline: satélites visíveis e mascarados, DOP, covariância ENU, elipse de erro (docs/SKYLINE.md) |
sky |
geometry::sky_geometry, surface::sky_geometry |
sky_geometry |
sky_geometry |
sky_geometry |
/kshana-run (aponta para a ferramenta) |
N/A (um skyplot interativo é uma visão de navegador; kshana sky cobre os números) |
notebooks/geometry.ipynb |
— (a visão Geometry do Studio é acrescentada separadamente na 0,36) |
| Nuvem de Monte Carlo do céu (erros de mínimos quadrados com semente fixa, RMS, contenção de 95 %) | sky --monte-carlo <n> --seed <s> |
geometry::sky_monte_carlo |
sky_monte_carlo |
sky_monte_carlo |
N/A (amostras em grande volume que um agente deve resumir, não transportar) | N/A (sem ferramenta MCP) | N/A (como acima) | N/A | — (como acima) |
Predefinições e perfis de skyline (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 acima) | N/A | — (como acima) |
| Skyplot como SVG | sky --svg |
geometry::skyplot_svg |
skyplot_svg |
skyplot_svg |
N/A (um agente lê os números de sky_geometry) |
N/A | N/A (como acima) | N/A | — (como acima) |
Seção skyline em um cenário ([skyline]: orbit e integrity com user_site, gnss-sim, jamming, leo-pvt, leo-pass, nmea-scenario) |
o arquivo do cenário | skyline::SkylineCfg |
run, nmea_training |
run, nmea_training |
run_scenario, generate_training_nmea |
/kshana-run |
Run Kshana Scenario | N/A | — |
Enlace óptico de temporização através da atmosfera: disponibilidade por local, diversidade de locais, técnicas de melhoria, acoplamento entre interrupção e holdover (tipo de cenário optical-atmosphere; docs/OPTICAL-ATMOSPHERE.md; MODELLED, locais ILLUSTRATIVE, consultivo) |
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 |
pendente: ainda não há visão no Studio; o cenário roda no executor de cenários do Studio e no cartão Command line de Tools |
Teste de holdover pontuado a partir de um registro de erro de tempo fornecido pelo operador: linha de base, GNSS removido pelo operador, holdover, recuperação, medido em relação a máscaras da ITU-T (tipo de cenário holdover-test; docs/TIMING-HIL.md; MODELLED, consultivo; o Kshana não transmite nem aciona nada) |
kshana scenarios/holdover-test-example.toml, scenarios/holdover-test-ptp4l.toml |
holdover_test, telecom_timing |
run, run_typed |
run (samples ou clock_log.text em linha; as chaves de arquivo são recusadas) |
run_scenario (somente em linha) |
/kshana-run |
Run Kshana Scenario | N/A (sem notebook na 0,38; os cenários de exemplo rodam em qualquer notebook por meio de run) |
pendente: ainda não há visão no Studio; o cenário roda no executor de cenários do Studio e no cartão Command line de Tools |
Orçamento de erro de navegação e temporização de uma cadeia de fases de missão do lançamento à reentrada: oito tipos de fase, regras de transferência, conversões de referencial e de escala de tempo, uma sobreposição de rede terrestre, margem em relação aos requisitos declarados e o elo mais fraco (tipo de cenário mission-thread; docs/MISSION-THREAD.md; MODELLED, entradas ILLUSTRATIVE, consultivo; apenas fontes públicas, sem aval) |
kshana scenarios/mission-thread-artemis-class.toml (a partir de um checkout: ele lê um recorte versionado de kernel da Lua) |
mission_thread |
run, run_typed |
run (moon_kernel_path é uma chave de arquivo e é recusada; sem um kernel a Lua é a série analítica e a linha de conversão o declara) |
run_scenario (apenas embutido; a chave do kernel é recusada) |
/kshana-run |
Run Kshana Scenario | N/A (sem notebook; o exemplo é executado em qualquer notebook por meio de run a partir de um checkout) |
pendente: ainda não há visão no Studio; o cenário roda no executor de cenários do Studio e no cartão Command line de Tools |
O GNSS além da constelação: disponibilidade dos sinais GPS, GLONASS, Galileo, BDS, QZSS e NavIC para um usuário em uma shell ou em uma trajetória de LEO a transferência lunar (diagrama de transmissão do folheto, paramétrico ou medido, meio de raio no limbo, projeto de receptor de sinal fraco), um EKF GNSS de bordo para naves em órbita alta e de transferência lunar, e navegação relativa em formação (tipo de cenário gnss-ssv; docs/SSV.md; MODELLED, consultivo; comparado com o folheto SSV do ICG sob um pré-registro, 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 (em linha; transmit.pattern_text traz um diagrama medido em linha) |
run_scenario (somente em linha; transmit.pattern_csv é recusado) |
/kshana-run |
Run Kshana Scenario | N/A (sem notebook na 0,38; os cenários rodam em qualquer notebook por meio de run) |
pendente: ainda não há visão no Studio; o cenário roda no executor de cenários do Studio e no cartão Command line de Tools |
Órbita e superfície lunares como infraestrutura de navegação e geodésica: consistência da determinação de órbita, resolução de ambiguidade da fase da portadora, coestimação de referencial, space-tie e sensibilidade ao número de Love (tipo de cenário lunar-infrastructure, study = ...; docs/LUNAR-INFRASTRUCTURE.md; MODELLED, entradas ILLUSTRATIVE, consultivo) |
kshana scenarios/lunar-infrastructure-od-consistency.toml (e os cinco exemplos irmãos) |
lunar_infra |
run, run_typed |
run |
run_scenario |
/kshana-run |
Run Kshana Scenario | N/A (sem notebook; os exemplos rodam em qualquer notebook por meio de run) |
pendente: ainda não há visão no Studio; os cenários rodam no executor de cenários do Studio e no cartão Command line de Tools |
Logs de relógio medidos, lidos como uma série de fase: linuxptp ptp4l, phc2sys, ts2phc, chrony tracking e statistics, ao lado de RINEX clock, TimeLab e TICC ([clock_log] / [series.clock_log]; docs/CLOCK-LOG-FORMATS.md; MODELLED, nenhuma referência independente compara uma leitura com a de outro leitor) |
um cenário com [clock_log] |
clock_log::read_input |
run |
run (text somente em linha; sem leitura de arquivos em um navegador) |
run_scenario (text somente em linha; path é recusado) |
/kshana-run |
Run Kshana Scenario | N/A (sem notebook; um log é um arquivo que o usuário fornece) | pendente: ainda não há visão no Studio; o executor de cenários do Studio recebe o texto do cenário |
Enlace óptico de temporização através da atmosfera: disponibilidade por local, diversidade de locais, técnicas de melhoria, acoplamento entre interrupção e holdover (tipo de cenário optical-atmosphere; docs/OPTICAL-ATMOSPHERE.md; MODELLED, locais ILLUSTRATIVE, consultivo) |
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 |
a visão Optical PNT do Studio (/studio/optical/, 0,38) desenha os resultados registrados dos dois cenários incluídos, inclusive a série temporal com semente fixa; o cenário também roda no executor de cenários do Studio e no cartão Command line de Tools |
Download de polígonos de terra (interference-map fetch-land) |
--allow-network |
Código da CLI | N/A | N/A | N/A | N/A | N/A | N/A | Tools: cartão Command line (precisa de --allow-network) |
Benchmark (kshana-bench v1: pontuar uma submissão em relação a um arquivo de verdade, página de classificação; docs/BENCH.md, MODELLED, consultivo) |
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 (as duas ferramentas MCP o trazem; um comando de barra sobre dois arquivos JSON não acrescenta nada) | N/A (não é uma ação de IDE) | N/A (notebooks educacionais são uma frente de trabalho separada) | N/A (a classificação é a página estática bench/site/, portada para o site como está; o Studio não calcula nada) |
Dados de benchmark e ferramentas de conjunto reservado (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 (a CLI lê diretórios de conjuntos de dados e arquivos de relógio e, para seal, um arquivo de semente secreta; uma semente não deve passar por um agente nem por uma página) |
Produto diário e estudo de sensibilidade do observatório (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 (os comandos leem um diretório de arquivo com centenas de milhares de arquivos, escrevem quatro arquivos, inclusive um PNG, e impõem o atraso de liberação de 24 h em relação ao relógio da máquina que publica; o mapa em CSV está em todas as superfícies na linha acima) |
Studio#
O Kshana Studio é o aplicativo web construído sobre o build WebAssembly; assim, existe uma visão do Studio onde a coluna WASM tem um ponto de entrada e, onde não tem, a célula aponta para um cartão Command line (o comando a executar, com seus argumentos), nunca para um resultado que o Studio calculou. Páginas (kshana.dev/studio/, no lado do cliente): Maritime trust (trust/), Training debrief (training/), Interference map (interference/), Geometry (geometry/: um skyplot representativo, skyline, DOP, elipse de erro e nuvem de Monte Carlo do motor; 0,36), Lunar station (lunar/: a cobertura modelada de uma estação de referência lunar a partir do tipo lunar-station-coverage; 0,36) e a página Tools, cujas seções são OSNMA (#osnma), Evidence packs (#evidence), exportação para test bench (#bench), mapeamento de compliance (#compliance), a aba Command line (cartão de telemetria, IQ, integrações marítimas: comandos a executar) e Use from your AI assistant (#ai). Um — na coluna Studio da tabela de subcomandos é um comando que não é uma das capacidades da 0,35 que o Studio apresenta.
Por que as células N/A são N/A#
Signal K e OpenCPN. São consumidores do processo ao vivo em execução e do seu gate TCP; portanto, são implantações de linha de comando; o plugin traz um comando de guia prático e uma skill que apontam para
docs/MARINE-INTEGRATIONS.mde não chamam nenhuma ferramenta.Um processo em execução.
receiver-trust livemantém um fluxo aberto, pode servir o fluxo com gate a qualquer número de clientes TCP e roda até ser interrompido. Uma chamada Python, uma chamada de navegador, uma chamada de ferramenta MCP e uma ação de IDE retornam cada uma quando terminam e não mantêm um socket aberto para outros. Python, WASM e MCP trazem, em vez disso, a forma limitada: um trecho pontuado pelo mesmo motor, no esquema ao vivo (linhas JSON 1,3:position, uma declaraçãoadvisorye ageometrydos satélites em toda época, umaclassem toda dedução), sem socket e sem gate (o gate marca uma solução como inválida em um fluxo ao vivo, o que só um processo no caminho dos dados pode fazer). Dois comportamentos pertencem ao processo e não estão nas ferramentas de trecho: um fluxo reproduzido mais rápido que o tempo real porreceiver-trust livesem--replayé pontuado como não confiável (seu tempo discorda do relógio do host; um trecho é lido sem relógio de host), e--udp <port>e--listen tcp:<port>vinculam o endereço de loopback, a menos que um endereço seja dado.Telemetria de confiança. O WASM traz
trust_telemetry(input, format, host, input_kind, options_json): os mesmos codificadores, retornando texto Prometheus, linhas de syslog CEF ou LEEF, ou o payload JSON OTLP para um fluxo ou um resultado em lote, sem relógio (as linhas de syslog carregam o timestamp nulo da RFC 5424) e sem nada enviado. O Python (trust_telemetry) e o MCP (trust_telemetry, com o comando de plugin/kshana-trust-telemetry) também a trazem. O restante detrust-telemetryserve métricas Prometheus, envia syslog e exporta OpenTelemetry a partir de um fluxo em execução; portanto, é um processo por natureza. Guia prático: encaminhe o comando ao vivo para ele, ou reproduza um arquivo de resultado (kshana trust-telemetry --result session.result.json --print-metrics); vejaTRUST-TELEMETRY.md. Um agente ou um notebook que queira as pontuações por época chama, em vez disso, as funções de lote ou de trecho.Criar um pacote no navegador. A assinatura precisa de uma chave privada, que não deve passar por uma página web; o build para navegador verifica pacotes (
evidence_verify) e as outras superfícies os criam. A ferramenta MCP nunca retorna nem registra a semente de assinatura e, sem uma, assina com uma chave descartável (integridade, não identidade); para uma chave que importe, use a CLI. O mesmo vale para transmitir NMEA de treinamento a um endereço: Python, WASM e MCP retornam o texto gerado, e a CLI o envia.Suítes de estudo.
--study <suite.toml>executa um manifesto que nomeia arquivos de cenário irmãos em disco. As superfícies em memória recebem texto de cenário, não uma pasta de arquivos; por isso, executam cada membro como um cenário (run,run_scenario,run_all).IQ de GNSS no navegador, e gravações reescritas. Uma gravação tem gigabytes de amostras, que uma página não consegue conter e que o protocolo MCP não deve carregar; assim, o WASM não tem funções de IQ e as ferramentas MCP leem e escrevem em um único diretório de trabalho (
KSHANA_MCP_IQ_DIR, com um orçamento de amostras por chamada).iq extract,convertedecimateexistem para reescrever gravações em disco e permanecem exclusivos da linha de comando.iq labfiteiq conditionscarregam texto, de modo que o MCP os recebe em linha (um log que nomeia um arquivo é recusado).O download de terra. É o único comando que abre uma conexão de rede, precisa do
curldo sistema e de um--allow-networkexplícito, e confere um SHA-256 fixado. O navegador não temcurl, e um agente de IA não deve buscar dados em nome do usuário; as outras superfícies recebem o arquivo de terra como texto (land_geojson).Arquivos e diretórios de traços.
interference-map adsbsobre um diretório de traços do readsb lê arquivos do disco e é exclusivo da linha de comando; as superfícies em memória recebem texto CSV.
Todo subcomando da linha de comando e quem o cobre#
Uma linha por subcomando ou modo de kshana --help. yes indica o ponto de entrada; no é uma lacuna com o seu motivo; N/A é uma superfície que não consegue carregá-lo pelo motivo dado acima ou na última coluna. As ações do JetBrains executam a linha de comando; portanto, um N/A ali declara por que não existe ação de IDE.
| Subcomando | Python | WASM | MCP | Plugin | JetBrains | Notebook | Studio | Nota |
|---|---|---|---|---|---|---|---|---|
kshana <scenario.toml> (executar, gráfico, tabela) |
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 (uma execução lança erro diante de um cenário inválido) |
validate_scenario |
/kshana-run |
Validate Scenario | — | ||
--study <suite.toml> |
N/A | N/A | N/A | N/A | N/A (nomeia arquivos irmãos em disco) | — | Uma suíte nomeia arquivos de cenário irmãos em disco (N/A acima); execute cada membro como um cenário | |
--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 | — | Os arquivos voltam como texto (utf-8) ou base64 (as amostras 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 | — | No máximo 120 quadros por chamada; sequências mais longas usam a CLI | |
sky <request> (ou flags), --monte-carlo, --svg |
sky_geometry, sky_monte_carlo, skyplot_svg |
sky_geometry, sky_monte_carlo, skyplot_svg |
sky_geometry (sem Monte Carlo, sem SVG) |
/kshana-run |
N/A (veja a linha de capacidade) | — | Geometria MODELLED; saída em JSON ou SVG | |
skyline --preset, --presets, --profile |
skyline_presets, skyline_profile |
skyline_presets, skyline_profile |
sky_geometry (skyline_preset) |
/kshana-run |
N/A (veja a linha de capacidade) | — | Predefinições REPRESENTATIVE com proveniência | |
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 | — | Os recursos python e wasm compilam o texto de exemplo no binário (cerca de 0,7 MB) |
|
receiver-trust <scenario.toml> (em lote) |
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 confiança marítima | |
receiver-trust live |
trecho: receiver_trust_replay |
trecho: receiver_trust_replay |
trecho: assess_vessel_stream |
trecho | Assess Receiver Stream (um log armazenado, --file) |
Página de confiança marítima (trecho); cartão Command line para o processo | Um processo em execução; o trecho não tem socket nem gate (N/A acima) | |
trust-telemetry |
trust_telemetry |
trust_telemetry |
trust_telemetry |
/kshana-trust-telemetry |
Render Trust Telemetry (um resultado armazenado) | vessel-trust-and-training |
Tools: cartão Telemetry (aba Command line; somente formatos, sem sockets) | Somente texto em todas as superfícies, sem socket; os exportadores em execução são um processo (veja acima) |
imu-fit <imu.csv> |
imu_fit |
imu_fit |
fit_imu_log |
/kshana-fit-imu |
N/A | — | Texto de entrada, JSON de saída; MODELLED | |
osnma verify <pages|vectors.csv|stream.ubx> |
osnma_verify |
osnma_verify |
N/A (veja acima) | N/A (veja acima) | N/A (veja acima) | Tools: OSNMA | O mesmo JSON de --json, com o aviso consultivo em seu campo advisory; a leitura de arquivo passa a ser bytes em memória. Apenas situação de autenticação: não é um serviço de integridade de navegação, e não há alegação de desempenho antispoofing |
|
receiver-trust evidence (criar um pacote) |
evidence_create |
N/A | create_evidence_pack |
/kshana-evidence-pack |
Create Evidence Pack | vessel-trust-and-training |
Tools: cartão Command line (sem chave de assinatura em uma página) | Sem chave de assinatura em um navegador |
jammertest import, jammertest score |
jammertest_import, jammertest_score |
jammertest_import, jammertest_score |
jammertest_import, jammertest_score |
/kshana-jammertest |
N/A (terminal; precisa de arquivos) | pendente: Tools: cartão Command line | O plano e o catálogo são dados como texto; o pacote assinado (--key) é exclusivo da linha de comando (chave de assinatura) |
|
evidence round-trip |
evidence_round_trip |
N/A | create_round_trip_pack |
/kshana-evidence-pack |
N/A (como acima) | Tools: cartão Command line (sem chave de assinatura em uma página) | Sem chave de assinatura em um navegador; nenhum sinal é escrito ou reproduzido | |
evidence verify |
evidence_verify |
evidence_verify |
verify_evidence_pack |
/kshana-evidence-pack |
Verify Evidence Pack (somente com chave fixada) | vessel-trust-and-training |
Tools: Evidence packs (verificar, anexar carimbo de tempo) | |
evidence keygen |
evidence_keygen |
N/A | N/A | N/A | N/A (uma chave privada nunca é criada nem lida pelo plugin) | Tools: cartão Command line | O Python retorna a chave em memória com um aviso; uma chave privada não deve passar por uma conversa nem por uma página | |
evidence attach-timestamp |
evidence_attach_timestamp |
evidence_attach_timestamp |
attach_evidence_timestamp |
/kshana-evidence-pack |
Attach Timestamp | Tools: Evidence packs (verificar, anexar carimbo de tempo) | Token como bytes ou base64, pacote atualizado retornado em memória; a assinatura da autoridade não é verificada (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 debriefing de treinamento | |
nmea-scenario --tcp/--udp |
N/A | N/A | N/A | N/A | N/A (veja a Nota) | Tools: cartão Command line | Envia para um endereço (N/A acima) | |
interference-map adsb|ais (CSV) |
interference_map |
interference_map |
build_interference_map |
/kshana-interference-map |
Build Interference Map | interference-map-route-exposure |
Página do mapa de interferência | |
interference-map adsb (diretório de traços) |
N/A | N/A | N/A | N/A | N/A (veja a Nota) | Tools: cartão Command line | Lê um diretório (N/A acima) | |
interference-map locate (CSV) |
interference_emitter_regions |
interference_emitter_regions |
N/A (ainda não incluído) | N/A | N/A | — | Regiões estimadas de emissores, MODELLED; diretórios de rastros e --tdoa são apenas de linha de comando |
|
interference-map fetch-land |
N/A | N/A | N/A | N/A | N/A (veja a Nota) | Tools: cartão Command line | Acesso à rede (N/A acima) | |
interference-map daily, sensitivity |
N/A | N/A | N/A | N/A | N/A (veja a Nota) | — | Lê um diretório de arquivo e escreve arquivos; o atraso de liberação é imposto na máquina que publica (N/A acima) | |
bench score |
bench_score |
bench_score |
score_benchmark |
N/A (a ferramenta MCP o traz) | N/A | — | Texto de entrada, texto de saída; nada é lido nem escrito | |
bench leaderboard |
bench_leaderboard |
bench_leaderboard |
render_leaderboard |
N/A (a ferramenta MCP o traz) | N/A | a 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 | — | Arquivos de conjunto de dados e uma semente secreta (N/A acima) | |
route-exposure |
route_exposure |
route_exposure |
route_exposure |
/kshana-interference-map |
Route Exposure | interference-map-route-exposure |
Página do mapa de interferência | |
bench-export |
bench_export |
bench_export |
export_test_bench |
/kshana-bench-export |
Export Test-Bench Files | Tools: exportação para test bench | Retorna texto, não escreve nada; sem sinal | |
compliance-report |
compliance_report |
compliance_report |
compliance_report |
/kshana-compliance-report |
Build Compliance Report | Tools: mapeamento de compliance | ||
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 (as gravações têm gigabytes em arquivos; veja a Nota) | — | As amostras são arquivos. --format sdrx[:ci16_le] (ou um caminho de saída terminado em .sdrx) escreve metadados ION GNSS SDR ao lado das amostras: a CLI e o MCP (format: "sdrx") os escrevem; o Python retorna as amostras em memória e não escreve arquivo, de modo que os metadados não têm forma em 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 acima) | Tools: cartão Command line | Os cenários são incorporados; não há sistema de arquivos; rows e tests imprimem as tabelas de documentação versionadas e são exclusivos da CLI |
|
partner check <submission.toml> |
N/A | N/A | N/A | N/A | N/A | — | Lê um arquivo de envio e seu arquivo de dados em disco e verifica o SHA-256; nenhuma dessas superfícies tem a pasta. Apenas formato e metadados, nada pontuado; veja 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 acima) | — | Os fluxos de símbolos são texto de 0 e 1, no máximo 4 MiB (MCP) ou 100 quadros gerados por chamada; LDPC e CRC-24Q dos subquadros 2 a 4 não são verificados; nenhum sinal é escrito | |
iq scene |
iq_scene, iq_scene_broadcast |
N/A | iq_scene |
/kshana-iq |
N/A (as gravações têm gigabytes em arquivos; veja a Nota) | — | As amostras são arquivos | |
iq acquire |
iq_acquire, iq_acq_surface |
N/A | iq_acquire |
/kshana-iq |
N/A (as gravações têm gigabytes em arquivos; veja a Nota) | — | ||
iq track |
iq_track, iq_loop_designs |
N/A | iq_track |
/kshana-iq |
N/A (as gravações têm gigabytes em arquivos; veja a Nota) | — | ||
iq sweep |
iq_sweep |
N/A | iq_sweep |
/kshana-iq |
N/A (as gravações têm gigabytes em arquivos; veja a Nota) | — | ||
iq labfit |
iq_labfit |
N/A | iq_labfit (logs em linha, sem arquivos) |
/kshana-iq |
N/A (as gravações têm gigabytes em arquivos; veja a Nota) | — | ||
iq frontend |
iq_frontend |
N/A | iq_frontend |
/kshana-iq |
N/A (as gravações têm gigabytes em arquivos; veja a Nota) | — | ||
iq monitor |
iq_monitor |
N/A | iq_monitor |
/kshana-iq |
N/A (as gravações têm gigabytes em arquivos; veja a Nota) | — | --follow [--idle-timeout <s>] lê uma gravação SigMF que ainda está sendo escrita, somente recepção (iq::io::follow::open_sigmf_follow em Rust): N/A para Python e MCP, porque uma chamada que espera um arquivo crescer não retorna quando o trabalho termina, o mesmo motivo pelo qual receiver-trust live também é exclusivo da linha de comando; a gravação em seu comprimento atual passa por iq_monitor |
|
iq campaign, iq campaign report |
iq_campaign, iq_campaign_report |
N/A | iq_campaign, iq_campaign_status |
/kshana-iq |
N/A (as gravações têm gigabytes em arquivos; veja a Nota) | — | ||
iq conditions |
iq_test_conditions |
N/A | iq_test_conditions (texto, em linha) |
/kshana-iq |
N/A (as gravações têm gigabytes em arquivos; veja a Nota) | — | ||
iq inventory, info |
iq_inventory, iq_info |
N/A | iq_info |
/kshana-iq |
N/A (as gravações têm gigabytes em arquivos; veja a Nota) | — | O inventário de uma pasta é feito por Python e CLI; o servidor MCP lê um único diretório de trabalho | |
iq extract, convert, decimate |
N/A | N/A | N/A | N/A | N/A (veja a Nota) | — | Eles reescrevem gravações em disco (N/A acima) | |
a lista de sinais (iq --help) |
iq_signals |
N/A | iq_signals |
/kshana-iq |
N/A (uma lista; execute kshana iq --help) |
— |
Funções utilitárias#
Pequenos pontos de entrada que não são uma linha de capacidade, e onde cada um fica:
| Função | Superfície | O que é |
|---|---|---|
version |
Python (kshana.version(), kshana.__version__), WASM (version), CLI (--version), MCP (as informações do servidor) |
A versão do motor |
iq_read_epochs |
Python | Lê um arquivo binário kshana.track-epoch/1 que kshana iq track --epochs escreveu. N/A nos demais: ele lê um arquivo do disco (o WASM não tem sistema de arquivos, o MCP lê um único diretório de trabalho apenas por meio das ferramentas iq_*) |
encode_permalink, decode_permalink |
WASM | O codec de link de compartilhamento ?s= do playground do navegador (TOML de cenário para um token seguro para URL e de volta). N/A nos demais: um link para uma página web não tem significado para uma linha de comando, uma chamada Python ou um agente |
Limites que diferem por superfície#
| Superfície | Limite de entrada | Arquivos |
|---|---|---|
| MCP | 4 MiB por entrada de texto (2 MiB e 20.000 épocas para um trecho de fluxo); as respostas trazem no máximo 2000 linhas NMEA, 200 linhas de época não nominal e 4 MiB de GeoJSON ou de arquivos de pacote | somente conteúdo em linha: um campo de cenário que nomeia um arquivo é recusado; as ferramentas iq_* usam um único diretório de trabalho opcional, com todo caminho confinado a ele |
MCP sobre HTTP (--http, hospedado pelo próprio usuário) |
como o MCP, com um corpo de requisição de 5 MiB, 120 s por requisição e 8 requisições simultâneas por padrão | nenhum: as ferramentas de arquivo iq_* ficam desativadas; toda outra ferramenta recebe conteúdo em linha |
| Python, Rust | 64 MiB por entrada de texto | receiver_trust pode nomear um path que o processo consiga ler |
| WASM | 64 MiB por entrada de texto, dentro da própria memória do navegador | nenhum: o navegador não tem sistema de arquivos, nada é enviado |
Níveis de evidência e ressalvas em cada superfície#
- Um pacote de evidências é um registro técnico do que o motor calculou a partir de um log sob configurações declaradas, com cada hash e uma assinatura sobre eles. Não é um parecer jurídico, uma constatação de fato sobre qualquer evento nem uma aprovação. Um resultado positivo da verificação diz que o registro não foi alterado; sem uma chave pública confiável, prova apenas a integridade em relação à chave que o próprio pacote nomeia.
- Os monitores de confiança do receptor e a pontuação de confiança são MODELLED: os limiares são entradas declaradas e nada afirma como eles se comportam diante de interferência real. A saída é consultiva; o Kshana não é um equipamento de navegação homologado (IEC 61108, IEC 61162) e o operador continua responsável. Uma pontuação alta não é prova de uma solução de posição genuína.
- O mapa de interferência é MODELLED (limiares pré-registrados, não validados em relação a uma medição de verdade de campo). Uma célula degradada não identifica a interferência como a causa; uma célula não observada não é evidência de uma rota livre; ele descreve relatos passados e não é uma previsão. É somente agregado: nenhum identificador é retornado.
- O NMEA de treinamento é somente texto: nenhum sinal de RF, IQ ou forma de onda é sintetizado, nada é transmitido, e ele nunca se destina aos sistemas de navegação ao vivo de uma embarcação.
O rótulo de evidência e as saídas que não trazem nenhum#
Cada figura e tabela que uma execução grava traz seu nível de evidência (VALIDATED, MODELLED ou PARTNER, o mais fraco das linhas do registro por trás dele) e os ids dessas linhas, em toda superfície que executa um cenário: o JSON de resultado (chave evidence), o SVG do gráfico (elemento de metadados e uma linha sob o gráfico) e a tabela CSV (linhas de comentário # evidence:). O mesmo rótulo está nas saídas de receiver-trust (CLI, MCP, Python), jammertest score --json, iq acquire, iq sweep, iq track --summary, iq monitor --json, no relatório de rota do mapa de interferência, e dentro do config.json de cada pacote de evidências (assinado; kshana evidence verify o informa). Os ids das linhas são estáveis (VM- e oito dígitos hexadecimais, a coluna ID de docs/VERIFICATION-MATRIX.md).
Estas saídas não trazem rótulo, cada uma por um motivo declarado (a lista é UNLABELLED_WRITERS em tests/evidence_labels_doc_sync.rs, que falha diante de um gravador que não está rotulado nem listado):
| Saída | Por que não traz rótulo |
|---|---|
| arquivos de resultado do kshana-bench | um esquema fixo, fixado pelos compromissos do conjunto reservado; cada um traz seu próprio label (MODELLED ou measured) |
| produtos diários do observatório de interferência (GeoJSON, PNG, JSON de incidentes) | um esquema congelado e publicado; as ressalvas da nota de método os acompanham |
| arquivos de célula, de placar e de relatório da campanha IQ | fixados por resumo; cada um declara o placar da campanha que reapresenta |
| amostras IQ, metadados SigMF e SDR, referência de cena, fluxos de épocas e de eventos de rastreamento, registros de sessões ao vivo | arquivos presos a um formato e fluxos de registros lidos por outras ferramentas |
| exportações SP3, OMM, OEM, CZML, KML, GeoJSON, STK, de movimento para test bench e NMEA; o fluxo NMEA de treinamento | arquivos presos a um formato lidos por ferramentas de terceiros |
| formatos de transmissão de telemetria (Prometheus, OTLP, CEF, LEEF) | definidos por seus formatos de transmissão |
| documentos gerados (o próprio registro, as tabelas de estudo e de dados versionadas) | não são a saída de uma execução |