Communitygithub.com

maskshell/solidforge

Um sistema de engenharia em loop para agentes de codificação de IA, empacotado como um plugin do Claude Code. Convergir → especificar → implementar: desenvolvimento paralelo orientado a TDD com portões de convergência de duplo anel, revisão adversarial de fontes cruzadas, verificação de citações baseada em fontes e busca de colisão de arte anterior — cobertura honesta em cada portão, nunca um verde silencioso.

O que é solidforge?

O Maskshell/Solidforge é um sistema de engenharia em loop para agentes de codificação de IA, empacotado como um plugin do Claude Code. Ele orquestra um pipeline de desenvolvimento paralelo orientado a TDD com portões de convergência de duplo anel, revisão adversarial de fontes cruzadas, verificação de citações baseada em fontes e busca de colisão de arte anterior. O sistema é útil para garantir cobertura honesta em cada portão de desenvolvimento, evitando falsos positivos e garantindo que a inovação seja verificada contra a literatura existente. Suportado pelo Claude Code, ele integra habilidades como `cross-source-review`, `primary-source-verification` e `prior-art-search` para fornecer uma estrutura robusta de verificação de novidade e convergência de processo. O fluxo de trabalho é single-pipeline, não um debate multi-round, e nunca emite um veredito de 'novel_confirmed', focando em divulgação honesta de cobertura.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add maskshell/solidforge

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação


name: prior-art-search description: prior-art-search — um detector de colisão somente leitura, baseado em pesquisa, por reivindicação de novidade que PESQUISA o corpus de arte anterior para as reivindicações de novidade de um documento e julga a colisão de arte anterior (colisão / relevante-não-citado / claro-sob-pesquisa / inconclusivo), emitindo uma divulgação honesta de cobertura (collisions_under_known_coverage). Use-o quando as reivindicações de NOVIDADE de um documento precisam ser verificadas quanto a colisões de arte anterior — "este artigo exagera novidade", "este enquadramento já está na literatura". Produz um pacote de colisão por reivindicação + um registro de colisão; NUNCA novel_confirmed. NÃO para revisão de código (desenvolvimento paralelo), autoria de especificações (criação de blueprint), convergência de processo de documento (revisão de fontes cruzadas), verificação de fontes CITADAS (verificação de fonte primária — psv para trás CITADO, prior-art-search para trás NÃO CITADO) ou coleta de pesquisa para frente (criação de blueprint pesquisador). NÃO julga se a novidade do documento é REAL ou significativa (eixo de resultado — humano). Fase A: invocação EXPLÍCITA (/prior-art-search).

Cobertura de Novidade

Um detector de colisão somente leitura, baseado em pesquisa, por reivindicação de novidade para um artefato em forma de documento (um artigo de design, um documento de pesquisa, uma especificação). Ele abre a superfície de novidade do eixo de RESULTADO que nem cross-source-review (csr), primary-source-verification (psv), nem o researcher da criação de blueprint alcançam: csr converge o eixo de PROCESSO de um documento, mas não pesquisa arte anterior; psv BUSCA cada fonte citada (para trás, citado) mas não caça arte anterior não citada; o researcher COLETA fontes para frente para autoria (direção oposta). prior-art-search é a verificação de colisão de arte anterior não citada para trás que faltava — ele PESQUISA o corpus de arte anterior para cada reivindicação de novidade e relata colisões honestamente.

Posicionamento Central

Baseado em pesquisa, não em recall

Uma descoberta de colisão / relevante-não-citado DEVE citar uma CITAÇÃO buscada da arte anterior encontrada, não recall do modelo. Uma descoberta que não pode fundamentar uma citação buscada do texto de arte anterior encontrado é rebaixada para inconclusivo, nunca afirmada. Esta é a invariante estruturante (regra de espaço de trabalho 3 + L1), aplicada por um autoportão (NC-I5). O texto encontrado é ele próprio extraído pelo modelo dos resultados da pesquisa — um oráculo mais fraco do que a fonte autoritativa buscada da psv (veja a ressalva de duas camadas abaixo).

Cobertura de colisão por reivindicação, não um veredito de novidade

prior-art-search NUNCA emite novel_confirmed ou "o documento é novo." Seu único sinal de linha superior é collisions_under_known_coverage: C claro-sob-pesquisa, N colisões, U relevante-não-citado, I inconclusivo de M reivindicações de novidade extraídas. Reivindicações I (e o caso M=0 — nenhuma superfície de novidade) ESCALAM para um humano. Esta é uma divulgação honesta de cobertura, NÃO um veredito de novidade. O limite irredutível de ausência de evidência: você não pode provar uma negativa ("nenhuma arte anterior existe"), então um documento com zero colisões encontradas é "nenhuma colisão encontrada no corpus pesquisado," NÃO "novo." Uma habilidade simétrica de "convergência de novidade" que faz um loop até um booleano novel_confirmed é o erro categórico — ela achata uma divulgação de COBERTURA ("nenhuma colisão encontrada no corpus pesquisado") em um VEREDITO ("novo"), ou seja, ausência de evidência tratada como evidência de ausência; prior-art-search explicitamente NÃO é isso. (O quadro mais amplo de dois eixos — processo × resultado — é o artigo spec-gaming §4.2; prior-art-search vive inteiramente no eixo de resultado, então seu erro é interno ao resultado, não uma confusão processo/resultado.)

Aditivo ao csr e psv; um pipeline único

prior-art-search é ADITIVO ao csr (eixo de processo) e psv (verificação de fonte citada); ele NÃO se funde com nenhum. Ao contrário do debate multi-round da mesma família + família diferente do csr, prior-art-search é um pipeline ÚNICO — extrair reivindicações de novidade → pesquisar arte anterior → veredito de colisão por reivindicação → divulgação de cobertura. O oráculo é o corpus de arte anterior pesquisável, não um modelo de família diferente, então ele NÃO transporta o substrato heterogêneo do csr. psv e prior-art-search compõem: um documento de alto risco pode executar psv (as fontes citadas são precisas?) E prior-art-search (as reivindicações de novidade estão livres de colisão contra arte anterior encontrável?). Eles não se fundem.

Fraqueza do oráculo de duas camadas, declarada honestamente (regra de espaço de trabalho 3)

O oráculo do prior-art-search é o corpus de arte anterior pesquisável, MAIS FRACO do que a fonte primária buscada da psv em DUAS camadas (a ressalva honesta estruturante, proposta §3 / ADR §8 Q4):

  1. Fraqueza no lado da comparação (compartilhada com psv). A comparação reivindicação-vs-arte-anterior é julgada pelo modelo — claro-sob-pesquisa significa que o modelo não encontrou colisão, não que nenhuma exista. Esta é a fraqueza parcial-sob-comparação de nível 2 da psv.
  2. Fraqueza no lado da seleção (própria do prior-art-search). Um resultado de pesquisa adiciona uma fraqueza de seleção sobre a fraqueza de comparação: viés de classificação, limites de recall (você não pode pesquisar todo o corpus), e o texto de arte anterior encontrado é ele próprio extraído pelo modelo do retorno da pesquisa, não um intervalo de bytes autoritativo buscado.

Então prior-art-search é mais fraco em duas camadas, não "oráculo fraco vs oráculo forte." É precisamente POR ISSO que ele NUNCA emite novel_confirmed e por que sua linha superior é uma declaração de cobertura, não um veredito. claro-sob-pesquisa significa "nenhuma colisão no que foi pesquisado," não "novo." O oráculo mais fraco é o limite irredutível da verificação de novidade aquém de um humano.

Dois pontos cegos, declarados honestamente (regra de espaço de trabalho 3)

As próprias etapas executadas pelo modelo do prior-art-search carregam pontos cegos divulgados em vez de ocultados: (1) extração de reivindicação de novidade herda os pontos cegos do extrator — reivindicações que nem o autor nem o extrator identificam como "novidade" estão ausentes de M; (2) a comparação reivindicação-vs-arte-anterior é julgada pelo modelo — claro-sob-pesquisa significa que o modelo não encontrou colisão, não que nenhuma exista. As contagens C/N/U/I/M são condicionais ao que foi extraído, pesquisado e comparado, não uma garantia de completude. Uma perna de extração de família diferente é uma mitigação adiada (parcial).

Escopo

  • Dentro: extrair reivindicações de novidade atômicas de um documento (cada: localização + alvo de pesquisa); pesquisar o corpus de arte anterior por reivindicação; emitir um veredito de colisão por reivindicação (colisão/relevante-não-citado/claro-sob-pesquisa/inconclusivo) fundamentado em uma citação buscada da arte anterior encontrada para colisões; emitir um registro de colisão (collisions_under_known_coverage) + um pacote de descobertas de colisão.
  • Fora: revisão de código (desenvolvimento paralelo); autoria de especificação/arquitetura/design (criação de blueprint); convergência de processo de documento (revisão de fontes cruzadas); verificação de fonte CITADA (verificação de fonte primária); coleta de pesquisa (pesquisador de criação de blueprint); um veredito de novidade — se a novidade do documento é REAL ou significativa — (humano).

Guarda de Escopo (detecção no momento da entrada)

  • Entregável é código fonte/teste → encaminhar para desenvolvimento paralelo.
  • Entregável é autoria/reescrita de uma especificação, arquitetura/design, plano de iteração ou pesquisa → encaminhar para criação de blueprint.
  • A solicitação é "conduzir revisão adversarial multi-round para convergência neste documento" → encaminhar para revisão de fontes cruzadas (eixo de processo).
  • A solicitação é "as reivindicações CITADAS deste documento se sustentam contra suas fontes?" → encaminhar para verificação de fonte primária (psv = para trás CITADO; prior-art-search = para trás NÃO CITADO).
  • A solicitação é "este documento EXAGERA novidade — colide com arte anterior que deixou de citar?" → prior-art-search (esta habilidade).
  • A solicitação é "isto é novo / significativo / a contribuição certa?" → eixo de resultado, apenas humano.

O guarda é suave (lembrar + encaminhar, não recusar). A Fase A depende de invocação explícita (/prior-art-search).

Início Rápido

Você é o orquestrador. As pernas são somente leitura; o motorista executa o pipeline único (NÃO um debate multi-round). Execute em ordem.

  1. Enquadrar — identificar o artefato + sua superfície de novidade. Enumerar as reivindicações de novidade centrais (as afirmações estruturais "X é novo / primeiro / não tem arte anterior" para verificar colisão). Declarar escopo.

  2. Extração de reivindicação de novidade (NC-I2) — gerar solidforge:extrair-reivindicacao-novidade (contexto novo); ele lê o artefato e enumera reivindicações de novidade atômicas, cada uma vinculada a uma localização e um alvo de pesquisa. Atômica = uma proposição de novidade por reivindicação (composto dividido). Uma reivindicação de novidade é uma afirmação de novidade ("X é um novo enquadramento," "Y é o primeiro a," "Z não tem arte anterior"). Distinguir de reivindicações factuais/de citação (domínio da psv — verificar, não verificar colisão) e reivindicações interpretativas ("isto é significativo" — NÃO adjudicável por pesquisa; escalar para humano, marcado como inadmissível). (Ressalva de ponto cego do extrator: reivindicações que nenhuma das partes identifica como "novidade" estão ausentes de M.)

  3. Pesquisa multi-fonte + veredito de colisão (NC-I3) — para cada reivindicação de novidade, pesquisar o corpus de arte anterior (arXiv, web, repositórios públicos) por trabalho que JÁ FEZ a reivindicação, então comparar a reivindicação contra a arte anterior encontrada e atribuir um de:

    • colisão — arte anterior encontrada já faz esta reivindicação (a novidade do documento é exagerada); citar a fonte colidente + CITAR o texto de arte anterior encontrado (gravidade bloqueador; evidência DEVE citar a arte anterior encontrada).
    • relevante-não-citado — trabalho relevante encontrado que o documento não citou (não uma colisão direta, mas uma lacuna de cobertura); CITAR a arte anterior encontrada (gravidade aviso).
    • claro-sob-pesquisa — nenhuma colisão encontrada NO CORPUS PESQUISADO (NÃO novo; apenas nenhuma colisão surgiu). Apenas contado, não uma descoberta.
    • inconclusivo — a pesquisa não pôde cobrir a reivindicação (corpus atrás de paywall, consulta ambígua, nada encontrável); escalar para humano (gravidade cobertura). Fontes abertas (resumos arXiv, repositórios públicos) são pesquisadas sem credencial; APIs de pesquisa web usam uma superfície HTTP nomeada separadamente (NÃO o namespace de token LLM _ANTHROPIC_AUTH_TOKEN do csr — veja install.md). (Ressalva de ponto cego de comparação + a fraqueza do lado da seleção.)
  4. Divulgação de cobertura (NC-I4) — emitir um registro de colisão: collisions_under_known_coverage = C claro-sob-pesquisa / N colisões / U relevante-não-citado / I inconclusivo de M = C+N+U+I reivindicações de novidade extraídas; mais um pacote de descobertas de colisão (descobertas de colisão / relevante-não-citado / inconclusivo; reivindicações claro-sob-pesquisa são contadas, não listadas). M=0 (nenhuma reivindicação de novidade extraível — um documento sem afirmação de novidade, ou todas as reivindicações de novidade interpretativas) e I>0 ambos ESCALAM para um humano. NUNCA novel_confirmed. Uma descoberta de colisão/relevante-não-citado sem uma citação buscada é rebaixada para inconclusivo.

O sinal honesto é a divulgação de cobertura — exatamente o que foi pesquisado e o que colidiu, e o que não pôde ser coberto. Se o documento é genuinamente NOVO permanece humano.

Cadeia de Autoridade

  • docs/proposal.md = design autoritativo (mestre; CSR eixo-processo SUBSTANTIVAMENTE-CONVERGIDO + psv N=9/K=0 verificado, 2026-07-31).
  • docs/iteration-plan.md = blueprint de execução (itens de trabalho da Fase A NC-I0–NC-I6; em conflito, proposal.md vence).
  • docs/design-decisions.md = registro ADR (as decisões não óbvias: nunca-novel_confirmed, pipeline-único-não-debate, o proxy estrutural de falso positivo, a fraqueza do oráculo de pesquisa de duas camadas, a relação com psv/pesquisador, a superfície de credencial).
  • docs/proposal.convergence.md = trilha de revisão cruzada da proposta.

Coordenação com revisão-de-fontes-cruzadas / verificação-de-fonte-primária / criação-de-blueprint / desenvolvimento-paralelo

  • revisão-de-fontes-cruzadas continua sendo o motor de convergência do eixo de PROCESSO. prior-art-search é ADITIVO e não fundido: o substantive_converged do csr não implica a cobertura do prior-art-search, e vice-versa.
  • verificação-de-fonte-primária é a perna complementar do eixo de resultado. psv = para trás CITADO (buscar cada fonte citada); prior-art-search = para trás NÃO CITADO (pesquisar arte anterior que o documento NÃO citou). Eles compõem (um documento pode executar ambos); eles não se fundem. prior-art-search reutiliza o padrão de campo de esquema da psv (descobertas de colisão estendem as descobertas de documento da psv — um superconjunto estrito) e o RACIOCÍNIO de credencial install.md — copiar-padrões, NÃO código (regra de espaço de trabalho 7).
  • criação-de-blueprint permanece pura (eixo de processo). Seu pesquisador é PARA FRENTE coletar ("encontrar fontes sobre X para autoria") — a direção oposta da colisão para trás do prior-art-search. Eles não se fundem.
  • desenvolvimento-paralelo possui revisão de código. prior-art-search é em forma de documento, não em forma de código.
  • Limite files_touched: esta habilidade é proprietária de prior-art-search/ + o agents/novelty-claim-extractor.agent.md na raiz do repositório (espelhando o solidforge:claim-extractor da psv). Ela não modifica a lógica central do csr, psv, bc ou pd (prior-art-search é aditivo). Terminologia (regra de espaço de trabalho 10): collisions_under_known_coverage é o único termo de linha superior; novel_confirmed é o termo proibido e nunca aparece como um campo emitido.

Autoverificações (Definição de Pronto)

Nota de maturidade (construção da Fase A): todos os autoportões abaixo são implantados e passam verde (NC-I0–NC-I6 convergidos; docs/iteration-plan.run-record.json carrega o veredito). O dogfood ao vivo N≥3 foi executado em 2026-08-01 em 3 artefatos reais, incluindo o longo artigo spec-gaming — perfil de cobertura em dogfood-run-2026-08-01.md: 2 descobertas relevantes-não-citadas surgiram via arte anterior buscada (spec-gaming NC34 ↔ SWE-ABS; psv NC2 ↔ AI-Powered Citation Auditing), e o conhecido paradoxo de autocertificação de colisão voltou claro-sob-pesquisa sob o oráculo apenas arXiv — demonstrando a fraqueza de duas camadas em produção (um resultado de zero colisão é "nenhuma colisão no que foi pesquisado," NÃO "novo"). O portão offline dogfood.py cobre apenas o fixture canônico (caminho de pular regra-1 quando não há rede). Adiamento restante: uma perna de extração de família diferente (mitigação parcial do ponto cego do extrator). O nome prior-art-search é PROPOSTO, pendente de LOCK humano (proposta §8 Q1).

Uma mudança de habilidade não é considerada concluída enquanto alguma autoverificação falhar (regra de espaço de trabalho 1). Execute antes de commitar:

python3 skills/prior-art-search/infra/test/disconnect_check.py        # estrutura + cadeia de carregamento
python3 skills/prior-art-search/infra/test/plugin_layout.py           # plugin.j

…

[truncado para tradução]

Habilidades Relacionadas