@mcptoolshop/research-os 0.3.1 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.pt-BR.md CHANGED
@@ -7,7 +7,7 @@
7
7
  </p>
8
8
 
9
9
  <p align="center">
10
- <a href="https://github.com/mcp-tool-shop-org/research-os/releases/tag/v0.1.0"><img src="https://img.shields.io/badge/version-0.1.0-blue" alt="version 0.1.0"></a>
10
+ <a href="https://github.com/mcp-tool-shop-org/research-os/releases/tag/v0.3.3"><img src="https://img.shields.io/badge/version-0.3.3-blue" alt="version 0.3.3"></a>
11
11
  <a href="https://github.com/mcp-tool-shop-org/research-os/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/research-os/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
12
12
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT License"></a>
13
13
  <img src="https://img.shields.io/badge/node-%E2%89%A520-brightgreen" alt="Node ≥20">
@@ -24,7 +24,67 @@ Uma ferramenta de linha de comando (CLI) que transforma um tópico amplo em um "
24
24
 
25
25
  Não é um gerador de relatórios. Não é um framework de orquestração de LLMs (Large Language Models). Não escreve a síntese para você. Ele impõe as condições sob as quais a síntese pode começar.
26
26
 
27
- **A versão 0.1 foi usada apenas uma vez: por si só, em si mesma.** Essa única utilização identificou sete falhas na `research-os`, todas corrigidas antes desta versão. O histórico de validação sete sessões, dois padrões de integração implementados, 463 casos de teste `vitest`, um pacote finalizado — está disponível em [`docs/dogfood-proof.md`](docs/dogfood-proof.md). Manual completo: <https://mcp-tool-shop-org.github.io/research-os/handbook/>.
27
+ Os pacotes congelados são armazenados em [`mcp-tool-shop-org/research-packs`](https://github.com/mcp-tool-shop-org/research-packs)e estão disponíveis, com dois pacotes iniciais. Consulte [`docs/roadmap.md`](docs/roadmap.md) para o caminho da versão 1.0.
28
+
29
+ A versão 0.1 foi extensivamente testada em duas fases de testes internos. A primeira — em que o próprio "research-os" analisou suas próprias especificações — identificou sete inconsistências antes do lançamento da versão 0.1.0, cada uma exigindo uma correção no código e resultando em uma regra ou padrão de integração. A segunda (Experimento 1 da versão 1: durabilidade do fluxo de trabalho ComfyUI, 11 sessões, um domínio sem sobreposição de vocabulário com "research-os") foi concluída em 09 de maio de 2026: o pacote foi congelado, o arquivo está disponível e a aplicação do Padrão 2 foi concluída através do commit `22b5dba`. A documentação dos testes da versão 0.1 está disponível em [`docs/dogfood-proof.md`](docs/dogfood-proof.md); a documentação do Experimento 1 está disponível em [`docs/experiment-1-proof.md`](docs/experiment-1-proof.md). O manual está disponível em: <https://mcp-tool-shop-org.github.io/research-os/handbook/>.
30
+
31
+ ## Instalação
32
+
33
+ **Requisitos:** Node.js ≥ 20.
34
+
35
+ ```bash
36
+ npm install -g @mcptoolshop/research-os
37
+ ```
38
+
39
+ Para colaboradores que estão construindo a partir do código-fonte:
40
+
41
+ ```bash
42
+ git clone https://github.com/mcp-tool-shop-org/research-os.git
43
+ cd research-os
44
+ npm install
45
+ npm run build
46
+ npm link
47
+ ```
48
+
49
+ ## Início rápido
50
+
51
+ ```bash
52
+ # Create a new research-pack
53
+ research-os init "How should X be structured?"
54
+
55
+ # Add a section
56
+ research-os section add 01-landscape --purpose "Map the current landscape"
57
+
58
+ # Discover and approve sources, then gather
59
+ research-os discover run 01-landscape
60
+ research-os discover approve 01-landscape --top 8
61
+ research-os gather 01-landscape --approved
62
+
63
+ # Run the per-section chain
64
+ research-os claim extract 01-landscape
65
+ research-os claim audit-density 01-landscape
66
+ research-os claim triage 01-landscape
67
+ research-os contradict map 01-landscape --triaged-only
68
+ research-os review 01-landscape --triaged-only --preset hermes-two-pass --profile hermes-two-pass
69
+ research-os review-promote 01-landscape --profile hermes-two-pass
70
+ research-os gate 01-landscape
71
+ research-os section report 01-landscape
72
+
73
+ # Pack-level finish
74
+ research-os audit
75
+ research-os index build --all
76
+ research-os cowork handoff
77
+ research-os synth workspace # only if handoff returned synthesis_ready
78
+ research-os freeze
79
+
80
+ # Export to the research-packs archive
81
+ research-os pack publish \
82
+ --to <research-packs>/packages/<name>
83
+ ```
84
+
85
+ **Para um exemplo prático**, veja o pacote de teste em `research-os-packs/research-os-spec/` — todos os arquivos, todos os registros, todas as disposições, todas as "impressões digitais" do "freeze", tudo armazenado em arquivos que só podem ser adicionados. Esse pacote gerou o arquivo `docs/dogfood-proof.md`.
86
+
87
+ **Requer que o [ollama-intern-mcp](https://github.com/mcp-tool-shop-org/ollama-intern-mcp) esteja em execução localmente** para extração, triagem, revisão e descoberta de modelos de linguagem (LLM). O modelo padrão é `hermes3:8b`; você pode alterá-lo definindo a variável de ambiente `OLLAMA_INTERN_MODEL=<modelo>`. Defina a variável de ambiente `OLLAMA_HOST` se o Ollama não estiver no endereço padrão `localhost:11434`.
28
88
 
29
89
  ## As 16 leis fundamentais
30
90
 
@@ -76,55 +136,6 @@ Cada etapa é um comando de linha de comando (CLI). Cada etapa grava informaçõ
76
136
 
77
137
  Esta é a alternativa estrutural para *pesquisar → resumir → gerar relatório detalhado*. A cadeia é o produto.
78
138
 
79
- ## Instalação
80
-
81
- **Requisitos:** Node.js ≥ 20.
82
-
83
- ```bash
84
- # From source (v0.1.0 is not yet published to npm)
85
- git clone https://github.com/mcp-tool-shop-org/research-os.git
86
- cd research-os
87
- npm install
88
- npm run build
89
- npm link # makes `research-os` available on your PATH
90
- ```
91
-
92
- ## Início rápido
93
-
94
- ```bash
95
- # Create a new research-pack
96
- research-os init "How should X be structured?"
97
-
98
- # Add a section
99
- research-os section add 01-landscape --purpose "Map the current landscape"
100
-
101
- # Discover and approve sources, then gather
102
- research-os discover run 01-landscape
103
- research-os discover approve 01-landscape --top 8
104
- research-os gather 01-landscape --approved
105
-
106
- # Run the per-section chain
107
- research-os claim extract 01-landscape
108
- research-os claim audit-density 01-landscape
109
- research-os claim triage 01-landscape
110
- research-os contradict map 01-landscape --triaged-only
111
- research-os review 01-landscape --triaged-only --preset hermes-two-pass --profile hermes-two-pass
112
- research-os review-promote 01-landscape --profile hermes-two-pass
113
- research-os gate 01-landscape
114
- research-os section report 01-landscape
115
-
116
- # Pack-level finish
117
- research-os audit
118
- research-os index build --all
119
- research-os cowork handoff
120
- research-os synth workspace # only if handoff returned synthesis_ready
121
- research-os freeze
122
- ```
123
-
124
- **Para um exemplo prático**, veja o pacote de teste em `research-os-packs/research-os-spec/` — todos os arquivos, todos os registros, todas as disposições, todas as "impressões digitais" do "freeze", tudo armazenado em arquivos que só podem ser adicionados. Esse pacote gerou o arquivo `docs/dogfood-proof.md`.
125
-
126
- **Requer que o [ollama-intern-mcp](https://github.com/mcp-tool-shop-org/ollama-intern-mcp) esteja em execução localmente** para extração, triagem, revisão e descoberta de modelos de linguagem (LLM). O modelo padrão é `hermes3:8b`; você pode alterá-lo definindo a variável de ambiente `OLLAMA_INTERN_MODEL=<modelo>`. Defina a variável de ambiente `OLLAMA_HOST` se o Ollama não estiver no endereço padrão `localhost:11434`.
127
-
128
139
  ## Vocabulário
129
140
 
130
141
  | Termo | Significado |
@@ -140,24 +151,39 @@ research-os freeze
140
151
 
141
152
  ## Status
142
153
 
154
+ **v0.3.3** — Publicado no npm como `@mcptoolshop/research-os@0.3.3`, 10 de maio de 2026. Inclui melhorias na clareza da semântica das "gates" obtidas com o Pack-3 (durabilidade da exportação/runtime do Godot, Experimento 3, pacote nº 3 de 3). A saída da "gate" agora inclui contadores específicos da seção, além dos contadores globais (F-43); a mensagem `no_source_cluster_monopoly` foi alterada de um aviso para um diagnóstico informativo (F-41). **O comportamento de aprovação/reprovação não foi alterado; os pacotes congelados existentes são verificados byte a byte.** 570/570 testes do vitest passaram. Consulte o arquivo [CHANGELOG.md](CHANGELOG.md) e o arquivo [`docs/section-scoped-waivers.md`](docs/section-scoped-waivers.md).
155
+
156
+ **v0.3.2** — Publicado no npm como `@mcptoolshop/research-os@0.3.2`, 09 de maio de 2026. Inclui a normalização das reivindicações aceitas, levando em consideração a aprovação para publicação do pacote. A verificação estrita de igualdade entre `claim-reviews.jsonl` e `pack-audit.json::accepted_claims` foi substituída por uma comparação de conjuntos efetivos — as reivindicações aceitas são os `claim_id`s únicos cuja última decisão de revisão canônica é "aceita para síntese" (a última decisão prevalece para cada `claim_id`). Pacotes congelados cuja contagem de auditoria legada difere do conjunto efetivo agora são aceitos com um aviso, em vez de serem rejeitados; o arquivo de auditoria legada é preservado integralmente (Lei 15), enquanto o manifesto do arquivo reflete a contagem normalizada. A rejeição permanece intransigente para `claim_id`s inexistentes, decisões duplicadas incompatíveis e restrições não elegíveis para síntese. Obtido através do Experimento 3 XRPL pack Session K — a publicação do pacote foi rejeitada devido a uma divergência real no registro de fechamento (a Seção 07 continha 24 linhas brutas de "aceito para síntese", mas apenas 19 `claim_id`s únicos devido a janelas de revisores sobrepostas). 558/558 testes vitest passaram. Consulte [CHANGELOG.md](CHANGELOG.md) e [`docs/pack-publish.md`](docs/pack-publish.md).
157
+
158
+ **v0.3.1** — publicado no npm como `@mcptoolshop/research-os@0.3.1`, em 09 de maio de 2026. Inclui isenções de direitos autorais de seção (`primary_source_waiver.section_waivers[]`) e um reconhecimento por parte do revisor, de modo que uma descoberta de "monopólio da fonte" em toda a seção seja um aviso visível, em vez de direcionar automaticamente todas as reclamações para "needs_source_repair". Isso foi obtido no Experimento 3, pacote XRPL, Sessão 2 — as seções do protocolo canônico (cadeias de base única, especificações de API fechadas, documentação de órgãos de padronização) inverteram a suposição de que a diversidade de publicadores é um indicador da qualidade da informação. 540/540 testes vitest passaram. Consulte [CHANGELOG.md](CHANGELOG.md) e [`docs/section-scoped-waivers.md`](docs/section-scoped-waivers.md).
159
+
160
+ **Isenções de direitos autorais por seção** — Use-as quando a diversidade de publicadores é estruturalmente incompatível com a fonte de informação da seção, e não quando uma seção simplesmente não conseguiu encontrar fontes suficientes. Inclui um campo "reason" (motivo) com validação de esquema e um array "compensating_controls" (controles compensatórios) que não pode estar vazio. A política do pacote `primary_source_waiver_allowed: false` bloqueia tanto as isenções de nível de pacote quanto as isenções de seção. O "workaround" (solução alternativa) anterior à versão 0.3.1, que permitia `min_independent_publishers: 0`, está agora obsoleto; os pacotes congelados existentes permanecem válidos sob seus recibos existentes. Consulte [`docs/section-scoped-waivers.md`](docs/section-scoped-waivers.md) e o [manual do operador do repositório "research-packs"](https://github.com/mcp-tool-shop-org/research-packs/blob/main/docs/operator-playbook.md).
161
+
162
+ **v0.3.0** — publicado em 09 de maio de 2026. Inclui a flag `--detector <auto|heuristic|ollama-intern>` no comando `contradict map` (correção F-09 do bloqueador de cadeia do Experimento 3, Sessão 1, pacote XRPL). 527/527 testes vitest passaram. A seleção do detector agora é uma escolha explícita do operador, em vez de uma dança dependente do estado com variáveis de ambiente; o modo é anunciado de forma visível em cada execução. Consulte [`docs/contradict-map.md`](docs/contradict-map.md).
163
+
164
+ **v0.2.0** — publicado em 09 de maio de 2026. Inclui o comando `research-os pack publish` (Experimento 2) e a correção do predicado de prontidão para o Padrão 2. 515/515 testes vitest passaram. Consulte [CHANGELOG.md](CHANGELOG.md). Os pacotes congelados são exportados para o repositório canônico "research-packs" com um único comando; o contrato de admissão é aplicado por código, e não por uma lista de verificação. Consulte [`docs/pack-publish.md`](docs/pack-publish.md).
165
+
143
166
  **v0.1.0** — bloqueado em 2026-05-08. O pacote de teste em `research-os-packs/research-os-spec/` (repositório relacionado) atingiu o estado de bloqueio com 296 afirmações aceitas em 8 seções, 17 dispostas, 30 substituídas por operadores, 0 bloqueadores de correção ativos, 0 contradições não resolvidas, todos os "gates" com `synthesis_eligible=true`. 463/463 testes "vitest" passaram. Dezesseis leis fundamentais foram implementadas. Consulte [`docs/dogfood-proof.md`](docs/dogfood-proof.md) para as sete descobertas e as "impressões digitais" dos registros de bloqueio.
144
167
 
168
+ **Repositório monolítico "research-packs"** — está disponível em [`mcp-tool-shop-org/research-packs`](https://github.com/mcp-tool-shop-org/research-packs), com dois pacotes iniciais. `comfyui-workflow-durability` (Experimento 1, 302 reclamações aceitas, 8 seções) e `research-os-self-dogfood` (backfill do teste interno da versão 0.1, 296 reclamações aceitas, 8 seções). Ambos os pacotes PASSAM `verify-pack.mjs`.
169
+
170
+ **Experimento 1 da versão 1 (durabilidade do fluxo de trabalho ComfyUI)** — FINALIZADO em 09 de maio de 2026. Todas as 8 seções em Terminal A, pacote congelado, arquivo disponível. Consulte [`docs/experiment-1-proof.md`](docs/experiment-1-proof.md) e [`docs/roadmap.md`](docs/roadmap.md).
171
+
145
172
  ### O que a versão 0.1 não é
146
173
 
147
- - Não foi testada por usuários externos. A única execução de teste encontrou sete bugs.
148
- - Ainda não está disponível no npm. Instale a partir do código-fonte até que a publicação no npm ocorra.
149
- - Não é um gerador de conteúdo. O comando `synth workspace` gera o ambiente de trabalho estruturado; humanos (ou Cowork) escrevem o texto em relação aos IDs das afirmações aceitas.
150
- - Não tem estabilidade de API compatível com a versão semântica. A versão 1.0.0 é um estado alcançado, não uma data no calendário — consulte [`docs/roadmap.md`](docs/roadmap.md) para os cinco experimentos que preencherão essa lacuna.
174
+ - Não foi testado em condições reais por usuários externos. Três ciclos de testes internos foram concluídos — um autoreferencial e dois relacionados a domínios externos — e o Experimento 3 (estabilidade da API sob pressão externa) foi **CONCLUÍDO em 10 de maio de 2026**: todos os três pacotes (ComfyUI, XRPL, Godot) atingiram o estado de "freeze" sem alterações disruptivas na interface da linha de comando (CLI) v0.3.x. Este ciclo de testes resultou nas versões v0.3.0 com o recurso `--detector` (F-09), v0.3.1 com as opções de isenção de responsabilidade específicas da seção (F-10/F-11), v0.3.2 com a normalização da contabilidade de "accepted claims" (F-36) e v0.3.3 com a clareza da semântica das "gates" (F-43/F-41).
175
+ - Não é um gerador de texto. O comando `synth workspace` gera o ambiente de trabalho estruturado; os humanos (ou o Cowork) escrevem o texto com base nos IDs de "accepted claims".
176
+ - A estabilidade da API não é garantida pela versão semântica. A versão 1.0.0 é um estado alcançado, não uma data no calendário consulte o arquivo [`docs/roadmap.md`](docs/roadmap.md) para os seis experimentos que preencherão essa lacuna.
151
177
 
152
178
  ### Limitações conhecidas
153
179
 
154
- - **A origem do extrator não é visível na junção da porta.** Uma seção pode passar pelo limite aceitável, mesmo utilizando mecanismos de fallback heurísticos, quando o extrator calibrado (Ollama com o modelo configurado) não está disponível. Isso foi registrado como uma vulnerabilidade conhecida; as futuras melhorias reportarão as reivindicações aceitas pelo extrator e exigirão um número de reivindicações aceitas equivalente ao limite definido, provenientes do caminho calibrado.
155
- - **A seleção do modelo de revisão, além da linha de base calibrada `hermes-two-pass`, ainda não foi resolvida.** O ambiente de testes internos validou uma configuração de revisão; modelos alternativos precisam de sua própria calibração para cenários de falha simulada antes de poderem ser considerados confiáveis.
156
- - **O pacote de testes internos utilizou `mistral-nemo:12b` para a extração (o padrão é `hermes3:8b`).** O sistema apresentou alucinações, gerando resultados para domínios incorretos para nomes de seções que se referiam a si mesmas. Isso foi corrigido através de uma disciplina de precisão na consulta (ver manual) e URLs pré-definidas pelos operadores para tópicos ambíguos.
180
+ - **A origem do extrator não é visível na junção da interface.** Uma seção pode passar pelo limite de reivindicações aprovadas, mesmo que utilize reivindicações de fallback heurísticas quando o extrator calibrado (Ollama com o modelo configurado) não estiver disponível. Isso foi registrado como o Experimento 4 no roteiro; aprimoramentos futuros indicarão as reivindicações aprovadas por extrator e exigirão o número mínimo de reivindicações aprovadas do caminho calibrado.
181
+ - **A seleção do modelo de revisão além da linha de base calibrada `hermes-two-pass` não foi resolvida.** O ciclo de testes internos validou uma configuração de revisão; modelos alternativos precisam de sua própria calibração de recall de falhas simuladas antes de poderem ser confiáveis. Isso é o Experimento 5 no roteiro.
182
+ - **O pacote de testes internos v0.1 utilizou `mistral-nemo:12b` para a extração (o padrão é `hermes3:8b`).** O modelo `hermes3:8b` não estava disponível neste ambiente durante o ciclo v0.1. Essa substituição será mantida até que seja disponibilizado um modelo baseado em hermes3 — isso é o Experimento 6 no roteiro. Para operadores em ambientes sem `hermes3:8b`, defina `OLLAMA_INTERN_MODEL` para um modelo disponível; URLs pré-configuradas pelo operador e disciplina na precisão das consultas (consulte o manual) ajudam a mitigar alucinações em tópicos ambíguos.
157
183
 
158
184
  ## Roteiro para a versão 1.0
159
185
 
160
- A versão 1.0 é um estado alcançado, não uma data de lançamento. Cinco experimentos estão em andamento entre a versão 0.1 e a versão 1.0: estabilidade da API sob pressão externa, um pacote de testes internos que não se refere a si mesmo, fechamento da lacuna de rastreabilidade do extrator, generalização da calibração do revisor além do `hermes-two-pass` e uma execução de linha de base limpa no `hermes3:8b`. O plano completo está disponível em [`docs/roadmap.md`](docs/roadmap.md). A arquitetura permanece fixa; a versão 1.0 aprofunda o que a versão 0.1 demonstrou, em vez de reabri-lo.
186
+ A versão v1.0 é um estado alcançado, não uma data de lançamento. Seis experimentos estão em andamento entre as versões v0.1 e v1.0 testes internos não de referência (atualmente em andamento como o pacote de durabilidade do fluxo de trabalho ComfyUI), um comando `research-os pack publish` que automatiza a exportação para o monorepository canônico `research-packs` (Experimento 2, com escopo definido após a conclusão manual do Experimento 1), estabilidade da API sob pressão externa, fechamento da lacuna de rastreabilidade do extrator, generalização da calibração do revisor além de `hermes-two-pass` e uma execução de linha de base limpa em `hermes3:8b`. O Experimento 1 não está concluído no momento do congelamento do pacote; ele é finalizado quando o pacote congelado é lançado como o primeiro pacote no monorepository `research-packs`, juntamente com o pacote de testes internos da versão v0.1. O plano completo está em [`docs/roadmap.md`](docs/roadmap.md). A arquitetura permanece bloqueada; a versão v1.0 aprofunda o que a versão v0.1 comprovou, em vez de reabri-lo.
161
187
 
162
188
  ## Licença
163
189
 
package/README.zh.md CHANGED
@@ -7,7 +7,7 @@
7
7
  </p>
8
8
 
9
9
  <p align="center">
10
- <a href="https://github.com/mcp-tool-shop-org/research-os/releases/tag/v0.1.0"><img src="https://img.shields.io/badge/version-0.1.0-blue" alt="version 0.1.0"></a>
10
+ <a href="https://github.com/mcp-tool-shop-org/research-os/releases/tag/v0.3.3"><img src="https://img.shields.io/badge/version-0.3.3-blue" alt="version 0.3.3"></a>
11
11
  <a href="https://github.com/mcp-tool-shop-org/research-os/actions/workflows/ci.yml"><img src="https://github.com/mcp-tool-shop-org/research-os/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
12
12
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT License"></a>
13
13
  <img src="https://img.shields.io/badge/node-%E2%89%A520-brightgreen" alt="Node ≥20">
@@ -16,77 +16,34 @@
16
16
 
17
17
  # research-os
18
18
 
19
- `research-os` 是一个本地优先的命令行工具,它将一个开放性的主题转化为一个结构化的**研究包**,在这个结构化的代码仓库中,Claude、Cowork或其他系统可以工作数小时,而不会出现幻觉或偏离研究方向。
19
+ `research-os` 是一个本地优先的命令行工具,它将一个开放式的主题转化为一个结构化的 **研究包**,在这个结构化的代码仓库中,Claude、Cowork 或其他工具可以在不产生幻觉或歪曲研究结果的情况下工作数小时。
20
20
 
21
21
  ## 它是什么
22
22
 
23
- `research-os` 是“我想研究 X”和“一个经过验证、可追溯证据的基础”之间的控制层。它将发现线索与获取证据、原始提取与筛选后的论点、矛盾检测与矛盾解决、审查决策与综合结论等环节分开。每个步骤都会写入一个只追加的日志;每个准备就绪的判断都是基于这些日志计算得出的,而不是主观臆断。
23
+ `research-os` 是“我想研究 X”和“一个经过验证、可追溯证据的基础”之间的控制层。它将发现线索与获取证据分离,将原始提取与筛选后的主张分离,将矛盾检测与矛盾解决分离,并将审查决策与综合结果分离。每个步骤都会写入一个只追加的日志;每个就绪的判断都是基于这些日志计算得出,而不是主观声明。
24
24
 
25
- 它不是一个报告生成器。它不是一个大型语言模型(LLM)编排的**框架**。它不会为你自动生成综合结论。它强制执行在开始综合之前必须满足的条件。
25
+ 它不是一个报告生成器。它不是一个 LLM 编排的框架。它不会为你编写综合报告。它强制执行综合分析开始的条件。
26
26
 
27
- **v0.1 版本** 仅被使用过一次:它本身被用于测试自身。这次测试发现了 `research-os` 中的七个正确性问题,并在本次**发布**之前都已修复。完整的验证过程——七个会话、两种集成模式、463 个 `vitest` 测试用例、一个冻结的**研究包**——都记录在 [`docs/dogfood-proof.md`](docs/dogfood-proof.md) 文件中。 详细指南:<https://mcp-tool-shop-org.github.io/research-os/handbook/>。
27
+ 已冻结的研究包被归档在 [`mcp-tool-shop-org/research-packs`](https://github.com/mcp-tool-shop-org/research-packs) 仓库中,其中包含两个初始版本。请参阅 [`docs/roadmap.md`](docs/roadmap.md) 以了解 v1.0 的发展路线图。
28
28
 
29
- ## 16 条核心原则
30
-
31
- | # | 原则 |
32
- |---|-----|
33
- | 1 | 在获得原始数据之前,不能进行综合。 |
34
- | 2 | 获取是证据;提取是解释。 |
35
- | 3 | 模型可以解释原始数据的片段,但不能生成证据片段。 |
36
- | 4 | 提取可能会产生过多的信息;综合不能简单地继承这些信息。 |
37
- | 5 | 矛盾映射会暴露潜在的冲突,但它不会解决、综合或决定哪个论点更胜一筹。 |
38
- | 6 | 闸门决定一个部分是否符合综合的条件。它们不进行综合,也不隐藏失败。 |
39
- | 7 | 对抗性审查用于评估研究的完整性。它不进行综合,也不重写原始数据。 |
40
- | 8 | 索引使研究结果可以被查询。它不创造新的事实,也不成为官方记录。 |
41
- | 9 | Cowork 模式将研究结果转化为可操作的指令。它不创造事实,也不绕过闸门。 |
42
- | 10 | 综合工作区用于组织 Cowork 模式中接受的研究结果。它不进行综合,也不绕过 Cowork 模式。 |
43
- | 11 | **研究包**审计汇总现有的研究结果。它不创造新的事实,也不隐藏部分级别的证据。 |
44
- | 12 | 发现阶段提出线索;只有获取阶段才能产生证据。 |
45
- | 13 | 只有当经过测试证明其能够准确回忆时,审查者才会被信任。 |
46
- | 14 | 论点的数量并不能代表研究的质量。在进行综合之前,必须对论点进行筛选。 |
47
- | 15 | 冻结锁定已完成的研究结果。它不完成未完成的研究,也不将修复状态转化为证据。 |
48
- | 16 | 豁免可以放宽对原始数据的限制,但不能制造证据。 |
49
-
50
- **第 3 条原则**:大型语言模型(LLM)绝不能生成证据文本。`research-os` 构建了一个确定性的摘录日志(具有稳定 ID,例如 `ex_<source_id_hex>_001`);大型语言模型选择摘录 ID;`research-os` 复制原始文本。 “释义作为引用”的错误类型在结构上是无法实现的。
51
-
52
- **第 14 条原则**:在提取和审查之间,`research-os claim triage`(论点筛选)会去重、限制每个来源的贡献,并将低价值的候选论点放入待处理队列。 论点筛选不会修改 `claims.jsonl` 文件;待处理的论点仍然保留在原始日志中。
53
-
54
- ## v0.1 的工作流程链
55
-
56
- ```
57
- discover
58
- → gather
59
- → claim extract
60
- → claim audit-density
61
- → claim triage
62
- → contradict map
63
- → contradict resolve
64
- → review
65
- → review-promote
66
- → gate
67
- → section report
68
- → audit
69
- → index build
70
- → cowork handoff
71
- → synth workspace
72
- → freeze
73
- ```
74
-
75
- 每个步骤都是一个命令行指令。每个步骤都会写入只追加的记录。没有哪个步骤会合成、解决或创建新的事实——这些不变性是被强制执行的,而不是被信任的。审查环节会接受、拒绝或要求修复候选声明;“gate”会根据审查结果计算“synthesis_eligible”(合成资格)。“freeze”(冻结)是最终的完整性锁,只有当所有层都同意时,才会标记一个包为完成。请参阅[docs/dogfood-proof.md](docs/dogfood-proof.md),了解v0.1版本的证明,该证明表明整个流程是端到端的。
76
-
77
- 这是一种替代 *搜索 → 摘要 → 精美报告* 的结构化方法。这个流程是最终产品。
29
+ v0.1 版本已经在两个内部测试阶段进行了压力测试。第一次测试——`research-os` 研究自身的规范——在 v0.1.0 发布之前发现了七个正确性问题,每个问题都需要实际的代码修复,并衍生出相应的规则或集成模式。第二次测试(v1 实验 1:ComfyUI 工作流程的稳定性,11 个会话,一个与 `research-os` 没有任何词汇重叠的领域)于 2026-05-09 结束:研究包已冻结,归档已上线,模式 2 的执行通过提交 `22b5dba` 完成。v0.1 版本的验证记录位于 [`docs/dogfood-proof.md`](docs/dogfood-proof.md);实验 1 的验证记录位于 [`docs/experiment-1-proof.md`](docs/experiment-1-proof.md)。 详细文档:<https://mcp-tool-shop-org.github.io/research-os/handbook/>。
78
30
 
79
31
  ## 安装
80
32
 
81
33
  **要求:** Node.js ≥ 20。
82
34
 
83
35
  ```bash
84
- # From source (v0.1.0 is not yet published to npm)
36
+ npm install -g @mcptoolshop/research-os
37
+ ```
38
+
39
+ 对于从源代码构建的贡献者:
40
+
41
+ ```bash
85
42
  git clone https://github.com/mcp-tool-shop-org/research-os.git
86
43
  cd research-os
87
44
  npm install
88
45
  npm run build
89
- npm link # makes `research-os` available on your PATH
46
+ npm link
90
47
  ```
91
48
 
92
49
  ## 快速开始
@@ -119,41 +76,114 @@ research-os index build --all
119
76
  research-os cowork handoff
120
77
  research-os synth workspace # only if handoff returned synthesis_ready
121
78
  research-os freeze
79
+
80
+ # Export to the research-packs archive
81
+ research-os pack publish \
82
+ --to <research-packs>/packages/<name>
83
+ ```
84
+
85
+ **要查看一个实际的示例**,请参阅 `research-os-packs/research-os-spec/` 目录下的研究包——每个文件、每个记录、每个结论、每个冻结的指纹,都以只追加的日志形式存储在磁盘上。该研究包生成了 `docs/dogfood-proof.md`。
86
+
87
+ **需要本地运行 [ollama-intern-mcp](https://github.com/mcp-tool-shop-org/ollama-intern-mcp)**,用于 LLM 的提取、筛选、审查和发现。默认模型是 `hermes3:8b`;可以使用 `OLLAMA_INTERN_MODEL=<model>` 进行覆盖。如果 Ollama 不在默认的 `localhost:11434` 地址上,请设置 `OLLAMA_HOST`。
88
+
89
+ ## 16 条核心规则
90
+
91
+ | # | 规则 |
92
+ |---|-----|
93
+ | 1 | 在获得原始数据之前,不能进行综合分析。 |
94
+ | 2 | 获取是证据;提取是解释。 |
95
+ | 3 | 模型可以解释原始数据,但不能生成证据。 |
96
+ | 4 | 提取可能会产生过多的信息;综合分析不能继承这种过剩。 |
97
+ | 5 | 矛盾映射会暴露潜在的冲突,但它不会解决、综合或决定哪个主张是正确的。 |
98
+ | 6 | 网关决定一个部分是否符合综合分析的条件。它们既不进行综合分析,也不隐藏失败。 |
99
+ | 7 | 对抗性审查用于评估研究的完整性。它既不进行综合分析,也不重写原始数据。 |
100
+ | 8 | 索引可以使研究结果可查询。它既不创建新的事实,也不成为原始记录。 |
101
+ | 9 | Cowork 协作模式将研究结果转化为可操作的指令。它既不创建事实,也不绕过网关。 |
102
+ | 10 | 综合分析工作区用于组织 Cowork 协作模式中接受的研究结果。它既不进行综合分析,也不绕过协作模式。 |
103
+ | 11 | 研究包审计汇总现有的研究结果。它既不创建新的事实,也不隐藏部分级别的证据。 |
104
+ | 12 | 发现阶段提出线索;只有获取才能产生证据。 |
105
+ | 13 | 只有在经过多次失败测试证明其可回溯性后,才能信任审查者。 |
106
+ | 14 | 声称拥有大量信息并不代表研究质量。在进行综合分析之前,必须对这些信息进行筛选。 |
107
+ | 15 | “冻结”状态锁定已完成的研究成果,但不会完成未完成的研究,也不会将修复状态转化为证据。 |
108
+ | 16 | 豁免可以放宽对来源的限制,但不能用于伪造证据。 |
109
+
110
+ **第三条规则**:大型语言模型(LLM)绝不会生成证据文本。`research-os` 构建一个确定性的摘录记录(具有稳定 ID,例如 `ex_<source_id_hex>_001`);LLM 选择摘录 ID;`research-os` 复制原始文本。 “释义作为引用”的错误类型在结构上是无法实现的。
111
+
112
+ **第十四条规则**:在提取和审查阶段,`research-os claim triage`(研究主张筛选)会去除重复项,限制每个来源的贡献,并将低价值的主张放入待处理队列。筛选过程不会修改 `claims.jsonl` 文件;待处理的主张仍然保留在原始记录中。
113
+
114
+ ## v0.1 工作流程链
115
+
116
+ ```
117
+ discover
118
+ → gather
119
+ → claim extract
120
+ → claim audit-density
121
+ → claim triage
122
+ → contradict map
123
+ → contradict resolve
124
+ → review
125
+ → review-promote
126
+ → gate
127
+ → section report
128
+ → audit
129
+ → index build
130
+ → cowork handoff
131
+ → synth workspace
132
+ → freeze
122
133
  ```
123
134
 
124
- **要查看一个实际的示例,**请查看 `research-os-packs/research-os-spec/` 目录下的“dogfood”包——每个记录、每个凭证、每个处理结果、每个冻结指纹,都存储在只追加的日志文件中。该包生成了 `docs/dogfood-proof.md`。
135
+ 每个步骤都是一个命令行指令。每个步骤都会写入只追加的记录文件。任何步骤都不会进行综合、解决或创建新的真理——这些原则是强制执行的,而不是被信任的。审查人员可以接受、拒绝或要求修复候选主张;“门禁”系统会根据审查结果计算 `synthesis_eligible`(是否符合综合条件);“冻结”是最终的完整性锁定,只有当所有层级都同意时,才会标记一个项目为已完成。请参阅 [docs/dogfood-proof.md](docs/dogfood-proof.md),了解 v0.1 的完整证明,该证明表明整个链条是端到端的。
125
136
 
126
- **需要本地运行 [ollama-intern-mcp](https://github.com/mcp-tool-shop-org/ollama-intern-mcp)**,用于LLM提取、分诊、审查和发现。默认模型是 `hermes3:8b`;可以使用 `OLLAMA_INTERN_MODEL=<模型>` 来覆盖。如果Ollama没有安装在默认的 `localhost:11434` 上,请设置 `OLLAMA_HOST`。
137
+ 这是 *搜索 总结 生成报告* 的结构性替代方案。整个链条是最终产品。
127
138
 
128
- ## 词汇表
139
+ ## 术语
129
140
 
130
141
  | 术语 | 含义 |
131
142
  |------|---------|
132
- | `research-os` | 控制平面 / 命令行 / 闸门 / 编排规则 (此仓库) |
133
- | `research-pack` | 用于一个研究项目的生成的仓库记录 |
134
- | `research section` | 在某个包内部的有限的调查单元 |
135
- | `research receipt` | 证明某个部分通过了源/声明/闸门检查 |
143
+ | `research-os` | 控制平面 / 命令行 / 门禁 / 编排规则(此仓库) |
144
+ | `research-pack` | 用于单个研究项目的生成仓库文件 |
145
+ | `research section` | 在项目中,一个受限的调查单元 |
146
+ | `research receipt` | 证明某个部分通过了来源/主张/门禁检查 |
136
147
 
137
148
  ## 安全性
138
149
 
139
- `research-os` 是一个本地优先的命令行工具。它在您指定的 research-pack 目录下读取和写入文件,并在使用 `gather` 命令时,会向您提供的源 URL 发送 HTTP 请求。它不会:运行服务器、接受入站连接、存储凭据或发送遥测数据。任何敏感信息都不会写入到包的记录中。请参阅 [SECURITY.md](SECURITY.md),了解漏洞报告政策。
150
+ `research-os` 是一个本地优先的命令行工具。它在您指定的“研究包”目录中读取和写入文件,并在使用 `gather` 命令时,会向外部发送 HTTP 请求以获取您提供的来源 URL。它不会:运行服务器、接受传入连接、存储凭据或发送遥测数据。任何敏感信息都不会写入到包文件中。请参阅 [SECURITY.md](SECURITY.md),了解漏洞报告政策。
140
151
 
141
152
  ## 状态
142
153
 
143
- **v0.1.0** — 冻结于 2026-05-08。`research-os-packs/research-os-spec/` (兄弟仓库) 中的“dogfood”包已完成冻结,共接受了 8 个部分中的 296 个声明,17 个已处理,30 个被操作员覆盖,0 个活动修复阻塞,0 个未解决的矛盾,所有闸门 `synthesis_eligible=true`。463/463 个 vitest 测试通过。共有 16 条关键规则。请参阅 [`docs/dogfood-proof.md`](docs/dogfood-proof.md),了解 7 个发现和冻结凭证指纹。
154
+ **v0.3.3** — 已发布到 npm,版本号为 `@mcptoolshop/research-os@0.3.3`,发布日期:2026年5月10日。此版本改进了“门”机制的语义清晰度,这是Pack-3(Godot导出/运行时稳定性,实验3的第3个包)所取得的成果。现在,“门”的输出结果除了包含整个包的计数外,还包含按“门”划分的发布者和主要计数(F-43);`no_source_cluster_monopoly` 的警告信息已更改为信息性诊断信息(F-41)。**通过/失败的行为未改变;现有的冻结包在字节级别上进行验证。** 570/570 个 vitest 测试通过。请参阅 [CHANGELOG.md](CHANGELOG.md) [`docs/section-scoped-waivers.md`](docs/section-scoped-waivers.md)
155
+
156
+ **v0.3.2** — 已发布到 npm,版本号为 `@mcptoolshop/research-os@0.3.2`,发布日期:2026年5月9日。此版本对“已接受的声明”进行了标准化处理,以适应“包发布”的流程。严格的 `claim-reviews.jsonl` 文件和 `pack-audit.json::accepted_claims` 之间的相等性检查已被替换为集合比较——已接受的声明是具有最新规范审查决策为 `accepted_for_synthesis` 的唯一 `claim_id`(`claim_id` 遵循“最新决策优先”原则)。对于那些其历史审计计数与集合比较结果不同的冻结包,现在会发出警告而不是拒绝;原始的审计文件将被完整保留(第15条规定),而归档清单会反映标准化后的计数。对于虚假 `claim_id`、不兼容的重复决策以及不符合合成条件的“门”,仍然会拒绝。这是 Experiment 3 XRPL pack Session K 的成果——由于实际的账本关闭时的差异,包发布被拒绝(第07部分有 24 行原始的 `accepted_for_synthesis` 数据,但由于审查窗口的重叠,只有 19 个唯一的 `claim_id`)。558/558 个 vitest 测试通过。请参阅 [CHANGELOG.md](CHANGELOG.md) 和 [`docs/pack-publish.md`](docs/pack-publish.md)。
157
+
158
+ **v0.3.1** — 已发布到 npm,版本号为 `@mcptoolshop/research-os@0.3.1`,发布日期:2026-05-09。 包含按章节划分的来源豁免 (`primary_source_waiver.section_waivers[]`),以及审查人员的确认,因此,如果某个章节的“来源垄断”被豁免,则该豁免会成为一个可见的提示,而不是自动将所有主张都标记为“需要修复来源”。 这是通过实验 3 XRPL 包的第二阶段实现的——针对“标准协议”部分的分析(包括单链、封闭式 API 规范和标准机构文档)推翻了“发布者多样性是衡量真理质量的指标”的假设。 540/540 个 vitest 测试通过。 请参阅 [CHANGELOG.md](CHANGELOG.md) 和 [`docs/section-scoped-waivers.md`](docs/section-scoped-waivers.md)。
159
+
160
+ **按章节划分的来源豁免**:当发布者多样性与该章节的真理来源结构上不兼容时,才使用这些豁免,而不是仅仅因为某个章节未能找到足够的来源。 豁免必须包含经过模式验证的 `reason`(原因)以及非空 `compensating_controls[]`(补偿控制)。 包策略 `primary_source_waiver_allowed: false` 会阻止包级别和章节级别的豁免。 之前的 v0.3.1 版本中,包级别的 `min_independent_publishers: 0` 是一种解决方法,现在已弃用;现有的已冻结的包仍然在现有记录下有效。 请参阅 [`docs/section-scoped-waivers.md`](docs/section-scoped-waivers.md) 和 [research-packs 操作手册](https://github.com/mcp-tool-shop-org/research-packs/blob/main/docs/operator-playbook.md)。
161
+
162
+ **v0.3.0** — 发布于 2026-05-09。 针对 `contradict map`,发布了 `--detector <auto|heuristic|ollama-intern>` 标志(来自 Experiment 3 Session 1,XRPL pack 的 F-09 chain-blocker 修复)。 此时,527/527 个 vitest 测试通过。 检测器的选择现在是明确的操作员选择,而不是依赖于状态的环境变量;模式会在每次运行时显式显示。 参见 [`docs/contradict-map.md`](docs/contradict-map.md)。
163
+
164
+ **v0.2.0** — 发布于 2026-05-09。 发布了 `research-os pack publish`(Experiment 2)以及 Pattern 2 的就绪谓词修复。 此时,515/515 个 vitest 测试通过。 参见 [CHANGELOG.md](CHANGELOG.md)。 冻结的软件包导出到标准的 `research-packs` 归档,只需一个命令即可完成; 许可协议由代码强制执行,而不是检查清单。 参见 [`docs/pack-publish.md`](docs/pack-publish.md)。
165
+
166
+ **v0.1.0** — 2026-05-08 冻结了内部测试软件包。 位于 `research-os-packs/research-os-spec/`(兄弟仓库)的软件包已冻结,共包含 8 个部分,有 296 个已接受的声明,17 个已处理,30 个被操作员覆盖,0 个活动修复阻止器,0 个未解决的矛盾,所有条件 `synthesis_eligible=true`。 共有 16 条关键规则。 参见 [`docs/dogfood-proof.md`](docs/dogfood-proof.md),其中包含七个发现和冻结确认的指纹。
167
+
168
+ **research-packs 归档单库** — 位于 [`mcp-tool-shop-org/research-packs`](https://github.com/mcp-tool-shop-org/research-packs),包含两个初始软件包。 `comfyui-workflow-durability`(Experiment 1,302 个已接受的声明,8 个部分)和 `research-os-self-dogfood`(v0.1 内部测试回填,296 个已接受的声明,8 个部分)。 这两个软件包都通过了 `verify-pack.mjs` 测试。
169
+
170
+ **v1 Experiment 1 (ComfyUI 工作流程的稳定性)** — 已于 2026-05-09 结束。 终端 A 的所有 8 个部分已完成,软件包已冻结,归档已上线。 参见 [`docs/experiment-1-proof.md`](docs/experiment-1-proof.md) 和 [`docs/roadmap.md`](docs/roadmap.md)。
171
+
172
+ ### v0.3 的局限性
173
+
174
+ - 未经外部用户进行实际测试。三个内部测试阶段已结束——一个自指,两个涉及外部领域——并且 Experiment 3(在外部压力下的 API 稳定性)已于 **2026年5月10日 结束**:所有三个包(ComfyUI、XRPL、Godot)都已冻结,并且没有对 v0.3.x 的命令行界面进行任何重大更改。这些测试阶段带来了 v0.3.0 的 `--detector` 功能(F-09)、v0.3.1 的按“门”划分的豁免(F-10/F-11)、v0.3.2 的标准化“已接受的声明”处理(F-36)以及 v0.3.3 的“门”机制语义清晰度(F-43/F-41)。
175
+ - 不支持自动内容生成。`synth workspace` 命令用于生成结构化的工作区;人类(或 Cowork)负责根据已接受的声明 ID 编写内容。
176
+ - API 不保证语义版本兼容。v1.0.0 是一个需要通过实验才能达到的状态,而不是一个日期的约定——请参阅 [`docs/roadmap.md`](docs/roadmap.md),了解实现这一目标所需的六个实验。
144
177
 
145
- ### v0.1 的局限性
178
+ ### 已知的局限性
146
179
 
147
- - 尚未经过外部用户的严格测试。在一次内部测试中发现了 7 bug。
148
- - 尚未发布到 npm。在 `npm publish` 之前,请从源代码安装。
149
- - 不是一个合成器。`synth workspace` 命令会生成结构化的工作区;人类(或 Cowork)会根据已接受的声明 ID 编写文本内容。
150
- - 在语义版本控制下,API 稳定性尚未确定。v1.0.0 版本将在外部用户验证了该接口之后发布。
180
+ - **提取器的来源信息在接口处不可见。** 一个部分可以满足已接受声明的最低要求,同时依赖于启发式回退声明,当经过校准的提取器(配置了模型的 Ollama)不可用时。 这已记录为路线图中的 Experiment 4; 未来的改进将报告每个提取器的已接受声明,并要求满足接口要求的已接受声明数量来自校准路径。
181
+ - **超出经过校准的 `hermes-two-pass` 基线的审查器模型选择尚未解决。** 内部测试阶段验证了一种审查器配置; 其他模型需要在它们被信任之前,进行种子失败召回校准。 这是路线图中的 Experiment 5。
182
+ - **v0.1 内部测试软件包使用了 `mistral-nemo:12b` 进行提取(标准的默认配置是 `hermes3:8b`)。** v0.1 阶段,此设备上不可用 `hermes3:8b`。 此替代方案的说明将持续有效,直到生成基于 hermes3 的确认——这是路线图中的 Experiment 6。 对于在没有 `hermes3:8b` 的设备上的操作员,请将 `OLLAMA_INTERN_MODEL` 设置为可用的模型; 操作员预配置的 URL 和查询精度规范(参见手册)可以减轻对模糊主题的幻觉。
151
183
 
152
- ### 已知限制
184
+ ## 通往 v1.0 的路线图
153
185
 
154
- - **提取器的来源信息在网关接缝处不可见。** 在校准后的提取器(配置了模型的 Ollama)不可用时,某些部分可能会通过“可接受声明”的阈值,但这依赖于启发式方法的备用方案。这被记录为已知的弱点;未来的改进将报告提取器提供的“可接受声明”数量,并要求校准路径必须达到阈值所需的“可接受声明”数量。
155
- - **关于超出校准的 `hermes-two-pass` 基准线的评审模型选择问题尚未解决。** 内部测试验证了一种评审模型配置;其他模型需要在被信任之前,进行独立的、基于预设失败情况的校准。
156
- - **内部测试使用的提取模型是 `mistral-nemo:12b`(默认配置是 `hermes3:8b`)。** 在发现过程中,系统会产生与当前主题不相关的错误结果,针对自指部分名称的问题,通过查询精度控制(参见手册)以及操作员预先设置的 URL 来进行修正,以解决模糊主题的问题。
186
+ v1.0 是一个需要达成的状态,而不是一个发布日期。在 v0.1 和 v1.0 之间,有六个正在进行的实验。这些实验包括:非自指的内部测试版本(目前正在进行中的 ComfyUI 工作流程稳定性包)、一个 `research-os pack publish` 命令,该命令可以自动将内容导出到标准的 `research-packs` 单仓库(实验 2,其范围受实验 1 的手动关闭影响)、在外部压力下的 API 稳定性、弥补提取器溯源方面的差距、将评审员校准推广到 `hermes-two-pass` 之外,以及在 `hermes3:8b` 上进行的干净基准测试。实验 1 在打包完成时尚未结束——它会在打包版本作为 `research-packs` 单仓库中的第一个软件包发布时完成,同时也会发布 v0.1 的内部测试版本补丁。完整计划请参见 [`docs/roadmap.md`](docs/roadmap.md)。整个过程中,架构保持不变;v1.0 旨在深化 v0.1 已经证明的内容,而不是重新开启新的方向。
157
187
 
158
188
  ## 许可证
159
189