@mcptoolshop/research-os 0.4.0 → 0.6.0

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 CHANGED
@@ -2,6 +2,259 @@
2
2
 
3
3
  All notable changes to `research-os` are documented here.
4
4
 
5
+ ## [0.6.0] — 2026-05-10 — deterministic reviewer baseline
6
+
7
+ v0.6.0 closes Experiment 6 with reviewer-trust evidence: research-os can now produce a
8
+ reproducible, attributable canonical-model baseline. The real review path carries
9
+ deterministic reviewer options from profile config, legacy gate artifacts parse, review
10
+ outputs disclose sampling conditions, and the v0.1 self-dogfood pack was reviewed through
11
+ the production CLI under explicit Hermes conditions. **Hermes is NOT promoted to trusted
12
+ baseline.** The win is the mechanism, not a passing receipt.
13
+
14
+ **No trusted baseline admitted.** The canonical `hermes-two-pass-deterministic` receipt
15
+ shows `failed` — a structural model-capability gap in decision vocabulary (2/6 decisions
16
+ produced, requires 3/6), not a variance problem. The mechanism works precisely because
17
+ it does not manufacture trust when trust is not earned.
18
+
19
+ ### What shipped (three commits atop v0.5.0)
20
+
21
+ **Session 2 (`40af0a9`) — reviewer options as receipt-backed inputs**
22
+
23
+ - `src/review/reviewer-options-schema.ts` — `ReviewerOptionsSchema` (6 optional fields:
24
+ `num_ctx`, `temperature`, `seed`, `top_p`, `top_k`, `repeat_penalty`).
25
+ - `src/review/reviewers/ollama-intern.ts` — constructor accepts `reviewer_options`; merged
26
+ via `!== undefined` guards (load-bearing: `temperature: 0` is not dropped as falsy).
27
+ - `src/calibration/receipt-schema.ts` + `aggregate-receipt-schema.ts` — `reviewer_options`
28
+ field added to both schemas (optional, additive, backward-compatible).
29
+ - `src/calibration/receipt.ts` / `aggregate.ts` — `## Reviewer options` section rendered
30
+ when present.
31
+ - `scripts/reviewer-calibration.mjs` — 6 new CLI flags (`--temperature`, `--seed`,
32
+ `--top-p`, `--top-k`, `--num-ctx`, `--repeat-penalty`); numeric validation; options
33
+ captured once and reused across all N runs.
34
+ - Canonical deterministic aggregate: `hermes-two-pass-deterministic/seeded-v1.{json,md}`,
35
+ `reviewer_options: {"temperature":0,"seed":7}`, status: **`failed`** (3/3 runs stable,
36
+ byte-identical; recurring failures: `per_category_any_flag_floor`,
37
+ `decision_vocab_completeness`).
38
+
39
+ **Session 3 (`a8e9e9c`) — production review profile config**
40
+
41
+ - `src/intake/schema.ts` — `reviewer_options` field on `ReviewProfilePresetSchema`;
42
+ `hermes-two-pass-deterministic` profile added to `DEFAULT_REVIEW_PROFILES`
43
+ (`mode: two_pass`, `temperature: 0`, `seed: 7`, status: `experimental`).
44
+ The existing `hermes-two-pass` profile is NOT modified.
45
+ - `src/cli.ts` — `reviewerOptions` extracted from preset; passed to all 3
46
+ `OllamaInternReviewer` constructions. The production `research-os review` path now
47
+ carries deterministic conditions from `research.yaml` profile config.
48
+
49
+ **Session 5 (`682bd0e`) — F-53 + F-54 fixes**
50
+
51
+ - **F-53 (gate JSON schema backward compat):** `section_primary` and
52
+ `section_independent_publishers` are now `.optional().default(0)` in
53
+ `SectionGateResultSchema`. Pre-v0.3.3 gate JSONs (frozen v0.1 packs) that omit these
54
+ fields parse cleanly with default 0. Fresh gate runs continue to write both fields.
55
+ - **F-54 (reviewer_options on review.json + review.md):** `ReviewSnapshotSchema` now
56
+ carries `reviewer_options`; `RunReviewOptions` carries `reviewer_options?`;
57
+ `finalizeReview` stamps it onto the snapshot; `review.md` renders a `## Reviewer
58
+ options` section when set (stable key order; omitted when absent).
59
+ - Golden section 03 rerun on fresh scratch pack: ran without gate-JSON rename (F-53 proof),
60
+ disclosed `reviewer_options` in `review.json` and `review.md` (F-54 proof), source pack
61
+ byte-identical. Production path confirmed end-to-end.
62
+
63
+ ### Frictions closed
64
+
65
+ - **F-53** — `SectionGateResultSchema` rejected pre-v0.3.3 gate JSONs missing
66
+ `section_primary` / `section_independent_publishers`. Fix: `.optional().default(0)`.
67
+ Backward-compatible; fresh gate runs unaffected.
68
+ - **F-54** — `reviewer_options` (temperature, seed) were not disclosed in `review.json`
69
+ or `review.md`. Only trace was the `profile` field → secondary lookup. Fix: 5
70
+ touchpoints stamp the options directly onto the review snapshot and render them in
71
+ the Markdown artifact.
72
+
73
+ ### Documented findings (not blockers)
74
+
75
+ - **F-51 (P3)** — Ollama `seed` is advisory: first inference after process spawn differs
76
+ from subsequent inferences in the same session. Mitigated by `--runs N` aggregation.
77
+ Disclosed in every receipt via `unreachable_decisions` and the Session 1 audit doc.
78
+ - **F-52 (P2)** — `per_category_any_flag_floor` is a recurring failure under deterministic
79
+ single-process mode (`--runs 3`). `unsupported_claim` any-flag = 0/3 in all 3 runs.
80
+ Cross-session seed variance (separate process invocations) may differ; the canonical
81
+ multi-run evidence is consistent. Not a blocker; a documented calibration finding.
82
+
83
+ ### Canonical receipt statuses at v0.6.0
84
+
85
+ | Profile | Status | Notes |
86
+ |---|---|---|
87
+ | `hermes-two-pass` | `failed` | Aggregate, 3 runs (v0.5.0 canonical — unchanged). |
88
+ | `mistral-nemo-two-pass` | `conditional_pass` | Aggregate, 3 runs (v0.5.0 canonical — unchanged). |
89
+ | `hermes-single-pass` | `comparison_only` | Single-run (v0.5.0 canonical — unchanged). |
90
+ | `hermes-two-pass-deterministic` | `failed` | NEW — aggregate, 3 deterministic runs (`temperature:0, seed:7`). Recurring: `per_category_any_flag_floor`, `decision_vocab_completeness`. |
91
+
92
+ ### Compatibility
93
+
94
+ - All 4 frozen packs verify byte-identical against v0.3.3 baselines.
95
+ - `368d23613783ef48b36cccd814463b3f413d514eb7a37792653142ef1fd5d466` (dogfood)
96
+ - `d71943c6444d4bb5ba38ae577089498d119b95f00caed8f068f0ee09c79038eb` (ComfyUI)
97
+ - `6511a044aa15fa4de30a0dfc82b811947e1f57a1563fd1d7ba013a64725259a5` (XRPL)
98
+ - `55a65792caed9c026e76d4913c939a0f656a777a0a130e0b8a0d29ad6cf41235` (Godot)
99
+ - No gate-law, freeze-law, or synthesis-law changes.
100
+ - `ReviewerOptionsSchema` fields are all optional; existing receipts parse cleanly.
101
+ - `ReviewSnapshotSchema.reviewer_options` is optional; existing review snapshots parse
102
+ cleanly.
103
+ - `SectionGateResultSchema` additions are `.optional().default(0)`; existing and new gate
104
+ JSONs both parse correctly.
105
+
106
+ ### Out of scope
107
+
108
+ - `seeded-v1` fixture expansion (`needs_contradiction_mapping` remains unreachable).
109
+ - Prompt tuning or system-prompt coaching for decision-vocabulary expansion.
110
+ - phi3:14b calibration.
111
+ - Any gate, freeze, or synthesis-law change.
112
+
113
+ ### Test surface
114
+
115
+ - 671 (v0.5.0) → 698 (Session 2, +27) → 706 (Session 3, +8) → 713 (Session 5, +7).
116
+ - **Cumulative (Experiments 5+6):** 620 (v0.4.0) → 713 (+93 total). Experiment 5 added
117
+ 51 tests; Experiment 6 added 42.
118
+ - New test files: `test/reviewer-options.test.ts` (27 tests, Session 2),
119
+ `test/review-cli-preset.test.ts` (8 tests, Session 3),
120
+ `test/gates-schema.test.ts` (2 tests, Session 5, F-53),
121
+ `test/review-schema.test.ts` additions (3 tests, Session 5, F-54),
122
+ `test/review-markdown.test.ts` additions (2 tests, Session 5, F-54).
123
+
124
+ ## [0.5.0] — 2026-05-10 — reviewer calibration as durable trust contract
125
+
126
+ ### F-50 stabilization (Session 5)
127
+
128
+ - **Multi-run calibration:** `--runs <n>` flag on the calibration harness. Per-run
129
+ receipts persist under `<profile>/runs/run-NNN.json`; aggregate receipts at
130
+ `<profile>/seeded-v1.{json,md}` use median-based PASS/FAIL rules.
131
+ - **Median aggregation rules:** FP ceiling (median ≤1 AND max ≤2), any-flag
132
+ recall (median ≥65%), per-category any-flag (median ≥50% per category with
133
+ total ≥2), strict recall (median ≥20%), decision vocab (architecture-aware
134
+ median ≥3 for two-pass / ≥4 for single-pass), latency hard (every run ≤20 min,
135
+ enforced via max), empty/malformed (every run =0, enforced via max).
136
+ - **Recurring-failure demotion:** a profile passes median rules but FAILed the
137
+ same bar in ≥⌈N/2⌉ individual runs → demoted from `trusted_baseline` to
138
+ `conditional_pass`. Prevents one lucky median from masking systemic bar weakness.
139
+ - **Single-run mode preserved:** harness without `--runs` (or `--runs 1`) writes
140
+ the existing single-run receipt directly. `comparison_only` profiles stay single-run.
141
+ - **New source files:** `src/calibration/aggregate-receipt-schema.ts` (aggregate Zod schema
142
+ with `receipt_kind: 'aggregate'` discriminator) and `src/calibration/aggregate.ts`
143
+ (pure helpers: `median`, `aggregateMetric`, `aggregatePerCategoryRecall`,
144
+ `aggregateDecisionVocabulary`, `computeAggregatePassFail`, `computeRecurringBarFailures`,
145
+ `computeAggregateStatusLabel`, `aggregateReceipts`, `buildAggregateReceiptMarkdown`).
146
+
147
+ ### Frictions closed (Session 5)
148
+
149
+ - **F-50** — Per-category any-flag floor was statistically unreliable at N=2–3
150
+ seeds per category (one missed claim drops a category from 67% to 33%). Median
151
+ aggregation across 3 runs absorbs single-run variance without lowering the bar.
152
+
153
+ ### Canonical receipt statuses (Session 5)
154
+
155
+ - `hermes-two-pass` (aggregate, 3 runs): **`failed`** — escalation. Run 1 PASS (FP=0,
156
+ any-flag=85%, decisions=3/6); runs 2–3 FAIL (any-flag 62%/46%, decisions=2/6).
157
+ Recurring failures: `any_flag_recall_floor`, `per_category_any_flag_floor`,
158
+ `decision_vocab_completeness`. Thesis NOT proven at N=3. Advisor decides path.
159
+ - `mistral-nemo-two-pass` (aggregate, 3 runs): **`conditional_pass`** — aggregate PASS
160
+ (median FP=1, max=2 at ceiling; median any-flag=69%; no recurring failures).
161
+ Run 1 FAIL (FP=2/5); runs 2–3 PASS.
162
+ - `hermes-single-pass` (single-run): **`comparison_only`** — auto-assigned.
163
+
164
+ v0.5.0 makes reviewer calibration durable. A reviewer profile is not trusted because
165
+ it ran once; it earns a status through structured seeded-failure receipts and
166
+ multi-run aggregation.
167
+
168
+ **Product guardrail:** research-os can now refuse to trust a reviewer profile when
169
+ repeated seeded failures do not support trust.
170
+
171
+ **No trusted baseline admitted.** The three canonical receipts shipped with v0.5.0:
172
+
173
+ | Profile | Status | Notes |
174
+ |---|---|---|
175
+ | `hermes-two-pass` | `failed` | Aggregate, 3 runs. Recurring failures: any-flag recall, per-category floor, decision vocab. |
176
+ | `mistral-nemo-two-pass` | `conditional_pass` | Aggregate, 3 runs. FP at ceiling (median=1/max=2); no recurring failures. |
177
+ | `hermes-single-pass` | `comparison_only` | Auto-assigned; architectural comparison only. |
178
+
179
+ `trusted_baseline` is earned, not assumed. Single-run receipts remain available for quick
180
+ local checks; aggregate receipts (3+ runs, median-based bars) are the trust artifact.
181
+
182
+ ### Added
183
+
184
+ - **`profile?: string`** optional field on `ClaimReviewSchema`. Per-claim review
185
+ records can now carry the profile name that produced them. Existing records
186
+ without `profile` parse cleanly.
187
+ - **Structured calibration receipts** at `calibration/reviewer-profiles/<profile>/seeded-v1.{json,md}`.
188
+ Zod-validated JSON + operator-readable Markdown sibling. `schema_version: 1`.
189
+ - **`research-os` source `--profile <name>` flag** on `scripts/reviewer-calibration.mjs`.
190
+ Drives output path and persists profile name on claim-review records.
191
+ - **Architecture-aware decision-vocabulary bar:** single-pass ≥ 4/6 decisions;
192
+ two-pass ≥ 3/6 decisions. Two-pass acknowledges that `narrow_critic` severity
193
+ escalation collapses the `needs_human_review` path.
194
+ - **Four status labels:** `trusted_baseline`, `conditional_pass`, `failed`,
195
+ `comparison_only`. `trusted_baseline` requires the canonical Hermes two-pass
196
+ profile + all bars pass + zero false positives.
197
+ - **`review-promote` receipt lookup is now pack-relative** — reads from
198
+ `<pack>/calibration/reviewer-profiles/<profile>/seeded-v1.json`, not
199
+ `process.cwd()`. Operators running `review-promote --pack <non-cwd-pack>`
200
+ now correctly resolve the receipt from the specified pack.
201
+ - **`review-promote` fails visibly on invalid receipts.** Previously a malformed
202
+ receipt was silently skipped; now any schema mismatch or JSON parse failure
203
+ throws `Invalid calibration receipt at <path>: <reason>`. Missing receipts
204
+ remain a no-op.
205
+ - **Three canonical receipts shipped:** `hermes-two-pass`, `mistral-nemo-two-pass`,
206
+ `hermes-single-pass` — all under `calibration/reviewer-profiles/<profile>/seeded-v1.{json,md}`.
207
+ These are the v0.5.0 proof artifacts. See Session 4 status note below.
208
+
209
+ ### Frictions closed
210
+
211
+ - **F-48** — Structured calibration receipt persistence. The harness previously
212
+ wrote raw artifacts but no comparable receipt; recall metrics lived in
213
+ `console.log` only.
214
+ - **F-49** — Decision-vocabulary bar was miscalibrated against two-pass
215
+ architecture. Bar is now architecture-aware.
216
+
217
+ ### Compatibility
218
+
219
+ - All 4 frozen packs verify byte-identical against v0.3.3 baselines.
220
+ - `ClaimReviewSchema.profile` is optional (Zod `.optional()`, no `.default()`).
221
+ Existing pack records parse cleanly. Frozen pack receipts unchanged.
222
+ - No gate-law, freeze-law, or synthesis-law changes.
223
+
224
+ ### Out of scope
225
+
226
+ - `seeded-v1` cannot test `needs_contradiction_mapping` (no `unmapped_contradiction`
227
+ seeded). The receipt's `unreachable_decisions` array discloses this honestly.
228
+ Fixture expansion deferred to v0.6.
229
+ - `phi3:14b` calibration deferred to a later experiment.
230
+
231
+ ### Session 4 single-run evidence (context for F-50 investigation)
232
+
233
+ The three canonical receipts initially committed in Session 4 reflect honest single-run
234
+ evidence. `hermes-single-pass` produced `comparison_only` (auto-assigned). `hermes-two-pass`
235
+ and `mistral-nemo-two-pass` both produced `failed` across two single-run attempts each,
236
+ with high per-run variance:
237
+
238
+ - `hermes-two-pass` run 1: `per_category_any_flag_floor FAIL` (valid_but_low_value 1/3);
239
+ run 2: `decision_vocab_completeness FAIL` (2/6 decisions produced).
240
+ - `mistral-nemo-two-pass` run 1: `per_category_any_flag_floor FAIL` (unsupported_claim 1/3);
241
+ run 2: `fp_ceiling FAIL` (2/5 FP) + `per_category_any_flag_floor FAIL`.
242
+
243
+ This per-run nondeterminism (1–2 claim variance per category at N=2–3 seeds) was the
244
+ root cause of F-50. Session 5 resolved it via multi-run median aggregation. See
245
+ "Canonical receipt statuses (Session 5)" above for the aggregate outcome. The initial
246
+ Session 4 receipts were overwritten by the Session 5 aggregate re-runs.
247
+
248
+ ### Test surface
249
+
250
+ - 620 → 646 tests in Session 3 (+26).
251
+ - Session 4 adds 5 regression tests (646 → 651): pack-relative lookup,
252
+ cwd-irrelevance, invalid-receipt fail (×2), missing-receipt no-op.
253
+ - Session 5 adds 20 aggregate-helper tests (651 → 671): median, aggregateMetric,
254
+ per-category aggregation, decision-vocab aggregation, PASS/FAIL bars,
255
+ recurring-failure demotion, status-label logic, aggregateReceipts round-trip.
256
+ - **Cumulative (Experiments 4+5):** 570 → 671 tests (+101).
257
+
5
258
  ## [0.4.0] — 2026-05-10 — source-truth discipline
6
259
 
7
260
  v0.4.0 makes source identity durable. Deterministic source-type rules
package/README.es.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.4.0"><img src="https://img.shields.io/badge/version-0.4.0-blue" alt="version 0.4.0"></a>
10
+ <a href="https://github.com/mcp-tool-shop-org/research-os/releases/tag/v0.6.0"><img src="https://img.shields.io/badge/version-0.6.0-blue" alt="version 0.6.0"></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">
@@ -149,9 +149,40 @@ Esta es la alternativa estructural a *búsqueda → resumen → informe detallad
149
149
 
150
150
  `research-os` es una herramienta de línea de comandos que funciona principalmente de forma local. Lee y escribe archivos dentro del directorio del paquete de investigación al que se le indica, y (cuando se utiliza `gather`) realiza solicitudes HTTP salientes para obtener las URL de origen que se proporcionan. No: ejecuta un servidor, acepta conexiones entrantes, almacena credenciales ni envía datos de telemetría. No se escriben secretos en los artefactos del paquete. Consulte [SECURITY.md](SECURITY.md) para obtener la política de notificación de vulnerabilidades.
151
151
 
152
+ ## Calibración de revisores
153
+
154
+ La versión 0.5.0 hace que la calibración de los revisores sea más robusta. Un perfil de revisor no se considera confiable simplemente porque se ejecutó una vez; obtiene un estado a través de informes estructurados de fallos simulados y agregación de múltiples ejecuciones. La versión 0.6.0 agrega opciones de revisor deterministas a la ruta de revisión de producción y al sistema de calibración.
155
+
156
+ **Actualmente, no se admite ningún perfil como "línea de base confiable".** Los informes canónicos en el repositorio muestran `hermes-two-pass=failed`, `mistral-nemo-two-pass=conditional_pass`, `hermes-single-pass=comparison_only`, `hermes-two-pass-deterministic=failed`. Esto es intencional: la confianza se gana a través de evidencia repetida de fallos simulados, no se asume. El informe `hermes-two-pass-deterministic` tiene una brecha en el modelo y la capacidad (se producen 2 de 6 tipos de decisiones; se requieren 3 de 6) que no es un problema de varianza.
157
+
158
+ Los informes de calibración se encuentran en `calibration/reviewer-profiles/<profile>/seeded-v1.{json,md}`. Cada informe registra los resultados de PASADO/FALLIDO en siete categorías, cuatro etiquetas de estado (`trusted_baseline`, `conditional_pass`, `failed`, `comparison_only`), y revela honestamente qué aspectos no puede probar la prueba (`needs_contradiction_mapping` no es accesible desde `seeded-v1`). Consulte [CHANGELOG.md](CHANGELOG.md).
159
+
160
+ ```bash
161
+ # Single-run calibration (quick local check)
162
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass --profile hermes-two-pass
163
+
164
+ # Multi-run aggregate calibration (canonical evidence — 3 runs, median-based PASS/FAIL)
165
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass --profile hermes-two-pass --runs 3
166
+
167
+ # Deterministic multi-run calibration (temperature + seed explicit in receipt)
168
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass \
169
+ --temperature 0 --seed 7 --runs 3 --profile hermes-two-pass-deterministic
170
+
171
+ # Promote a section's review — auto-populates calibration_summary from pack-relative receipt
172
+ research-os review-promote 01-section --pack <pack> --profile hermes-two-pass
173
+ ```
174
+
175
+ Cuando se utiliza `--runs <n>`, los informes de cada ejecución se escriben en `<profile>/runs/run-NNN.json` y se escribe un informe agregado (con barras basadas en la mediana y detección de fallos recurrentes) en `<profile>/seeded-v1.{json,md}`. El informe agregado incluye `receipt_kind: 'aggregate'` para distinguirlo de los informes de ejecución individual. El modo de ejecución individual (`--runs 1` o omitido) conserva el comportamiento de escritura directa existente.
176
+
177
+ **Perfiles de revisor deterministas:** Utilice `review_profiles.<name>.reviewer_options` en `research.yaml` para incluir los parámetros de muestreo de Ollama, como `temperature` y `seed`, en cada instancia de `OllamaInternReviewer` en la ruta de revisión de producción. El perfil `hermes-two-pass-deterministic` se proporciona como un ejemplo integrado. Consulte [`docs/experiment-6-proof.md`](docs/experiment-6-proof.md) y la [página del manual de calibración de revisores](https://mcp-tool-shop-org.github.io/research-os/handbook/reviewer-calibration/).
178
+
152
179
  ## Estado
153
180
 
154
- **v0.4.0** Publicada en npm como `@mcptoolshop/research-os@0.4.0`, el 10 de mayo de 2026. La versión 0.4.0 garantiza la durabilidad de la identidad de la fuente. Las reglas deterministas del tipo de fuente gestionan la mayoría repetible, los registros de anulación preservan las correcciones del operador a través de la re-compilación, y la herramienta de auditoría de "tarjeta de fuente" reemplaza las comprobaciones de deriva de los scripts temporales con una interfaz de línea de comandos (CLI) de primera clase. Incluye: un clasificador centralizado de tipos de fuente (Componente B `classifySourceType`, 11 proveedores canónicos, `source-type-rules.json`); un registro de anulación de "tarjeta de fuente" (Componente A — `source-card-overrides.jsonl`, subcomandos `validate` y `list`); y una herramienta de auditoría de "tarjeta de fuente" para la línea de comandos (Componente D — `research-os source-card audit --pack <dir>`, 7 tipos de hallazgos, artefactos JSON y Markdown, opciones `--apply --from` para aplicar la ruta). Corrección cosmética F-46: los archivos de manifiesto ahora indican la versión binaria actual en lugar de la versión congelada en `research.yaml` durante la inicialización de la compilación. **No se realizaron cambios en los mecanismos de validación, congelación ni en las reglas de síntesis. Los cuatro paquetes congelados existentes verifican la identidad de los bytes de forma idéntica.** 620/620 pruebas de vitest superadas. Consulte el archivo [CHANGELOG.md](CHANGELOG.md) y la página del manual de la herramienta de auditoría de "tarjeta de fuente" ([https://mcp-tool-shop-org.github.io/research-os/handbook/source-card-audit/](https://mcp-tool-shop-org.github.io/research-os/handbook/source-card-audit/)).
181
+ **v0.6.0:** Publicada en npm como `@mcptoolshop/research-os@0.6.0`, 10 de mayo de 2026. La versión 0.6.0 finaliza el Experimento 6 con evidencia de la confianza del revisor: research-os ahora puede producir una línea de base canónica de modelo reproducible y atribuible. Incluye: opciones de revisor deterministas en la ruta de revisión de producción (`review_profiles.<name>.reviewer_options` en `research.yaml`); compatibilidad hacia atrás del esquema de "gate" para artefactos congelados anteriores a la versión 0.3.3 (F-53); la salida de la revisión revela las condiciones de muestreo directamente en `review.json` y `review.md` (F-54); informe agregado determinista canónico incluido (`hermes-two-pass-deterministic`, `temperature:0, seed:7`). **No se admite ninguna línea de base confiable.** `hermes-two-pass-deterministic=failed` (brecha en el modelo y la capacidad en el vocabulario de decisiones, no varianza). **Hermes no se promociona a "línea de base confiable".** La ganancia es el mecanismo, no un informe de éxito. No se realizaron cambios en los "gates", la congelación ni las leyes de síntesis. Los cuatro paquetes congelados verifican su identidad de bytes. 713/713 pruebas de vitest superadas. Consulte [CHANGELOG.md](CHANGELOG.md) y [`docs/experiment-6-proof.md`](docs/experiment-6-proof.md).
182
+
183
+ **v0.5.0** — publicado en npm como `@mcptoolshop/research-os@0.5.0`, 10 de mayo de 2026. La versión v0.5.0 hace que la calibración de revisores sea más robusta. Un perfil de revisor no se considera confiable simplemente porque se ejecutó una vez; obtiene un estado a través de informes estructurados de fallos simulados y agregación de múltiples ejecuciones. Incluye: esquema de informe de calibración estructurado (`seeded-v1.{json,md}`, validado con Zod, cuatro etiquetas de estado); entorno de ejecución para múltiples ejecuciones (`--runs <n>`, aislamiento por ejecución, barras de PASADO/FALLIDO basadas en la mediana, degradación por fallos recurrentes); barra de vocabulario de decisiones consciente de la arquitectura; búsqueda de informes relativa al paquete en `review-promote`. **No se admite ninguna línea de base confiable:** `hermes-two-pass=failed` (agregado, 3 ejecuciones), `mistral-nemo-two-pass=conditional_pass`, `hermes-single-pass=comparison_only`. research-os ahora puede negarse a confiar en un perfil de revisor cuando los fallos simulados repetidos no respaldan la confianza. **No se realizan cambios en las puertas, la congelación o las leyes de síntesis. Los cuatro paquetes congelados existentes verifican la integridad de los bytes.** 671/671 pruebas de vitest superadas. Consulte [CHANGELOG.md](CHANGELOG.md).
184
+
185
+ **v0.4.0** — publicado en npm como `@mcptoolshop/research-os@0.4.0`, 10 de mayo de 2026. La versión v0.4.0 hace que la identidad de la fuente sea más robusta. Las reglas deterministas del tipo de fuente gestionan la mayoría repetible, los registros de anulación preservan las correcciones del operador a través de la recolección, y la "auditoría de la tarjeta de origen" reemplaza las comprobaciones de deriva de scripts con una interfaz de línea de comandos de primera clase. Incluye: clasificador centralizado de tipo de fuente (Componente B — `classifySourceType`, 11 proveedores canónicos, `source-type-rules.json`); registro de anulación de la tarjeta de origen (Componente A — `source-card-overrides.jsonl`, subcomandos `validate` + `list`); y CLI de auditoría de la tarjeta de origen (Componente D — `research-os source-card audit --pack <dir>`, 7 tipos de hallazgos, artefactos JSON + Markdown, opciones `--apply --from` para aplicar la ruta). Corrección cosmética F-46: los manifiestos de los paquetes ahora imprimen la versión binaria en vivo en lugar de la versión congelada en `research.yaml` durante la inicialización del paquete. **No se realizan cambios en las puertas, la congelación o las leyes de síntesis. Los cuatro paquetes congelados existentes verifican la integridad de los bytes.** 620/620 pruebas de vitest superadas. Consulte [CHANGELOG.md](CHANGELOG.md) y la [página del manual de auditoría de la tarjeta de origen](https://mcp-tool-shop-org.github.io/research-os/handbook/source-card-audit/).
155
186
 
156
187
  **v0.3.3** — Publicada en npm como `@mcptoolshop/research-os@0.3.3`, 10 de mayo de 2026. Incluye mejoras en la claridad de la semántica de las "gates" obtenidas gracias a Pack-3 (durabilidad de la exportación/ejecución de Godot, Experimento 3, paquete #3 de 3). La salida de la "gate" ahora incluye el publicador y los conteos específicos de la sección, junto con los conteos generales del paquete (F-43); se ha reformulado `no_source_cluster_monopoly` de una advertencia a un diagnóstico informativo (F-41). **El comportamiento de aprobación/rechazo no ha cambiado; los paquetes congelados existentes se verifican byte a byte.** 570/570 pruebas de vitest superadas. Consulte [CHANGELOG.md](CHANGELOG.md) y [`docs/section-scoped-waivers.md`](docs/section-scoped-waivers.md).
157
188
 
package/README.fr.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.4.0"><img src="https://img.shields.io/badge/version-0.4.0-blue" alt="version 0.4.0"></a>
10
+ <a href="https://github.com/mcp-tool-shop-org/research-os/releases/tag/v0.6.0"><img src="https://img.shields.io/badge/version-0.6.0-blue" alt="version 0.6.0"></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">
@@ -149,8 +149,39 @@ Ceci est une alternative structurée à *recherche → résumé → rapport dét
149
149
 
150
150
  `research-os` est une interface en ligne de commande qui fonctionne localement. Elle lit et écrit des fichiers dans le répertoire de l'ensemble de données que vous lui spécifiez, et (lorsque vous utilisez la commande `gather`), elle effectue des requêtes HTTP sortantes pour récupérer les URL de sources que vous fournissez. Elle ne : ne fait pas fonctionner de serveur, n'accepte pas de connexions entrantes, ne stocke pas de mots de passe, ni n'envoie de données de télémétrie. Aucun mot de passe n'est écrit dans les fichiers de l'ensemble de données. Consultez le fichier [SECURITY.md](SECURITY.md) pour connaître la politique de signalement des vulnérabilités.
151
151
 
152
+ ## Calibrage des évaluateurs
153
+
154
+ La version 0.5.0 rend le calibrage des évaluateurs plus fiable. Un profil d'évaluateur n'est pas considéré comme fiable simplement parce qu'il a été exécuté une fois ; il acquiert un statut grâce à des rapports structurés de défaillances simulées et à une agrégation sur plusieurs exécutions. La version 0.6.0 ajoute des options d'évaluateurs déterministes au processus de révision en production et à l'outil de calibrage.
155
+
156
+ **Aucun profil n'est actuellement accepté comme étant une "baseline de confiance".** Les rapports canoniques dans le dépôt indiquent `hermes-two-pass=échec`, `mistral-nemo-two-pass=succès conditionnel`, `hermes-single-pass=comparaison uniquement`, `hermes-two-pass-deterministic=échec`. Ceci est intentionnel : la confiance est acquise grâce à des preuves répétées de défaillances simulées, et non supposée. Le rapport `hermes-two-pass-deterministic` présente un écart de capacité du modèle (2 types de décision produits sur 6 requis ; il en faut 3 sur 6) qui n'est pas un problème de variance.
157
+
158
+ Les rapports de calibrage se trouvent dans le répertoire `calibration/reviewer-profiles/<profile>/seeded-v1.{json,md}`. Chaque rapport enregistre les résultats PASS/FAIL pour sept critères, quatre étiquettes de statut (`trusted_baseline`, `conditional_pass`, `failed`, `comparison_only`), et indique honnêtement ce que l'outil de test ne peut pas vérifier (`needs_contradiction_mapping` est inaccessible depuis `seeded-v1`). Consultez [CHANGELOG.md](CHANGELOG.md).
159
+
160
+ ```bash
161
+ # Single-run calibration (quick local check)
162
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass --profile hermes-two-pass
163
+
164
+ # Multi-run aggregate calibration (canonical evidence — 3 runs, median-based PASS/FAIL)
165
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass --profile hermes-two-pass --runs 3
166
+
167
+ # Deterministic multi-run calibration (temperature + seed explicit in receipt)
168
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass \
169
+ --temperature 0 --seed 7 --runs 3 --profile hermes-two-pass-deterministic
170
+
171
+ # Promote a section's review — auto-populates calibration_summary from pack-relative receipt
172
+ research-os review-promote 01-section --pack <pack> --profile hermes-two-pass
173
+ ```
174
+
175
+ Lorsque l'option `--runs <n>` est utilisée, les rapports pour chaque exécution sont écrits dans `<profile>/runs/run-NNN.json`, et un rapport agrégé (avec des critères basés sur la médiane et la détection des défaillances récurrentes) est écrit dans `<profile>/seeded-v1.{json,md}`. Le rapport agrégé contient `receipt_kind: 'aggregate'` pour le distinguer des rapports d'une seule exécution. Le mode d'une seule exécution (`--runs 1` ou omis) conserve le comportement d'écriture directe existant.
176
+
177
+ **Profils d'évaluateurs déterministes** — utilisez `review_profiles.<name>.reviewer_options` dans `research.yaml` pour intégrer les paramètres d'échantillonnage d'Ollama tels que `temperature`, `seed`, et d'autres, dans chaque instance de `OllamaInternReviewer` dans le processus de révision en production. Le profil `hermes-two-pass-deterministic` est fourni comme exemple. Consultez [`docs/experiment-6-proof.md`](docs/experiment-6-proof.md) et la [page du manuel de calibrage des évaluateurs](https://mcp-tool-shop-org.github.io/research-os/handbook/reviewer-calibration/).
178
+
152
179
  ## Statut
153
180
 
181
+ **v0.6.0** — publiée sur npm en tant que `@mcptoolshop/research-os@0.6.0`, le 10 mai 2026. La version 0.6.0 conclut l'Expérience 6 avec des preuves de confiance des évaluateurs : research-os peut désormais produire une baseline de modèle canonique reproductible et attribuable. Inclut : options d'évaluateurs déterministes dans le processus de révision en production (`review_profiles.<name>.reviewer_options` dans `research.yaml`); compatibilité ascendante du schéma de la passerelle pour les artefacts figés antérieurs à la version 0.3.3 (F-53); la sortie de la révision indique directement les conditions d'échantillonnage dans `review.json` et `review.md` (F-54); rapport agrégé déterministe canonique enregistré (`hermes-two-pass-deterministic`, `temperature:0, seed:7`). **Aucune baseline de confiance n'est acceptée.** `hermes-two-pass-deterministic=échec` (écart de capacité du modèle dans le vocabulaire des décisions, et non un problème de variance). **Hermes n'est pas promu au statut de "baseline de confiance".** Le gain est le mécanisme, et non un rapport réussi. Aucune modification des passerelles, des gels ou des lois de synthèse. Les quatre packs figés vérifient l'identité des octets. 713/713 tests vitest réussis. Consultez [CHANGELOG.md](CHANGELOG.md) et [`docs/experiment-6-proof.md`](docs/experiment-6-proof.md).
182
+
183
+ **v0.5.0** — Publié sur npm sous le nom `@mcptoolshop/research-os@0.5.0`, le 10 mai 2026. La version 0.5.0 rend la calibration des évaluateurs plus fiable. Le profil d'un évaluateur n'est pas considéré comme fiable simplement parce qu'il a été exécuté une seule fois ; il acquiert un statut grâce à des rapports de défaillances simulées structurés et à une agrégation sur plusieurs exécutions. Comprend : un schéma de rapport de calibration structuré (`seeded-v1.{json,md}`, validé par Zod, avec quatre étiquettes de statut) ; un outil d'exécution pour plusieurs exécutions (`--runs <n>`, isolation par exécution, barres PASS/FAIL basées sur la médiane, dégradation en cas de défaillances répétées) ; une barre de vocabulaire de décision tenant compte de l'architecture ; une recherche de rapports relative au paquet dans `review-promote`. **Aucune référence fiable n'est acceptée :** `hermes-two-pass=failed` (agrégé, 3 exécutions), `mistral-nemo-two-pass=conditional_pass`, `hermes-single-pass=comparison_only`. research-os peut désormais refuser de faire confiance au profil d'un évaluateur lorsque des défaillances simulées répétées ne justifient pas cette confiance. **Aucun changement concernant les passerelles, les blocages ou les règles de synthèse. Les quatre paquets figés vérifient l'intégrité des octets.** 671/671 tests vitest réussis. Consultez [CHANGELOG.md](CHANGELOG.md).
184
+
154
185
  **v0.4.0** — publié sur npm sous le nom `@mcptoolshop/research-os@0.4.0`, le 10 mai 2026. La version 0.4.0 assure la pérennité de l'identité de la source. Les règles de type de source déterministes gèrent la majorité reproductible, les registres de remplacement préservent les corrections de l'opérateur lors des nouvelles agrégations, et la commande `source-card audit` remplace les vérifications de dérive des scripts temporaires par une interface CLI de première classe. Comprend : un classificateur de type de source centralisé (Composant B — `classifySourceType`, 11 fournisseurs canoniques, `source-type-rules.json`); un registre de remplacement de carte source (Composant A — `source-card-overrides.jsonl`, commandes `validate` et `list`); et une CLI d'audit de carte source (Composant D — `research-os source-card audit --pack <dir>`, 7 types de résultats, artefacts JSON et Markdown, options `--apply --from` pour spécifier le chemin). Correction cosmétique F-46 : les manifestes de pack indiquent désormais la version binaire en cours d'utilisation plutôt que la version figée dans `research.yaml` lors de l'initialisation du pack. **Aucun changement concernant les mécanismes de contrôle, de blocage ou les lois de synthèse. Les quatre packs figés existants sont vérifiés de manière identique au niveau des octets.** 620/620 tests vitest réussis. Consultez le fichier [CHANGELOG.md](CHANGELOG.md) et la page du manuel d'audit de carte source : [https://mcp-tool-shop-org.github.io/research-os/handbook/source-card-audit/](https://mcp-tool-shop-org.github.io/research-os/handbook/source-card-audit/).
155
186
 
156
187
  **v0.3.3** — publié sur npm sous le nom `@mcptoolshop/research-os@0.3.3`, le 10 mai 2026. Comprend une clarification de la sémantique des contrôles, obtenue grâce au Pack-3 (durabilité de l'exportation/de l'exécution Godot, Expérience 3, pack n° 3 sur 3). La sortie du contrôle indique désormais les nombres de publications et de comptes primaires spécifiques à chaque section, en plus des nombres globaux du pack (F-43) ; le message `no_source_cluster_monopoly` a été modifié de "AVERTISSEMENT" à un diagnostic informatif (F-41). **Le comportement de réussite/échec n'a pas changé ; les packs figés existants sont vérifiés de manière identique au niveau des octets.** 570/570 tests vitest réussis. Consultez le fichier [CHANGELOG.md](CHANGELOG.md) et le fichier [`docs/section-scoped-waivers.md`](docs/section-scoped-waivers.md).
package/README.hi.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.4.0"><img src="https://img.shields.io/badge/version-0.4.0-blue" alt="version 0.4.0"></a>
10
+ <a href="https://github.com/mcp-tool-shop-org/research-os/releases/tag/v0.6.0"><img src="https://img.shields.io/badge/version-0.6.0-blue" alt="version 0.6.0"></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">
@@ -149,8 +149,59 @@ discover
149
149
 
150
150
  `research-os` एक स्थानीय-प्रथम कमांड-लाइन इंटरफेस है। यह उन शोध-पैकेज निर्देशिकाओं में फ़ाइलों को पढ़ता और लिखता है जिन्हें आप निर्दिष्ट करते हैं, और (जब `gather` का उपयोग किया जाता है) स्रोत यूआरएल प्राप्त करने के लिए बाहरी HTTP अनुरोध भेजता है जिन्हें आप प्रदान करते हैं। यह निम्नलिखित नहीं करता है: कोई सर्वर नहीं चलाता, इनकमिंग कनेक्शन स्वीकार नहीं करता, क्रेडेंशियल संग्रहीत नहीं करता, या टेलीमेट्री नहीं भेजता। किसी भी गुप्त जानकारी को पैकेज फ़ाइलों में नहीं लिखा जाता है। भेद्यता रिपोर्टिंग नीति के लिए [SECURITY.md](SECURITY.md) देखें।
151
151
 
152
+ ## समीक्षक अंशांकन
153
+
154
+ v0.5.0 समीक्षक अंशांकन को अधिक टिकाऊ बनाता है। एक समीक्षक प्रोफाइल पर इसलिए भरोसा नहीं किया जाता क्योंकि
155
+ यह केवल एक बार चलाया गया था; यह संरचित, पूर्वनिर्धारित विफलता परिणामों और
156
+ कई बार चलाने के बाद प्राप्त आंकड़ों के आधार पर एक स्थिति प्राप्त करता है। v0.6.0 उत्पादन
157
+ समीक्षा प्रक्रिया और अंशांकन प्रणाली में निश्चित (डिटरमिनिस्टिक) समीक्षक विकल्पों को जोड़ता है।
158
+
159
+ **वर्तमान में कोई भी प्रोफाइल `trusted_baseline` के रूप में स्वीकार नहीं किया गया है।** रिपॉजिटरी में मौजूद
160
+ मानक परिणाम दर्शाते हैं कि `hermes-two-pass=failed`, `mistral-nemo-two-pass=conditional_pass`,
161
+ `hermes-single-pass=comparison_only`, `hermes-two-pass-deterministic=failed`। यह
162
+ जानबूझकर किया गया है: विश्वास बार-बार प्राप्त होने वाले, पूर्वनिर्धारित विफलता प्रमाणों के माध्यम से अर्जित किया जाता है, न कि केवल अनुमान के आधार पर।
163
+ `hermes-two-pass-deterministic` परिणाम में एक संरचनात्मक मॉडल-क्षमता अंतर है
164
+ (6 निर्णय प्रकारों में से 2 उत्पन्न किए गए; 3/6 की आवश्यकता है) जो विचलन (वैरिएंस) की समस्या नहीं है।
165
+
166
+ अंशांकन परिणाम `calibration/reviewer-profiles/<profile>/seeded-v1.{json,md}` में उपलब्ध हैं।
167
+ प्रत्येक परिणाम सात मानदंडों के विरुद्ध PASS/FAIL रिकॉर्ड करता है, चार स्थिति लेबल
168
+ (`trusted_baseline`, `conditional_pass`, `failed`, `comparison_only`), और
169
+ ईमानदारी से बताता है कि परीक्षण प्रणाली क्या नहीं कर सकती (`needs_contradiction_mapping`
170
+ `seeded-v1` से दुर्गम है)। [CHANGELOG.md](CHANGELOG.md) देखें।
171
+
172
+ ```bash
173
+ # Single-run calibration (quick local check)
174
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass --profile hermes-two-pass
175
+
176
+ # Multi-run aggregate calibration (canonical evidence — 3 runs, median-based PASS/FAIL)
177
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass --profile hermes-two-pass --runs 3
178
+
179
+ # Deterministic multi-run calibration (temperature + seed explicit in receipt)
180
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass \
181
+ --temperature 0 --seed 7 --runs 3 --profile hermes-two-pass-deterministic
182
+
183
+ # Promote a section's review — auto-populates calibration_summary from pack-relative receipt
184
+ research-os review-promote 01-section --pack <pack> --profile hermes-two-pass
185
+ ```
186
+
187
+ जब `--runs <n>` का उपयोग किया जाता है, तो प्रत्येक रन के लिए परिणाम `<profile>/runs/run-NNN.json` में लिखे जाते हैं
188
+ और एक समग्र परिणाम (माध्य-आधारित मानदंडों और बार-बार होने वाली विफलता का पता लगाने के साथ)
189
+ `<profile>/seeded-v1.{json,md}` में लिखा जाता है। समग्र परिणाम में `receipt_kind: 'aggregate'` होता है
190
+ जो इसे एकल-रन परिणामों से अलग करता है। एकल-रन मोड (`--runs 1` या छोड़ा गया) मौजूदा
191
+ सीधे लिखने के व्यवहार को बनाए रखता है।
192
+
193
+ **निश्चित (डिटरमिनिस्टिक) समीक्षक प्रोफाइल** — `research.yaml` में `review_profiles.<name>.reviewer_options` का उपयोग करें
194
+ `temperature`, `seed`, और अन्य Ollama सैंपलिंग पैरामीटर को उत्पादन समीक्षा प्रक्रिया में
195
+ प्रत्येक `OllamaInternReviewer` निर्माण में शामिल करने के लिए। `hermes-two-pass-deterministic` प्रोफाइल
196
+ एक अंतर्निहित उदाहरण के रूप में उपलब्ध है। [`docs/experiment-6-proof.md`](docs/experiment-6-proof.md) और
197
+ [समीक्षक अंशांकन पुस्तिका पृष्ठ](https://mcp-tool-shop-org.github.io/research-os/handbook/reviewer-calibration/) देखें।
198
+
152
199
  ## स्थिति
153
200
 
201
+ **v0.6.0** — npm पर `@mcptoolshop/research-os@0.6.0` के रूप में प्रकाशित, 2026-05-10। v0.6.0, समीक्षक-विश्वास प्रमाण के साथ प्रयोग 6 को समाप्त करता है: research-os अब एक पुनरुत्पादित, प्राप्य मानक मॉडल आधार रेखा (कैनोनिकल-मॉडल बेसलाइन) उत्पन्न कर सकता है। इसमें शामिल हैं: उत्पादन समीक्षा प्रक्रिया में निश्चित समीक्षक विकल्प (`review_profiles.<name>.reviewer_options` in `research.yaml`); पूर्व-v0.3.3 के स्थिर (फ्रोज़न) कलाकृतियों के लिए गेट स्कीमा की पीछे की अनुकूलता (F-53); समीक्षा आउटपुट सीधे `review.json` और `review.md` पर सैंपलिंग स्थितियों को प्रदर्शित करता है (F-54); एक मानक, निश्चित समग्र परिणाम दर्ज किया गया (`hermes-two-pass-deterministic`, `temperature:0, seed:7`)। **कोई भी प्रोफाइल `trusted_baseline` के रूप में स्वीकार नहीं किया गया है।** `hermes-two-pass-deterministic=failed` (निर्णय शब्दावली में संरचनात्मक मॉडल-क्षमता अंतर, विचलन नहीं)। **Hermes को `trusted_baseline` के रूप में पदोन्नत नहीं किया गया है।** लाभ तंत्र है, न कि एक सफल परिणाम। कोई गेट, फ्रीज या संश्लेषण-कानून परिवर्तन नहीं। सभी चार स्थिर पैकेजों को बाइट-समान रूप से सत्यापित किया गया है। 713/713 vitest पास हो गया। [CHANGELOG.md](CHANGELOG.md) और [`docs/experiment-6-proof.md`](docs/experiment-6-proof.md) देखें।
202
+
203
+ **v0.5.0** — npm पर `@mcptoolshop/research-os@0.5.0` के रूप में प्रकाशित, 10 मई, 2026. v0.5.0 से समीक्षक (रिव्यूवर) के मूल्यांकन की विश्वसनीयता बढ़ाई गई है। समीक्षक की प्रोफाइल पर इसलिए भरोसा नहीं किया जाता क्योंकि यह केवल एक बार चलाई गई थी; बल्कि, यह संरचित, पूर्वनिर्धारित विफलता रिपोर्टों और कई बार चलाने के परिणामों के आधार पर एक स्थिति प्राप्त करती है। इसमें शामिल हैं: संरचित मूल्यांकन रिपोर्ट का स्कीमा (`seeded-v1.{json,md}`, जोड द्वारा सत्यापित, चार स्थिति लेबल); मल्टी-रन सिस्टम (`--runs <n>`, प्रत्येक रन के लिए अलग-अलग वातावरण, माध्यिका-आधारित पास/फेल मानदंड, बार-बार होने वाली विफलता पर स्थिति में कमी); आर्किटेक्चर-जागरूक निर्णय शब्दावली बार; `review-promote` में पैकेज-सापेक्ष रिपोर्ट खोज। **कोई भी विश्वसनीय आधारभूत (बेसलाइन) स्वीकार नहीं किया गया:** `hermes-two-pass=failed` (एकत्रित, 3 रन), `mistral-nemo-two-pass=conditional_pass`, `hermes-single-pass=comparison_only`. अब, research-os एक समीक्षक प्रोफाइल पर भरोसा करने से इनकार कर सकता है, यदि बार-बार होने वाली पूर्वनिर्धारित विफलताएं भरोसे को सही नहीं ठहराती हैं। **कोई गेट, फ्रीज या संश्लेषण-नियम में बदलाव नहीं किए गए। सभी चार स्थिर पैकेजों का सत्यापन बाइट-दर-बाइट समान है। 671/671 vitest पास हो गए। [CHANGELOG.md](CHANGELOG.md) देखें।
204
+
154
205
  **v0.4.0** — npm पर `@mcptoolshop/research-os@0.4.0` के रूप में प्रकाशित, 2026-05-10। v0.4.0 स्रोत की पहचान को स्थायी बनाता है। नियतात्मक स्रोत-प्रकार नियम दोहराए जा सकने वाले अधिकांश मामलों को संभालते हैं, ओवरराइड लेजर ऑपरेटर द्वारा किए गए सुधारों को पुनः-संग्रहण के दौरान संरक्षित करते हैं, और `source-card audit` एक समर्पित कमांड-लाइन इंटरफेस के साथ "स्क्रैच-स्क्रिप्ट" विचलन जांचों को बदलता है। इसमें शामिल हैं: केंद्रीकृत स्रोत-प्रकार वर्गीकरण (घटक B — `classifySourceType`, 11 मानक विक्रेता, `source-type-rules.json`); स्रोत-कार्ड ओवरराइड लेजर (घटक A — `source-card-overrides.jsonl`, `validate` + `list` उप-कमांड); और स्रोत-कार्ड ऑडिट कमांड-लाइन इंटरफेस (घटक D — `research-os source-card audit --pack <dir>`, 7 प्रकार की खोज, JSON + Markdown प्रारूप, `--apply --from` पथ लागू करें)। F-46: एक सौंदर्य संबंधी सुधार: अब "पैक" मैनिफेस्ट में `research.yaml` में "पैक" शुरू करने के समय "फ्रीज" किए गए संस्करण के बजाय, लाइव बाइनरी संस्करण अंकित किया जाता है। **कोई "गेट", "फ्रीज" या "सिंथेसिस-लॉ" परिवर्तन नहीं। सभी चार मौजूदा "फ्रीज" किए गए "पैक" "वेरिफाई-पैक" बाइट-समान रूप से पास होते हैं।** 620/620 "विटेस्ट" पास। [CHANGELOG.md](CHANGELOG.md) और [स्रोत-कार्ड ऑडिट हैंडबुक पृष्ठ](https://mcp-tool-shop-org.github.io/research-os/handbook/source-card-audit/) देखें।
155
206
 
156
207
  **v0.3.3** — npm पर `@mcptoolshop/research-os@0.3.3` के रूप में प्रकाशित, 2026-05-10। "पैक-3" (Godot निर्यात/रनटाइम स्थिरता, प्रयोग 3 का "पैक" #3) द्वारा अर्जित "गेट" अर्थ स्पष्टता शामिल है। "गेट" आउटपुट अब "पैक" के स्तर के साथ-साथ अनुभाग-स्तरीय प्रकाशक और प्राथमिक गणनाएं भी दिखाता है (F-43); `no_source_cluster_monopoly` को चेतावनी से बदलकर सूचनात्मक निदान में बदल दिया गया है (F-41)। **पास/फेल व्यवहार अपरिवर्तित है; मौजूदा "फ्रीज" किए गए "पैक" "वेरिफाई-पैक" बाइट-समान रूप से पास होते हैं।** 570/570 "विटेस्ट" पास। [CHANGELOG.md](CHANGELOG.md) और [`docs/section-scoped-waivers.md`](docs/section-scoped-waivers.md) देखें।
package/README.it.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.4.0"><img src="https://img.shields.io/badge/version-0.4.0-blue" alt="version 0.4.0"></a>
10
+ <a href="https://github.com/mcp-tool-shop-org/research-os/releases/tag/v0.6.0"><img src="https://img.shields.io/badge/version-0.6.0-blue" alt="version 0.6.0"></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">
@@ -149,9 +149,40 @@ Questa è l'alternativa strutturale a *ricerca → riepilogo → report dettagli
149
149
 
150
150
  `research-os` è un'interfaccia a riga di comando (CLI) locale. Legge e scrive file all'interno della directory del pacchetto di ricerca a cui la si indica e, quando si utilizza la funzione "gather", effettua richieste HTTP in uscita per recuperare gli URL delle fonti fornite. Non esegue un server, non accetta connessioni in entrata, non memorizza credenziali né invia dati di telemetria. Nessun segreto viene scritto negli artefatti del pacchetto. Consultare [SECURITY.md](SECURITY.md) per la politica di segnalazione delle vulnerabilità.
151
151
 
152
+ ## Calibrazione dei revisori
153
+
154
+ La versione 0.5.0 rende la calibrazione dei revisori più duratura. Un profilo di revisore non è considerato affidabile semplicemente perché è stato eseguito una volta; acquisisce uno status attraverso ricevute strutturate di errori simulati e aggregazioni di esecuzioni multiple. La versione 0.6.0 aggiunge opzioni deterministiche per i revisori al percorso di revisione di produzione e all'ambiente di calibrazione.
155
+
156
+ **Nessun profilo è attualmente accettato come `baseline affidabile`.** Le ricevute standard nel repository mostrano `hermes-two-pass=fallito`, `mistral-nemo-two-pass=passaggio condizionato`, `hermes-single-pass=confronto solo`, `hermes-two-pass-deterministic=fallito`. Questo è intenzionale: la fiducia si guadagna attraverso prove ripetute di errori simulati, non viene data per scontata. La ricevuta `hermes-two-pass-deterministic` presenta un divario strutturale nelle capacità del modello (2/6 tipi di decisione prodotti; ne sono richiesti 3/6) che non è un problema di varianza.
157
+
158
+ Le ricevute di calibrazione si trovano in `calibration/reviewer-profiles/<profile>/seeded-v1.{json,md}`. Ogni ricevuta registra i risultati PASS/FAIL rispetto a sette criteri, quattro etichette di stato (`trusted_baseline`, `conditional_pass`, `failed`, `comparison_only`), e indica onestamente cosa il test non può verificare (`needs_contradiction_mapping` non è raggiungibile da `seeded-v1`). Consultare [CHANGELOG.md](CHANGELOG.md).
159
+
160
+ ```bash
161
+ # Single-run calibration (quick local check)
162
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass --profile hermes-two-pass
163
+
164
+ # Multi-run aggregate calibration (canonical evidence — 3 runs, median-based PASS/FAIL)
165
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass --profile hermes-two-pass --runs 3
166
+
167
+ # Deterministic multi-run calibration (temperature + seed explicit in receipt)
168
+ node scripts/reviewer-calibration.mjs --model hermes3:8b --two-pass \
169
+ --temperature 0 --seed 7 --runs 3 --profile hermes-two-pass-deterministic
170
+
171
+ # Promote a section's review — auto-populates calibration_summary from pack-relative receipt
172
+ research-os review-promote 01-section --pack <pack> --profile hermes-two-pass
173
+ ```
174
+
175
+ Quando si utilizza l'opzione `--runs <n>`, le ricevute per ogni esecuzione vengono scritte in `<profile>/runs/run-NNN.json` e una ricevuta aggregata (con barre basate sulla mediana e rilevamento di errori ricorrenti) viene scritta in `<profile>/seeded-v1.{json,md}`. La ricevuta aggregata contiene `receipt_kind: 'aggregate'` per distinguerla dalle ricevute di singola esecuzione. La modalità di singola esecuzione (`--runs 1` o omessa) mantiene il comportamento esistente di scrittura diretta.
176
+
177
+ **Profili di revisori deterministici** — utilizzare `review_profiles.<nome>.reviewer_options` in `research.yaml` per includere i parametri di campionamento di Ollama, come `temperature` e `seed`, in ogni istanza di `OllamaInternReviewer` nel percorso di revisione di produzione. Il profilo `hermes-two-pass-deterministic` è fornito come esempio predefinito. Consultare [`docs/experiment-6-proof.md`](docs/experiment-6-proof.md) e la [pagina del manuale sulla calibrazione dei revisori](https://mcp-tool-shop-org.github.io/research-os/handbook/reviewer-calibration/).
178
+
152
179
  ## Stato
153
180
 
154
- **v0.4.0** — Pubblicata su npm come `@mcptoolshop/research-os@0.4.0` il 10 maggio 2026. La versione 0.4.0 garantisce la persistenza dell'identità della sorgente. Le regole deterministiche per il tipo di sorgente gestiscono la ripetibilità, i registri di sovrascrittura preservano le correzioni dell'operatore durante le nuove aggregazioni, e il comando `source-card audit` sostituisce i controlli di deriva degli script con un'interfaccia CLI dedicata. Include: un classificatore centralizzato per il tipo di sorgente (Componente B `classifySourceType`, 11 fornitori standard, `source-type-rules.json`); un registro di sovrascrittura per le sorgenti (Componente A `source-card-overrides.jsonl`, comandi secondari `validate` e `list`); e un'interfaccia CLI per l'audit delle sorgenti (Componente D — `research-os source-card audit --pack <dir>`, 7 tipi di anomalie, artefatti JSON e Markdown, opzioni `--apply --from` per l'applicazione del percorso). Correzione estetica F-46: i manifest dei pacchetti ora indicano la versione binaria effettiva, anziché la versione "congelata" in `research.yaml` durante la creazione del pacchetto. **Nessuna modifica alle funzionalità di controllo, "freeze" o alle regole di sintesi. Tutti e quattro i pacchetti esistenti vengono verificati byte per byte.** 620 test superati su 620 con vitest. Consultare il file [CHANGELOG.md](CHANGELOG.md) e la pagina del manuale sull'audit delle sorgenti: [https://mcp-tool-shop-org.github.io/research-os/handbook/source-card-audit/](https://mcp-tool-shop-org.github.io/research-os/handbook/source-card-audit/).
181
+ **v0.6.0** — pubblicata su npm come `@mcptoolshop/research-os@0.6.0`, 10 maggio 2026. La versione 0.6.0 conclude l'esperimento 6 con prove di affidabilità dei revisori: research-os può ora produrre una baseline di modello standard riproducibile e tracciabile. Include: opzioni deterministiche per i revisori nel percorso di revisione di produzione (`review_profiles.<nome>.reviewer_options` in `research.yaml`); compatibilità all'indietro dello schema delle "gate" per gli artefatti "congelati" precedenti alla versione 0.3.3 (F-53); l'output della revisione indica direttamente le condizioni di campionamento nei file `review.json` e `review.md` (F-54); è stata aggiunta una ricevuta aggregata deterministica standard (`hermes-two-pass-deterministic`, `temperature:0, seed:7`). **Nessuna baseline affidabile accettata.** `hermes-two-pass-deterministic=fallito` (divario strutturale nelle capacità del modello nel vocabolario delle decisioni, non varianza). **Hermes non è stato promosso a `baseline affidabile`.** Il vantaggio è il meccanismo, non una ricevuta positiva. Non sono state apportate modifiche alle "gate", al processo di "congelamento" o alle leggi di sintesi. Tutti e quattro i pacchetti "congelati" sono identici a livello di byte. 713/713 test di vitest superati. Consultare [CHANGELOG.md](CHANGELOG.md) e [`docs/experiment-6-proof.md`](docs/experiment-6-proof.md).
182
+
183
+ **v0.5.0** — pubblicata su npm come `@mcptoolshop/research-os@0.5.0`, 10 maggio 2026. La versione 0.5.0 rende la calibrazione dei revisori più affidabile. Un profilo di revisore non è considerato affidabile solo perché è stato eseguito una volta; acquisisce uno stato attraverso ricevute strutturate che segnalano errori simulati e aggregazioni di esecuzioni multiple. Include: schema di ricevuta di calibrazione strutturato (`seeded-v1.{json,md}`, convalidato da Zod, quattro etichette di stato); meccanismo di esecuzione multi-run (`--runs <n>`, isolamento per esecuzione, barre PASS/FAIL basate sulla mediana, demotivazione per errori ricorrenti); barra di vocabolario decisionale consapevole dell'architettura; ricerca di ricevute relativa al pacchetto in `review-promote`. **Nessuna baseline affidabile accettata:** `hermes-two-pass=failed` (aggregata, 3 esecuzioni), `mistral-nemo-two-pass=conditional_pass`, `hermes-single-pass=comparison_only`. research-os può ora rifiutare di considerare affidabile un profilo di revisore quando ripetuti errori simulati non supportano l'affidabilità. **Nessuna modifica alle gate, al freeze o alle leggi di sintesi. Tutti e quattro i pacchetti esistenti verificano l'integrità dei byte.** 671/671 test vitest superati. Consultare [CHANGELOG.md](CHANGELOG.md).
184
+
185
+ **v0.4.0** — pubblicata su npm come `@mcptoolshop/research-os@0.4.0`, 10 maggio 2026. La versione 0.4.0 rende l'identità della sorgente più affidabile. Le regole deterministiche del tipo di sorgente gestiscono la maggioranza ripetibile, i ledger di override preservano le correzioni dell'operatore durante il ri-raccolta, e l'audit della "source-card" sostituisce i controlli di deriva degli script con un'interfaccia CLI dedicata. Include: classificatore centralizzato del tipo di sorgente (Componente B — `classifySourceType`, 11 fornitori canonici, `source-type-rules.json`); ledger di override della source-card (Componente A — `source-card-overrides.jsonl`, comandi `validate` e `list`); e CLI di audit della source-card (Componente D — `research-os source-card audit --pack <dir>`, 7 tipi di rilevamento, artefatti JSON + Markdown, opzioni `--apply --from` per l'applicazione). Correzione cosmetica F-46: i manifest dei pacchetti ora stampano la versione binaria corrente anziché la versione congelata in `research.yaml` durante l'inizializzazione del pacchetto. **Nessuna modifica alle gate, al freeze o alle leggi di sintesi. Tutti e quattro i pacchetti esistenti verificano l'integrità dei byte.** 620/620 test vitest superati. Consultare [CHANGELOG.md](CHANGELOG.md) e la [pagina del manuale dell'audit della source-card](https://mcp-tool-shop-org.github.io/research-os/handbook/source-card-audit/).
155
186
 
156
187
  **v0.3.3** — Pubblicata su npm come `@mcptoolshop/research-os@0.3.3` il 10 maggio 2026. Include miglioramenti nella chiarezza delle semantiche delle "gate", ottenuti grazie al Pack-3 (durabilità dell'esportazione/runtime di Godot, Esperimento 3, pacchetto n. 3 su 3). L'output della "gate" ora include il publisher e i conteggi specifici della sezione, oltre ai conteggi globali del pacchetto (F-43); la dicitura di `no_source_cluster_monopoly` è stata modificata da AVVISO a diagnostica informativa (F-41). **Il comportamento di successo/fallimento rimane invariato; i pacchetti esistenti vengono verificati byte per byte.** 570 test vitest su 570 superati. Consultare [CHANGELOG.md](CHANGELOG.md) e [`docs/section-scoped-waivers.md`](docs/section-scoped-waivers.md).
157
188