@dogfood-lab/study-swarm 1.0.0 → 1.1.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,21 @@
2
2
 
3
3
  All notable changes to this project are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/), and this project adheres to [Semantic Versioning](https://semver.org/).
4
4
 
5
+ ## [1.1.0] — 2026-06-29
6
+
7
+ The protocol run on itself a second time — to design its own next version. Four load-bearing questions the first release left to "I think" were dispatched to parallel research agents; all 27 resulting citations were gated through Step 4 (retrieval oracle for existence + two different model families for groundedness, reasoning-stripped) before any informed the design. The oracle confirmed 27/27 exist — including six 2025–2026 papers a parametric model would have false-flagged — and corrected five attributions, among them a real first-author misattribution the research agent flagged on itself.
8
+
9
+ ### Changed
10
+
11
+ - **PROTOCOL.md Step 4 (groundedness) is now decomposed and ternary.** The stage-2 check no longer judges a finding sentence whole — it decomposes the finding into *molecular* claims (decontextualized + minimal), filters to the load-bearing claim so padding earns no credit, checks each against the source, and returns *fully / partially / not supported*. A partially-supported finding (real paper, resolvable link, overstated sentence) is corrected-once or escalated, never auto-passed. Grounded in Min et al. 2023 (arXiv:2305.14251), Gao et al. 2023 (arXiv:2305.14627), Gunjal & Durrett 2024 (arXiv:2406.20079), Jiang et al. 2024 (arXiv:2407.03572), Wanner et al. 2024 (arXiv:2403.11903).
12
+ - **PROTOCOL.md Step 4 specifies an aggregation rule (the cascade).** Where v1.0.0 said only "≥3 decorrelated lenses, diversity > count," v1.1 says *how* to combine them: existence is gated by the deterministic oracle alone (the one genuinely decorrelated lens), the LLM lenses vote only on groundedness via a tuned minority-veto, and lens disagreement on a post-cutoff paper escalates rather than auto-rejects. Grounded in Kohli 2026 (arXiv:2605.29800), Jain et al. 2025 (arXiv:2510.11822), Kolawole et al. 2024 (arXiv:2407.02348), Tian et al. 2025 (arXiv:2508.06225).
13
+ - **PROTOCOL.md Step 2 mandates generation-time grounding** (browse-then-cite, cite only fetched sources, drop-don't-invent) paired with a coverage-recovery pass, since forcing retrieval buys precision at the cost of coverage. Grounded in Asai et al. 2023 (arXiv:2310.11511), Nakano et al. 2021 (arXiv:2112.09332), Saxena et al. 2025 (arXiv:2509.21557), Rao et al. 2026 (arXiv:2604.03173).
14
+ - **PROTOCOL.md halt table: abstention is now calibrated and evidence-gated.** `CANNOT_CONFIRM` stays a first-class verdict (not a binary collapsed under a confidence cut), triggers on external evidence absence rather than the verifier's own entropy, is surfaced contrastively, and the abstain rate is capped as its own halt. Grounded in Zhang et al. 2023 (arXiv:2311.09677), Phillips et al. 2026 (arXiv:2603.21172), Wang et al. 2024 (arXiv:2407.00499), Srinivasan & Thomason 2025 (arXiv:2502.13321), Zhu et al. 2025 (arXiv:2502.05911).
15
+
16
+ ### Added
17
+
18
+ - Shipped a second worked, lint-clean reference dispatch — `examples/study-swarm-v1_1.dispatch.md` — the full v1.1 design pass with all 27 citations and the external-verification receipt. It is `study-swarm lint`-clean and in the npm tarball.
19
+
5
20
  ## [1.0.0] — 2026-06-13
6
21
 
7
22
  First stable release. A dogfood-swarm health + feature pass hardened the CLI and verified the methodology against its own gate — all 16 cited papers checked by a retrieval oracle plus a different model family (0 fabricated, 0 misattributed).
@@ -61,6 +76,7 @@ First stable release. A dogfood-swarm health + feature pass hardened the CLI and
61
76
  - `SECURITY.md`, MIT `LICENSE`, project logo.
62
77
  - Landing page + Starlight handbook at <https://dogfood-lab.github.io/study-swarm/>.
63
78
 
79
+ [1.1.0]: https://github.com/dogfood-lab/study-swarm/releases/tag/v1.1.0
64
80
  [1.0.0]: https://github.com/dogfood-lab/study-swarm/releases/tag/v1.0.0
65
81
  [0.6.0]: https://github.com/dogfood-lab/study-swarm/releases/tag/v0.6.0
66
82
  [0.5.0]: https://github.com/dogfood-lab/study-swarm/releases/tag/v0.5.0
package/PROTOCOL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # The study-swarm protocol — locked execution shape
2
2
 
3
- This is the executable reference. The narrative, the proof, and the research grounding are in [README.md](README.md).
3
+ This is the executable reference. The narrative, the proof, and the research grounding are in [README.md](README.md). The **v1.1** refinements — decomposed groundedness, the oracle-gated cascade, generation-time grounding, and calibrated abstention — are grounded in [`examples/study-swarm-v1_1.dispatch.md`](examples/study-swarm-v1_1.dispatch.md), the protocol run on itself with every citation verified by a different model family.
4
4
 
5
5
  > **The one-line guard:** no finding reaches Step 5 unverified. If you cannot verify — verifier down, no different family reachable, retrieval oracle unreachable — you HALT and escalate; you do not proceed. The protocol never lets a model grade its own homework, including the one running it.
6
6
 
@@ -43,6 +43,8 @@ One agent per question, dispatched **in parallel** (a single batch). Each agent'
43
43
 
44
44
  Typical agent count: 3–5.
45
45
 
46
+ **Ground at generation time, not only at the gate.** An agent operates in a retrieve-then-cite loop — search, fetch, and cite **only sources it actually pulled this session**; a claim it cannot ground in a fetched source is **dropped, not invented**. Forcing retrieval *during* generation cuts off-source fabrication at the source instead of leaving all of it to be caught (and *dropped*) downstream — an inline retrieve-and-critique loop reduces ungrounded output by roughly an order of magnitude (Asai et al. 2023, arXiv:2310.11511; the browse-then-cite contract that made WebGPT answers checkable, Nakano et al. 2021, arXiv:2112.09332). This buys precision at the cost of coverage (Saxena et al. 2025, arXiv:2509.21557), so pair it with a **coverage-recovery pass** — a second sweep for true-but-hard-to-retrieve findings — and never drop the deterministic existence oracle, since citation-heavy agents can still emit plausible non-existent identifiers (Rao et al. 2026, arXiv:2604.03173).
47
+
46
48
  > Step 4 makes retrieval a **hard** requirement: a paper an agent "remembers" but cannot retrieve does not enter the dispatch. Existence is established by resolving the identifier, not by recall.
47
49
 
48
50
  ## Step 3 — Synthesize into a "Research grounding" section
@@ -68,7 +70,7 @@ Before any finding informs the design (Step 5), a verifier of a **different mode
68
70
  ### Two-stage check, per citation
69
71
 
70
72
  1. **Existence / attribution — a retrieval oracle, not a parametric LLM.** Resolve the arXiv ID / DOI / URL and confirm the paper exists with the stated title, authors, and year. This stage **must retrieve** (fetch the source / arXiv / Crossref), never model memory — fabrication and misattribution rates are high enough (Walters & Wilder 2023) and 2025–2026 papers postdate model training, so a parametric check will false-flag real work as fabricated (Onweller et al. 2026). If retrieval is unavailable, apply the halt-and-escalate rule below.
71
- 2. **Groundedness — finding matches source.** Confirm the one-sentence finding describes what the source actually claims (an NLI-style support check). Even strong models fail to fully support their own citations roughly half the time, so this is a distinct, necessary axis not implied by existence.
73
+ 2. **Groundedness — finding matches source (decomposed, ternary).** Confirm the one-sentence finding describes what the source actually claims. Do **not** judge the sentence whole — a real paper with a resolvable link can still be *overstated* by a finding, and a whole-sentence check cannot localize that (Min et al. 2023, arXiv:2305.14251). Decompose the finding into **molecular claims** — decontextualized + minimal, just enough context to disambiguate, no more (Gunjal & Durrett 2024, arXiv:2406.20079) — **filter to the load-bearing, non-trivial claim** so padding earns no credit (Jiang et al. 2024, arXiv:2407.03572), check each against the source, and return a **ternary** verdict: fully / partially / not supported (Gao et al. 2023, arXiv:2305.14627). A **partially-supported** finding (the link resolves, the paper is real, the sentence overstates it) is treated like a misattribution — corrected once or escalated — never auto-passed. Pin the decomposer per run, because the verdict is sensitive to the decomposition method (Wanner et al. 2024, arXiv:2403.11903). Even strong models fully support their own citations only ~half the time, so this axis is distinct from existence and necessary.
72
74
 
73
75
  ### Running it
74
76
 
@@ -76,16 +78,21 @@ The reference implementation is **`roleos verify-citations <dispatch>`** ([role-
76
78
 
77
79
  **Ensemble — ≥ 3 decorrelated lenses,** counting the **retrieval oracle as one mechanism-diverse lens**: retrieval oracle + ≥ 2 different-family LLM lenses. Diversity of lenses, not raw count, is the load-bearing variable (Rajan 2025; Kim et al. 2025).
78
80
 
81
+ **Aggregate as a cascade, not a flat vote.** Adding LLM lenses cannot rescue a correlated blind spot — a 9-judge panel across 7 families is worth only ~2 independent votes, because the models miss the same items (Kohli 2026, arXiv:2605.29800), and recent papers that postdate training are exactly such a shared blind spot. So **existence is gated by the deterministic oracle alone** — the one genuinely decorrelated lens — and the LLM lenses vote **only on groundedness**. For that vote, use a **tuned minority-veto** (an invalid verdict needs more than one corroborating flag): it beats both raw disjunction (which over-rejects genuine work) and majority (which misses a single-lens catch) while bounding over-rejection, and a small labeled calibration set beats adding lenses (Jain et al. 2025, arXiv:2510.11822). When the oracle confirms existence but the groundedness lenses **disagree** — especially on a post-cutoff paper — that disagreement is the signal to **escalate to a human, not auto-reject** (Kolawole et al. 2024, arXiv:2407.02348), and a confident "fabricated" flag from an LLM lens is down-weighted relative to the oracle (LLM judges are systematically overconfident — Tian et al. 2025, arXiv:2508.06225).
82
+
79
83
  ### Halt conditions (scope is per-finding — other verified findings proceed)
80
84
 
81
85
  | Verdict / condition | Action |
82
86
  |---|---|
83
87
  | **FABRICATED** | The finding is **dropped** — there is no real source to correct, so re-verification is not attempted. |
84
88
  | **MISATTRIBUTED** | Correct the attribution and re-verify **once**; a second non-clean verdict drops the finding. |
89
+ | **PARTIALLY_SUPPORTED** | A molecular claim is unsupported or overstated though the paper is real. Treated like a misattribution: correct the finding to what the source actually supports and re-verify **once**, or escalate — never auto-passed. |
85
90
  | **CANNOT_CONFIRM** | The finding is **removed from the design connection AND surfaced to a human with a contrastive frame** — "you probably expected finding N citable; I left it out because the oracle couldn't confirm it — override with X." Never silently kept; reinstated only if a human confirms the source. |
86
91
  | **Verifier or oracle UNAVAILABLE** | The dispatch **HALTS and escalates to a human.** Unavailability is NEVER read as "citations are fine" and NEVER read as fabrication. Proceeding without a completed verification is forbidden. |
87
92
  | **No different family reachable** | The retrieval oracle (Stage 1) still runs — it is mechanism-diverse and needs no different family — and gates existence. The groundedness LLM lens (Stage 2) **halts-and-escalates** rather than running same-family. A same-family LLM is never substituted for the different-family check. |
88
93
 
94
+ **Abstention is calibrated and evidence-gated.** `CANNOT_CONFIRM` is a **first-class verdict the verifier is instructed to produce** — not a binary accept/reject collapsed under a confidence cut; a model trained or prompted to say "I don't know" is better calibrated than post-hoc thresholding (Zhang et al. 2023, arXiv:2311.09677). Trigger abstention on **external evidence absence** — the source wasn't fetched, or the retrieved text doesn't contain the claim — **never** on the verifier's own entropy or verbalized confidence, which can be confidently wrong (Phillips et al. 2026, arXiv:2603.21172). Where you tune a threshold, tune it with conformal calibration so the *accepted* set carries a provable error bound (Wang et al. 2024, arXiv:2407.00499). Surface a `CANNOT_CONFIRM` **contrastively and selectively** — "I expected to find X and didn't" — never as an always-on confidence bar, which measurably worsens over-reliance (Srinivasan & Thomason 2025, arXiv:2502.13321). Finally, **cap the abstain/escalation rate** against a labeled holdout and treat a spike as its own halt — over-refusal is itself a failure mode (Zhu et al. 2025, arXiv:2502.05911).
95
+
89
96
  ## Step 5 — Connect findings to architecture, not just cite them
90
97
 
91
98
  The design's decision section references findings by number where they justify a choice; each load-bearing choice traces to ≥ 1 finding. Citations without connection are noise.
package/README.es.md CHANGED
@@ -13,53 +13,57 @@
13
13
  <img src="https://img.shields.io/badge/cited%20research-verified-1f6feb" alt="Cited research, verified">
14
14
  </p>
15
15
 
16
- **Fundamenta las decisiones de diseño en investigaciones citadas, y luego verifica las citas con una familia de modelos *diferente* antes de que todo ello se convierta en algo definitivo.**
16
+ **Fundamenten las decisiones de diseño en investigaciones citadas; luego, verifique las citas con un *modelo diferente* antes de que se convierta en algo definitivo.**
17
17
 
18
- `study-swarm` es un protocolo, no una herramienta. Cuando tomas una decisión de diseño importante con un LLM (una nueva capa de producto, una elección arquitectónica, una decisión sobre si "debemos confiar en el modelo aquí"), improvisar a partir de principios básicos genera diseños obsoletos y citar artículos de memoria genera diseños que se basan en fuentes que no existen o que no dicen lo que crees. `study-swarm` reemplaza ambas cosas: envía agentes de investigación en paralelo, exige hallazgos específicos citados y valida cada cita a través de un **verificador externo de una familia de modelos diferente** antes de que esto influya en el diseño.
18
+ `study-swarm` es un protocolo, no una herramienta. Cuando toma una decisión de diseño importante con un LLM (un nuevo nivel de producto, una elección arquitectónica, una pregunta sobre si debemos confiar en el modelo), improvisar a partir de principios básicos da como resultado diseños obsoletos y citar artículos de memoria da como resultado diseños que se basan en fuentes que no existen o que no dicen lo que cree. `study-swarm` reemplaza ambas opciones: despliega agentes de investigación en paralelo, exige hallazgos específicos citados y valida cada cita a través de un **verificador externo de una familia de modelos diferente** antes de que influya en el diseño.
19
19
 
20
- Aplica su propia medicina. El protocolo prescribe envolventes protegidas por verificadores para los sistemas que ayuda a diseñar, por lo que ejecuta uno sobre sí mismo. **Ningún modelo califica su propio trabajo, incluido el que ejecuta el protocolo.**
20
+ Aplica su propia medicina. El protocolo prescribe envoltorios protegidos por verificadores para los sistemas que ayuda a diseñar, por lo que ejecuta uno sobre sí mismo. **Ningún modelo califica su propio trabajo, incluido el que ejecuta el protocolo.**
21
21
 
22
- ## El protocolo en cinco pasos
22
+ ## El protocolo en cinco pasos:
23
23
 
24
- 1. **Identifica** de 3 a 5 preguntas clave de diseño donde la evidencia empírica cambiaría la respuesta.
25
- 2. **Envía** un agente de investigación por cada pregunta, en paralelo. Cada uno debe devolver títulos de artículos + autores + años + URL + un hallazgo de una sola oración; prioriza la especificidad sobre la amplitud ("6 a 8 hallazgos bien documentados superan a 20 gestos vagos").
26
- 3. **Sintetiza** los hallazgos en una sección de *Fundamentación de la investigación*: `N. <hallazgo>. <Autores> <año> (<arXiv/DOI>). <implicación para el diseño>.`
27
- 4. **Verifica externamente**: una *familia de modelos diferente*, sin razonamiento, verifica cada cita en dos etapas: un **oráculo de recuperación** confirma que el artículo existe (nunca la memoria del modelo), y luego una lente de **fundamentación** confirma que el hallazgo coincide con la fuente. **Detén el proceso** si se detecta una falsificación o atribución incorrecta; **detén el proceso y escala** si el verificador o el oráculo de recuperación no están disponibles (nunca interpretes la ausencia como "las citas son correctas").
28
- 5. **Conecta** cada elección arquitectónica con un hallazgo por número. Las citas sin una implicación para el diseño son ruido.
24
+ 1. **Identifique** de 3 a 5 preguntas de diseño clave donde la evidencia empírica cambiaría la respuesta.
25
+ 2. **Despliegue** un agente de investigación por pregunta, en paralelo. Cada uno debe devolver títulos de artículos + autores + años + URL + un hallazgo de una sola oración; priorice la especificidad sobre la amplitud ("6 a 8 hallazgos bien documentados superan a 20 observaciones vagas").
26
+ 3. **Sintetice** los hallazgos en una sección de *fundamentación basada en investigaciones*: `N. **<hallazgo>.** <Autores> <año> (<arXiv/DOI>). <implicación para el diseño>.`
27
+ 4. **Verifique externamente**: una *familia de modelos diferente*, sin razonamiento, verifica cada cita en dos etapas: un **oráculo de recuperación** confirma que el artículo existe (nunca la memoria del modelo), y luego una lente de **fundamentación** confirma que el hallazgo coincide con la fuente. **Deténgase** si se detecta una falsificación o atribución incorrecta; **deténgase y escale** si el verificador o el oráculo de recuperación no están disponibles (nunca interprete la ausencia como "las citas son correctas").
28
+ 5. **Conecte** cada elección arquitectónica con un hallazgo mediante un número. Las citas sin una implicación para el diseño son ruido.
29
29
 
30
30
  Los detalles completos y ejecutables: la tabla de detención, el estándar de fuentes y la regla del conjunto se encuentran en **[PROTOCOL.md](PROTOCOL.md)**.
31
31
 
32
- ## ¿Por qué una familia *diferente*, sin razonamiento?
32
+ ## ¿Por qué una *familia diferente*, sin razonamiento?
33
33
 
34
34
  Porque los modos de falla están documentados, no son hipotéticos:
35
35
 
36
36
  - **Los LLM no pueden verificar de manera confiable su propia salida.** Huang et al. 2023 ([arXiv:2310.01798](https://arxiv.org/abs/2310.01798)); Kambhampati et al. 2024 ([arXiv:2402.01817](https://arxiv.org/abs/2402.01817), LLM-Modulo); Stechly et al. 2024 ([arXiv:2402.08115](https://arxiv.org/abs/2402.08115)) — el verificador externo proporciona las ventajas; el contenido de autocrítica es inerte.
37
- - **Los jueces de la misma familia se auto-favorecen.** Panickssery, Bowman & Feng 2024 ([arXiv:2404.13076](https://arxiv.org/abs/2404.13076)) — el autorreconocimiento se correlaciona *linealmente* con la autopreferencia, por lo que el cegamiento parcial no ayuda. Verga et al. 2024 ([arXiv:2404.18796](https://arxiv.org/abs/2404.18796), PoLL) — un panel de familias disjuntas es menos sesgado a un costo ~7 veces menor.
38
- - **Las citas son donde los LLM mienten.** Walters & Wilder 2023 ([doi:10.1038/s41598-023-41032-5](https://doi.org/10.1038/s41598-023-41032-5)) — el 55% de las citas de GPT-3.5 / 18% de GPT-4 son falsas. Onweller et al. 2026 ([arXiv:2605.06635](https://arxiv.org/abs/2605.06635)) — los enlaces resuelven >94% de las veces, pero solo el 39-77% del contenido citado realmente respalda la afirmación. Por lo tanto, la existencia debe verificarse mediante **la recuperación, no el recuerdo**.
39
- - **Oculta el razonamiento del generador.** Khalifa et al. 2026 ([arXiv:2601.14691](https://arxiv.org/abs/2601.14691), "Gaming the Judge") — la manipulación del encadenamiento de pensamientos infla los falsos positivos de un juez hasta en un 90% con las acciones fijas. Turpin et al. 2023 ([arXiv:2305.04388](https://arxiv.org/abs/2305.04388)) — el encadenamiento de pensamientos es una racionalización *a posteriori*. El verificador ve la afirmación de cita desnuda, nunca el "por qué lo incluí".
40
- - **La diversidad supera a la cantidad.** Rajan 2025 ([arXiv:2511.16708](https://arxiv.org/abs/2511.16708)) — cuatro verificadores con una correlación por pares ρ ∈ [0.05, 0.25] superan a cualquiera solo mediante la cobertura submodular. Kim et al. 2025 ([arXiv:2506.07962](https://arxiv.org/abs/2506.07962)) — los errores de los LLM están *correlacionados*, por lo que la variable clave es la diversidad de las lentes, no la cantidad bruta.
37
+ - **Los evaluadores de la misma familia se auto-favorecen.** Panickssery, Bowman & Feng 2024 ([arXiv:2404.13076](https://arxiv.org/abs/2404.13076)) — el autorreconocimiento se correlaciona *linealmente* con la autopreferencia, por lo que el cegamiento parcial no ayuda. Verga et al. 2024 ([arXiv:2404.18796](https://arxiv.org/abs/2404.18796), PoLL) — un panel de familias disjuntas es menos sesgado a un costo aproximadamente 7 veces menor.
38
+ - **Las citas son donde los LLM mienten.** Walters & Wilder 2023 ([doi:10.1038/s41598-023-41032-5](https://doi.org/10.1038/s41598-023-41032-5)) — el 55% de las citas de GPT-3.5 / 18% de las citas de GPT-4 son falsas. Onweller et al. 2026 ([arXiv:2605.06635](https://arxiv.org/abs/2605.06635)) — los enlaces resuelven más del 94% de las veces, pero solo el 39-77% del contenido citado realmente respalda la afirmación. Por lo tanto, la existencia debe verificarse mediante la **recuperación, no la memoria**.
39
+ - **Oculte el razonamiento del generador.** Khalifa et al. 2026 ([arXiv:2601.14691](https://arxiv.org/abs/2601.14691), "Gaming the Judge") — manipular solo la cadena de pensamiento infla los falsos positivos de un evaluador hasta en un 90% con acciones fijas. Turpin et al. 2023 ([arXiv:2305.04388](https://arxiv.org/abs/2305.04388)) — CoT es una racionalización *a posteriori*. El verificador ve la afirmación de cita sin adornos, nunca el "por qué lo incluí".
40
+ - **La diversidad supera a la cantidad.** Rajan 2025 ([arXiv:2511.16708](https://arxiv.org/abs/2511.16708)) — cuatro verificadores con una correlación por pares ρ ∈ [0.05, 0.25] superan a cualquiera de ellos mediante una cobertura submodular. Kim et al. 2025 ([arXiv:2506.07962](https://arxiv.org/abs/2506.07962)) — los errores de los LLM están *correlacionados*, por lo que la variable clave es la diversidad de las lentes, no la cantidad bruta.
41
41
 
42
42
  ## ¿Realmente funciona? (prueba)
43
43
 
44
- Como prueba, el protocolo se ejecutó contra sus propias citas. Dos familias decorrelacionadas y distintas a Claude: **Mistral** (`mistral-small:24b`) e **IBM Granite** (`granite4.1:30b`), verificaron un conjunto de citas, sin razonamiento, con dos trampas ciegas:
44
+ Como prueba, el protocolo se ejecutó con sus propias citas. Dos familias decorrelacionadas y distintas a Claude: **Mistral** (`mistral-small:24b`) e **IBM Granite** (`granite4.1:30b`), verificaron un conjunto de citas sin razonamiento, con dos trampas ocultas:
45
45
 
46
46
  | Trampa plantada | Mistral | IBM Granite | Verdad fundamental |
47
47
  |---|---|---|---|
48
- | Encadenamiento de pensamientos atribuido a "Nakamura & Olsen" | no detectada | **detectada** (atribución incorrecta → en realidad Wei et al. 2022, arXiv:2201.11903) | atribución incorrecta |
48
+ | El razonamiento de la cadena de pensamiento se atribuyó a "Nakamura & Olsen" | no detectada | **detectada** (atribución incorrecta → en realidad Wei et al. 2022, arXiv:2201.11903) | atribución incorrecta |
49
49
  | un artículo fabricado con la afirmación de que "el 98% de los errores se eliminan, no se necesita un oráculo" | **caught** (fabricated) | **caught** (fabricated) | fabricado |
50
50
 
51
- Ninguna de las dos familias detectó ambas trampas por sí sola, pero su **unión detectó 2/2**. Un solo juez habría aceptado la atribución incorrecta. Por separado, el oráculo de recuperación detectó dos *atribuciones incorrectas reales* en nuestros propios documentos de diseño (artículos citados bajo el primer autor incorrecto) que ningún LLM paramétrico podría haber señalado, y confirmó correctamente los artículos genuinos de 2026 que ambos LLM marcaron erróneamente como fabricados simplemente porque los artículos son posteriores a su entrenamiento. Ese último punto es la razón por la que la verificación de existencia en el paso 4 **debe** ser un oráculo de recuperación, nunca un LLM.
51
+ Ninguna de las dos familias detectó ambas trampas por sí sola, pero su **unión detectó 2/2**. Un solo evaluador habría aceptado la atribución incorrecta. Por separado, el oráculo de recuperación detectó dos *atribuciones incorrectas reales* en nuestros propios documentos de diseño (artículos citados bajo el primer autor incorrecto) que ningún LLM paramétrico podría haber señalado, y confirmó correctamente los artículos genuinos de 2026 que ambos LLM marcaron erróneamente como fabricados simplemente porque los artículos son posteriores a su entrenamiento. Ese último punto es la razón por la cual la verificación de existencia en el paso 4 **debe** ser un oráculo de recuperación, nunca un LLM.
52
52
 
53
- Esa única ejecución es la tesis en miniatura: **lentes decorrelacionadas + un oráculo de recuperación para la existencia superan a cualquier juez inteligente.**
53
+ Esa única ejecución es la tesis en miniatura: **lentes decorrelacionadas + un oráculo de recuperación para la existencia superan a cualquier evaluador inteligente**.
54
54
 
55
- ## Cómo está conectado
55
+ ### …y nuevamente, para diseñar v1.1
56
56
 
57
- Puedes ejecutar el protocolo manualmente; cualquier modelo de familia diferente, junto con la resolución del arXiv/DOI por tu cuenta, satisface el paso 4. Dos herramientas complementarias lo convierten en un solo comando:
57
+ Las mejoras de la versión 1.1 se eligieron de la misma manera: ejecutando `study-swarm` sobre sí mismo (`study-swarm`). Cuatro preguntas que quedaron pendientes en la primera versión ("creo que...") (cómo *mecanizar* la verificación de la fundamentación, si se debe realizar la búsqueda en el momento de la generación, cómo *combinar* las diferentes perspectivas, si se debe abstenerse en caso de incertidumbre calibrada) se enviaron a agentes de investigación paralelos, y todas las **27 citas resultantes** se validaron mediante el paso 4 antes de que ninguna influyera en el diseño. El oráculo de recuperación confirmó la **existencia de 27/27** (incluidos seis artículos de 2025-2026 que un modelo paramétrico habría marcado erróneamente como fabricados) y corrigió cinco atribuciones que un modelo no podría haber identificado, entre ellas una atribución incorrecta real del autor principal que el agente de investigación identificó en sí mismo. Al ejecutarlo sin razonamiento previo, las diferentes perspectivas incluso reprodujeron sus propios modos de fallo documentados en nuestra prueba: uno etiquetó con confianza erróneamente un artículo real, y su *desacuerdo* desencadenó una escalada, exactamente como lo prescribe la cascada. La prueba completa se incluye como [`examples/study-swarm-v1_1.dispatch.md`](examples/study-swarm-v1_1.dispatch.md); las mejoras que se aplicaron (fundamentación descompuesta/ternaria, búsqueda en el momento de la generación, cascada validada por el oráculo y abstención calibrada) se encuentran en [PROTOCOL.md](PROTOCOL.md).
58
58
 
59
- - **[prism-verify](https://github.com/mcp-tool-shop-org/prism-verify)**: el verificador de tiempo de ejecución: enrutamiento entre familias, razonamiento simplificado, adjudicación con múltiples lentes y un límite determinista para la existencia de recuperaciones (arXiv → Crossref) y recibos firmados.
60
- - **[role-os](https://github.com/mcp-tool-shop-org/role-os)**: proporciona `roleos verify-citations <dispatch>`, el ejecutor que extrae las citas de un "dispatch" y las pasa a través de prism.
59
+ ## Cómo está configurado
61
60
 
62
- La transición es el formato del "dispatch" en sí: una conclusión escrita como `N. **conclusión.** Autores año (arXiv|DOI). implicación.` — con **un identificador resoluble por cada conclusión** — es exactamente lo que `roleos verify-citations` extrae y procesa. Un "dispatch" limpio, según las reglas de formato (`lint`), se transfiere sin problemas; una cita malformada es lo que el ejecutor marca como no analizada. Ese contrato es lo que `study-swarm lint` verifica localmente, por lo que los pasos 3 y 4 coinciden en la definición de una cita.
61
+ Puede ejecutar el protocolo manualmente; cualquier modelo de una familia diferente más la resolución manual de arXiv/DOI satisface el paso 4. Dos herramientas complementarias lo convierten en un solo comando:
62
+
63
+ - **[prism-verify](https://github.com/mcp-tool-shop-org/prism-verify)**: el verificador en tiempo de ejecución: enrutamiento entre familias diferentes, sin razonamiento previo, adjudicación con múltiples perspectivas, un límite determinista para la existencia de referencias (arXiv → Crossref) y recibos firmados.
64
+ - **[role-os](https://github.com/mcp-tool-shop-org/role-os)**: proporciona `roleos verify-citations <dispatch>`, el ejecutor que extrae las citas de una prueba y las valida mediante prism.
65
+
66
+ La transferencia es el propio formato de la prueba: un hallazgo escrito como `N. **hallazgo.** Autores año (arXiv|DOI). implicación.` —con **un identificador resoluble por cada hallazgo— es exactamente lo que `roleos verify-citations` extrae y valida. Una prueba "limpia" se transfiere sin problemas; una cita malformada es lo que el ejecutor marca como no analizada. Este contrato es lo que `study-swarm lint` verifica localmente, por lo que los pasos 3 y 4 coinciden en lo que es una cita.
63
67
 
64
68
  ## CLI
65
69
 
@@ -69,11 +73,11 @@ npm i -g @dogfood-lab/study-swarm # or run ad-hoc: npx @dogfood-lab/study-sw
69
73
 
70
74
  | Comando | Qué hace |
71
75
  |---|---|
72
- | `study-swarm protocol` | Imprime el protocolo completo: los cinco pasos, la tabla de interrupción y el estándar de fuentes. |
73
- | `study-swarm new <slug>` | Crea un archivo `<slug>.dispatch.md` con el esqueleto de los cinco pasos para completar. |
74
- | `study-swarm lint [--json] <path…>` | Verifica la *fundamentación de la investigación* de un "dispatch" según el estándar de fuentes: cada conclusión necesita un autor, un año y un identificador resoluble (arXiv / DOI / URL); se rechaza cualquier afirmación vaga del tipo "los estudios demuestran...". Sale con código `1` en caso de violaciones, por lo que bloquea la integración continua. Una `<ruta>` puede ser un archivo, un directorio (analizado recursivamente para archivos `*.dispatch.md`) o `-` para la entrada estándar; `--json` emite un informe legible por máquina. |
76
+ | `study-swarm protocol` | Imprime el protocolo completo: los cinco pasos, la tabla de detención y el estándar de fuentes. |
77
+ | `study-swarm new <slug>` | Crea un archivo `<slug>.dispatch.md` con el esqueleto de los cinco pasos para completarlo. |
78
+ | `study-swarm lint [--json] <path…>` | Verifica la *fundamentación de la investigación* de una prueba en comparación con el estándar de fuentes: cada hallazgo necesita un autor, un año y un identificador resoluble (arXiv / DOI / URL); se rechaza cualquier afirmación vaga del tipo "los estudios demuestran...". Sale con código `1` si hay infracciones, por lo que valida la integración continua. Un `<path>` puede ser un archivo, un directorio (se analiza recursivamente para archivos `*.dispatch.md`) o `-` para la entrada estándar; `--json` emite un informe legible por máquina. |
75
79
 
76
- `lint` es determinista: no realiza llamadas al modelo, por lo que es seguro en la integración continua. Aplica el **estándar de fuentes del paso 3** localmente; la verificación basada en modelos del **paso 4** aún depende de [`roleos verify-citations`](https://github.com/mcp-tool-shop-org/role-os) → prism.
80
+ `lint` es determinista: no realiza llamadas al modelo, por lo que es seguro en la integración continua. Aplica el **estándar de fuentes del paso 3** localmente; la verificación basada en modelos del **paso 4** sigue utilizando [`roleos verify-citations`](https://github.com/mcp-tool-shop-org/role-os) → prism.
77
81
 
78
82
  Un ciclo típico:
79
83
 
@@ -84,11 +88,11 @@ study-swarm lint my-decision.dispatch.md # enforce the sourcing standard
84
88
  roleos verify-citations my-decision.dispatch.md # model-based Step 4 (different family, via prism)
85
89
  ```
86
90
 
87
- Un "dispatch" completo y limpio, según las reglas de formato (`lint`), con `study-swarm` aplicado a su propio diseño, se incluye en [`examples/study-swarm-self.dispatch.md`](examples/study-swarm-self.dispatch.md) como una referencia práctica.
91
+ Dos pruebas completas y "limpias" se incluyen como referencias: [`examples/study-swarm-self.dispatch.md`](examples/study-swarm-self.dispatch.md) (la decisión central del protocolo, concisa) y [`examples/study-swarm-v1_1.dispatch.md`](examples/study-swarm-v1_1.dispatch.md) (el diseño completo de la versión 1.1: 27 citas, todas verificadas externamente).
88
92
 
89
- ### Bloquéalo en la integración continua
93
+ ### Valídalo en la integración continua
90
94
 
91
- `lint` toma un archivo, un directorio (analizado recursivamente para archivos `*.dispatch.md`) o `-` para la entrada estándar, y `--json` emite un informe legible por máquina. Incluye esto en tu repositorio para bloquear la verificación de las fuentes de cada "dispatch" en cada solicitud de extracción (también hay una muestra que se puede copiar y pegar en [`examples/study-swarm-ci.yml`](examples/study-swarm-ci.yml)):
95
+ `lint` acepta un archivo, un directorio (se analiza recursivamente para archivos `*.dispatch.md`) o `-` para la entrada estándar, y `--json` emite un informe legible por máquina. Incluya esto en su repositorio para validar las fuentes de cada prueba en cada solicitud de extracción (también hay una muestra que se puede copiar y pegar en [`examples/study-swarm-ci.yml`](examples/study-swarm-ci.yml)):
92
96
 
93
97
  ```yaml
94
98
  # .github/workflows/dispatches.yml
@@ -112,15 +116,15 @@ jobs:
112
116
 
113
117
  ## Por qué funciona, en pocas palabras
114
118
 
115
- **Actualizado**: el campo avanza rápidamente; exigir estudios específicos con años evita que los diseños se retrasen 18 meses. **Funcional**: la evidencia muestra lo que *falla*, no solo lo que funciona (las explicaciones pueden aumentar la dependencia excesiva de la IA *incorrecta* — Bansal et al. 2021, [arXiv:2006.14779](https://arxiv.org/abs/2006.14779)). **Seguro**: el entorno protegido por el verificador es la arquitectura que respalda la evidencia, y el protocolo lo aplica a su propia salida. La verificación de fuentes no es un ejercicio académico; es el rastro de la evidencia.
119
+ **Actual:** el campo evoluciona rápidamente; exigir estudios específicos con años evita que los diseños se retrasen 18 meses. **Funcional:** la evidencia muestra lo que *falla*, no solo lo que funciona (las explicaciones pueden aumentar la dependencia excesiva de la IA *incorrecta* — Bansal et al. 2021, [arXiv:2006.14779](https://arxiv.org/abs/2006.14779)). **Seguro:** el entorno protegido por el verificador es la arquitectura que respalda la evidencia, y el protocolo lo aplica a su propia salida. La verificación de fuentes no es un ejercicio académico; es el rastro de la evidencia.
116
120
 
117
121
  ## Seguridad
118
122
 
119
- `study-swarm` incluye una **CLI delgada, con cero dependencias** (`study-swarm`) junto con la metodología. No realiza **ninguna llamada a la red ni al modelo** y no recopila **ningún dato de telemetría**: no hay secretos ni credenciales en el código fuente. En tiempo de ejecución, solo lee el archivo que se pasa a `lint` y escribe un único archivo `<slug>.dispatch.md` en el directorio actual para `new` (rechazando sobrescribirlo y nunca saliendo del directorio de trabajo). La verificación basada en modelos que describe la metodología (paso 4) es realizada por las herramientas complementarias, no por este paquete. Consulta [SECURITY.md](SECURITY.md).
123
+ `study-swarm` incluye una **CLI delgada, con cero dependencias** (`study-swarm`) junto con la metodología. No realiza **ninguna llamada a la red ni al modelo** y no recopila **ningún dato de telemetría**; no hay secretos ni credenciales en el código fuente. En tiempo de ejecución, solo lee el archivo que se le pasa a `lint` y escribe un único archivo `<slug>.dispatch.md` en el directorio actual para la opción `new` (rechazando sobrescribir y nunca saliendo del directorio de trabajo). La verificación basada en modelos que describe la metodología (paso 4) la realizan las herramientas complementarias, no este paquete. Consulte [SECURITY.md](SECURITY.md).
120
124
 
121
125
  ## Estado
122
126
 
123
- Un protocolo funcional, verificado externamente por su propia maquinaria: una familia de modelos diferente verifica sus citas (consulta la prueba anterior). Este repositorio es la referencia pública; [PROTOCOL.md](PROTOCOL.md) es la forma ejecutable. Forma parte de la familia [dogfood-lab](https://github.com/dogfood-lab): métodos y ejemplos para construir en la era de la IA.
127
+ Un protocolo funcional, verificado externamente por su propio mecanismo: una familia de modelos diferente verifica sus citas (vea la prueba anterior). La **versión 1.1** mejora el verificador donde la primera versión no lo hacía: fundamentación descompuesta/ternaria, búsqueda en el momento de la generación, cascada validada por un oráculo para combinar perspectivas y abstención calibrada; todo ello se basa en la prueba verificada de la versión 1.1. Este repositorio es la referencia pública; [PROTOCOL.md](PROTOCOL.md) es la forma ejecutable. Forma parte de la familia [dogfood-lab](https://github.com/dogfood-lab): métodos y ejemplos para construir en la era de la IA.
124
128
 
125
129
  Con licencia MIT.
126
130
 
package/README.fr.md CHANGED
@@ -15,67 +15,71 @@
15
15
 
16
16
  **Ancrez les décisions de conception dans des recherches citées, puis vérifiez ces citations à l’aide d’une *autre* famille de modèles avant que quoi que ce soit ne devienne un élément canonique.**
17
17
 
18
- `study-swarm` est un protocole, pas un outil. Lorsque vous prenez une décision de conception importante avec un LLM (un nouveau niveau de produit, un choix d’architecture, une question du type « devons-nous faire confiance au modèle ici »), improviser à partir de principes fondamentaux conduit à des conceptions obsolètes, et citer des articles de mémoire conduit à des conceptions qui reposent sur des sources inexistantes ou qui ne disent pas ce que vous pensez. `study-swarm` remplace les deux : il lance en parallèle des agents de recherche, exige des résultats spécifiques cités et soumet chaque citation à un **vérificateur externe d’une famille de modèles différente** avant qu’elle n’influence la conception.
18
+ `study-swarm` est un protocole, pas un outil. Lorsque vous prenez une décision de conception importante avec un LLM (un nouveau niveau de produit, un choix d’architecture, une question du type « devons-nous faire confiance au modèle ici »), improviser à partir de principes fondamentaux conduit à des conceptions obsolètes, et citer des articles de mémoire conduit à des conceptions qui reposent sur des sources inexistantes ou qui ne disent pas ce que vous pensez. `study-swarm` remplace les deux : il lance en parallèle des agents de recherche, exige des résultats spécifiques cités et soumet chaque citation à un **vérificateur externe d’une famille de modèles différente** avant qu’elle n’influence la conception.
19
19
 
20
- Il applique sa propre méthode. Le protocole prescrit l’utilisation d’enveloppes protégées par un vérificateur pour les systèmes auxquels il contribue à concevoir, il l’applique donc également sur lui-même. **Aucun modèle n’évalue son propre travail, y compris celui qui exécute le protocole.**
20
+ Il applique sa propre méthode. Le protocole prescrit l’utilisation d’enveloppes protégées par un vérificateur pour les systèmes dont il facilite la conception, il l’applique donc à lui-même. **Aucun modèle ne corrige ses propres devoirs, y compris celui qui exécute le protocole.**
21
21
 
22
22
  ## Le protocole en cinq étapes
23
23
 
24
24
  1. **Identifiez** 3 à 5 questions de conception essentielles dont la réponse serait modifiée par des preuves empiriques.
25
- 2. **Lancez** un agent de recherche par question, en parallèle. Chacun doit renvoyer le titre de l’article + les auteurs + les années + les URL + une conclusion d’une phrase (privilégiez la spécificité à l’étendue : « 6 à 8 conclusions bien étayées sont plus efficaces que 20 observations vagues »).
26
- 3. **Synthétisez** les résultats dans une section intitulée *Justification par la recherche* : `N. <conclusion>. <Auteurs> <année> (<arXiv/DOI>). <implication pour la conception>.`
27
- 4. **Vérifiez de manière externe** — une *famille de modèles différente*, sans raisonnement, vérifie chaque citation en deux étapes : un **oracle de récupération** confirme que l’article existe (jamais à partir de la mémoire du modèle), puis une **lentille d’ancrage** confirme que la conclusion correspond à la source. **Arrêtez le processus** si la citation est fabriquée ou mal attribuée ; **arrêtez et escaladez** si le vérificateur ou l’oracle de récupération n’est pas disponible (ne considérez jamais l’absence comme une indication que les citations sont correctes).
28
- 5. **Reliez** chaque choix architectural à une conclusion en utilisant un numéro. Les citations sans implication pour la conception sont du bruit.
25
+ 2. **Lancez** un agent de recherche par question, en parallèle. Chacun doit renvoyer les titres des articles + les auteurs + les années + les URL + une conclusion d’une phrase (privilégiez la spécificité à l’étendue : « 6 à 8 conclusions bien étayées sont plus efficaces que 20 observations vagues »).
26
+ 3. **Synthétisez** les conclusions dans une section intitulée *Justification par la recherche* : `N. <conclusion>. <Auteurs> <année> (<arXiv/DOI>). <implication pour la conception>.`
27
+ 4. **Vérifiez de manière externe** — une *famille de modèles différente*, sans raisonnement, vérifie chaque citation en deux étapes : un **oracle de récupération** confirme que l’article existe (jamais à partir de la mémoire du modèle), puis une **lentille d’exactitude** confirme que la conclusion correspond à la source. **Arrêtez le processus** si la citation est fabriquée ou mal attribuée ; **arrêtez et escaladez** si le vérificateur ou l’oracle de récupération n’est pas disponible (ne considérez jamais l’absence comme signifiant que les citations sont correctes).
28
+ 5. **Reliez** chaque choix architectural à une conclusion en utilisant un numéro. Les citations qui n’ont pas d’implication pour la conception sont du bruit.
29
29
 
30
- Les détails complets et exécutables le tableau d’arrêt, la norme de référencement, la règle d’ensemble se trouvent dans **[PROTOCOL.md](PROTOCOL.md)**.
30
+ Les détails complets et exécutables (le tableau d’arrêt, la norme de référencement, la règle d’ensemble) se trouvent dans **[PROTOCOL.md](PROTOCOL.md)**.
31
31
 
32
32
  ## Pourquoi une *famille différente*, sans raisonnement ?
33
33
 
34
34
  Parce que les modes d’échec sont documentés, et non hypothétiques :
35
35
 
36
- - **Les LLM ne peuvent pas vérifier de manière fiable leurs propres résultats.** Huang et al. 2023 ([arXiv:2310.01798](https://arxiv.org/abs/2310.01798)) ; Kambhampati et al. 2024 ([arXiv:2402.01817](https://arxiv.org/abs/2402.01817), LLM-Modulo) ; Stechly et al. 2024 ([arXiv:2402.08115](https://arxiv.org/abs/2402.08115)) — le vérificateur externe apporte les améliorations ; le contenu d’auto-évaluation est inerte.
37
- - **Les juges de la même famille ont une préférence pour eux-mêmes.** Panickssery, Bowman & Feng 2024 ([arXiv:2404.13076](https://arxiv.org/abs/2404.13076)) — l’auto-reconnaissance est corrélée *linéairement* avec la préférence pour soi-même, de sorte qu’un aveuglement partiel n’est pas utile. Verga et al. 2024 ([arXiv:2404.18796](https://arxiv.org/abs/2404.18796), PoLL) — un groupe de juges issus de familles différentes est moins biaisé, pour un coût environ 7 fois inférieur.
38
- - **Les citations sont les points où les LLM mentent.** Walters & Wilder 2023 ([doi:10.1038/s41598-023-41032-5](https://doi.org/10.1038/s41598-023-41032-5)) — 55 % des citations de GPT-3.5 et 18 % des citations de GPT-4 sont fabriquées. Onweller et al. 2026 ([arXiv:2605.06635](https://arxiv.org/abs/2605.06635)) — les liens résolvent plus de 94 % du temps, mais seulement 39 à 77 % du contenu cité soutiennent réellement l’affirmation. Par conséquent, l’existence doit être vérifiée par **récupération, et non par rappel**.
39
- - **Masquez le raisonnement du générateur.** Khalifa et al. 2026 ([arXiv:2601.14691](https://arxiv.org/abs/2601.14691), « Gaming the Judge ») — la simple manipulation de la chaîne de pensée augmente les faux positifs d’un juge jusqu’à 90 %, les actions étant maintenues constantes. Turpin et al. 2023 ([arXiv:2305.04388](https://arxiv.org/abs/2305.04388)) — la chaîne de pensée est une rationalisation a posteriori. Le vérificateur voit uniquement l’affirmation de citation, jamais le « pourquoi j’ai inclus ceci ».
36
+ - **Les LLM ne peuvent pas vérifier de manière fiable leurs propres résultats.** Huang et al. 2023 ([arXiv:2310.01798](https://arxiv.org/abs/2310.01798)) ; Kambhampati et al. 2024 ([arXiv:2402.01817](https://arxiv.org/abs/2402.01817), LLM-Modulo) ; Stechly et al. 2024 ([arXiv:2402.08115](https://arxiv.org/abs/2402.08115)) — le vérificateur externe apporte les améliorations ; le contenu d’autocritique est inerte.
37
+ - **Les juges de la même famille ont une préférence pour eux-mêmes.** Panickssery, Bowman & Feng 2024 ([arXiv:2404.13076](https://arxiv.org/abs/2404.13076)) — l’auto-reconnaissance est corrélée *linéairement* avec la préférence pour soi-même, de sorte qu’un aveuglement partiel n’est pas utile. Verga et al. 2024 ([arXiv:2404.18796](https://arxiv.org/abs/2404.18796), PoLL) — un groupe de juges issus de familles distinctes est moins biaisé, pour un coût environ 7 fois inférieur.
38
+ - **Les citations sont les endroits où les LLM mentent.** Walters & Wilder 2023 ([doi:10.1038/s41598-023-41032-5](https://doi.org/10.1038/s41598-023-41032-5)) — 55 % des citations de GPT-3.5 et 18 % des citations de GPT-4 sont fabriquées. Onweller et al. 2026 ([arXiv:2605.06635](https://arxiv.org/abs/2605.06635)) — les liens résolvent plus de 94 % du temps, mais seulement 39 à 77 % du contenu cité soutiennent réellement l’affirmation. Par conséquent, l’existence doit être vérifiée par **la récupération, et non par la mémorisation**.
39
+ - **Masquez le raisonnement du générateur.** Khalifa et al. 2026 ([arXiv:2601.14691](https://arxiv.org/abs/2601.14691), « Gaming the Judge ») — la manipulation de la chaîne de pensée seule augmente les faux positifs d’un juge jusqu’à 90 %, les actions étant maintenues fixes. Turpin et al. 2023 ([arXiv:2305.04388](https://arxiv.org/abs/2305.04388)) — la chaîne de pensée est une rationalisation a posteriori. Le vérificateur voit uniquement l’affirmation de citation, jamais le « pourquoi je l’ai incluse ».
40
40
  - **La diversité surpasse la quantité.** Rajan 2025 ([arXiv:2511.16708](https://arxiv.org/abs/2511.16708)) — quatre vérificateurs avec une corrélation par paires ρ ∈ [0,05, 0,25] sont plus efficaces qu’un seul grâce à la couverture sous-modulaire. Kim et al. 2025 ([arXiv:2506.07962](https://arxiv.org/abs/2506.07962)) — les erreurs des LLM sont *corrélées*, de sorte que la variable essentielle est la diversité des lentilles, et non la quantité brute.
41
41
 
42
42
  ## Est-ce que cela fonctionne réellement ? (preuve)
43
43
 
44
- À titre de test, le protocole a été appliqué à ses propres citations. Deux familles non-Claude décorrélées — **Mistral** (`mistral-small:24b`) et **IBM Granite** (`granite4.1:30b`) — ont vérifié un ensemble de citations, sans raisonnement, en utilisant deux pièges aveugles :
44
+ À titre de test, le protocole a été appliqué à ses propres citations. Deux familles non-Claude décorrélées — **Mistral** (`mistral-small:24b`) et **IBM Granite** (`granite4.1:30b`) — ont vérifié un ensemble de citations, sans raisonnement, en y intégrant deux pièges aveugles :
45
45
 
46
46
  | Piège planté | Mistral | IBM Granite | Vérité terrain |
47
47
  |---|---|---|---|
48
48
  | Une chaîne de pensée attribuée à « Nakamura & Olsen » | non détecté | **détecté** (mal attribué → en réalité Wei et al. 2022, arXiv:2201.11903) | mal attribué |
49
49
  | un article fabriqué affirmant que « 98 % des erreurs sont éliminées, aucun oracle n’est nécessaire » | **caught** (fabricated) | **caught** (fabricated) | fabriqué |
50
50
 
51
- Aucune des deux familles n’a détecté les deux pièges individuellement, mais leur **union a permis de détecter 2/2**. Un seul juge aurait validé la mauvaise attribution. Par ailleurs, l’oracle de récupération a détecté deux *vrais* mauvaises attributions dans nos propres documents de conception (articles cités avec le mauvais premier auteur) que aucun LLM paramétrique n’aurait pu signaler — et il a correctement confirmé des articles authentiques de 2026 que les deux LLM ont faussement signalés comme étant fabriqués simplement parce que les articles sont postérieurs à leur date d’entraînement. Ce dernier point est la raison pour laquelle la vérification de l’existence dans l’étape 4 **doit** être effectuée par un oracle de récupération, et non par un LLM.
51
+ Aucune des deux familles n’a détecté les deux pièges individuellement, mais leur **union a permis de détecter 2/2**. Un seul juge aurait validé la mauvaise attribution. Par ailleurs, l’oracle de récupération a détecté deux *vrais* mauvaises attributions dans nos propres documents de conception (articles cités sous le nom du mauvais premier auteur) que aucun LLM paramétrique n’aurait pu signaler — et il a correctement confirmé des articles authentiques de 2026 que les deux LLM ont faussement signalés comme étant fabriqués simplement parce que les articles sont postérieurs à leur date d’entraînement. Ce dernier point est la raison pour laquelle la vérification de l’existence dans l’étape 4 **doit** être effectuée par un oracle de récupération, et non par un LLM.
52
52
 
53
- Cette seule exécution est la thèse en miniature : **des lentilles décorrélées + un oracle de récupération pour vérifier l’existence sont plus efficaces qu’un seul juge intelligent.**
53
+ Cette seule expérience résume la thèse : **des lentilles décorrélées + un oracle de récupération pour vérifier l’existence sont plus efficaces qu’un seul juge intelligent.**
54
54
 
55
- ## Comment cela fonctionne-t-il ?
55
+ ### …et encore une fois, pour concevoir la version 1.1
56
56
 
57
- Vous pouvez exécuter le protocole manuellement : tout modèle dune famille différente, associé à la résolution de lidentifiant arXiv/DOI, satisfait l’étape 4. Deux outils complémentaires permettent de réaliser cette opération en une seule commande :
57
+ Les améliorations de la version 1.1 ont été choisies de la même manière : en exécutant « study-swarm » sur « study-swarm ». Quatre questions auxquelles la première version navait pas répondu Je pense que… ») (comment *mécaniser* la vérification du fondement, faut-il effectuer le fondement au moment de la génération, comment *combiner* les différentes sources dinformation, faut-il s’abstenir en cas d’incertitude calibrée) ont été soumises à des agents de recherche parallèles, et les **27 références résultantes** ont été validées à l’étape 4 avant d’influencer la conception. L’oracle de récupération a confirmé que **les 27/27 existent**, y compris six articles datant de 2025-2026 qu’un modèle paramétrique aurait faussement identifiés comme étant fabriqués, et il a corrigé cinq attributions qu’un modèle n’aurait pas pu faire, dont une véritable erreur d’attribution à un premier auteur que l’agent de recherche avait lui-même signalée. En exécutant le processus sans raisonnement préalable, les différentes sources d’information ont même reproduit leurs propres modes d’échec documentés dans notre analyse : l’une a identifié avec assurance un article réel de manière incorrecte, et leur *désaccord* a déclenché une escalade, exactement comme le prévoit la cascade. L’analyse effectuée est fournie sous forme de [`examples/study-swarm-v1_1.dispatch.md`](examples/study-swarm-v1_1.dispatch.md) ; les améliorations qui ont été validées (fondement décomposé/ternaire, fondement au moment de la génération, cascade validée par l’oracle et abstention calibrée) sont disponibles dans [PROTOCOL.md](PROTOCOL.md).
58
58
 
59
- - **[prism-verify](https://github.com/mcp-tool-shop-org/prism-verify)** : le vérificateur d’exécution ; il effectue un routage différent selon la famille, supprime les raisonnements inutiles, réalise une évaluation à plusieurs niveaux et établit un seuil minimal de récupération déterministe (arXiv → Crossref), en plus de générer des reçus signés.
60
- - **[role-os](https://github.com/mcp-tool-shop-org/role-os)** : il fournit la commande `roleos verify-citations <dispatch>`, qui extrait les citations d’un document et les transmet à prism pour vérification.
59
+ ## Comment cela fonctionne
61
60
 
62
- Le transfert se fait via le format du document lui-même : une conclusion rédigée sous la forme `N. **conclusion.** Auteurs année (arXiv|DOI). implication.` avec **un seul identifiant résolvable par conclusion** — est exactement ce que la commande `roleos verify-citations` extrait et transmet pour vérification. Un document propre, validé par `lint`, est transféré sans problème ; une citation mal formée est signalée comme non analysée par l’outil. Ce contrat est ce que la commande `study-swarm lint` vérifie localement, de sorte que les étapes 3 et 4 s’accordent sur la définition d’une citation.
61
+ Vous pouvez exécuter le protocole manuellement : tout modèle d’une famille différente, associé à la résolution de l’identifiant arXiv/DOI, satisfait les exigences de l’étape 4. Deux outils complémentaires permettent de réaliser cette opération en une seule commande :
63
62
 
64
- ## CLI
63
+ - **[prism-verify](https://github.com/mcp-tool-shop-org/prism-verify)** : le vérificateur d’exécution : routage pour les modèles de familles différentes, suppression du raisonnement préalable, arbitrage multi-sources, seuil minimal déterministe pour la récupération (arXiv → Crossref) et reçus signés.
64
+ - **[role-os](https://github.com/mcp-tool-shop-org/role-os)** : fournit `roleos verify-citations <dispatch>`, l’outil qui extrait les références d’une analyse et les valide à travers prism.
65
+
66
+ Le transfert se fait par le biais du format de l’analyse : une conclusion rédigée sous la forme « N. **conclusion**. Auteurs, année (arXiv|DOI). implication » — avec **un seul identifiant résolvable par conclusion** — est exactement ce que `roleos verify-citations` extrait et valide. Une analyse propre (« lint-clean ») se transfère sans problème ; une référence mal formée est celle que l’outil signale comme non analysée. Ce contrat est ce que `study-swarm lint` vérifie localement, de sorte que les étapes 3 et 4 s’accordent sur la définition d’une référence.
67
+
68
+ ## Interface en ligne de commande (CLI)
65
69
 
66
70
  ```bash
67
71
  npm i -g @dogfood-lab/study-swarm # or run ad-hoc: npx @dogfood-lab/study-swarm <command>
68
72
  ```
69
73
 
70
- | Commande | Fonctionnement |
74
+ | Commande | Fonctionnalité |
71
75
  |---|---|
72
- | `study-swarm protocol` | Affiche le protocole complet : les cinq étapes, la table de terminaison et la norme de référencement. |
76
+ | `study-swarm protocol` | Affiche le protocole complet : les cinq étapes, la table d’arrêt et la norme de référencement. |
73
77
  | `study-swarm new <slug>` | Crée un fichier `<slug>.dispatch.md` avec le squelette des cinq étapes à compléter. |
74
- | `study-swarm lint [--json] <path…>` | Vérifie le *fondement de la recherche* d’un document par rapport à la norme de référencement : chaque conclusion doit comporter un auteur, une année et un identifiant résolvable (arXiv / DOI / URL) ; les affirmations vagues du type « des études montrent que… » sont rejetées. En cas de violation, le programme se termine avec le code `1`, ce qui permet de contrôler l’intégration continue. Un `<chemin>` peut être un fichier, un répertoire (vérifié récursivement pour les fichiers `*.dispatch.md`) ou `-` pour l’entrée standard ; l’option `--json` génère un rapport lisible par machine. |
78
+ | `study-swarm lint [--json] <path…>` | Vérifie le *fondement de la recherche* d’une analyse par rapport à la norme de référencement : chaque conclusion doit comporter un auteur, une année et un identifiant résolvable (arXiv / DOI / URL) ; les affirmations du type « des études montrent que… » ne sont pas acceptées. En cas de violation, le programme se termine avec le code `1`, ce qui permet de contrôler l’intégration continue (CI). Un `<path>` peut être un fichier, un répertoire (vérifié récursivement pour les fichiers `*.dispatch.md`) ou `-` pour l’entrée standard ; l’option `--json` génère un rapport lisible par machine. |
75
79
 
76
- La commande `lint` est déterministe — elle n’effectue aucun appel de modèle —, ce qui la rend sûre pour l’intégration continue. Elle applique localement la **norme de référencement de l’étape 3** ; la vérification basée sur un modèle, à l’**étape 4**, est toujours effectuée par les outils complémentaires, et non par ce paquet.
80
+ `lint` est déterministe — il n’effectue aucun appel de modèle ce qui le rend sûr à utiliser dans l’intégration continue (CI). Il applique localement la **norme de référencement de l’étape 3** ; la vérification basée sur un modèle de l’**étape 4** est toujours effectuée par les outils complémentaires, et non par ce paquet. Voir [SECURITY.md](SECURITY.md).
77
81
 
78
- Une boucle typique :
82
+ Exemple d’utilisation :
79
83
 
80
84
  ```bash
81
85
  study-swarm new my-decision # creates my-decision.dispatch.md
@@ -84,11 +88,11 @@ study-swarm lint my-decision.dispatch.md # enforce the sourcing standard
84
88
  roleos verify-citations my-decision.dispatch.md # model-based Step 4 (different family, via prism)
85
89
  ```
86
90
 
87
- Un document complet, propre et validé par `lint` study-swarm appliqué à sa propre conception est fourni dans le fichier [`examples/study-swarm-self.dispatch.md`](examples/study-swarm-self.dispatch.md) en tant que référence.
91
+ Deux analyses complètes et propres sont fournies en exemple : [`examples/study-swarm-self.dispatch.md`](examples/study-swarm-self.dispatch.md) (la décision centrale du protocole, concise) et [`examples/study-swarm-v1_1.dispatch.md`](examples/study-swarm-v1_1.dispatch.md) (l’ensemble des 27 références de la version 1.1, chacune ayant été vérifiée en externe).
88
92
 
89
- ### Activez-le dans l’intégration continue
93
+ ### Intégration dans l’intégration continue (CI)
90
94
 
91
- La commande `lint` prend un fichier, un répertoire (vérifié récursivement pour les fichiers `*.dispatch.md`) ou `-` pour l’entrée standard, et l’option `--json` génère un rapport lisible par machine. Intégrez ceci dans votre dépôt pour contrôler le référencement de chaque document lors de chaque demande d’extraction (un exemple à copier-coller est également disponible dans le fichier [`examples/study-swarm-ci.yml`](examples/study-swarm-ci.yml)) :
95
+ `lint` prend un fichier, un répertoire (vérifié récursivement pour les fichiers `*.dispatch.md`) ou `-` pour l’entrée standard, et `--json` génère un rapport lisible par machine. Vous pouvez intégrer cela dans votre dépôt afin de valider le référencement de chaque analyse lors de chaque demande d’extraction (un exemple de copie-collage est également disponible dans [`examples/study-swarm-ci.yml`](examples/study-swarm-ci.yml)) :
92
96
 
93
97
  ```yaml
94
98
  # .github/workflows/dispatches.yml
@@ -112,15 +116,15 @@ jobs:
112
116
 
113
117
  ## Pourquoi cela fonctionne, en résumé
114
118
 
115
- **Actuel** le domaine évolue rapidement ; exiger des études spécifiques avec les années correspondantes évite que les conceptions ne soient mises en œuvre avec 18 mois de retard. **Fonctionnel** les données montrent ce qui *échoue*, et pas seulement ce qui fonctionne (les explications peuvent entraîner une dépendance excessive à l’égard d’une IA *incorrecte* — Bansal et al., 2021, [arXiv:2006.14779](https://arxiv.org/abs/2006.14779)). **Sûr** l’enveloppe protégée par le vérificateur est l’architecture que les données étayent, et le protocole l’applique à sa propre sortie. Le référencement n’est pas un exercice académique ; il sagit de la chaîne de preuves.
119
+ **Actuel** : le domaine évolue rapidement ; exiger des études spécifiques avec les années correspondantes évite que les conceptions ne soient mises en œuvre avec 18 mois de retard. **Fonctionnel** : les données montrent ce qui *échoue*, et pas seulement ce qui fonctionne (les explications peuvent entraîner une dépendance excessive à l’égard d’une IA *incorrecte* — Bansal et al., 2021, [arXiv:2006.14779](https://arxiv.org/abs/2006.14779)). **Sûr** : l’enveloppe protégée par le vérificateur est l’architecture que les données étayent, et le protocole l’applique à sa propre sortie. Le référencement n’est pas un exercice académique ; cest la preuve.
116
120
 
117
121
  ## Sécurité
118
122
 
119
- `study-swarm` fournit une **CLI légère, sans dépendances**, (`study-swarm`) ainsi que la méthodologie. Il n’effectue **aucun appel réseau ou de modèle** et ne collecte **aucune télémétrie** ; il n’y a pas de secrets ni d’identifiants dans le code source. Lors de l’exécution, il lit uniquement le fichier que vous transmettez à la commande `lint` et écrit un seul fichier `<slug>.dispatch.md` dans le répertoire courant pour une nouvelle version (il refuse d’écraser les fichiers existants et ne sort jamais du répertoire de travail). La vérification basée sur un modèle décrite par la méthodologie (étape 4) est effectuée par les outils complémentaires, et non par ce paquet. Voir [SECURITY.md](SECURITY.md).
123
+ `study-swarm` fournit une **CLI légère et sans dépendances** (`study-swarm`) ainsi que la méthodologie. Il n’effectue **aucun appel réseau ou de modèle** et ne collecte **aucune télémétrie** ; il n’y a pas de secrets ni d’identifiants dans le code source. Lors de l’exécution, il lit uniquement le fichier que vous transmettez à `lint` et écrit un seul fichier `<slug>.dispatch.md` dans le répertoire actuel pour `new` (il refuse d’écraser les fichiers existants et n’écrira jamais en dehors du répertoire de travail). La vérification basée sur un modèle décrite dans la méthodologie (étape 4) est effectuée par les outils complémentaires, et non par ce paquet. Voir [SECURITY.md](SECURITY.md).
120
124
 
121
125
  ## État actuel
122
126
 
123
- Un protocole fonctionnel, vérifié en externe par ses propres mécanismes une famille de modèles différente vérifie ses citations (voir la preuve ci-dessus). Ce dépôt est la référence publique ; le fichier [PROTOCOL.md](PROTOCOL.md) représente la forme exécutable. Il fait partie de la famille [dogfood-lab](https://github.com/dogfood-lab) méthodes et exemples pour construire dans l’ère de l’IA.
127
+ Un protocole fonctionnel, vérifié en externe par ses propres mécanismes : un modèle d’une famille différente vérifie ses références (voir la preuve ci-dessus). La **version 1.1** affine le vérificateur là où la première version était silencieuse : fondement décomposé/ternaire, fondement au moment de la génération, cascade validée par l’oracle pour combiner les sources d’information et abstention calibrée — chacun étant basé sur l’analyse vérifiée de la version 1.1. Ce dépôt est la référence publique ; [PROTOCOL.md](PROTOCOL.md) est la forme exécutable. Il fait partie de la famille [dogfood-lab](https://github.com/dogfood-lab) : méthodes et exemples pour construire dans l’ère de l’IA.
124
128
 
125
129
  Licence MIT.
126
130