# skill-gibbs-hyperresearch-2026-08-03

## Veille

**Skill**-Eintrag: **hyperresearch** von **Jordan Gibbs** ist ein **Deep-Research-Harness**, das Claude Code in einen dokumentarischen Rechercheagenten verwandelt, ausgeliefert als PyPI-Paket (MIT, Python 3.11-3.13), das **20 Claude Code Skills**, eine CLI, einen MCP-Server und eine lokale Web-UI installiert. Stand **3. August 2026**: 1.568 Stars, 170 Forks, Repo erstellt am 9. April 2026, letzter Push am 1. August. **Der Kern ist eine 16-stufige, nach Tiers adaptive Pipeline** — `light` (~30-40 Min.), `full` (~1,5-2,5 Std.), `dissertation` (4-8 Std., 25.000-80.000 Wörter über 300-450 Quellen) — die einen Prompt entgegennimmt und einen adversarial geprüften Bericht mit vollständiger Provenienz zurückgibt. **Die zentrale Architekturentscheidung ist zusammen mit ihrem Fehlermodus dokumentiert**: Der Einstiegs-Skill ist ein **schlanker Router** ohne eigene Prozedur, wobei jeder Schritt in seinem eigenen Skill lebt, der **frisch im Moment seines Aufrufs** geladen wird, weil die Vorgängerversion *„ein einzelner 1200-Zeilen-Skill war, der komprimiert wurde, bevor Layer 4 seine Dreifachentwurf-Prozedur brauchte. Der Orchestrator vergaß die Prozedur, schrieb einen einzigen Entwurf und produzierte einen Bericht mit flacher Bewertung“* war. **Zwei tragende Prinzipien.** *„Patchen, niemals neu erzeugen“*: Nach der Synthese sind nur chirurgische `Edit`-Nachbesserungen möglich, wobei der Patcher und der Politur-Auditor auf Ebene der Claude-Code-Allowlist auf `[Read, Edit]` werkzeugseitig gesperrt sind, sodass sie *„physisch keinen neuen Entwurf schreiben können“*. *„Die kanonische Recherchefrage ist Gesetz“*: Der wortgetreue Prompt wird einmal in `query.md` persistiert und von jedem Schritt und jedem Subagenten erneut gelesen. **Sechzehn Subagenten** mit konfigurierbarer Rolle und Modell (Fetcher und Cite-Checker auf Sonnet, Kritiker, Synthesizer und Patcher auf Opus). **Der Vault** ist ein persistenter, in SQLite indizierter Markdown-Speicher — *„Markdown ist Wahrheit, SQLite ist Cache“* — mit einem Notiz-Lebenszyklus (`draft → review → evergreen`, `stale → deprecated → archive`), nachvollziehbarer Provenienz, einem zusammengesetzten Qualitätsscore (Quellentyp, Zitationsautorität via OpenAlex und Semantic Scholar mit Retraction-Flags, internem PageRank) und einem **Unabhängigkeitsaudit**, das syndizierte Kopien zusammenfasst — *„fünf Nachdrucke einer Pressemitteilung wiegen so viel wie eine Quelle“*. **Drei mechanische Schranken vor der Auslieferung**: Zitationsintegrität (jedes zitierte Zitat muss **wortgetreu** in einer Vault-Notiz existieren), ein bei jeder zitierten DOI aufgefrischter Retraction-Sweep und eine Zitat-zu-Satz-Verknüpfungsprüfung durch ein skeptisches LLM. **Zu markierender Vorbehalt**: Die Eingangsbehauptung — *„führt derzeit das DeepResearch-Bench-RACE-Ranking an“* — wird durch ihre eigene Fußnote widerlegt, *„zukunftsgerichtete Projektion aus einem stratifizierten Pilotversuch … Eine Drittvalidierung steht noch aus“*. Eine Projektion ist kein Ranking, dennoch platziert das Diagramm sie vor Gemini und OpenAI Deep Research.

## Titre Article

hyperresearch — « The Most Powerful Deep Research Harness » / « Agent-driven research knowledge base. Agents collect, search, and synthesize web research into a persistent, searchable wiki. »

## Date

2026-08-03

## URL

https://github.com/jordan-gibbs/hyperresearch

## Keywords

Skill, Deep Research, Research-Harness, Claude Code, 16-stufige Pipeline, Tiers, light, full, dissertation, Gear, Skalierungsprofil, schlanker Router, Lazy Loading, Context Compaction, Procedure Eviction, Skill pro Schritt, Patchen, niemals neu erzeugen, chirurgische Bearbeitung, Tool-Sperrung, werkzeugseitig gesperrt, Allowlist, Read, Edit, kanonische Anfrage, wortgetreuer Prompt, Gesetz, Subagenten, Fetcher, Loci-Analyst, Depth-Investigator, Draft-Orchestrator, Synthesizer, adversarial Kritiker, dialektischer Kritiker, Cite-Checker, Patcher, Politur-Auditor, Vault, Markdown als Wahrheit, SQLite-Cache, rekonstruierbarer Index, Notiz-Lebenszyklus, evergreen, deprecated, Provenienz, suggested-by, Qualitätsscore, PageRank, OpenAlex, Semantic Scholar, Retraction, Unabhängigkeitsaudit, Syndizierung, quote-integrity, numeric-consistency, Ship-Gate, Lint, Prompt Injection, untrusted-source, Webtext als Daten, SSRF, Unpaywall, Europe PMC, Open Access, gerettete Notiz, nothing_from_source, Version of Record, Browser-Eskalation, Claude-in-Chrome, CAPTCHA nie automatisch gelöst, Run-Budget, run resume, MCP, DeepResearch-Bench, unvalidierte Projektion, Jordan Gibbs

## Authors

**Jordan Gibbs** — auteur et mainteneur du dépôt `jordan-gibbs/hyperresearch`. Le projet est distribué sous **licence MIT** et publié sur **PyPI** (`pip install hyperresearch`). Signaux d'adoption au 3 août 2026 : **1 568 étoiles**, **170 forks**, 13 issues ouvertes, dépôt créé le **9 avril 2026** et poussé le **1er août 2026** — soit une traction rapide sur moins de quatre mois. Topics déclarés : `agents`, `agentskills`, `claude-code`, `deep-research`, `deep-research-agent`.

## Ton

**Profil**: Open-Source-Projektdokumentation mit hoher technischer Dichte, die zugleich als **Plädoyer für Überlegenheit** fungiert. Das README erklärt nicht nur: Es **argumentiert**, Abschnitt für Abschnitt, unter Überschriften, die Thesen sind (*„Why it wins“*, *„Source ranking: quality is persistent, not vibes“*, *„The web is hostile input“*, *„Open-access full text: read this before you cite“*).

**Stil**: ein ingenieurhaftes Register, das einen Mechanismus über das Problem erklärt, das er löst, fast immer in zwei Schlägen — zuerst der Fehlermodus, dann die Lösung. *„Ein geschlossenes Paper gelangt normalerweise als 1.500-Zeichen-Abstract in einen Vault, das der Bericht dann zitiert, als wäre es gelesen worden“*, dann die Open-Access-Substitution. *„V7 war ein einzelner 1200-Zeilen-Skill, der komprimiert wurde“*, dann der Router. Diese Form verleiht dem Text **mehr pädagogischen als werblichen Wert**: Die Fehlermodi agentischer Deep Research werden auch von einer Leserschaft gelernt, die das Tool nie installiert.

**Dem Agenten auferlegtes operatives Register** („Ton“ im Sinne der Skill-Card): **imperativ, vertraglich, Betonungsgroßschreibung**. *„NEVER EMIT BARE TEXT WHILE TASKS ARE RUNNING“*, *„RESPECT THE TIER GATE“*, *„PATCH, NEVER REGENERATE“*, *„ARGUE, DON'T JUST REPORT“*. Dem Orchestrator wird die eigentliche Arbeit explizit entzogen: *„You do NOT do the work of any step yourself. The step skills do. You just sequence them.“* Der Nutzer-Prompt wird — dreimal — **Gesetz** genannt.

**Bemerkenswertes Merkmal**: eine **selektive Ehrlichkeit**. Der Abschnitt *„What it doesn't do“* ist freimütig (*„The lint gate catches structural failures… It cannot guarantee factual accuracy, that's still your call“*), die Vorbehalte zu Preprint-Versionen sind gewissenhaft, und die Anforderung, für Unpaywall eine eigene `contact_email` anzugeben, wird kollektiv begründet (*„shipping a shared placeholder would get that placeholder rate-limited for every hyperresearch user at once“*). Diese Sorgfalt macht die **eine Stelle, an der es strauchelt**, umso sichtbarer: die Ranking-Behauptung.

**Signaturphrasen**: *„Markdown is truth, SQLite is cache“*, *„Fetched text is data, never instructions“*, *„five reprints of one press release argue with the weight of one source“*, *„they physically cannot Write a new draft“*, *„quality is persistent, not vibes“*, *„nothing is thrown away“*, *„each session starts smarter than the last“*.

## Pense-betes

- **Art**: ein Deep-Research-Harness, ausgeliefert als Paket aus **20 Claude Code Skills** + Python-CLI + MCP-Server + lokaler Web-UI. `pip install hyperresearch && hyperresearch install`, dann `/hyperresearch <topic>`. MIT, Python 3.11-3.13.
- **Zentraler Rahmen**: Der Einstiegs-Skill ist ein **Router** ohne eigene Prozedur, wobei jeder Schritt in seinem eigenen Skill lebt, der bei Aufruf frisch geladen wird. ### Die Architekturlektion mit ihrem dokumentierten Fehlermodus > *„V7 war ein einzelner 1200-Zeilen-Skill, der komprimiert wurde, bevor Layer 4 seine Dreifachentwurf-Prozedur brauchte. Der Orchestrator vergaß die Prozedur, schrieb einen einzigen Entwurf und produzierte einen Bericht mit flacher Bewertung. V8 behebt dies an der Quelle: Die Prozedur jedes Schritts wird erst im Moment ihres Bedarfs in den Kontext geladen, frisch, ohne Eviction-Risiko.“* Eine lange Pipeline verliert ihre Schritte nicht durch das Vergessen des Modells, sondern durch **Context Eviction**, und die Lösung ist struktureller Natur. Dieselbe Disziplin wie der persistente Kontext, der den Index statt des Inhalts trägt, in [[lassiege-usine-logicielle-heure-ia-2026-07-28]], unabhängig auf anderem Terrain entdeckt. ### Tool-Sperrung als Garantie Der Patcher und der Politur-Auditor sind *„auf Ebene der Claude-Code-Allowlist werkzeugseitig auf `[Read, Edit]` gesperrt, sodass sie physisch keinen neuen Entwurf schreiben können“*, wobei Obergrenzen pro Hunk *„einfach neu schreiben“* mechanisch unmöglich machen. Der Agent wird nicht gebeten, nicht neu zu schreiben — ihm wird das Werkzeug entzogen. Korollar: Ein Kritikbefund, der nicht in eine kleine Nachbesserung passt, **eskaliert zu einem strukturellen Problem**, statt eine Neufassung auszulösen. ### Die sechzehn Schritte in drei Blöcken | Block | Schritte | |---|---| | **Rahmung** | 1 Dekomposition + Abdeckungsmatrix + Tier-Klassifikation; 1.5 Kapitelaufteilung | | **Korpus und Analyse** | 2 Breitensuche; 3 Widerspruchsgraph; 4 Loci-Analyse; 5 parallele Tiefenuntersuchungen; 6 Abgleich zwischen Loci; 7 Spannungen zwischen Quellen; 8 Korpuskritik (*„welche Quelle würde das umstoßen?“*) + gezieltes Lückenschließen; 9 Evidenz-Digest | | **Verfassen und Audit** | 10 dreifacher Entwurf je Blickwinkel; 11 Synthese; 12 vier parallele adversarial Kritiken; 13 Lückenschließen nach der Kritik; 14 chirurgischer Patcher; 14.5 Zitationsverifikation; 15 Politur; 16 Lesbarkeitsaudit | ### Drei nicht zu verwechselnde Skalierungshebel | Hebel | Entscheidet | |---|---| | **Tiers** (`tier`) | **welche Schritte** laufen, pro Anfrage geroutet | | **Gears** (Skalierungsprofile) | **wie viel** — Quellenziele, Tiefenbudgets, Länge; überstehen Neuinstallationen, greifen erst beim nächsten Lauf, nie mitten im Lauf | | **Levers** (`register`, `domain_notes`, `inference_depth`) | **welche Stimme** — `teach` / `survey` / `analyze` / `advocate` | Levers wirken als **in die Subagenten-Prompts injizierte Shims**, *„sodass sich die Kritiker mit dem Register bewegen, statt es aufzuheben“*. Aber: *„Der Cite-Checker und das Ship-Gate erhalten überhaupt keinen Shim. Die Verifikation wird nie je nach Modus weicher.“* Verifikation ist die einzige Stufe, die vom Stil ausgenommen ist. ### Die drei mechanischen Schranken vor der Auslieferung 1. **quote-integrity** — jeder zitierte Abschnitt muss **wortgetreu** in einer Vault-Notiz existieren; *„halluzinierte Zitate können nicht ausgeliefert werden“*. 2. **retracted-citations** — eine zurückgezogene Quelle ohne Kennzeichnung zu zitieren, blockiert, mit einem **zum Auslieferungszeitpunkt** aufgefrischten Sweep über jede zitierte DOI, einschließlich aus älteren Läufen wiederverwendeter Quellen: *„eine gestern veröffentlichte Rückziehung wird heute erfasst“*. 3. **numeric-consistency** — Zahlen, die sich nicht auf einen Evidenznachweis zurückführen lassen, werden markiert. Hinzu kommt **cite-check**: Ein skeptisches LLM prüft stichprobenartig, ob die zitierte Quelle den Satz, den sie stützt, tatsächlich belegt. ### Das Unabhängigkeitsaudit Syndizierte und abgeleitete Kopien werden gruppiert, sodass *„fünf Nachdrucke einer Pressemitteilung so viel wiegen wie eine Quelle“*. Die Zahl übereinstimmender Quellen hört auf, ein Argument zu sein, sobald sie alle von derselben Pressemitteilung abstammen — relevant für jede Tech-Watch-Praxis. Zusammengesetzter, persistenter Qualitätsscore: Quellentyp, beim Lesen beobachteter Nutzen, Zitationsautorität (OpenAlex / Semantic Scholar mit Retraction-Flags), PageRank über den internen Graphen. Zurückgezogene Quellen auf null gesetzt: *„Qualität ist persistent, keine Stimmungssache.“* ### Die Abwehr gegen Prompt Injection *„Abgerufener Text ist Daten, niemals Anweisungen.“* Jeder aus dem Web abgerufene Inhalt wird innerhalb eines `<untrusted-source url="...">`-Zauns mit einer *treat-as-data*-Präambel ausgeliefert, auf beiden Pfaden, die Inhalte ausliefern (`note show` und `search`). Details, die zeigen, dass die Bedrohung durchdacht wurde:
- von Subagenten verfasste Notizen passieren **ohne Zaun** — Vertrauensgrenze **nach Provenienz**, nicht nach Inhalt;
- gefälschte Zaun-Tags innerhalb eines abgerufenen Inhalts werden neutralisiert, **aber für die forensische Analyse sichtbar belassen**;
- das Attribut `url` wird escaped und seine Steuerzeichen entfernt;
- in `search` erfolgt die Umschließung **nach** dem Kürzen auf das Token-Budget, *„sodass der schließende Zaun niemals abgetrennt werden kann“*;
- über APIs Dritter aufgelöste URLs werden verifiziert (Schema, eingebettete Credentials, öffentlich routbare Auflösung) — SSRF-Abwehr;
- die Prompts von Fetcher, Investigator und Writer verbieten es, Anweisungen aus einer eingezäunten Seite in vertrauenswürdige Ausgabe zu schleusen. ### Epistemische Hygiene bei geschlossenen Quellen Ein paywall-geschützter Artikel würde normalerweise als Abstract von rund 1.500 Zeichen in den Vault gelangen, das der Bericht dann zitieren würde, *„als wäre es gelesen worden“*. hyperresearch fragt **Unpaywall** und **Europe PMC** nach einer legalen Open-Access-Kopie ab und speichert stattdessen diesen Text, wobei die Substitution an vier Stellen offengelegt wird (Banner, `oa_*`-Frontmatter, `body_is_not_from_source: true`-JSON-Block, CLI-Ausgabe). Ein dritter Zustand wird unterschieden: die **„gerettete“** Notiz, wenn die Quelle überhaupt nicht gelesen werden konnte — `nothing_from_source: true`, mit einem Banner, das angibt, dass die URL nie gelesen wurde. Das System unterscheidet somit *„ich habe das gelesen“*, *„ich habe einen Ersatz gelesen“* und *„ich habe die Quelle nie gelesen“* und trägt diese Unterscheidung ins Artefakt. Vorbehalt: Unpaywall kann ein akzeptiertes Manuskript oder ein eingereichtes Preprint zurückgeben, das vor direkter Zitation zu prüfen ist. ### Der Vault *„Markdown ist Wahrheit, SQLite ist Cache“* — ein vollständig rekonstruierbarer Index (`hyperresearch sync`), Markdown-Notizen + YAML-Frontmatter, ohne das Tool lesbar, git-versionierbar, ein kuratierter Lebenszyklus (`draft → review → evergreen` oder `stale → deprecated → archive`) *„der einen Vault davor bewahrt, zu einer Ablage halbgelesener Seiten zu werden“*, Provenienz via `--suggested-by` mit einer Lint-Regel, die getrennte Komponenten, Hubs und Backlinks erkennt. Dies ist die Architektur dieses Tech-Watch-Korpus, unabhängig entdeckt. Was hyperresearch obendrauf hinzufügt: Qualitätsscore pro Quelle, Unabhängigkeitsaudit, Retraction-Sweep, optionale semantische Suche, expliziter Lebenszyklusstatus. Ein für `scripts/` ausleihenswerter Ansatz. ### Fortsetzen von Läufen und Budget Jeder Lauf hat einen isolierten Arbeitsbereich (`research/runs/<tag>/`) und ein Manifest, das als *„dauerhaftes Gedächtnis“* dient: Ein abgestürzter Lauf wird exakt am toten Schritt fortgesetzt (`run resume`). `run init --budget 50` **blockiert** den Lauf, wenn die Obergrenze überschritten wird, *„statt ihn leise anschwellen zu lassen“*. ### Vorbehalte
- **Die Ranking-Behauptung hält nicht stand.** Das README erklärt, *„derzeit das DeepResearch-Bench-RACE-Ranking anzuführen (intern benchmarkt)“*, mit einem Diagramm, das es vor Gemini und OpenAI Deep Research platziert; die Anmerkung unter dem Diagramm besagt, *„zukunftsgerichtete Projektion aus einem stratifizierten Pilotversuch … Eine Drittvalidierung steht noch aus.“* Eine Projektion aus einem selbstverwalteten Pilotversuch ist kein Ranking. Zitiert werden sollte der Versuchsaufbau, niemals das Ranking.
- **Anthropic-Abhängigkeit**: *„Es läuft über Anthropic-Modelle via die Subagenten-Besetzung“* — Opus für Kritiker, Synthesizer und Patcher, Sonnet für Fetcher. Ein Codex-Port ist gewünscht, aber nicht umgesetzt.
- **Kosten nicht beziffert**: `premier` zielt auf 100-130 Quellen und ~3-5 Std., `dissertation` auf 300-450 Quellen und 4-8 Std.; die Budgetobergrenze wird in *API-äquivalenten Ausgaben* ausgedrückt, nicht in beobachteten Kosten.
- **Vom Autor eingeräumte Grenze**: *„Das Lint-Gate erkennt strukturelle Fehler … Es kann keine faktische Genauigkeit garantieren, das bleibt Ihre Entscheidung.“* Strukturelle Verifikation ist keine faktische Genauigkeit.
- **Harte Grenze**: *„CAPTCHAs, 2FA und Logins werden niemals automatisch gelöst“* — gesammelt und an den Menschen zurückgegeben.
- **Abhängigkeitsfläche**: 20 Skills, 16 Subagenten und eine CLI, die einen authentifizierten Browser steuert, bei einem noch nicht einmal vier Monate alten Repo.

## RésuméDe400mots

**hyperresearch** (Jordan Gibbs, MIT, PyPI) verwandelt Claude Code in einen Deep-Research-Agenten. Stand 3. August 2026: 1.568 Stars, Repo im April erstellt. Die Installation bringt **20 Skills**, eine CLI, einen MCP-Server und eine lokale Web-UI mit.

**Die Pipeline** durchläuft 16 nach Tier adaptive Schritte: `light` (~30-40 Min.) für abgegrenzte Fragen, `full` (1,5-2,5 Std.) für argumentative Analysen mit adversarial Review, `dissertation` (4-8 Std., 25.000-80.000 Wörter, 300-450 Quellen) auf explizite Anfrage. Drei getrennte Hebel: **Tiers** entscheiden, welche Schritte laufen, **Gears** entscheiden über wie viele, **Levers** (`teach`/`survey`/`analyze`/`advocate`) entscheiden, in welcher Stimme der Bericht ausfällt.

**Die Architektur ist die Antwort auf einen dokumentierten Fehler.** Der Einstiegs-Skill ist ein **schlanker Router** ohne eigene Prozedur: *„V7 war ein einzelner 1200-Zeilen-Skill, der komprimiert wurde … Der Orchestrator vergaß die Prozedur, schrieb einen einzigen Entwurf und produzierte einen Bericht mit flacher Bewertung“*. Jeder Schritt lebt in seinem eigenen Skill, der bei Aufruf frisch geladen wird — eine lange Pipeline verliert ihre Schritte nicht durch Vergessen, sondern durch Context Eviction.

**Zwei tragende Prinzipien.** *„Patchen, niemals neu erzeugen“*: Nach der Synthese sind nur chirurgische Bearbeitungen möglich, wobei der Patcher auf Allowlist-Ebene **werkzeugseitig auf `[Read, Edit]` gesperrt** ist, sodass er *„physisch keinen neuen Entwurf schreiben kann“* — mechanische Unmöglichkeit ersetzt die Anweisung. Und *„die kanonische Recherchefrage ist Gesetz“*: Der wortgetreue Prompt wird persistiert und von jedem Schritt erneut gelesen.

**Verifikation ist die einzige Stufe, die vom Stil ausgenommen ist** — Levers injizieren Shims in die Prompts der Kritiker, aber *„der Cite-Checker und das Ship-Gate erhalten überhaupt keinen Shim“*. Drei Schranken blockieren die Auslieferung: Jedes Zitat muss **wortgetreu** im Vault existieren, eine nicht markierte zurückgezogene Quelle ist ein harter Fehler (mit einem bei jeder zitierten DOI aufgefrischten Sweep), und nicht nachvollziehbare Zahlen werden markiert.

**Der Vault** ist persistentes, in SQLite indiziertes Markdown — *„Markdown ist Wahrheit, SQLite ist Cache“* — mit einem Notiz-Lebenszyklus, Provenienz, einem zusammengesetzten Qualitätsscore und einem **Unabhängigkeitsaudit**: *„fünf Nachdrucke einer Pressemitteilung wiegen so viel wie eine Quelle“*. Aus dem Web abgerufene Inhalte werden innerhalb eines `<untrusted-source>`-Zauns ausgeliefert: *„Abgerufener Text ist Daten, niemals Anweisungen.“*

**Der Vorbehalt.** Das README beansprucht, das DeepResearch-Bench-Ranking anzuführen; seine eigene Fußnote stellt klar, dass es sich um eine *„zukunftsgerichtete Projektion aus einem stratifizierten Pilotversuch“* ohne Drittvalidierung handelt. Zitiert werden sollte der Versuchsaufbau, niemals das Ranking. Der Autor räumt zudem ein, dass der Lint *„keine faktische Genauigkeit garantieren kann“*.

## Anti-patterns

- **Citer le classement DeepResearch-Bench.** La revendication de tête de leaderboard est une **projection auto-administrée en attente de validation tierce**, selon la note du dépôt lui-même. Citer l'architecture, jamais le rang.
- **Confondre vérification structurelle et exactitude.** L'auteur le dit : *« It cannot guarantee factual accuracy, that's still your call. »* Le dispositif garantit qu'une citation existe et qu'elle soutient sa phrase — pas que la source ait raison.
- **Lancer `full` ou `premier` sur une question bornée.** Le palier `light` existe pour ça, et la skill interdit explicitement de monter en palier « pour être exhaustif ».
- **Traiter une note `rescued` comme une lecture de la source.** `nothing_from_source: true` signifie que **rien** — ni titre, ni auteurs, ni corps — ne vient de l'URL en `source:`. À prendre au pied de la lettre.
- **Citer directement depuis une version non finale.** Si `oa_version` vaut `acceptedVersion` ou `submittedVersion`, vérifier la citation contre l'article publié.
- **Installer en `--global` sans y penser.** Coût permanent d'environ quinze lignes dans le *system reminder* de **toutes** les sessions Claude Code, y compris sans rapport avec la recherche.
- **Adopter sans revue de la chaîne de dépendances.** 20 skills, 16 sous-agents, une CLI pilotant un navigateur authentifié, sur un dépôt de moins de quatre mois — exactement la surface que [[lassiege-usine-logicielle-heure-ia-2026-07-28]] recommande de scruter.
- **Compter sur un portage hors Anthropic.** Le roster suppose Opus et Sonnet ; le portage Codex est souhaité par l'auteur, pas réalisé.

## Artefacts

**Espace de run** — `research/runs/<vault_tag>/` :
- `query.md` — le prompt utilisateur verbatim, référence canonique de tout le pipeline
- `run.json` — le manifeste (transitions d'étapes, dépense, file d'escalades) ; support de la reprise
- `scaffold.md` — document de planification privé, **interdit d'apparition dans le rapport final**
- `prompt-decomposition.json` — items atomiques, matrice de couverture, palier retenu
- `loci.json`, `comparisons.md`, `source-tensions.json`, `evidence-digest.md` — sorties d'analyse intermédiaires
- `temp/orchestrator-notes.md` — journal de raisonnement de l'orchestrateur
- `final_report.md` — le livrable

**Vault** — `research/notes/` : une note markdown par source, frontmatter YAML (dont `oa_url`, `oa_version`, `oa_recovery_kind`, `raw_file`, statut de cycle de vie), PDF bruts en `research/raw/<note-id>.pdf`, index SQLite **reconstructible** par `hyperresearch sync`, pages d'index générées, graphe de liens et de provenance.

**Sorties hors Claude Code** : serveur MCP (treize outils dont `search_notes`, `read_many`, `get_backlinks`, `lint_vault`), UI web locale sur le port 8080 sans dépendance JavaScript, exports JSON et vault filtré.

## Commentaire

**En une phrase** : hyperresearch est un harnais qui traite la recherche documentaire agentique comme une **chaîne de production sous contraintes mécaniques**, où chaque risque connu du deep research par LLM reçoit une parade structurelle plutôt qu'une consigne.

**L'idée centrale** est que les modes d'échec du deep research agentique sont **connus et énumérables**, donc outillables un par un. Le README les nomme et leur oppose chaque fois un mécanisme : le rapport dérive en réécriture ? On retire l'outil d'écriture. Le modèle oublie une étape en cours de route ? On charge la procédure au moment de l'invocation. Une citation est inventée ? Elle doit exister verbatim dans le vault, ou le rapport ne part pas. Cinq sources concordent ? On vérifie qu'elles ne sont pas cinq reprises d'un même communiqué. Une page web s'adresse à l'agent ? Son corps est servi dans une clôture qui le désigne comme donnée. Un article payant n'est lu qu'en abstract ? On va chercher une copie légale et on **déclare** la substitution.

**Les principes** qui structurent l'ensemble se ramènent à trois. **La contrainte bat la consigne** — le verrouillage d'outils, les gates de lint et les clôtures ne dépendent pas de la coopération du modèle. **Le contexte se charge au dernier moment** — le routeur mince existe parce qu'un long contexte se fait évincer, ce qui est un fait d'ingénierie et non un défaut de rédaction du prompt. **La vérification ne se négocie pas** — le style du rapport est paramétrable, la vérification ne l'est pas.

**En résumé** : c'est le dispositif de deep research agentique le plus complètement instrumenté publiquement disponible à ce jour, et sa documentation vaut d'être lue **même sans l'installer**, parce qu'elle constitue un catalogue raisonné des façons dont une recherche menée par agent se trompe. Sa faiblesse est ailleurs : une revendication de performance que ses propres notes de bas de page ne soutiennent pas.

## Déclencheur

**Quand la skill s'active** : sur invocation explicite `/hyperresearch <sujet>` dans Claude Code, après `pip install hyperresearch && hyperresearch install` dans le projet (ou `--global` pour toutes les sessions, au prix d'environ quinze lignes dans le *system reminder* de chaque session).

**Entrées attendues** :
- un **prompt de recherche en langue naturelle**, dont la forme verbale détermine le registre du rapport (« explique-moi X » → `teach` ; « quel est le paysage » → `survey` ; défaut → `analyze` ; « défends la thèse que » → `advocate`) ;
- optionnellement, une demande explicite de palier `dissertation` — jamais choisi automatiquement ;
- optionnellement, un plafond de dépense (`run init --budget`), un gear installé (`profile use premier`), ou des directives explicites de registre qui l'emportent sur l'inférence.

**Ce qui est résolu automatiquement au démarrage** : création du vault si absent, installation des 16 skills d'étapes si absentes, archivage des artefacts d'anciennes versions, frappe d'un `vault_tag` unique, initialisation de l'espace de run.

**Quand ne pas la déclencher** : question factuelle simple à réponse connue (le palier `light` existe mais reste une trentaine de minutes), sujet sans littérature accessible, ou besoin d'une réponse immédiate.

## Fonctionnement

**La boucle de l'orchestrateur** est délibérément pauvre : lire le fichier d'entrée une fois → bootstrapper les entrées canoniques → invoquer `Skill(skill: "hyperresearch-N-...")` dans l'ordre dicté par le palier → entre deux étapes, ne rien faire d'autre que marquer les todos et consigner des notes. L'orchestrateur **ne fait le travail d'aucune étape**.

**Le mécanisme d'échelle**, en trois couches indépendantes :

| Couche | Décide | Quand elle s'applique |
|---|---|---|
| **Palier** (`tier`) | quelles étapes tournent | classé par l'étape 1, par requête |
| **Gear** (profil) | l'ampleur : sources, profondeur, longueur | rendu à l'installation, effectif au run suivant |
| **Levers** | le registre et la profondeur d'inférence | inférés du prompt, surchargeables |

**Le fan-out** repose sur seize sous-agents aux rôles fixes et aux modèles configurables : fetchers (8-12 en parallèle par vague), analystes de sources longues, analystes de loci, investigateurs de profondeur (K en parallèle), trois rédacteurs d'angle, un synthétiseur, **quatre critiques adverses en parallèle** (dialectique, profondeur, largeur, instruction), un patcheur, un vérificateur de citations, un auditeur de polissage, un recommandeur de lisibilité, un fetcher-navigateur.

**La chaîne de contrôle en fin de course** est ce qui distingue le dispositif : les critiques attaquent le brouillon → leurs conclusions ne peuvent être appliquées que par un patcheur **incapable d'écrire un fichier** → les conclusions trop larges pour une retouche remontent comme problèmes structurels → un vérificateur sceptique échantillonne les liaisons citation-phrase → une batterie de vérifications bloque l'expédition (citation verbatim, rétractation, cohérence numérique).

**La boucle longue** est le vault : chaque source lue y demeure, indexée et scorée, et la session suivante y cherche **avant** de récupérer quoi que ce soit du web — *« each session starts smarter than the last »*.

## Lecture commentée du SKILL.md

Le fichier commenté est la skill d'entrée, `src/hyperresearch/skills/hyperresearch.md` (~24 Ko).

**Le frontmatter annonce la nature du fichier — un routeur, pas une procédure** :

```yaml
name: hyperresearch
description: >
  Deep research via the HYPERRESEARCH V8 architecture — a tier-adaptive 16-step
  pipeline (light / full / dissertation) … This entry skill is a ROUTER.
  It does not contain step procedures — it tells you which Skill to invoke
  for each step, in order.
```

*Glose* : la `description` est ce que l'agent lit pour décider de charger la skill ; y écrire en majuscules **ROUTER** et nier explicitement la présence de procédures est un choix de design — l'agent est prévenu qu'il devra invoquer autre chose. On notera les **marqueurs de gabarit** `<< p.time_estimate >>` : le fichier est **rendu à l'installation** depuis le profil d'échelle, ce qui explique que changer de gear « prenne effet au run suivant, jamais en cours de run ».

**La dépossession de l'orchestrateur, énoncée d'emblée** :

> *« You are the orchestrator. Your entire job in this conversation is: 1. Read this file once at the start. 2. Bootstrap canonical inputs… 3. Invoke each step skill in sequence via the `Skill` tool. 4. Between steps, do nothing except mark todos and (optionally) think… You do NOT do the work of any step yourself. »*

*Glose* : la contre-mesure vise la tendance d'un orchestrateur à « aider » en faisant lui-même le travail de l'étape suivante — ce qui contaminerait son contexte et casserait le bénéfice du chargement différé.

**Le passage le plus instructif du dépôt, la justification du design** :

> *« Why this design? Context compaction. V7 was one 1200-line skill that got compacted away by the time Layer 4 needed its triple-draft procedure. The orchestrator forgot the procedure, wrote a single draft, and produced a flat-scoring report. V8 fixes this at the source: each step's procedure is loaded into context **only at the moment it's needed**, fresh, with no eviction risk. »*

*Glose* : un **post-mortem** intégré à la documentation d'architecture. Le symptôme (un seul brouillon au lieu de trois) était silencieux — rien n'échouait, la qualité baissait. C'est le mode d'échec le plus dangereux d'un pipeline long, et la seule parade fiable est de ne pas dépendre de la persistance du contexte.

**Le bootstrap installe la mémoire durable avant toute étape** — sept points numérotés dont trois portent l'essentiel :

> *« Persist the query file. Write the verbatim canonical query to `research/runs/<vault_tag>/query.md` … This file is the **canonical query reference for the entire pipeline**. Every step skill and every subagent reads it by path. »*

> *« The manifest is your durable memory: record every step transition with `hyperresearch run step <vault_tag> <N> --status running|done -j` as you go. »*

> *« Seed the TodoWrite list … The todo list survives context compaction; it's your durable memory of where you are in the chain. »*

*Glose* : **trois mémoires externes redondantes** — le fichier de requête pour *quoi*, le manifeste pour *où j'en suis* de façon persistante et interrogeable, la todo list pour *où j'en suis* dans la fenêtre courante. Toutes trois existent parce que le contexte, lui, ne survit pas. Le choix de nommer la todo list « durable memory » dit tout du problème traité.

**Les quatre règles canoniques, en majuscules** :

> *« 1. NEVER EMIT BARE TEXT WHILE TASKS ARE RUNNING. In non-interactive (`-p`) mode, a text-only response (no tool call) triggers `end_turn` — the process exits and the pipeline dies. »*

*Glose* : une contrainte **du harnais**, pas du modèle — en mode `-p`, une réponse sans appel d'outil termine le processus. La parade recommandée (écrire ses pensées dans `orchestrator-notes.md`) transforme une limite d'exécution en journal de raisonnement. Détail révélateur d'un projet qui tourne vraiment en non-interactif.

> *« 2. PATCH, NEVER REGENERATE. … Both subagents are tool-locked to `[Read, Edit]`. If a critic's finding would require rewriting a whole section, it escalates to you as a structural issue — not a rewrite. »*

> *« 4. RESPECT THE TIER GATE. Don't add steps "for thoroughness." Don't drop steps "for budget." The tier is a binding contract. »*

*Glose* : la règle 4 traite les deux dérives symétriques d'un agent zélé — en ajouter « pour bien faire » et en retirer « pour économiser ». Ailleurs le texte insiste : *« The tier classification is a product decision: simple queries should produce fast, right-sized answers. Trust the classification. »*

**Choix de design à retenir** : la **modularisation par fichiers annexes** (une skill par étape) n'est pas ici une commodité de lecture mais la réponse à un mode d'échec mesuré ; le **gabarit rendu à l'installation** rend les paramètres d'échelle inspectables dans les fichiers eux-mêmes plutôt que cachés dans du code ; et la **redondance des mémoires externes** est assumée comme un coût nécessaire.

## GrapheDeConnaissance

- Jordan Gibbs —a_créé→ hyperresearch (METHODOLOGIE, 0.97)
- hyperresearch —utilise→ Claude Code (TECHNOLOGIE, 0.97)
- hyperresearch —permet→ de transformer un agent de codage en agent de recherche documentaire profonde (AFFIRMATION, 0.95)
- skill d'entrée routeur —résout→ l'éviction par compaction de la procédure d'une étape dans un pipeline long (AFFIRMATION, 0.96)
- hyperresearch —affirme_que→ une skill unique de 1200 lignes se fait évincer du contexte et l'orchestrateur en oublie silencieusement des étapes (CITATION, 0.95)
- verrouillage d'outils —permet→ de rendre une réécriture mécaniquement impossible plutôt que déconseillée (AFFIRMATION, 0.95)
- verrouillage d'outils —surpasse→ une consigne de prompt pour garantir un comportement d'agent (AFFIRMATION, 0.92)
- hyperresearch —recommande→ de ne modifier un rapport synthétisé que par retouches chirurgicales, jamais par régénération (AFFIRMATION, 0.95)
- prompt utilisateur verbatim —fait_partie_de→ contrat canonique relu par chaque étape et chaque sous-agent (AFFIRMATION, 0.93)
- audit d'indépendance des sources —réduit→ le poids d'un consensus apparent formé de reprises d'un même communiqué (AFFIRMATION, 0.94)
- vérification de l'intégrité des citations —résout→ l'expédition de citations hallucinées, en exigeant leur présence verbatim dans le corpus (AFFIRMATION, 0.95)
- balayage de rétractation —s_applique_à→ chaque DOI cité au moment de l'expédition, y compris sur des sources réutilisées (AFFIRMATION, 0.92)
- hyperresearch —affirme_que→ le texte récupéré du web est une donnée et jamais une instruction (CITATION, 0.96)
- clôture untrusted-source —réduit→ le risque d'injection de prompt par une page web lue par un agent (AFFIRMATION, 0.94)
- notes produites par les sous-agents du pipeline —s_oppose_à→ les corps récupérés du web, servis sous clôture — frontière de confiance par provenance (AFFIRMATION, 0.9)
- récupération en accès ouvert —résout→ la citation d'un article payant lu seulement en abstract, comme s'il avait été lu (AFFIRMATION, 0.94)
- hyperresearch —utilise→ Unpaywall (TECHNOLOGIE, 0.93)
- hyperresearch —utilise→ Europe PMC (TECHNOLOGIE, 0.93)
- note rescued —affirme_que→ ni le titre, ni les auteurs, ni le corps ne proviennent de l'URL déclarée en source (AFFIRMATION, 0.93)
- hyperresearch —est_basé_sur→ markdown comme source de vérité et index SQLite reconstructible comme cache (AFFIRMATION, 0.95)
- hyperresearch —converge_avec→ l'architecture médaillon d'un corpus de veille en fichiers (CONCEPT, 0.85)
- score de qualité de source —est_basé_sur→ type de source, utilité constatée, autorité de citation avec rétractations, et centralité PageRank interne (AFFIRMATION, 0.92)
- vérification —s_oppose_à→ le paramétrage par registre, qui module les critiques mais jamais le contrôle des citations (AFFIRMATION, 0.93)
- hyperresearch —affirme_que→ le gate de lint attrape les défaillances structurelles mais ne garantit pas l'exactitude factuelle (CITATION, 0.95)
- hyperresearch —mesure→ une position de tête sur DeepResearch-Bench RACE, présentée comme projection prospective auto-administrée sans validation tierce (MESURE, 0.75)
- hyperresearch —utilise→ modèles Anthropic Opus et Sonnet via un roster de seize sous-agents (AFFIRMATION, 0.93)
- hyperresearch —s_oppose_à→ la résolution automatique des CAPTCHA, de la double authentification et des connexions (AFFIRMATION, 0.94)

---
Canonical: https://www.thekb.eu/de/fiches/skill-gibbs-hyperresearch-2026-08-03/
