Communitygithub.com

maskshell/solidforge-pi

Um sistema de engenharia em loop para agentes de codificação de IA, entregue como um pacote Pi. Convergir → especificar → implementar: desenvolvimento TDD paralelo com portões de convergência de anel duplo, 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-pi?

Novelty Coverage (Cobertura de Novidade) é uma skill de agente de IA que atua como um detector de colisão de arte anterior para artefatos em formato de documento, como artigos de design, documentos de pesquisa ou especificações. Diferente de outras skills focadas na verificação de fontes citadas (psv) ou convergência de processo (csr), esta skill realiza uma busca para trás, não citada, no corpus de arte anterior para cada alegação de novidade extraída do documento. O ponto forte da skill é sua abordagem de cobertura honesta: ela nunca emite um veredito de 'novel_confirmed', mas sim um 'collisions_under_known_coverage' que declara quantas colisões, itens relevantes não citados, casos claros e inconclusivos foram encontrados. Qualquer achado deve ser fundamentado em uma citação extraída da arte anterior encontrada, e casos inconclusivos ou ausência de alegações extraíveis escalam para um humano. Esta skill é complementar ao psv e csr, operando em um pipeline único de extração, busca e veredito, e é adequada para plataformas que suportam ferramentas de subagente e busca na web, como Claude Code ou Cursor. Sua utilidade reside em prevenir alegações de novidade infladas pelo autor, fornecendo uma verificação honesta e fundamentada contra a arte anterior encontrada.

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

Perguntar na sua IA favorita

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

Documentação

Novelty Coverage (Cobertura de Novidade)

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

Posicionamento Central

Baseado em busca, não em recordação

Um achado collision (colisão) / uncited-relevant (relevante não citado) DEVE citar uma CITAÇÃO obtida da arte anterior encontrada, não da recordação do modelo. Um achado que não pode fundamentar uma citação obtida do texto da arte anterior encontrada é rebaixado para inconclusive (inconclusivo), nunca afirmado. Esta é a invariante estrutural (regra de workspace 3 + L1), imposta por um auto-portão (NC-I5). O texto encontrado é ele próprio extraído pelo modelo dos resultados da busca — um oráculo mais fraco do que a fonte autoritativa obtida do psv (veja a ressalva de duas camadas abaixo).

Cobertura de colisão por alegaçã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-busca, N colisões, U relevante não citado, I inconclusivo de M alegações de novidade extraídas. Alegações I (e o caso M=0 — sem superfície de novidade) SÃO ESCALADAS 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 skill simétrica de "convergência de novidade" que faz um loop até um booleano novel_confirmed é o erro de categoria — 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 — é a seção 4.2 do artigo sobre especulação de especificações; prior-art-search vive inteiramente no eixo 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 processo) e psv (verificação de fonte citada); ele NÃO se funde com nenhum deles. Diferentemente do debate multi-round mesma-família + família-diferente do csr, prior-art-search é um pipeline ÚNICO — extrair alegações de novidade → buscar arte anterior → veredito de colisão por alegaçã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 porta 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 alegações de novidade estão livres de colisão contra a arte anterior encontrável?). Eles não se fundem.

Fraqueza de oráculo de duas camadas, declarada honestamente (regra de workspace 3)

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

  1. Fraqueza do lado da comparação (compartilhada com psv). A comparação alegação-vs-arte-anterior é julgada pelo modelo — clear-under-search significa que o modelo não encontrou colisão, não que nenhuma exista. Esta é a fraqueza de comparação parcial de nível 2 do psv.
  2. Fraqueza do lado da seleção (própria de prior-art-search). Um resultado de busca adiciona uma fraqueza de seleção sobre a fraqueza de comparação: viés de ranqueamento, limites de recordação (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 busca, não um intervalo de bytes autoritativo obtido.

Portanto, 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. clear-under-search 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 sem um humano.

Dois pontos cegos, declarados honestamente (regra de workspace 3)

As próprias etapas executadas pelo modelo de prior-art-search carregam pontos cegos divulgados em vez de ocultados: (1) extração de alegação de novidade herda os pontos cegos do extrator — alegações que nem o autor nem o extrator identificam como "novidade" estão ausentes de M; (2) a comparação alegação-vs-arte-anterior é julgada pelo modelo — clear-under-search 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 etapa de extração de família diferente é uma mitigação adiada (parcial).

Escopo

  • Inclui: extrair alegações atômicas de novidade de um documento (cada uma: localização + alvo de busca); pesquisar o corpus de arte anterior por alegação; emitir um veredito de colisão por alegação (colisão/relevante não citado/claro-sob-busca/inconclusivo) fundamentado em uma citação obtida da arte anterior encontrada para colisões; emitir um registro de colisão (collisions_under_known_coverage) + um pacote de achados de colisão.
  • Exclui: revisão de código (parallel-development); autoria de especificação/design de arquitetura (blueprint-crafting); convergência de processo de documento (cross-source-review); verificação de fonte CITADA (primary-source-verification); coleta de pesquisa (blueprint-crafting researcher); 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 → rotear para parallel-development.
  • Entregável é autoria/reescrita de uma especificação, design de arquitetura, plano de iteração ou pesquisa → rotear para blueprint-crafting.
  • A solicitação é "conduzir revisão adversarial multi-round para convergência neste documento" → rotear para cross-source-review (eixo processo).
  • A solicitação é "as alegações CITADAS deste documento se sustentam contra suas fontes?" → rotear para primary-source-verification (psv = para trás-CITADO; prior-art-search = para trás-NÃO CITADO).
  • A solicitação é "este documento EXAGERA a novidade — colide com arte anterior que deixou de citar?" → prior-art-search (esta skill).
  • A solicitação é "isto é novo / significativo / a contribuição certa?" → eixo resultado, humano apenas.

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

Início Rápido

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

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

  2. Extração de alegação de novidade (NC-I2) — invoque a ferramenta subagent com agent="solidforge:novelty-claim-extractor" (contexto novo); ela lê o artefato e enumera alegações atômicas de novidade, cada uma vinculada a um local e a um alvo de busca. Atômica = uma proposição de novidade por alegação (composto dividido). Uma alegação de novidade é uma afirmação de novidade ("X é um novo enquadramento," "Y é o primeiro a," "Z não tem arte anterior"). Distinga de alegações factuais/de citação (domínio do psv — verifique, não verifique colisão) e alegações interpretativas ("isto é significativo" — NÃO adjudicável por busca; escale para humano, marcado como inadmissível). (Ressalva do ponto cego do extrator: alegações que nenhuma das partes identifica como "novidade" estão ausentes de M.)

  3. Busca multi-fonte + veredito de colisão (NC-I3) — para cada alegação de novidade, pesquise o corpus de arte anterior (arXiv, web, repositórios públicos) por trabalho que JÁ fez a alegação, então compare a alegação contra a arte anterior encontrada e atribua um de:

    • collision — arte anterior encontrada já faz esta alegação (a novidade do documento é exagerada); cite a fonte em colisão + CITE o texto da arte anterior encontrada (gravidade blocker; evidence DEVE citar a arte anterior encontrada).
    • uncited-relevant — encontrou trabalho relevante que o documento não citou (não uma colisão direta, mas uma lacuna de cobertura); CITE a arte anterior encontrada (gravidade warning).
    • clear-under-search — nenhuma colisão encontrada NO CORPUS PESQUISADO (NÃO novel; apenas nenhuma colisão veio à tona). Apenas contado, não é um achado.
    • inconclusive — a busca não conseguiu cobrir a alegação (corpus atrás de paywall, consulta ambígua, nada encontrável); escale para humano (gravidade coverage). Fontes abertas (resumos do arXiv, repositórios públicos) são pesquisadas sem credencial; APIs de busca na web usam uma superfície HTTP nomeada separadamente (NÃO o namespace de token LLM _ANTHROPIC_AUTH_TOKEN do csr — veja install.md). (Ressalva do ponto cego de comparação + a fraqueza do lado da seleção.)
  4. Divulgação de cobertura (NC-I4) — emita um collision-record: collisions_under_known_coverage = C claro-sob-busca / N colisões / U relevante não citado / I inconclusivo de M = C+N+U+I alegações de novidade extraídas; mais um pacote de achados de colisão (achados de colisão / relevante não citado / inconclusivo; alegações clear-under-search são contadas, não listadas). M=0 (nenhuma alegação de novidade extraível — um documento sem afirmação de novidade, ou todas as alegações de novidade interpretativas) e I>0 ambos SÃO ESCALADOS para um humano. NUNCA novel_confirmed. Um achado de colisão/relevante não citado sem uma citação obtida é rebaixado para inconclusive.

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; CONVERGÊNCIA SUBSTANTIVA eixo PROCESSO do csr + psv N=9/K=0 verificado, 2026-07-31).
  • docs/iteration-plan.md = modelo 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 falso-positivo, a fraqueza do oráculo de busca de duas camadas, a relação com psv/researcher, a superfície de credencial).
  • docs/proposal.convergence.md = a trilha de revisão cruzada da proposta.

Coordenação com cross-source-review / primary-source-verification / blueprint-crafting / parallel-development

  • cross-source-review permanece o motor de convergência do eixo PROCESSO. prior-art-search é ADITIVO e não se funde: substantive_converged do csr não implica a cobertura de prior-art-search, e vice-versa.
  • primary-source-verification é a etapa complementar do eixo resultado. psv = para trás-CITADO (buscar cada fonte citada); prior-art-search = para trás-NÃO CITADO (buscar 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 do psv (achados de colisão estendem os achados de documento do psv — um superconjunto estrito) e o RACIOCÍNIO de credencial do install.md — padrões de cópia, NÃO código (regra de workspace 7).
  • blueprint-crafting permanece puro (eixo processo). Seu researcher é COLETA ADIANTE ("encontrar fontes sobre X para autoria") — a direção oposta da colisão para trás de prior-art-search. Eles não se fundem.
  • parallel-development é dono da revisão de código. prior-art-search é em formato de documento, não de código.
  • Limite files_touched: esta skill é dona de prior-art-search/ + agents/novelty-claim-extractor.agent.md na raiz do repositório (espelhando solidforge:claim-extractor do psv). Ela não modifica a lógica central de csr, psv, bc, ou pd (prior-art-search é aditivo). Terminologia (regra de workspace 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 auto-portões abaixo são enviados 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 sobre especulação de especificações — perfil de cobertura em dogfood-run-2026-08-01.md: 2 achados relevantes não citados vieram à tona via arte anterior obtida (especulação de especificações NC34 ↔ SWE-ABS; psv NC2 ↔ AI-Powered Citation Auditing), e a conhecida colisão do paradoxo de autocertificação retornou claro-sob-busca 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 salto da regra 1 quando não há rede). Adiamento restante: uma etapa 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 alteração de skill não é considerada concluída enquanto qualquer autoverificação falhar (regra de workspace 1). Execute antes do commit:

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.json + agentes bem formados
python3 skills/prior-art-search/infra/test/findings_shape_check.py    # cada caminho de emissão → achados de colisão + registro de colisão válido
python3 skills/prior-art-search/infra/test/coverage_policy_check.py   # somas das contagens M=C+N+U+I; M=0/I>0 escalam; sem novel_confirmed; invariante de citação obtida
python3 skills/prior-art-search/infra/test/fetched_quote_gate.py      # cada achado de colisão/relevante não citado cita texto de arte anterior obtido; sem citação → inconclusivo (invariante L1/regra-3)
python3 skills/prior-art-search/infra/test/lint_self.py               # dogfood: verifica a própria infra desta skill (ruff)
python3 skills/prior-art-search/infra/test/dogfood.py                 # executa o pipeline em um documento fixture com uma colisão plantada (pula graciosamente sem rede; log gravado substitui)

Arquivos de Referência

  • proposal.md — design autoritativo (problema, não-objetivos, contrato próprio, camadas, decisões §8).
  • iteration-plan.md — execução da Fase A

…

[truncado para tradução]

Habilidades Relacionadas