semantic-scala

Servidor MCP local stdio com oito ferramentas limitadas para compilação Scala, testes, diagnósticos do compilador, resumos de tipos/efeitos, símbolos, SemanticDB e reconciliação de evidências para agentes de codificação de IA.

Documentação

scala-semantic-harness

Ferramenta semântica experimental para projetos Scala e de programação funcional usados por agentes de codificação.

O harness é uma camada limitada de evidência semântica, não um substituto para o compilador Scala, sbt, testes, Metals ou outras ferramentas IDE/LSP. Resultados de compilador, build e testes permanecem como o oráculo final de correção. Veja docs/project-status.md para evidências atuais e limites de prontidão e docs/semantic-tooling-positioning.md para o limite do produto. Avaliadores técnicos podem usar docs/early-feedback.md para relatar uma comparação concreta com um projeto real.

A árvore atual é o produto-fonte experimental público alpha standalone sob a licença Apache-2.0. Foi publicada a partir de uma raiz limpa construída e auditada de forma independente, seguida apenas por commits revisados de produto público. O histórico de desenvolvimento misto anterior é mantido separadamente em um arquivo privado e não faz parte deste repositório público.

A fonte mutável main relata 0.1.0-alpha.4-SNAPSHOT apenas para desenvolvimento de fonte. Nenhum artefato Central Alpha 4, canal suportado, tag, GitHub Release ou afirmação de prontidão para release é estabelecido. O release exato de oito módulos 0.1.0-alpha.3 é publicado no Maven Central, e o canal público main de dois aplicativos do Coursier o seleciona. Instalação/execução/atualização/desinstalação fresca, semelhante a um outsider, com JDK 21 através da URL pública raw-GitHub e do Maven Central passou, assim como a reprodução com commit fixado. Ambas as rotas exatas de aplicativos Alpha 2 e Alpha 3 agora têm evidência READY de distribuição suportada limitada. A tag leve imutável 0.1.0-alpha.3 identifica o commit 075a60bfb7d7677d7fdfcc2369c9ffe41c8b32a8, cujos dois builds limpos reproduziram todos os 32 primários públicos do Maven. Seu prerelease do GitHub tem arquivos-fonte gerados normais mais o MCPB exato Linux x86_64 usado pelo registro oficial ativo do Registry. A tag imutável 0.1.0-alpha.2 e o prerelease retêm a rota suportada qualificada de forma independente e a identidade da fonte para seus 32 primários do Central.

Início rápido do agente

A rota empacotada suportada atual é exatamente 0.1.0-alpha.3 no JDK 21. Instale o CLI e o servidor MCP stdio genérico primeiro:

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

Em seguida, escolha a integração que o cliente do agente suporta: o CLI completo, a projeção MCP curada de exatamente oito, e/ou a habilidade imutável de agente alpha-2. Copiar os wrappers finos de habilidade deste repositório para outro projeto não é suportado; instale a habilidade canônica da tag 0.1.0-alpha.2.

docs/agent-onboarding.md dá receitas prontas para copiar para Codex, Claude Code, Cursor e VS Code/Copilot, status exatos de qualificação local, instalação de habilidade, a matriz de superfície CLI/MCP e solução de problemas. Seletores de projeto e JDK-alvo Alpha-3 são explicitamente excluídos do contrato empacotado alpha-2. O canal mutável qualificado main seleciona Alpha 3; Alpha 2 permanece reproduzível através de seu canal imutável com tag fixada.

O que está incluído

  • relatórios estruturados de compilação, teste e diagnóstico;
  • inventário SemanticDB, cobertura, símbolo e evidência de uso de símbolo exato;
  • consultas limitadas de símbolo e tipo do Presentation Compiler;
  • reconciliação de evidência dinâmica do compilador com um artefato SemanticDB explícito;
  • uma composição pública de evidência pontual que preserva descoberta de artefato-fonte, seleção segura, evidência de símbolo ao vivo e reconciliação condicional;
  • mapeamento de fonte SemanticDB v4 ciente de alvo de build opt-in Alpha 3 com um eixo Scala opcional validado e recibo somente-raiz, junto com evidência pontual v4 ciente de alvo com um contexto parcial de saída existente não compilável e opt-in explícito v5 de saída interna de Compile existente, mais gating estrito v6 de saída interna fresca por conteúdo;
  • uma operação de evidência pontual TASTy pós-compilação somente-CLI, mesma-requisição, Alpha 3 com proveniência exata estável de inspetor-filho Scala 3;
  • compatibilidade limitada Alpha 3 de comando, classpath e recibo TASTy apoiados por sbt comprovada em fixtures sbt 1.12.15 e 2.0.6;
  • resumos conservadores de efeitos FP com foco em sintaxe;
  • um servidor MCP stdio expondo exatamente oito ferramentas públicas;
  • pequenos projetos de exemplo externos e infraestrutura de benchmark; e
  • uma habilidade de agente semantic-scala neutra de cliente com wrappers finos Codex e Claude Code;
  • templates de fonte e um montador determinístico para um pacote autocontido Agent Plugins 1.0 contendo essa habilidade e o servidor MCP exato-oito; e
  • uma rota de aplicativo Maven/Coursier exato-oito suportada e qualificada de forma independente para versões exatas 0.1.0-alpha.2 e 0.1.0-alpha.3, com Alpha 3 atual no canal público main e Alpha 2 retido em sua tag de release.

Módulos

  • modules/core: modelos JSON compartilhados e codecs.
  • modules/cli: o ponto de entrada do comando semantic-scala.
  • modules/sbt-runner: integração de subprocesso sbt compile/test.
  • modules/semanticdb-reader: inventário SemanticDB e evidência de uso.
  • modules/presentation-compiler: consultas semânticas dinâmicas limitadas.
  • modules/semantic-reconciliation: comparação de símbolo estático/dinâmico e os contratos de composição e reconciliação de evidência pontual.
  • modules/fp-analyzers: resumos de efeitos com foco em sintaxe.
  • modules/mcp-server: adaptador MCP stdio apoiado por CLI.
  • modules/benchmark: modelos de benchmark e fixtures.

Build e teste

O projeto usa Scala 3 e sbt. Uma configuração de fonte fresca requer JDK 21, sbt, Git e Python 3; CI usa Temurin JDK 21. Um JDK local mais novo pode funcionar, mas não é a linha de base documentada.

Scala 3 descreve a implementação do harness, não uma promessa geral de linguagem-alvo. Uma matriz limitada JDK 21 verificou delegação de build/teste/erro, descoberta/símbolo/uso SemanticDB e resumos de efeitos com foco em sintaxe em fixtures Scala 2.13.18 e Scala 3.3.8. O harness é construído com Scala 3.9.0 e suas operações dinâmicas pontuais usam o Presentation Compiler vinculado Scala 3.9.0. Esse compilador hospedeiro resolveu os pontos Scala 2 de sintaxe compartilhada da matriz, mas isso não é suporte geral de dialeto ou compilador Scala 2. Builds alvo ainda usam seu compilador alvo selecionado; evidência estática SemanticDB e TASTy pós-compilação permanecem evidência de artefato alvo. Reconciliação e evidência pontual herdam a limitação de fonte dinâmica. Veja docs/project-status.md e docs/semantic-api.md para o limite exato.

Duas verificações Stage-A mantidas de projeto real agora cobrem revisões congeladas Scala 2.13.18 sem mudanças de fonte ou build. scala/scala-java8-compat produziu nenhum SemanticDB, então sua matriz alpha-2 de outra forma aprovada preservou evidência pontual degradada verdadeira. Uma linha de produção limitada de scalacenter/scalafix produziu SemanticDB de propriedade do alvo; descoberta de símbolo estático, lookup dinâmico limitado, reconciliação estática/dinâmica exata, evidência pontual completa e a projeção MCP ordenada exato-oito passaram. O build sbt agregado do Scalafix também expôs que o oráculo de build alpha-2 não pode selecionar uma linha de projeto. O release Alpha 3 fecha essa lacuna de roteamento com um seletor de projeto validado opcional; a distribuição imutável alpha-2 permanece inalterada. Esses dois projetos são evidência limitada complementar, não suporte geral Scala 2 ou superioridade semântica.

O limite de subprocesso sbt do release Alpha 3 envia seleção de projeto mais uma tarefa de propriedade do produto como uma única sequência de comando fixa. Seus adaptadores de classpath/recibo injetados usam o fileConverter do sbt para referências virtuais sbt 2 e preservam entradas apoiadas por arquivo sbt 1. JARs CAS sbt 2 legíveis sem extensão são copiados diretamente, sem varredura de cache, para uma área endereçada por conteúdo somente do proprietário sob a árvore target gerada do workspace selecionado. Um fixture descartável sbt 2.0.6, um fixture multi-projeto descartável sbt 2.0.7, projetos de plugin congelados sbt 1.12.15 e sbt 2.0.6, e uma linha selecionada congelada Chimney sbt 2.0.7 / Scala 3.8.4 passam seus portões limitados. O runner compartilhado usa um ciclo de vida de servidor sbt em primeiro plano de propriedade da requisição, e contadores estruturados de suíte sbt preservam testes ignorados/pulados nos campos JSON de Test existentes. Isso é evidência específica de versão, não compatibilidade universal sbt 2 ou plugin de compilador. Os pontos PC pesados de macro do Chimney permanecem neutramente não resolvidos porque opções e plugins do compilador alvo não são reproduzidos.

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

O wrapper de checkout de fonte executa o CLI através do 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 e point-evidence aceitam um --sbt-project <id> opcional onde o ID corresponde a [A-Za-z][A-Za-z0-9_-]*. Sem ele, preservam o comportamento raiz ordinário. Com ele, compile/erros executam o escopo fixo Compile daquele projeto e teste executa seu escopo fixo Test. O seletor não é sintaxe sbt arbitrária, e uma invocação selecionada bem-sucedida prova apenas aquela operação de projeto limitada, não a correção do workspace inteiro.

Todas as oito formas apoiadas por sbt (compile, errors, test, ciente de alvo semanticdb-for-source, ciente de alvo point-evidence, apoiado por sbt infer-type, infer-type-batch e tasty-point-evidence) também aceitam um --sbt-java-home <absolute-directory> opcional. O harness em si permanece no runtime JDK 21 suportado; apenas o filho sbt alvo recebe o JAVA_HOME canônico selecionado e um prefixo PATH correspondente. O home deve já estar instalado e passar validação limitada e uma sonda de versão fixa. O harness não descobre, baixa, instala ou seleciona JDKs globalmente. Omitir o flag preserva o comportamento Java herdado. A aquisição de classpath JDK selecionado é isolada da reutilização de cache sem seletor, e esquemas de resultado públicos não expõem o home ou evidência de sonda.

Ciente de alvo semanticdb-for-source e point-evidence também aceitam --sbt-scala-version <version>. A opção requer --sbt-project, usa uma gramática estrita somente-versão e seleciona esse eixo cross-Scala em um ciclo de vida sbt fresco. O mapeamento de fonte então executa sua tarefa fixa de recibo somente-raiz; evidência pontual executa seu recibo distinto de contexto pontual parcial de saída existente. Omissão significa o padrão de build verificado, nunca estado herdado ++.

Para uso repetido, prefira o lançador em estágios em modules/cli/target/stage/bin/semantic-scala.

Distribuição Maven/Coursier

A rota de build de fonte acima permanece suportada e verificada externamente. Runtimes exatos de oito módulos Alpha 2 e Alpha 3 são publicados sob o grupo final com.github.dmytromitin no Maven Central, com suas formas completas de repositório público verificadas contra bytes revisados. Ambas as versões exatas passaram instalação/execução/atualização/desinstalação fresca, semelhante a outsider, via raw-GitHub público contra Maven Central apenas. Alpha 3 é atual em main e também passou reprodução com commit fixado; Alpha 2 retém sua rota imutável e qualificada de tag de release.

A publicação Central contém exatamente os oito módulos de implementação, nunca o agregado raiz ou benchmark, e o canal público usa descritores de versão exata para os aplicativos distintos semantic-scala CLI e semantic-scala-mcp servidor. JDK 21 e Coursier são pré-requisitos de runtime/instalação. O sbt do workspace alvo é necessário para comandos de oráculo de build como compile, errors e test; não é necessário apenas para instalar os aplicativos ou para cada comando semântico somente-leitura. Os módulos Maven são artefatos de implementação de aplicativo, não uma API de biblioteca incorporável suportada ou promessa de compatibilidade binária.

Instale apenas o CLI:

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

Ou instale o CLI e o 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 o comando MCP stdio genérico com o workspace alvo como seu diretório de trabalho. Veja docs/distribution.md para configuração do Coursier, atualizações, desinstalação, reprodução de canal com commit fixado e o limite atual de qualificação.

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

Mapeamento de origem ciente do alvo e evidência de ponto são opções explícitas do Alpha 3. Omitir opções de alvo preserva o comportamento do v2 em todo o workspace, incluindo ambiguidade verdadeira. Com --sbt-project, o mapeamento de origem emite v4 e usa um recibo de Compile fixo somente-raiz contendo identidade do alvo, classDirectory, semanticdbTargetRoot, proveniência solicitada/efetiva do eixo Scala, e proveniência limitada do JDK. Ele não solicita compilação do alvo, fullClasspath, produtos ou produtos exportados; carregamento de build/plugin sbt, resolução e gravações comuns de metadados/cache permanecem possíveis. A propriedade do candidato é verificada canonicamente abaixo da raiz SemanticDB relatada, enquanto a descoberta do workspace permanece inalterada. O opcional --sbt-scala-version seleciona um eixo validado e deve corresponder exatamente ao eixo efetivo do recibo; a omissão usa o padrão de build do ciclo de vida novo.

A evidência de ponto ciente do alvo emite v4 por padrão. Ela adquire exatamente um recibo fixo de Compile contendo o diretório de classes existente selecionado quando presente, mais as dependências externas do alvo selecionado. Ela nunca solicita compilação do alvo, fullClasspath, produtos ou produtos exportados, e não tem fallback de build. O relatório sempre marca este contexto como PartialExistingOutputs; um diretório de classes ausente é omitido em vez de construído. Carregamento de build/plugin sbt verificado, resolução de dependências e gravações de metadados/cache permanecem possíveis. O compilador de apresentação do harness não reproduz flags, plugins ou ciclo de vida do compilador do alvo, e o contexto não é um classpath arbitrário completo de múltiplos projetos. Uma flag explícita de presença --include-existing-internal-outputs emite v5 e adiciona apenas diretórios de classes Compile internos do mesmo eixo já presentes, encontrados por uma travessia limitada de dependências somente-configuração. Saídas ausentes permanecem tipadas e nunca são construídas. V5 permanece PartialExistingCompileOutputs, não solicita fullClasspath, produtos ou internalDependencyClasspath, e ainda não reproduz flags/plugins do compilador do alvo. A oitava ferramenta MCP existente expõe o mesmo opt-in como booleano opcional includeExistingInternalOutputs; o registro permanece exatamente oito. Adicionar --require-fresh-internal-outputs requer a flag v5 e emite v6. Ele lê apenas arquivos Compile / compileAnalysisFile existentes do mesmo eixo e usa APIs de persistência Zinc suportadas em um worker JDK 21 sob demanda e limitado, mais carimbos de conteúdo e relações de fonte/produto. O worker não é resolvido ou iniciado por v2/v4/v5 ou inicialização MCP comum. Seu gráfico Zinc 1.12.1/Scala 2.13.18/JNA 5.14.0 fixado é cache-first; o primeiro uso estrito-v6 sem cache pode contatar o Maven Central e popular o cache do Coursier, enquanto um cache quente pode rodar offline. Indisponibilidade offline fria falha fechada como Unverifiable, sem fallback de compilação ou runtime vinculado. O mesmo recibo somente-configuração captura raízes de fonte configuradas exatas e cardinalidade da lista de geradores; geradores configurados, resíduo de fonte gerenciada, proveniência indisponível, raízes inseguras ou limites de arquivo/arquivo excedidos falham fechados como Não Verificável. Apenas diretórios internos comprovados Fresh contribuem; Stale e todos os estados Unverifiable permanecem visíveis, mas excluídos. Isso não compila, executa geradores, usa mtimes ou estado Git como autoridade de frescor, ou estabelece frescor de todo o alvo/build. O booleano MCP correspondente é requireFreshInternalOutputs na mesma oitava ferramenta. Mover o gráfico para fora dos classpaths normais do processo reduz a superfície de dependência comum encenada e enviada; não afirma menor uso total de disco após o cache sob demanda ter sido populado. semanticdb-for-source permanece somente CLI, reconcile-symbol direto permanece uma operação independente de alvo de artefato explícito, e o registro MCP permanece exatamente oito ferramentas.

Todos os comandos voltados para máquina têm saída JSON. O código de saída do comando oráculo de build 0 significa que a operação CLI foi concluída; inspecione o campo JSON success para o resultado do domínio de compilação ou teste. Resultados semânticos preservam seu escopo e incerteza: texto de hover renderizado não é identidade canônica, presença de artefato não é cobertura completa de fonte, e apenas ExactMatch é reconciliação exata.

Contratos detalhados:

Servidor MCP

O servidor stdio expõe exatamente estas ferramentas:

semantic_compile
semantic_errors
semantic_test
semantic_effect_summary
semantic_symbol_at
semantic_symbols
semantic_reconcile_symbol
semantic_point_evidence

Construa e valide-o com:

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

Copie .mcp.example.json e substitua seu caminho de checkout placeholder para configuração do cliente de desenvolvimento de fonte. Usuários instalados com alpha-2 devem configurar semantic-scala-mcp diretamente. Veja docs/mcp-client-validation.md para a configuração pública e verificações de protocolo e docs/agent-onboarding.md para receitas de cliente.

Habilidade de agente

A política canônica neutra de cliente é skills/semantic-scala/SKILL.md. Wrappers finos de repositório vivem em:

Estes arquivos são wrappers de árvore de fonte, não instalações externas independentes. A habilidade é política e documentação. Ela não adiciona comandos, serviços em segundo plano ou invocação automática. Instalação externa alpha-2 mais qualificação de cliente está em docs/agent-onboarding.md; orientação de empacotamento e manutenção está em docs/agent-skill-semantic-scala.md.

Para uma instalação atual proveniente de repositório, selecione a única habilidade canônica explicitamente:

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

Isso instala apenas orientação; instale o runtime suportado separadamente. O comando qualificado, metadados de catálogo estáveis, limites de registro e acompanhamentos de plugin nativo estão documentados em docs/discoverability.md.

Pacote oficial do Registro MCP

O repositório inclui uma superfície de empacotamento MCPB determinística para o exato CLI e servidor MCP 0.1.0-alpha.3. O pacote Linux x86_64 publicado carrega um runtime Corretto 21 local ao pacote e pontos de entrada estáticos, então ele não chama um java de host não declarado. Ele preserva acesso normal do host ao workspace Scala alvo e suas ferramentas de build. A qualificação é limitada a Linux x86_64 com um ambiente GNU-libc compatível e zlib do sistema; não é uma afirmação para cada libc ou distribuição Linux.

O pacote exato é um ativo público de lançamento Alpha-3 e seu registro oficial ativo do MCP Registry é io.github.DmytroMitin/semantic-scala. O manifesto mantido e o registro final estão sob packaging/mcpb/semantic-scala/ e distribution/mcp-registry/. Veja docs/mcpb-package.md para a URL imutável e digest, build de tag exata, determinismo, validação e limite de plataforma.

Pacote de plugin de agente

Após encenar o CLI e o servidor MCP, gere um pacote realocável novo:

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

A saída é material de build ignorado, não uma distribuição binária verificada ou lançamento. Ele visa o rascunho de trabalho Agent Plugins 1.0.0 e agrupa a habilidade canônica, CLI encenado completo e servidor MCP exato-oito completo. Veja docs/agent-plugin.md para o contrato do pacote, nível de validação, teste de realocação e limites atuais de suporte de cliente.

Candidatos de plugin nativo

O repositório também contém modelos de fonte determinísticos OpenAI/Codex e Claude Code mais um montador que transforma o MCPB Alpha-3 publicado exato em candidatos nativos com um runtime Java local ao pacote. Ambos os candidatos passaram na validação de manifesto nativo, verificações de bytes da habilidade canônica, igualdade de inventário de dois builds e um teste de runtime exato-oito realocado sem Java de host. Codex CLI 0.154.0 adicionalmente passou em uma instalação de marketplace local descartável, carregamento de habilidade, registro MCP agrupado e uma chamada semântica somente leitura. Claude Code 2.1.220 passou em uma instalação de marketplace local descartável, carregamento de habilidade empacotada, conexão MCP local ao plugin e uma chamada semântica mediada por cliente somente leitura após um checkpoint explícito de login do proprietário. O candidato Claude completo histórico permanece preservado no commit c05aac9f38e7755a51f511078ff555a587f97ccf em DmytroMitin/semantic-scala-claude-plugin, e o wrapper fino rejeitado permanece em 05d4f0de35a02916504bf29156bc42270cf77a23. O rascunho existente foi submetido uma vez em 28 de setembro de 2026. Seu status atual é Precisa de alterações: o revisor não permite que um plugin de Diretório baixe e execute código de servidor de um lançamento do GitHub após a instalação, mesmo quando fixado por checksum. O main público agora contém a fonte somente-habilidades descrita abaixo.

O candidato local qualificado sem download é mantido sob packaging/claude-embedded-plugin/ e incorpora um MCPB local compacto diretamente no plugin. Ele não tem busca executável pós-instalação ou atualizador. O runtime permanece Alpha-3 enquanto a versão de distribuição do plugin preparado é 0.1.0-alpha.3.1. O MCPB determinístico é 145.197.017 bytes, expande para 181.937.037 bytes em 1.952 arquivos, e tem SHA-256 6c1c698eaa73b78b9d005cbba4fccffd2e357e721e7f64fbeccdb13bb723d4ed. O ZIP de seis arquivos é 144.399.347 bytes, expande para 145.233.144 bytes, e tem SHA-256 9004bfa94a3e60618430092bd253ac6354aa64290c3ebad41c2a8f3a6999f2d6. Validação oficial MCPB e plugin Claude, três builds byte-idênticos, a suíte completa de compatibilidade exato-oito e uma chamada semântica isolada de cliente instalado passam. O candidato é, no entanto, bloqueado para o Diretório público: a atual lista de verificação pré-submissão exige que o arquivo GitHub tenha menos de 50 MiB e cada arquivo de plugin menos de 5 MiB. O repositório de distribuição, versão do portal, submissão e listagem pública permanecem inalterados.

Um candidato separado contido de Diretório Claude é mantido sob packaging/claude-directory-skills-only-plugin/. Ele contém apenas metadados, uma pequena habilidade de execução, uma cópia byte-idêntica da política canônica, documentação, licença e inventário determinístico. Ele declara nenhum runtime MCP/CLI, hook, LSP, executável, instalador, atualizador ou allowed-tools; Claude Code usa um semantic-scala instalado independentemente através de seu caminho de permissão de shell comum. Versão de distribuição do plugin 0.1.0-alpha.3.2 mantém o pré-requisito CLI exato 0.1.0-alpha.3. A fonte de seis arquivos é 41.500 bytes e seu ZIP determinístico é 16.392 bytes. Validação estrita de plugin, verificações de pacote contido, a matriz de pré-requisito CLI direto e casos autenticados de resumo de efeito de cliente instalado, com suporte de build, CLI ausente, sem ferramenta e superfície passam. A fonte exata é pública no commit de distribuição f28fe7a61ff449c9775d554d5bc9a11e2a9cfda1; seu arquivo GitHub de 18.708 bytes passa em todos os limites rígidos atuais. A submissão existente permanece Precisa de alterações and still resolves rejected commit 05d4f0d porque o portal oferece nenhuma atualização de fonte sem resubmissão. Nenhuma resubmissão ou listagem ocorreu. Veja docs/claude-directory-skills-only-plugin.md.

O pacote do proprietário sob distribution/claude-community/ registra o commit de qualificação imutável e a esperada retenção de revisão humana. A Política de Privacidade semantic-scala aprovada pelo proprietário é pública e exposta do README do plugin qualificado. As respostas submetidas são Somente leitura, Não, Não retido, and Não; todos os quatro reconhecimentos de conformidade foram aprovados pelo proprietário. O valor de contato privado não é retido neste repositório. Um candidato separado, apenas para skills da OpenAI, agora vive em packaging/openai-skills-plugin/ sem reutilizar ou alterar o candidato local-MCP. Ele empacota um fluxo de trabalho restrito e somente leitura do effect-summary, uma referência canônica exata de política e um helper Python somente com biblioteca padrão. O helper busca e verifica o runtime fixo Alpha-3 no primeiro uso aprovado e, em seguida, invoca o bin/semantic-scala diretamente; ele não contém configuração MCP e não inicia nenhum processo MCP. O Codex CLI 0.157.1 passou na instalação descartável do marketplace, no carregamento da skill instalada, na invocação do helper empacotado e na interpretação do Fixture.value: Option[Int]. A aquisição a frio e a reutilização em cache morno passaram com bytes de fixture inalterados. Isso é qualificação técnica local, não uma submissão à OpenAI ou uma listagem pública. As diretrizes atuais da OpenAI exigem contato com o parceiro antes de enviar o fluxo de trabalho de execução local/arquivo local/offline. O material de primeira parte inspecionado não expõe nenhuma rota de contato genérica acionável, portanto a elegibilidade permanece desconhecida e nenhum rascunho de Platform foi criado. Um SVG quadrado original é aprovado pelo proprietário e conectado a ambos os campos de branding. A política de privacidade pública cobre o caminho OpenAI/Codex, o download no primeiro uso e o cache separado. Veja docs/openai-skills-only-plugin.md.

O candidato fino anterior permanece documentado como evidência histórica rejeitada pelo revisor em docs/claude-directory-thin-plugin.md. Ele não deve ser reenviado inalterado. Veja docs/claude-directory-embedded-plugin.md para o pacote localmente qualificado, sem download, identidades exatas, limites atuais do Claude e o bloqueador resultante do Directory público. Não publique este candidato como uma fonte do Directory sem resolver esse bloqueador.

Exemplos e benchmarks

Projetos sob examples/ são fixtures de CLI externos, em vez de membros do build raiz do sbt. A suíte de testes normal exercita os exemplos de sucesso e falha de compilação por meio da CLI.

O repositório contém um subconjunto de benchmark público independente com metodologia, prompts portáveis, fixtures acoplados a testes, validação determinística e um agregado limitado. Comece em benchmarks/README.md. Transcrições brutas históricas e automação de controlador não fazem parte desse subconjunto. A evidência admitida não estabelece superioridade ampla ou reprodutibilidade geral de benchmark além do seu limite declarado de amostra pequena.

Limitações atuais

  • O pacote oficial MCPB é validado apenas para Linux x86_64. Outros sistemas operacionais e arquiteturas exigem ativos compilados e testados separadamente. O pacote testado requer um ambiente GNU-libc compatível e zlib do sistema, mesmo que não exija Java no host.
  • Um pacote gerado autocontido de Agent Plugins tem evidência estrutural limitada, de esquema oficial, de determinismo e de runtime realocado, mas nenhum canal de lançamento suportado ou prova de adoção por cliente instalado em conformidade.
  • Os pacotes nativos OpenAI/Codex e Claude Code são candidatos localmente validados para Linux x86_64 montados a partir do MCPB Alpha-3 exato. Ambos têm qualificação limitada de skill de cliente instalado descartável e uso de MCP. Eles não são listagens públicas ou canais públicos suportados de instalação. A submissão pública de MCP à OpenAI ainda exige um serviço HTTPS público separadamente autorizado. A fonte fina do Claude em 05d4f0de35a02916504bf29156bc42270cf77a23 é rejeitada pelo revisor porque baixa bytes executáveis do servidor após a instalação. O MCPB incorporado remove esse download, preserva o Java local do pacote e passa na suíte completa de compatibilidade exata de oito itens, além de uma chamada semântica isolada do cliente. Ele se encaixa nas regras separadas de upload de 200 MB do claude.ai, mas não na lista de verificação do Directory público: seu arquivo GitHub de 144.399.347 bytes excede 50 MiB e seu MCPB de 145.197.017 bytes excede o limite de 5 MiB por arquivo. A rota de plugin do Directory está, portanto, bloqueada até que uma arquitetura diferente ou um mecanismo explícito aprovado pelo revisor seja definido.
  • O candidato separado de oito arquivos, apenas para skills da OpenAI, é localmente validado no Codex CLI 0.157.1 para um fluxo de trabalho effect-summary direto de CLI, sem dependência de MCP. Ele não foi enviado. A revisão específica de produto da OpenAI não tem rota de contato oficial genérica detectável, então a elegibilidade permanece desconhecida. O SVG compartilhado de logo/compositor é aprovado pelo proprietário e localmente validado. Identidade de editor verificada, acesso de escrita ao Apps Management, seleção de país e atestados de política permanecem pré-requisitos; a privacidade é pública.
  • A superfície MCP permanece o adaptador stdio documentado de oito ferramentas.
  • Solicitações semanticdb-for-source, point-evidence e reconcile-symbol pareadas com fonte agora relatam frescor de conteúdo consistente com o snapshot. Fresco significa que o conteúdo da fonte capturada concorda com o documento SemanticDB capturado; não significa que um build foi executado ou que o projeto inteiro compila.
  • SemanticDB obsoleto permanece visível, mas não pode produzir reconciliação concluída. Evidência não verificável permanece explícita e só pode ser concluída como evidência qualificada. O inventário e a cobertura do SemanticDB ainda não estabelecem que toda fonte está coberta ou fresca.
  • As renderizações do Presentation Compiler são evidência limitada, não prova de compilação do projeto inteiro.
  • A skill canônica seleciona symbol-at para uma pergunta exata de declaração do Presentation Compiler e reserva point-evidence para perguntas em que descoberta/seleção de artefatos e reconciliação são elas mesmas relevantes. Perguntas suficientes pela fonte ainda não exigem consulta semântica.
  • A prontidão da fonte em alfa público é separada da distribuição binária, usabilidade de instalação, utilidade semântica e evidência de adoção de skill.
  • A rota exata de aplicação Maven/Coursier do 0.1.0-alpha.2 é qualificada independentemente a partir da URL real do canal público de propriedade do projeto e do Maven Central sob JDK 21. Isso não estabelece contrib do Coursier, MCP Registry, MCPB, empacotamento nativo/container/npm/PyPI, uma API estável de biblioteca incorporável, compatibilidade ampla com Scala, adoção de skill, superioridade semântica ou estabilidade 1.0. A identidade exata da fonte alpha-2 é publicada como uma tag leve e pré-lançamento do GitHub com arquivos de fonte gerados normais e zero ativos de projeto enviados. Todas as 16 linhas de licença/NOTICE anteriormente sinalizadas são tecnicamente resolvidas; o proprietário selecionou Apache-2.0 para o JNA 5.14.0 obtido pelo resolver. Isso não é aconselhamento jurídico ou autoridade para outra ação de publicação.
  • O repositório público contém apenas o histórico de fonte limpo auditado. O histórico de desenvolvimento misto separado permanece privado e não é um canal de lançamento ou instalação.

Veja ROADMAP.md para próximos passos orientados ao produto.

O desenvolvimento atual é primeiro a validação: teste projetos Scala reais, preserve limites de compatibilidade e admita recursos apenas a partir de lacunas concretas. Relatórios de projetos reais são bem-vindos usando o pacote de comparação limitado em docs/early-feedback.md, especialmente evidências ausentes relevantes para decisão ou composição materialmente útil de fatos de compilador, build/teste, IDE/LSP e artefato. Ambas as rotas empacotadas exatas Alpha 2 e Alpha 3 são qualificadas independentemente e retêm identidade imutável de lançamento de fonte. O feedback externo de usuários iniciais é a principal próxima entrada para a admissão de valor semântico; a identidade de fonte SNAPSHOT do Alpha 4 não adiciona rota empacotada.

Políticas do projeto