semantic-scala

Servidor MCP local stdio con ocho herramientas acotadas para compilación de Scala, pruebas, diagnósticos del compilador, resúmenes de tipos/efectos, símbolos, SemanticDB y reconciliación de evidencia para agentes de codificación de IA.

Documentación

scala-semantic-harness

Herramienta semántica experimental para proyectos de Scala y programación funcional utilizada por agentes de codificación.

El harness es una capa de evidencia semántica acotada, no un reemplazo del compilador de Scala, sbt, las pruebas, Metals u otras herramientas IDE/LSP. Los resultados del compilador, la compilación y las pruebas siguen siendo el oráculo final de corrección. Consulte docs/project-status.md para conocer la evidencia actual y los límites de preparación, y docs/semantic-tooling-positioning.md para el límite del producto. Los evaluadores técnicos pueden usar docs/early-feedback.md para informar una comparación concreta con un proyecto real.

El árbol actual es el producto fuente experimental independiente de acceso público alfa bajo la licencia Apache-2.0. Se publicó a partir de una raíz limpia construida y auditada de forma independiente, seguida únicamente de confirmaciones de producto público revisadas. El historial de desarrollo mixto anterior se conserva por separado en un archivo privado y no forma parte de este repositorio público.

La fuente mutable main informa 0.1.0-alpha.4-SNAPSHOT solo para el desarrollo de la fuente. No se establece ningún artefacto central Alpha 4, canal compatible, etiqueta, versión de GitHub Release ni afirmación de preparación para el lanzamiento. La versión exacta de ocho módulos 0.1.0-alpha.3 se publica en Maven Central, y el canal público de Coursier de dos aplicaciones main la selecciona. La instalación/ejecución/actualización/desinstalación fresca similar a la de un externo con JDK 21 a través de la URL pública real de raw-GitHub y Maven Central fue exitosa, al igual que la reproducción fijada por confirmación. Tanto las rutas de aplicación exactas Alpha 2 como Alpha 3 ahora tienen evidencia READY de distribución compatible acotada. La etiqueta ligera inmutable 0.1.0-alpha.3 identifica la confirmación 075a60bfb7d7677d7fdfcc2369c9ffe41c8b32a8, cuyas dos compilaciones limpias reprodujeron los 32 primarios públicos de Maven. Su versión preliminar de GitHub tiene archivos fuente generados normales más el MCPB exacto de Linux x86_64 utilizado por el registro oficial activo. La etiqueta inmutable 0.1.0-alpha.2 y la versión preliminar conservan la ruta compatible calificada de forma independiente y la identidad de la fuente para sus 32 primarios de Central.

Inicio rápido del agente

La ruta empaquetada compatible actual es exactamente 0.1.0-alpha.3 en JDK 21. Instale la CLI y el servidor MCP stdio genérico primero:

cs install --default-channels=false \
  --channel https://raw.githubusercontent.com/DmytroMitin/scala-semantic-harness/main/distribution/coursier/channel.json \
  semantic-scala semantic-scala-mcp
semantic-scala version

Luego elija la integración que admita el cliente del agente: la CLI completa, la proyección MCP curada de exactamente ocho herramientas y/o la habilidad de agente alfa-2 inmutable. Copiar los envoltorios delgados de habilidades de este repositorio a otro proyecto no es compatible; instale la habilidad canónica desde la etiqueta 0.1.0-alpha.2.

docs/agent-onboarding.md ofrece recetas listas para copiar para Codex, Claude Code, Cursor y VS Code/Copilot, estados de calificación local exactos, instalación de habilidades, la matriz de superficie CLI/MCP y solución de problemas. Los selectores de proyecto y JDK de destino de Alpha 3 están excluidos explícitamente del contrato empaquetado de alfa-2. El canal mutable calificado main selecciona Alpha 3; Alpha 2 sigue siendo reproducible a través de su canal inmutable fijado por etiqueta.

Qué se incluye

  • informes estructurados de compilación, prueba y diagnóstico;
  • inventario de SemanticDB, cobertura, símbolos y evidencia de uso de símbolos exactos;
  • consultas acotadas de símbolos y tipos del compilador de presentación;
  • reconciliación de evidencia dinámica del compilador con un artefacto explícito de SemanticDB;
  • una composición pública de evidencia puntual que preserva el descubrimiento de artefactos fuente, la selección segura, la evidencia de símbolos en vivo y la reconciliación condicional;
  • mapeo de fuente SemanticDB v4 con reconocimiento de destino de compilación opt-in de Alpha 3 con un eje Scala opcional validado y recibo solo de raíz, junto con evidencia puntual v4 con reconocimiento de destino con un contexto parcial de salida existente no compilable y opt-in explícito v5 de salida interna de compilación existente, más control estricto v6 de frescura de contenido de salida interna;
  • una operación de evidencia puntual TASTy posterior a la compilación solo CLI de Alpha 3, en la misma solicitud, con procedencia exacta y estable del inspector hijo de Scala 3;
  • compatibilidad acotada de comandos, classpath y recibos TASTy respaldados por sbt de Alpha 3 probada en fixtures de sbt 1.12.15 y 2.0.6;
  • resúmenes conservadores de efectos FP basados en sintaxis;
  • un servidor MCP stdio que expone exactamente ocho herramientas públicas;
  • pequeños proyectos de ejemplo externos e infraestructura de referencia; y
  • una habilidad de agente semantic-scala neutral para el cliente con envoltorios delgados de Codex y Claude Code;
  • plantillas de fuente y un ensamblador determinista para un paquete autocontenido de Agent Plugins 1.0 que contiene esa habilidad y el servidor MCP de exactamente ocho herramientas; y
  • una ruta de aplicación Maven/Coursier compatible, calificada de forma independiente y de exactamente ocho módulos para las versiones exactas 0.1.0-alpha.2 y 0.1.0-alpha.3, con Alpha 3 actual en el canal público main y Alpha 2 conservado en su etiqueta de lanzamiento.

Módulos

  • modules/core: modelos JSON compartidos y códecs.
  • modules/cli: el punto de entrada del comando semantic-scala.
  • modules/sbt-runner: integración de subprocesos de compilación/prueba de sbt.
  • modules/semanticdb-reader: inventario de SemanticDB y evidencia de uso.
  • modules/presentation-compiler: consultas semánticas dinámicas acotadas.
  • modules/semantic-reconciliation: comparación de símbolos estáticos/dinámicos y los contratos de composición y reconciliación de evidencia puntual.
  • modules/fp-analyzers: resúmenes de efectos basados en sintaxis.
  • modules/mcp-server: adaptador MCP stdio respaldado por CLI.
  • modules/benchmark: modelos de referencia y fixtures.

Compilación y prueba

El proyecto usa Scala 3 y sbt. Una configuración de fuente nueva requiere JDK 21, sbt, Git y Python 3; CI usa Temurin JDK 21. Un JDK local más nuevo puede funcionar, pero no es la línea base documentada.

Scala 3 describe la implementación del harness, no una promesa general de lenguaje de destino. Una matriz acotada de JDK 21 ha verificado delegación de compilación/prueba/error, descubrimiento de SemanticDB/símbolos/usos y resúmenes de efectos basados en sintaxis en fixtures de Scala 2.13.18 y Scala 3.3.8. El harness se compila con Scala 3.9.0 y sus operaciones dinámicas puntuales usan el compilador de presentación vinculado de Scala 3.9.0. Ese compilador anfitrión resolvió los puntos de Scala 2 de sintaxis compartida de la matriz, pero esto no es soporte general de dialecto o compilador de Scala 2. Las compilaciones de destino aún usan su compilador de destino seleccionado; la evidencia estática de SemanticDB y la evidencia TASTy posterior a la compilación siguen siendo evidencia de artefacto de destino. La reconciliación y la evidencia puntual heredan la limitación de fuente dinámica. Consulte docs/project-status.md y docs/semantic-api.md para conocer el límite exacto.

Dos verificaciones mantenidas de proyectos reales de Etapa A ahora cubren revisiones congeladas de Scala 2.13.18 sin cambios de fuente o compilación. scala/scala-java8-compat no produjo SemanticDB, por lo que su matriz alfa-2 que por lo demás pasaba conservó evidencia puntual degradada veraz. Una fila de producción acotada de scalacenter/scalafix produjo SemanticDB propiedad del destino; el descubrimiento de símbolos estáticos, la búsqueda dinámica acotada, la reconciliación estática/dinámica exacta, la evidencia puntual completa y la proyección MCP ordenada de exactamente ocho herramientas pasaron. La compilación agregada de sbt de Scalafix también expuso que el oráculo de compilación alfa-2 no puede seleccionar una fila de proyecto. El lanzamiento de Alpha 3 cierra esa brecha de enrutamiento con un selector de proyecto validado opcional; la distribución inmutable de alfa-2 permanece sin cambios. Estos dos proyectos son evidencia acotada complementaria, no soporte general de Scala 2 ni superioridad semántica.

El límite de subprocesos de sbt del lanzamiento de Alpha 3 envía la selección de proyecto más una tarea propiedad del producto como una única secuencia de comandos fija. Sus adaptadores de classpath/receipt inyectados usan fileConverter de sbt para referencias virtuales de sbt 2 y conservan las entradas respaldadas por archivos de sbt 1. Los JARs CAS de sbt 2 legibles sin extensión se copian directamente, sin escaneo de caché, a un área direccionada por contenido solo del propietario bajo el árbol target generado del espacio de trabajo seleccionado. Un fixture desechable de sbt 2.0.6, un fixture de múltiples proyectos desechable de sbt 2.0.7, proyectos de plugin congelados de sbt 1.12.15 y sbt 2.0.6, y una fila seleccionada congelada de Chimney sbt 2.0.7 / Scala 3.8.4 pasan sus compuertas acotadas. El ejecutor compartido usa un ciclo de vida de servidor sbt en primer plano propiedad de la solicitud, y los contadores estructurados de suites de sbt preservan las pruebas ignoradas/omitidas en los campos JSON de Test existentes. Esto es evidencia específica de versión, no compatibilidad universal de sbt 2 o de plugins de compilador. Los puntos PC con mucha macro de Chimney siguen sin resolverse de forma neutral porque las opciones y los plugins del compilador de destino no se reproducen.

sbt -batch test
sbt cli/stage
sbt mcpServer/stage

El envoltorio de checkout de fuente ejecuta la CLI a través de sbt:

./semantic-scala --help
./semantic-scala version
./semantic-scala compile --json
./semantic-scala compile --sbt-project core2_13 --json
./semantic-scala compile --sbt-project plugin --sbt-java-home /absolute/path/to/installed-jdk --json
./semantic-scala test --json
./semantic-scala errors --json

compile, errors, test, semanticdb-for-source y point-evidence aceptan un --sbt-project <id> opcional donde el ID coincide con [A-Za-z][A-Za-z0-9_-]*. Sin él, conservan el comportamiento raíz ordinario. Con él, compile/errors ejecuta el ámbito fijo Compile de ese proyecto y test ejecuta su ámbito fijo Test. El selector no es sintaxis arbitraria de sbt, y una invocación seleccionada exitosa prueba solo esa operación de proyecto acotada, no la corrección de todo el espacio de trabajo.

Las ocho formas respaldadas por sbt (compile, errors, test, con reconocimiento de destino semanticdb-for-source, con reconocimiento de destino point-evidence, respaldado por sbt infer-type, infer-type-batch y tasty-point-evidence) también aceptan un --sbt-java-home <absolute-directory> opcional. El harness en sí permanece en el runtime compatible de JDK 21; solo el hijo de sbt de destino recibe el JAVA_HOME canónico seleccionado y un prefijo PATH coincidente. El home debe estar ya instalado y pasar la validación acotada y una sonda de versión fija. El harness no descubre, descarga, instala ni selecciona JDKs globalmente. Omitir la bandera preserva el comportamiento de Java heredado. La adquisición de classpath con JDK seleccionado está aislada de la reutilización de caché sin selector, y los esquemas de resultados públicos no exponen el home ni la evidencia de la sonda.

Con reconocimiento de destino semanticdb-for-source y point-evidence también aceptan --sbt-scala-version <version>. La opción requiere --sbt-project, usa una gramática estricta solo de versión y selecciona ese eje Scala cruzado en un ciclo de vida fresco de sbt. El mapeo de fuente luego ejecuta su tarea fija de recibo solo de raíz; la evidencia puntual ejecuta su recibo de contexto puntual parcial de salida existente distinto. La omisión significa el valor predeterminado de compilación verificado, nunca el estado heredado de ++.

Para uso repetido, prefiera el lanzador escalonado en modules/cli/target/stage/bin/semantic-scala.

Distribución Maven/Coursier

La ruta de compilación de fuente anterior sigue siendo compatible y verificada externamente. Los runtimes exactos de ocho módulos Alpha 2 y Alpha 3 se publican bajo el grupo final com.github.dmytromitin en Maven Central, con sus formas completas de repositorio público verificadas contra bytes revisados. Ambas versiones exactas pasaron la instalación/ejecución/ actualización/desinstalación fresca similar a la de un externo desde raw-GitHub público contra solo Maven Central. Alpha 3 es actual en main y también pasó la reproducción fijada por confirmación; Alpha 2 conserva su ruta inmutable y calificada de etiqueta de lanzamiento.

La publicación de Central contiene exactamente los ocho módulos de implementación, nunca el agregado raíz o el benchmark, y el canal público usa descriptores de versión exacta para las aplicaciones distintas semantic-scala CLI y semantic-scala-mcp servidor. JDK 21 y Coursier son requisitos previos de runtime/instalación. Se necesita sbt del espacio de trabajo de destino para comandos de oráculo de compilación como compile, errors y test; no se requiere solo para instalar las aplicaciones o para cada comando semántico de solo lectura. Los módulos de Maven son artefactos de implementación de aplicaciones, no una API de biblioteca integrable compatible ni una promesa de compatibilidad binaria.

Instale solo la CLI:

cs install --default-channels=false \
  --channel https://raw.githubusercontent.com/DmytroMitin/scala-semantic-harness/main/distribution/coursier/channel.json \
  semantic-scala

O instale la CLI y el servidor MCP stdio juntos:

cs install --default-channels=false \
  --channel https://raw.githubusercontent.com/DmytroMitin/scala-semantic-harness/main/distribution/coursier/channel.json \
  semantic-scala semantic-scala-mcp

Use semantic-scala-mcp como el comando MCP stdio genérico con el espacio de trabajo de destino como su directorio de trabajo. Consulte docs/distribution.md para la configuración de Coursier, actualizaciones, desinstalación, reproducción de canal fijado por confirmación y el límite de calificación actual.

Comandos semánticos

./semantic-scala semanticdb-status --workspace . --json
./semantic-scala semanticdb-coverage --workspace . --json
./semantic-scala semanticdb-for-source --file src/main/scala/example/Main.scala --workspace . --json
./semantic-scala point-evidence --file src/main/scala/example/Main.scala --workspace . --line 6 --col 16 --json
./semantic-scala semanticdb-for-source --file src/main/scala/example/Main.scala --workspace . --sbt-project app [--sbt-scala-version 3.3.7] --json
./semantic-scala point-evidence --file src/main/scala/example/Main.scala --workspace . --line 6 --col 16 --sbt-project app [--sbt-scala-version 3.3.7] [--include-existing-internal-outputs [--require-fresh-internal-outputs]] --json
./semantic-scala tasty-point-evidence --workspace . --sbt-project app --file src/main/scala/example/Main.scala --line 6 --col 16 [--sbt-java-home /absolute/path/to/installed-jdk] --json
./semantic-scala symbols --semanticdb path/to/Main.scala.semanticdb --json
./semantic-scala usages --workspace . --manifest semantic-usages.json --symbol 'example/Foo#bar().' --json
./semantic-scala symbol-at --file path/to/Main.scala --line 6 --col 16 --json
./semantic-scala infer-type --file path/to/Main.scala --line 6 --col 16 --json
./semantic-scala infer-type-batch --requests batch-request.json --workspace . --sbt-project core --sbt-configuration Compile [--sbt-java-home /absolute/path/to/installed-jdk] --json
./semantic-scala reconcile-symbol --file path/to/Main.scala --line 6 --col 16 --semanticdb path/to/Main.scala.semanticdb --json
./semantic-scala effect-summary --file path/to/UserRepo.scala --json

El mapeo de fuentes consciente del objetivo y la evidencia de puntos son opciones explícitas de Alpha 3. Omitir las opciones de objetivo preserva el comportamiento de v2 en todo el espacio de trabajo, incluida la ambigüedad veraz. Con --sbt-project, el mapeo de fuentes emite v4 y utiliza un recibo de Compile fijo solo de raíz que contiene la identidad del objetivo, classDirectory, semanticdbTargetRoot, la procedencia solicitada/efectiva del eje Scala, y procedencia acotada de JDK. No solicita compilación del objetivo, fullClasspath, productos o productos exportados; la carga de build/plugin de sbt, la resolución y las escrituras ordinarias de metadatos/caché siguen siendo posibles. La propiedad del candidato se verifica canónicamente debajo de la raíz de SemanticDB reportada mientras el descubrimiento del espacio de trabajo permanece sin cambios. El --sbt-scala-version opcional selecciona un eje validado y debe coincidir exactamente con el eje efectivo del recibo; la omisión utiliza el valor predeterminado de build del ciclo de vida fresco.

La evidencia de puntos consciente del objetivo emite v4 por defecto. Adquiere exactamente un recibo fijo de Compile que contiene el directorio de clases existente seleccionado cuando está presente más las dependencias externas del objetivo seleccionado. Nunca solicita compilación del objetivo, fullClasspath, productos o productos exportados, y no tiene respaldo de build. El informe siempre marca este contexto como PartialExistingOutputs; un directorio de clases faltante se omite en lugar de construirse. La carga de build/plugin de sbt verificada, la resolución de dependencias y las escrituras de metadatos/caché siguen siendo posibles. El compilador de presentación del harness no reproduce las banderas del compilador del objetivo, los plugins o el ciclo de vida, y el contexto no es un classpath arbitrario completo de múltiples proyectos. Una bandera de presencia explícita --include-existing-internal-outputs emite v5 y agrega solo directorios de clases de Compile internos del mismo eje ya presentes encontrados por un recorrido de dependencias acotado solo de configuración. Las salidas faltantes permanecen tipadas y nunca se construyen. V5 permanece PartialExistingCompileOutputs, no solicita fullClasspath, productos o internalDependencyClasspath, y aún no reproduce las banderas/plugins del compilador del objetivo. La octava herramienta MCP existente expone la misma opción como booleano opcional includeExistingInternalOutputs; el registro permanece exactamente en ocho. Agregar --require-fresh-internal-outputs requiere la bandera v5 y emite v6. Lee solo archivos Compile / compileAnalysisFile existentes del mismo eje y utiliza las API de persistencia de Zinc compatibles en un trabajador JDK 21 acotado bajo demanda más sellos de contenido y relaciones de fuente/producto. El trabajador no se resuelve ni se lanza por v2/v4/v5 o la inicialización ordinaria de MCP. Su gráfico exacto fijado de Zinc 1.12.1/Scala 2.13.18/JNA 5.14.0 es primero en caché; el primer uso estricto-v6 sin caché puede contactar a Maven Central y poblar el caché de Coursier, mientras que un caché caliente puede ejecutarse sin conexión. La falta de disponibilidad en frío sin conexión falla de forma cerrada como Unverifiable, sin compilación ni respaldo de runtime vinculado. El mismo recibo solo de configuración captura las raíces de fuente configuradas exactas y la cardinalidad de la lista de generadores; los generadores configurados, el residuo de fuente gestionada, la procedencia no disponible, las raíces inseguras o los límites de archivo/archivo excedidos fallan de forma cerrada como No verificable. Solo los directorios internos probados Fresh contribuyen; Stale y todos los estados Unverifiable permanecen visibles pero excluidos. Esto no compila, ejecuta generadores, utiliza mtimes o el estado de Git como autoridad de frescura, ni establece frescura de todo el objetivo/build. El booleano MCP correspondiente es requireFreshInternalOutputs en la misma octava herramienta. Mover el gráfico fuera de los classpaths normales del proceso reduce la superficie de dependencias ordinaria escalonada y enviada; no afirma un menor uso total de disco después de que el caché bajo demanda haya sido poblado. semanticdb-for-source sigue siendo solo CLI, el reconcile-symbol directo sigue siendo una operación independiente del objetivo de artefacto explícito, y el registro MCP permanece exactamente en ocho herramientas.

Todos los comandos orientados a máquina tienen salida JSON. El código de salida del comando oracle de build 0 significa que la operación CLI se completó; inspeccione el campo JSON success para el resultado del dominio de compilación o prueba. Los resultados semánticos preservan su alcance e incertidumbre: el texto de hover renderizado no es identidad canónica, la presencia de artefactos no es cobertura completa de fuentes, y solo ExactMatch es una reconciliación exacta.

Contratos detallados:

Servidor MCP

El servidor stdio expone exactamente estas herramientas:

semantic_compile
semantic_errors
semantic_test
semantic_effect_summary
semantic_symbol_at
semantic_symbols
semantic_reconcile_symbol
semantic_point_evidence

Constrúyalo y valídelo con:

sbt cli/stage
sbt mcpServer/stage
scripts/mcp/smoke-mcp-tools.py

Copie .mcp.example.json y reemplace su ruta de checkout de marcador de posición para la configuración del cliente de desarrollo de fuentes. Los usuarios instalados de alpha-2 deben configurar semantic-scala-mcp directamente. Consulte docs/mcp-client-validation.md para la configuración pública y las comprobaciones de protocolo, y docs/agent-onboarding.md para recetas de clientes.

Habilidad de agente

La política canónica neutral al cliente es skills/semantic-scala/SKILL.md. Los envoltorios delgados del repositorio viven en:

Estos archivos son envoltorios del árbol de fuentes, no instalaciones externas independientes. La habilidad es política y documentación. No agrega comandos, servicios en segundo plano o invocación automática. La instalación externa de alpha-2 más la calificación del cliente está en docs/agent-onboarding.md; el empaquetado y el mantenimiento están en docs/agent-skill-semantic-scala.md.

Para una instalación actual proveniente del repositorio, seleccione la única habilidad canónica explícitamente:

npx skills add https://github.com/DmytroMitin/scala-semantic-harness --skill semantic-scala

Esto instala solo orientación; instale el runtime compatible por separado. El comando calificado, los metadatos de catálogo estables, los límites del registro y los seguimientos del plugin nativo están documentados en docs/discoverability.md.

Paquete del Registro MCP oficial

El repositorio incluye una superficie de empaquetado MCPB determinista para el CLI y servidor MCP exactos 0.1.0-alpha.3. El paquete publicado de Linux x86_64 lleva un runtime Corretto 21 local al paquete y puntos de entrada estáticos, por lo que no llama a un java de host no declarado. Preserva el acceso ordinario del host al espacio de trabajo Scala objetivo y sus herramientas de build. La calificación se limita a Linux x86_64 con un entorno GNU-libc compatible y zlib del sistema; no es una afirmación para cada libc o distribución de Linux.

El paquete exacto es un activo público de la versión Alpha-3 y su registro activo oficial del MCP Registry es io.github.DmytroMitin/semantic-scala. El manifiesto mantenido y el registro final están bajo packaging/mcpb/semantic-scala/ y distribution/mcp-registry/. Consulte docs/mcpb-package.md para la URL y el digest inmutables, el build de etiqueta exacta, el determinismo, la validación y el límite de plataforma.

Paquete de plugin de agente

Después de preparar el CLI y el servidor MCP, genere un paquete reubicable fresco:

sbt cli/stage mcpServer/stage
python3 scripts/package-agent-plugin.py assemble \
  --output target/agent-plugin/semantic-scala
python3 scripts/package-agent-plugin.py validate \
  --plugin-root target/agent-plugin/semantic-scala

La salida es material de build ignorado, no una distribución binaria verificada o versión. Apunta al borrador de trabajo de Agent Plugins 1.0.0 y agrupa la habilidad canónica, el CLI preparado completo y el servidor MCP exacto de ocho herramientas completo. Consulte docs/agent-plugin.md para el contrato del paquete, el nivel de validación, la prueba de humo de reubicación y los límites actuales de soporte del cliente.

Candidatos de plugin nativo

El repositorio también contiene plantillas de fuentes deterministas de OpenAI/Codex y Claude Code más un ensamblador que transforma el MCPB Alpha-3 publicado exacto en candidatos nativos con un runtime Java local al paquete. Ambos candidatos pasaron la validación de manifiesto nativo, las comprobaciones de bytes de la habilidad canónica, la igualdad de inventario de dos builds y una prueba de humo de runtime exacto de ocho herramientas reubicado sin Java de host. Codex CLI 0.154.0 además pasó una instalación desechable de marketplace local, carga de habilidad, registro de MCP agrupado y una llamada semántica de solo lectura. Claude Code 2.1.220 pasó una instalación desechable de marketplace local, carga de habilidad empaquetada, conexión MCP local al plugin y una llamada semántica de solo lectura mediada por el cliente después de un punto de control de inicio de sesión explícito del propietario. El candidato histórico completo de Claude permanece preservado en el commit c05aac9f38e7755a51f511078ff555a587f97ccf en DmytroMitin/semantic-scala-claude-plugin, y el envoltorio delgado rechazado permanece en 05d4f0de35a02916504bf29156bc42270cf77a23. El borrador existente se envió una vez el 28 de septiembre de 2026. Su estado actual es Necesita cambios: el revisor no permite que un plugin de Directorio descargue y ejecute código de servidor desde una versión de GitHub después de la instalación, incluso cuando está fijado por suma de verificación. El main público ahora contiene la fuente solo de habilidades descrita a continuación.

El candidato local calificado sin descarga se mantiene bajo packaging/claude-embedded-plugin/ y incrusta un MCPB local compacto directamente en el plugin. No tiene descarga ejecutable posterior a la instalación ni actualizador. El runtime sigue siendo Alpha-3 mientras que la versión de distribución del plugin preparado es 0.1.0-alpha.3.1. El MCPB determinista es 145,197,017 bytes, se expande a 181,937,037 bytes en 1,952 archivos, y tiene SHA-256 6c1c698eaa73b78b9d005cbba4fccffd2e357e721e7f64fbeccdb13bb723d4ed. El ZIP de seis archivos es 144,399,347 bytes, se expande a 145,233,144 bytes, y tiene SHA-256 9004bfa94a3e60618430092bd253ac6354aa64290c3ebad41c2a8f3a6999f2d6. La validación oficial de MCPB y plugin de Claude, tres builds byte-idénticos, la suite completa de compatibilidad exacta de ocho herramientas y una llamada semántica aislada de cliente instalado pasan. El candidato está sin embargo bloqueado para el Directorio público: la lista de verificación previa al envío actual requiere que el archivo de GitHub tenga menos de 50 MiB y que cada archivo de plugin tenga menos de 5 MiB. El repositorio de distribución, la versión del portal, el envío y la lista pública permanecen sin cambios.

Un candidato separado de Directorio de Claude contenido se mantiene bajo packaging/claude-directory-skills-only-plugin/. Contiene solo metadatos, una pequeña habilidad de ejecución, una copia byte-idéntica de la política canónica, documentación, licencia e inventario determinista. Declara sin runtime MCP/CLI, hook, LSP, ejecutable, instalador, actualizador o allowed-tools; Claude Code utiliza un semantic-scala instalado independientemente a través de su ruta ordinaria de permisos de shell. La versión de distribución del plugin 0.1.0-alpha.3.2 mantiene el requisito previo exacto del CLI 0.1.0-alpha.3. La fuente de seis archivos es 41,500 bytes y su ZIP determinista es 16,392 bytes. La validación estricta del plugin, las comprobaciones de paquete contenido, la matriz de requisitos previos directa del CLI y los casos autenticados de cliente instalado de resumen de efectos, respaldados por build, CLI faltante, sin herramientas y de superficie pasan. La fuente exacta es pública en el commit de distribución f28fe7a61ff449c9775d554d5bc9a11e2a9cfda1; su archivo de GitHub de 18,708 bytes pasa todos los límites duros actuales. El envío existente permanece Necesita cambios and still resolves rejected commit 05d4f0d porque el portal no ofrece ninguna actualización de fuente sin reenvío. No ocurrió ningún reenvío o listado. Consulte docs/claude-directory-skills-only-plugin.md.

El paquete del propietario bajo distribution/claude-community/ registra el commit de calificación inmutable y la espera de revisión humana esperada. La Política de privacidad de semantic-scala aprobada por el propietario es pública y se expone desde el README del plugin calificado. Las respuestas enviadas son Solo lectura, No, No retenido, and No; los cuatro acuses de recibo de cumplimiento fueron aprobados por el propietario. El valor de contacto privado no se retiene en este repositorio. Un candidato separado solo para habilidades de OpenAI ahora vive en packaging/openai-skills-plugin/ sin reutilizar ni cambiar el candidato local de MCP. Empaqueta un flujo de trabajo estrecho de solo lectura effect-summary, una referencia canónica exacta de políticas y un helper de Python solo con biblioteca estándar. El helper obtiene y verifica el runtime fijo Alpha-3 en el primer uso aprobado, luego invoca bin/semantic-scala directamente; no contiene configuración de MCP y no inicia ningún proceso de MCP. Codex CLI 0.157.1 pasó la instalación desechable del marketplace, la carga de habilidades instaladas, la invocación del helper empaquetado y la interpretación de Fixture.value: Option[Int]. La adquisición en frío y la reutilización en caché cálida pasaron con bytes de fixture sin cambios. Esto es calificación técnica local, no un envío a OpenAI ni un listado público. La guía actual de OpenAI requiere contacto con el socio antes de enviar el flujo de trabajo de ejecución local/archivo local/fuera de línea. El material inspeccionado de terceros no expone una ruta de contacto genérica accionable, por lo que la elegibilidad sigue siendo desconocida y no se creó ningún borrador de Platform. Un SVG cuadrado original está aprobado por el propietario y conectado a ambos campos de marca. La política de privacidad pública cubre la ruta de OpenAI/Codex, la descarga de primer uso y la caché separada. Ver docs/openai-skills-only-plugin.md.

El candidato delgado anterior sigue documentado como evidencia histórica rechazada por revisores en docs/claude-directory-thin-plugin.md. No debe reenviarse sin cambios. Ver docs/claude-directory-embedded-plugin.md para el paquete localmente calificado sin descarga, identidades exactas, límites actuales de Claude y el bloqueador resultante del Directorio público. No publique este candidato como fuente del Directorio sin resolver ese bloqueador.

Ejemplos y puntos de referencia

Los proyectos bajo examples/ son fixtures CLI externos en lugar de miembros del build raíz de sbt. La suite de pruebas normal ejercita los ejemplos de compilación exitosa y compilación fallida a través de la CLI.

El repositorio contiene un subconjunto de referencia pública independiente con metodología, prompts portátiles, fixtures acoplados a pruebas, validación determinista y un agregado acotado. Comience en benchmarks/README.md. Las transcripciones crudas históricas y la automatización del controlador no forman parte de ese subconjunto. La evidencia admitida no establece superioridad amplia ni reproducibilidad general de referencia más allá de su umbral declarado de muestra pequeña.

Limitaciones actuales

  • El paquete oficial MCPB está validado solo para Linux x86_64. Otros sistemas operativos y arquitecturas requieren activos compilados y probados por separado. El paquete probado requiere un entorno GNU-libc compatible y zlib del sistema incluso aunque no requiere Java del host.
  • Un paquete generado autocontenido de Agent Plugins tiene evidencia estructural acotada, de esquema oficial, de determinismo y de runtime reubicado, pero no un canal de lanzamiento compatible ni prueba de adopción por un cliente instalado conforme.
  • Los paquetes nativos de OpenAI/Codex y Claude Code son candidatos Linux x86_64 validados localmente ensamblados desde el MCPB Alpha-3 exacto. Ambos tienen calificación acotada de habilidad de cliente instalado desechable y uso de MCP. No son listados públicos ni canales públicos de instalación compatibles. El envío público de MCP de OpenAI aún requiere un servicio HTTPS público autorizado por separado. La fuente delgada de Claude en 05d4f0de35a02916504bf29156bc42270cf77a23 está rechazada por revisores porque descarga bytes de servidor ejecutables después de la instalación. El MCPB integrado elimina esa descarga, conserva Java local al paquete y pasa la suite completa de compatibilidad exacta de ocho herramientas más una llamada semántica aislada de cliente. Se ajusta a las reglas separadas de carga de 200 MB de claude.ai, pero no a la lista de verificación del Directorio público: su archivo de GitHub de 144,399,347 bytes supera los 50 MiB y su MCPB de 145,197,017 bytes supera el límite de 5 MiB por archivo. La ruta del plugin del Directorio está por lo tanto bloqueada pendiente de una arquitectura diferente o un mecanismo explícito aprobado por revisores.
  • El candidato separado de ocho archivos solo para habilidades de OpenAI está validado localmente en Codex CLI 0.157.1 para un flujo de trabajo effect-summary directo de CLI sin dependencia de MCP. No está enviado. La revisión específica del producto de OpenAI no tiene una ruta de contacto genérica oficial descubrible, por lo que la elegibilidad sigue siendo desconocida. El SVG compartido de logo/compositor está aprobado por el propietario y validado localmente. La identidad de publicador verificada, el acceso de escritura a Apps Management, la selección de país y las declaraciones de política siguen siendo requisitos previos; la privacidad es pública.
  • La superficie de MCP sigue siendo el adaptador stdio documentado de ocho herramientas.
  • Las solicitudes semanticdb-for-source, point-evidence y reconcile-symbol emparejadas con fuente ahora informan frescura de contenido consistente con la instantánea. Fresco significa que el contenido de la fuente capturada coincide con el documento SemanticDB capturado; no significa que se ejecutó un build o que todo el proyecto compila.
  • SemanticDB obsoleto sigue siendo visible pero no puede producir reconciliación completada. La evidencia no verificable permanece explícita y solo puede completarse como evidencia calificada. El inventario y la cobertura de SemanticDB aún no establecen que cada fuente esté cubierta o fresca.
  • Las representaciones del Compilador de Presentación son evidencia acotada, no prueba de compilación de todo el proyecto.
  • La habilidad canónica selecciona symbol-at para una pregunta exacta de declaración del Compilador de Presentación y reserva point-evidence para preguntas donde el descubrimiento/selección de artefactos y la reconciliación son relevantes. Las preguntas suficientes por fuente aún no requieren consulta semántica.
  • La preparación de la fuente alfa pública es separada de la distribución binaria, la usabilidad de instalación, la utilidad semántica y la evidencia de adopción de habilidades.
  • La ruta exacta de aplicación Maven/Coursier 0.1.0-alpha.2 está calificada independientemente desde la URL real del canal público propiedad del proyecto y Maven Central bajo JDK 21. Esto no establece contribución de Coursier, Registro MCP, MCPB, empaquetado nativo/contenedor/npm/PyPI, una API estable de biblioteca incrustable, compatibilidad amplia de Scala, adopción de habilidades, superioridad semántica o estabilidad 1.0. La identidad exacta de la fuente alpha-2 se publica como una etiqueta ligera y un prerelease de GitHub con archivos fuente generados normales y cero activos de proyecto cargados. Las 16 filas de licencia/NOTICE anteriormente marcadas están técnicamente resueltas; el propietario seleccionó Apache-2.0 para JNA 5.14.0 obtenido por resolver. Esto no es asesoramiento legal ni autoridad para otra acción de publicación.
  • El repositorio público contiene solo el historial de fuente limpio auditado. El historial de desarrollo mixto separado permanece privado y no es un canal de lanzamiento o instalación.

Ver ROADMAP.md para los próximos pasos orientados al producto.

El desarrollo actual es primero en validación: probar proyectos reales de Scala, preservar los límites de compatibilidad y admitir características solo desde brechas concretas. Los informes de proyectos reales son bienvenidos usando el paquete de comparación acotado en docs/early-feedback.md, especialmente evidencia faltante relevante para decisiones o composición materialmente útil de hechos de compilador, build/pruebas, IDE/LSP y artefactos. Tanto las rutas empaquetadas exactas Alpha 2 como Alpha 3 están calificadas independientemente y conservan identidad inmutable de lanzamiento de fuente. La retroalimentación externa de usuarios tempranos es la principal entrada siguiente para la admisión de valor semántico; la identidad de fuente SNAPSHOT Alpha 4 no agrega ninguna ruta empaquetada.

Políticas del proyecto