@mcptoolshop/research-os 0.3.0 → 0.3.2
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/CHANGELOG.md +214 -0
- package/README.es.md +99 -71
- package/README.fr.md +86 -58
- package/README.hi.md +83 -59
- package/README.it.md +97 -73
- package/README.ja.md +86 -58
- package/README.md +8 -4
- package/README.pt-BR.md +83 -59
- package/README.zh.md +102 -74
- package/dist/cli.js +281 -62
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +174 -84
- package/dist/index.js +185 -48
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
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.
|
|
10
|
+
<a href="https://github.com/mcp-tool-shop-org/research-os/releases/tag/v0.3.2"><img src="https://img.shields.io/badge/version-0.3.2-blue" alt="version 0.3.2"></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
|
-
|
|
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,37 @@ research-os freeze
|
|
|
140
151
|
|
|
141
152
|
## Status
|
|
142
153
|
|
|
154
|
+
**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).
|
|
155
|
+
|
|
156
|
+
**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).
|
|
157
|
+
|
|
158
|
+
**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).
|
|
159
|
+
|
|
160
|
+
**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).
|
|
161
|
+
|
|
162
|
+
**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).
|
|
163
|
+
|
|
143
164
|
**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
165
|
|
|
166
|
+
**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`.
|
|
167
|
+
|
|
168
|
+
**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).
|
|
169
|
+
|
|
145
170
|
### O que a versão 0.1 não é
|
|
146
171
|
|
|
147
|
-
- Não
|
|
148
|
-
-
|
|
149
|
-
- Não é
|
|
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.
|
|
172
|
+
- Não testado em campo por usuários externos. Duas fases de testes internos foram concluídas — uma autorreferencial e outra de domínio externo — e o Experimento 3 (estabilidade da API sob pressão externa) está em andamento: o pacote nº 2 de 3 (durabilidade do token de criador XRPL) está congelado com 251 reivindicações aceitas em 7 seções, aguardando a aprovação para publicação no npm v0.3.2. Esta fase obteve a flag v0.3.0 `--detector` (bloqueador de cadeia F-09), as renúncias de origem específicas da seção v0.3.1 (pressão do protocolo canônico F-10/F-11) e a contagem normalizada de reivindicações aceitas v0.3.2 (registro de fechamento F-36). É necessário mais um pacote de domínio externo para a conclusão do Experimento 3.
|
|
173
|
+
- Não é um escritor de sínteses. O comando `synth workspace` gera o ambiente de trabalho estruturado; humanos (ou Cowork) escrevem o conteúdo com base nos IDs de reivindicações aceitas.
|
|
174
|
+
- Não é estável em termos de API sob a semântica de versionamento. A versão v1.0.0 é um estado alcançado, não uma data no calendário — consulte [`docs/roadmap.md`](docs/roadmap.md) para os seis experimentos que preenchem essa lacuna.
|
|
151
175
|
|
|
152
176
|
### Limitações conhecidas
|
|
153
177
|
|
|
154
|
-
- **A origem do extrator não é visível na junção da
|
|
155
|
-
- **A seleção do modelo de revisão
|
|
156
|
-
- **O pacote de testes internos utilizou `mistral-nemo:12b` para a extração (o padrão é `hermes3:8b`).** O
|
|
178
|
+
- **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.
|
|
179
|
+
- **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.
|
|
180
|
+
- **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
181
|
|
|
158
182
|
## Roteiro para a versão 1.0
|
|
159
183
|
|
|
160
|
-
A versão
|
|
184
|
+
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
185
|
|
|
162
186
|
## Licença
|
|
163
187
|
|
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.
|
|
10
|
+
<a href="https://github.com/mcp-tool-shop-org/research-os/releases/tag/v0.3.2"><img src="https://img.shields.io/badge/version-0.3.2-blue" alt="version 0.3.2"></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`
|
|
19
|
+
`research-os` 是一个本地优先的命令行工具,它将一个开放式的主题转化为一个结构化的 **研究包**,在这个结构化的代码仓库中,Claude、Cowork 或其他工具可以在不产生幻觉或歪曲研究结果的情况下工作数小时。
|
|
20
20
|
|
|
21
21
|
## 它是什么
|
|
22
22
|
|
|
23
|
-
`research-os` 是“我想研究 X
|
|
23
|
+
`research-os` 是“我想研究 X”和“一个经过验证、可追溯证据的基础”之间的控制层。它将发现线索与获取证据分离,将原始提取与筛选后的主张分离,将矛盾检测与矛盾解决分离,并将审查决策与综合结果分离。每个步骤都会写入一个只追加的日志;每个就绪的判断都是基于这些日志计算得出,而不是主观声明。
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
它不是一个报告生成器。它不是一个 LLM 编排的框架。它不会为你编写综合报告。它强制执行综合分析开始的条件。
|
|
26
26
|
|
|
27
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
46
|
+
npm link
|
|
90
47
|
```
|
|
91
48
|
|
|
92
49
|
## 快速开始
|
|
@@ -119,41 +76,112 @@ 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>
|
|
122
83
|
```
|
|
123
84
|
|
|
124
|
-
|
|
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`。
|
|
125
88
|
|
|
126
|
-
|
|
89
|
+
## 16 条核心规则
|
|
127
90
|
|
|
128
|
-
|
|
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
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
每个步骤都是一个命令行指令。每个步骤都会写入只追加的记录文件。任何步骤都不会进行综合、解决或创建新的真理——这些原则是强制执行的,而不是被信任的。审查人员可以接受、拒绝或要求修复候选主张;“门禁”系统会根据审查结果计算 `synthesis_eligible`(是否符合综合条件);“冻结”是最终的完整性锁定,只有当所有层级都同意时,才会标记一个项目为已完成。请参阅 [docs/dogfood-proof.md](docs/dogfood-proof.md),了解 v0.1 的完整证明,该证明表明整个链条是端到端的。
|
|
136
|
+
|
|
137
|
+
这是 *搜索 → 总结 → 生成报告* 的结构性替代方案。整个链条是最终产品。
|
|
138
|
+
|
|
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`
|
|
150
|
+
`research-os` 是一个本地优先的命令行工具。它在您指定的“研究包”目录中读取和写入文件,并在使用 `gather` 命令时,会向外部发送 HTTP 请求以获取您提供的来源 URL。它不会:运行服务器、接受传入连接、存储凭据或发送遥测数据。任何敏感信息都不会写入到包文件中。请参阅 [SECURITY.md](SECURITY.md),了解漏洞报告政策。
|
|
140
151
|
|
|
141
152
|
## 状态
|
|
142
153
|
|
|
143
|
-
**v0.
|
|
154
|
+
**v0.3.2** — 已发布到 npm,版本号为 `@mcptoolshop/research-os@0.3.2`,发布日期为 2026年5月9日。该版本对已接受的声明进行了标准化处理,考虑了 `pack publish` 的准入情况。 严格的 `claim-reviews.jsonl` 文件与 `pack-audit.json::accepted_claims` 之间的相等性检查已被替换为集合比较——已接受的声明是具有唯一 `claim_id`,且其最新的规范审查决定为 `accepted_for_synthesis`(每个 `claim_id`,最新决定优先)。 对于那些其历史审计计数与集合比较结果不同的已冻结的包,现在会发出警告而不是拒绝; 原始的审计文件将被完整保留(第15条),而归档清单会反映标准化后的计数。 对于虚构的 `claim_id`、不兼容的重复决策以及不符合合成条件的场景,仍然会拒绝。 这是通过实验 3 XRPL pack Session K 获得的,该实验在实际的账本边界不一致时,`pack publish` 被拒绝(第07部分有24行原始的 `accepted_for_synthesis` 数据,但由于审查员窗口的重叠,只有19个唯一的 `claim_id`)。 558/558 个 vitest 测试通过。 详情请参阅 [CHANGELOG.md](CHANGELOG.md) 和 [`docs/pack-publish.md`](docs/pack-publish.md)。
|
|
155
|
+
|
|
156
|
+
**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)。
|
|
157
|
+
|
|
158
|
+
**按章节划分的来源豁免**:当发布者多样性与该章节的真理来源结构上不兼容时,才使用这些豁免,而不是仅仅因为某个章节未能找到足够的来源。 豁免必须包含经过模式验证的 `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)。
|
|
159
|
+
|
|
160
|
+
**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)。
|
|
161
|
+
|
|
162
|
+
**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)。
|
|
163
|
+
|
|
164
|
+
**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),其中包含七个发现和冻结确认的指纹。
|
|
165
|
+
|
|
166
|
+
**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` 测试。
|
|
167
|
+
|
|
168
|
+
**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)。
|
|
169
|
+
|
|
170
|
+
### v0.3 的局限性
|
|
171
|
+
|
|
172
|
+
- 尚未经过外部用户的实际测试。 两个内部测试阶段已结束,一个为自指代,一个为外部领域,实验 3(在外部压力下的 API 稳定性)正在进行中:3个包中的第2个包(XRPL 创建者令牌的持久性)已冻结,包含来自 7 个部分的总计 251 个已接受的声明,等待通过 npm v0.3.2 的 `pack publish` 准入。 该阶段已经获得了 v0.3.0 的 `--detector` 标志(F-09 链阻塞器)、v0.3.1 的部分范围的源代码豁免(F-10/F-11 规范协议压力)以及 v0.3.2 的标准化已接受声明处理(F-36 账本边界)。 还需要一个外部领域的包才能完成实验 3。
|
|
173
|
+
- 不是合成内容生成器。 `synth workspace` 命令用于生成结构化的工作空间; 人类(或 Cowork)根据已接受的声明 ID 编写内容。
|
|
174
|
+
- 在语义版本控制下,API 稳定性尚未实现。 v1.0.0 是一个需要实现的阶段,而不是一个日历日期; 详情请参阅 [`docs/roadmap.md`](docs/roadmap.md),其中列出了用于弥补差距的六个实验。
|
|
144
175
|
|
|
145
|
-
###
|
|
176
|
+
### 已知的局限性
|
|
146
177
|
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
- 在语义版本控制下,API 稳定性尚未确定。v1.0.0 版本将在外部用户验证了该接口之后发布。
|
|
178
|
+
- **提取器的来源信息在接口处不可见。** 一个部分可以满足已接受声明的最低要求,同时依赖于启发式回退声明,当经过校准的提取器(配置了模型的 Ollama)不可用时。 这已记录为路线图中的 Experiment 4; 未来的改进将报告每个提取器的已接受声明,并要求满足接口要求的已接受声明数量来自校准路径。
|
|
179
|
+
- **超出经过校准的 `hermes-two-pass` 基线的审查器模型选择尚未解决。** 内部测试阶段验证了一种审查器配置; 其他模型需要在它们被信任之前,进行种子失败召回校准。 这是路线图中的 Experiment 5。
|
|
180
|
+
- **v0.1 内部测试软件包使用了 `mistral-nemo:12b` 进行提取(标准的默认配置是 `hermes3:8b`)。** 在 v0.1 阶段,此设备上不可用 `hermes3:8b`。 此替代方案的说明将持续有效,直到生成基于 hermes3 的确认——这是路线图中的 Experiment 6。 对于在没有 `hermes3:8b` 的设备上的操作员,请将 `OLLAMA_INTERN_MODEL` 设置为可用的模型; 操作员预配置的 URL 和查询精度规范(参见手册)可以减轻对模糊主题的幻觉。
|
|
151
181
|
|
|
152
|
-
|
|
182
|
+
## 通往 v1.0 的路线图
|
|
153
183
|
|
|
154
|
-
-
|
|
155
|
-
- **关于超出校准的 `hermes-two-pass` 基准线的评审模型选择问题尚未解决。** 内部测试验证了一种评审模型配置;其他模型需要在被信任之前,进行独立的、基于预设失败情况的校准。
|
|
156
|
-
- **内部测试使用的提取模型是 `mistral-nemo:12b`(默认配置是 `hermes3:8b`)。** 在发现过程中,系统会产生与当前主题不相关的错误结果,针对自指部分名称的问题,通过查询精度控制(参见手册)以及操作员预先设置的 URL 来进行修正,以解决模糊主题的问题。
|
|
184
|
+
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
185
|
|
|
158
186
|
## 许可证
|
|
159
187
|
|