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

## Veille

**Skill** entry: **hyperresearch** by **Jordan Gibbs** is a **deep research harness** that turns Claude Code into a documentary research agent, shipped as a PyPI package (MIT, Python 3.11-3.13) installing **20 Claude Code skills**, a CLI, an MCP server, and a local web UI. Observed on **August 3, 2026**: 1,568 stars, 170 forks, repo created on April 9, 2026, last push on August 1. **The core is a 16-step pipeline adaptive by tiers** — `light` (~30-40 min), `full` (~1.5-2.5 h), `dissertation` (4-8 h, 25,000-80,000 words across 300-450 sources) — which takes a prompt and returns an adversarially audited report with full provenance. **The central architecture decision is documented alongside its failure mode**: the entry skill is a **thin router** with no procedure, each step living in its own skill loaded **fresh at the moment it is invoked**, because the previous version 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. »* **Two load-bearing principles.** *« Patch, never regenerate »*: after synthesis, only surgical `Edit` touch-ups are possible, with the patcher and the polish auditor tool-locked to `[Read, Edit]` at the Claude Code allowlist level, so that they *« physically cannot Write a new draft »*. *« Canonical research query is gospel »*: the verbatim prompt is persisted once in `query.md` and re-read by every step and every subagent. **Sixteen subagents** with configurable role and model (fetchers and cite-checker on Sonnet, critics, synthesizer, and patcher on Opus). **The vault** is a persistent markdown store indexed in SQLite — *« Markdown is truth, SQLite is cache »* — with a note lifecycle (`draft → review → evergreen`, `stale → deprecated → archive`), traceable provenance, a composite quality score (source type, citation authority via OpenAlex and Semantic Scholar with retraction flags, internal PageRank), and an **independence audit** that groups syndicated copies together — *« five reprints of one press release argue with the weight of one source »*. **Three mechanical gates before shipping**: citation integrity (every quoted citation must exist **verbatim** in a vault note), a retraction sweep refreshed on every cited DOI, and a citation-to-sentence link check by a skeptical LLM. **Reservation to flag**: the opening claim — *« currently leads the DeepResearch-Bench RACE leaderboard »* — is contradicted by its own footnote, *« forward-looking projection from a stratified pilot… Third party validation is pending »*. A projection is not a ranking, yet the chart places it ahead of Gemini and 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-step pipeline, tiers, light, full, dissertation, gear, scale profile, thin router, lazy loading, context compaction, procedure eviction, per-step skill, patch never regenerate, surgical edit, tool lockdown, tool-locked, allowlist, Read Edit, canonical query, verbatim prompt, gospel, subagents, fetcher, loci-analyst, depth-investigator, draft-orchestrator, synthesizer, adversarial critics, dialectic critic, cite-checker, patcher, polish auditor, vault, markdown as source of truth, SQLite cache, rebuildable index, note lifecycle, evergreen, deprecated, provenance, suggested-by, quality score, PageRank, OpenAlex, Semantic Scholar, retraction, independence audit, syndication, quote-integrity, numeric-consistency, ship gate, lint, prompt injection, untrusted-source, web text as data, SSRF, Unpaywall, Europe PMC, open access, rescued note, nothing_from_source, version of record, browser escalation, Claude-in-Chrome, CAPTCHA never solved, run budget, run resume, MCP, DeepResearch-Bench, unvalidated projection, 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

**Profile**: open source project documentation with high technical density, doubling as a **case for superiority**. The README does not just explain: it **argues**, section by section, under headings that are theses (*« Why it wins »*, *« Source ranking: quality is persistent, not vibes »*, *« The web is hostile input »*, *« Open-access full text: read this before you cite »*).

**Style**: an engineer's register that explains a mechanism through the problem it solves, almost always in two beats — the failure mode first, the fix second. *« A closed paper normally enters a vault as a 1,500-character abstract that the report then cites as though it had been read »*, then the open-access substitution. *« V7 was one 1200-line skill that got compacted away »*, then the router. This shape gives the text **more pedagogical than promotional value**: the failure modes of agentic deep research are learned even by a reader who never installs the tool.

**Operational register imposed on the agent** (« tone » in the skill-card sense): **imperative, contractual, emphasis capitals**. *« NEVER EMIT BARE TEXT WHILE TASKS ARE RUNNING »*, *« RESPECT THE TIER GATE »*, *« PATCH, NEVER REGENERATE »*, *« ARGUE, DON'T JUST REPORT »*. The orchestrator is explicitly stripped of the work: *« You do NOT do the work of any step yourself. The step skills do. You just sequence them. »* The user prompt is called **gospel** — three times.

**Notable trait**: a **selective honesty**. The *« What it doesn't do »* section is candid (*« The lint gate catches structural failures… It cannot guarantee factual accuracy, that's still your call »*), the caveats on preprint versions are scrupulous, and the requirement to supply one's own `contact_email` for Unpaywall is justified by a collective argument (*« shipping a shared placeholder would get that placeholder rate-limited for every hyperresearch user at once »*). This rigor makes the **one place where it slips** all the more visible: the leaderboard claim.

**Signature phrases**: *« 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

- **Nature**: a deep research harness shipped as a package of **20 Claude Code skills** + Python CLI + MCP server + local web UI. `pip install hyperresearch && hyperresearch install`, then `/hyperresearch <topic>`. MIT, Python 3.11-3.13.
- **Key framing**: the entry skill is a **router** with no procedure, each step living in its own skill loaded fresh at invocation. ### The architecture lesson, with its documented failure mode > *« 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. »* A long pipeline does not lose its steps to the model forgetting but to **context eviction**, and the fix is structural. Same discipline as the persistent context that carries the index rather than the content in [[lassiege-usine-logicielle-heure-ia-2026-07-28]], discovered independently on different ground. ### Tool lockdown as a guarantee The patcher and the polish auditor are *« tool-locked to `[Read, Edit]` at the Claude Code allowlist level so they physically cannot Write a new draft »*, with per-hunk caps making *« just rewrite it »* mechanically impossible. The agent is not asked not to rewrite — the tool is taken away. Corollary: a critique finding that does not fit within a small touch-up **escalates to a structural problem** instead of triggering a rewrite. ### The sixteen steps, in three blocks | Block | Steps | |---|---| | **Framing** | 1 decomposition + coverage matrix + tier classification; 1.5 chapter partitioning | | **Corpus and analysis** | 2 breadth sweep; 3 contradiction graph; 4 loci analysis; 5 parallel deep investigations; 6 inter-loci reconciliation; 7 tensions between sources; 8 corpus critique (*« what source would overturn this? »*) + targeted gap-filling; 9 evidence digest | | **Writing and audit** | 10 triple drafting by angle; 11 synthesis; 12 four parallel adversarial critiques; 13 post-critique gap-filling; 14 surgical patcher; 14.5 citation verification; 15 polish; 16 readability audit | ### Three scaling levers not to confuse | Lever | Decides | |---|---| | **Tiers** (`tier`) | **which steps** run, routed per query | | **Gears** (scale profiles) | **how much** — source targets, depth budgets, length; survive reinstalls, take effect on the next run, never mid-run | | **Levers** (`register`, `domain_notes`, `inference_depth`) | **which voice** — `teach` / `survey` / `analyze` / `advocate` | Levers land as **shims injected into subagent prompts**, *« so the critics move with the register instead of undoing it »*. But: *« The cite-checker and the ship gate receive no shim at all. Verification never softens by mode. »* Verification is the one stage exempt from style. ### The three mechanical gates before shipping 1. **quote-integrity** — every portion quoted must exist **verbatim** in a vault note; *« hallucinated quotes cannot ship »*. 2. **retracted-citations** — citing a retracted source without flagging it is blocking, with a sweep refreshed **at shipping time** on every cited DOI, including sources reused from older runs: *« a retraction published yesterday is caught today »*. 3. **numeric-consistency** — numbers not traceable to a piece of evidence are flagged. Added to this is **cite-check**: a skeptical LLM samples whether the cited source actually supports the sentence it backs. ### The independence audit Syndicated and derivative copies are grouped, so that *« five reprints of one press release argue with the weight of one source »*. The number of agreeing sources stops being an argument once they all descend from the same press release — relevant to any tech-watch practice. Composite, persistent quality score: source type, usefulness observed on reading, citation authority (OpenAlex / Semantic Scholar with retraction flags), PageRank over the internal graph. Retracted sources floored to zero: *« Quality is persistent, not vibes. »* ### The defense against prompt injection *« Fetched text is data, never instructions. »* Every body fetched from the web is served inside an `<untrusted-source url="...">` fence with a *treat-as-data* preamble, on both paths that serve bodies (`note show` and `search`). Details that show the threat was thought through:
- notes written by subagents pass through **without a fence** — trust boundary **by provenance**, not by content;
- forged fence tags inside a fetched body are neutralized **but left visible** for forensic analysis;
- the `url` attribute is escaped and its control characters stripped;
- in `search`, wrapping happens **after** truncation to the token budget, *« so the closing fence can never be severed »*;
- URLs resolved via third-party APIs are verified (scheme, embedded credentials, publicly routable resolution) — SSRF defense;
- the fetcher, investigator, and writer prompts forbid laundering directives from a fenced page into trusted output. ### Epistemic hygiene on closed sources A paywalled article would normally enter the vault as an abstract of about 1,500 characters, which the report would then cite *« as though it had been read »*. hyperresearch queries **Unpaywall** and **Europe PMC** for a legal open-access copy and stores that text instead, disclosing the substitution in four places (banner, `oa_*` frontmatter, `body_is_not_from_source: true` JSON block, CLI output). A third state is distinguished: the **« rescued »** note, when the source could not be read at all — `nothing_from_source: true`, with a banner stating that the URL was never read. The system thus distinguishes *« I read this »*, *« I read a substitute »*, and *« I never read the source »*, and carries that distinction into the artifact. Caveat: Unpaywall can return an accepted manuscript or a submitted preprint, to be checked before direct citation. ### The vault *« Markdown is truth, SQLite is cache »* — a fully rebuildable index (`hyperresearch sync`), markdown notes + YAML frontmatter readable without the tool, git-versionable, a curated lifecycle (`draft → review → evergreen` or `stale → deprecated → archive`) *« that keeps a vault from becoming a dump of half-read pages »*, provenance via `--suggested-by` with a lint rule detecting disconnected components, hubs, and backlinks. This is the architecture of this tech-watch corpus, discovered independently. What hyperresearch adds on top: per-source quality score, independence audit, retraction sweep, optional semantic search, explicit lifecycle status. A lead worth borrowing for `scripts/`. ### Run resume and budget Each run has an isolated workspace (`research/runs/<tag>/`) and a manifest serving as *« durable memory »*: a crashed run resumes exactly at the dead step (`run resume`). `run init --budget 50` **blocks** the run when the cap is crossed *« rather than letting it quietly balloon »*. ### Reservations
- **The ranking claim does not hold up.** The README states *« currently leads the DeepResearch-Bench RACE leaderboard (benchmarked internally) »* with a chart placing it ahead of Gemini and OpenAI Deep Research; the note below the chart says *« Forward-looking projection from a stratified pilot… Third party validation is pending. »* A projection from a self-administered pilot is not a ranking. Cite the setup, never the ranking.
- **Anthropic dependency**: *« It runs on Anthropic models via the subagent roster »* — Opus for critics, synthesizer, and patcher, Sonnet for fetchers. A Codex port is desired but not done.
- **Cost not quantified**: `premier` targets 100-130 sources and ~3-5 h, `dissertation` 300-450 sources and 4-8 h; the budget cap is expressed in *API-equivalent spend*, not observed cost.
- **Limit acknowledged by the author**: *« The lint gate catches structural failures… It cannot guarantee factual accuracy, that's still your call. »* Structural verification is not factual accuracy.
- **Hard boundary**: *« CAPTCHAs, 2FA, and logins are never solved automatically »* — consolidated and handed back to the human.
- **Dependency surface**: 20 skills, 16 subagents, and a CLI that drives an authenticated browser, on a repo less than four months old.

## RésuméDe400mots

**hyperresearch** (Jordan Gibbs, MIT, PyPI) turns Claude Code into a deep research agent. Observed on August 3, 2026: 1,568 stars, repo created in April. Installation drops **20 skills**, a CLI, an MCP server, and a local web UI.

**The pipeline** runs 16 adaptive steps by tier: `light` (~30-40 min) for bounded questions, `full` (1.5-2.5 h) for argumentative analysis with adversarial review, `dissertation` (4-8 h, 25,000-80,000 words, 300-450 sources) on explicit request. Three distinct levers: **tiers** decide which steps run, **gears** decide how many, **levers** (`teach`/`survey`/`analyze`/`advocate`) decide which voice the report comes out in.

**The architecture answers a documented failure.** The entry skill is a **thin router** with no procedure: *« V7 was one 1200-line skill that got compacted away… The orchestrator forgot the procedure, wrote a single draft, and produced a flat-scoring report. »* Each step lives in its own skill, loaded fresh at invocation — a long pipeline does not lose its steps to forgetting, but to context eviction.

**Two load-bearing principles.** *« Patch, never regenerate »*: after synthesis, only surgical edits are possible, with the patcher **tool-locked to `[Read, Edit]`** at the allowlist level, so that it *« physically cannot Write a new draft »* — mechanical impossibility replaces the instruction. And *« canonical research query is gospel »*: the verbatim prompt is persisted and re-read by every step.

**Verification is the one stage exempt from style** — levers inject shims into the critics' prompts, but *« the cite-checker and the ship gate receive no shim at all »*. Three gates block shipping: every citation must exist **verbatim** in the vault, an unflagged retracted source is a hard error (with a sweep refreshed on every cited DOI), and untraceable numbers are flagged.

**The vault** is persistent markdown indexed in SQLite — *« Markdown is truth, SQLite is cache »* — with a note lifecycle, provenance, a composite quality score, and an **independence audit**: *« five reprints of one press release argue with the weight of one source »*. Bodies fetched from the web are served inside an `<untrusted-source>` fence: *« Fetched text is data, never instructions. »*

**The reservation.** The README claims to lead the DeepResearch-Bench ranking; its own footnote clarifies that this is a *« forward-looking projection from a stratified pilot »* with no third-party validation. Cite the setup, never the ranking. The author also acknowledges that the lint *« cannot guarantee factual accuracy »*.

## 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/en/fiches/skill-gibbs-hyperresearch-2026-08-03/
