🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

inspectrum

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

inspectrum - npm Package Compare versions

Comparing version
0.2.2
to
0.2.3
+421
docs/strategy/competitive-landscape-2026-07.md
# Paysage concurrentiel d'Inspectrum — juillet 2026
État : analyse stratégique fondée sur des sources consultées le 30 juillet
2026. Les capacités actuelles sont des faits sourcés ; les projections à 12 et
24 mois sont des inférences explicitement signalées.
## Résumé de décision
La contre-analyse réfute la promesse générique d'Inspectrum :
**« demander une seconde opinion à un autre modèle » est déjà une commodité**.
Un développeur peut la reproduire avec un skill, un hook et deux appels
headless en un à trois jours. Les harnais natifs proposent déjà sous-agents,
équipes, revue, hooks, sorties structurées et traces. Les SDK rendent
« reviewers parallèles + juge » banal. Les produits de pull request possèdent
la distribution, les annotations et l'apprentissage qu'Inspectrum n'a pas.
Le seul espace qui mérite encore une expérience est plus étroit :
**un checkpoint de revue portable et mesuré à une frontière de risque**, qui
conserve la provenance, le désaccord, les budgets, les échecs et la décision
humaine. Même cet espace n'est pas un moat aujourd'hui. Il ne le devient que si
des données réelles montrent quels reviewers trouvent quels défauts
supplémentaires à budget égal, et si ces données réduisent le bruit et les
retours arrière.
Conséquences :
- revue de plan : créneau expérimental principal, sous condition de preuve ;
- revue de changements : extension d'expérience, pas prochaine « version
évidente » ;
- commit et pull request : repousser ; marché saturé et fonctions natives
fortes ;
- pair programming : abandonner comme produit autonome ;
- discussion multi-modèles : abandonner le débat libre ; conserver seulement
un comparateur de désaccords en un tour.
## Méthode et niveau de preuve
Le registre contient [198 sources](evidence/competitive-source-ledger.csv) :
90 documentations officielles, 15 releases, 9 lignes classées
`peer-reviewed paper`, plus 2 pages de prépublication d'articles évalués par
les pairs, des préprints, dépôts, prix, issues et communautés. Les signaux
communautaires couvrent notamment 22 pages Reddit, 6 fils Hacker News,
31 pages GitHub et 2 vidéos YouTube. Ce volume décrit la largeur de collecte,
pas la force d'une conclusion.
Ces comptes descriptifs se recouvrent : « page GitHub » est un domaine, pas une
classe de preuve. Une normalisation mutuellement exclusive des `source_type`
donne exactement **135 sources produit/standard primaires, 25 sources de
recherche et 38 sources communautaires**, soit 198.
Les identifiants ne sont volontairement pas continus après fusion des vagues
de recherche ; le nombre de lignes du registre, pas le dernier numéro, fait
foi.
Le contrôle automatisé du 30 juillet 2026 atteint directement 193 URL sur 198
(réponse HTTP 2xx/3xx). Deux pages OpenAI répondent 403, deux fils Hacker News
429, et la page Sonar Review répond 404 au client direct alors que son contenu
reste indexé par la recherche officielle. Ces cinq exceptions sont des limites
d'accès ou de stabilité, pas des preuves négatives sur les produits. Le CSV
contient 145 lignes classées de qualité haute, 41 moyenne ou moyenne-haute et
12 basse ou basse-moyenne ; cette auto-classification facilite le triage mais
ne remplace pas l'examen de la méthode de chaque source.
Les 12 lignes basses ou basses-moyennes ne soutiennent que des anecdotes
signalées comme telles : confusion des surfaces de configuration, règle
ignorée, friction MCP, pertes de handoff, coût/observabilité multi-agent,
traitement du désaccord et du juge, cadrage confidentialité, un finding
CodeRabbit et une démonstration vidéo. Aucun seuil, choix de wedge ou argument
de moat ne dépend seul de ces lignes.
Chaque source porte une affirmation, un signal, une qualité et ses limites.
Les règles suivantes s'appliquent :
- documentation et code : preuve de capacité, jamais de qualité ;
- papier ou mesure reproductible : preuve limitée à son protocole ;
- benchmark fournisseur : affirmation du fournisseur, pas classement
indépendant ;
- Reddit, Hacker News, forum, issue ou vidéo : anecdote, pas fréquence ni
volonté de payer ;
- étoiles, téléchargements et sponsoring : exclus comme preuve de valeur.
Trois lots indépendants ont mené deux vagues tardives chacun. Ils ont ajouté
des noms — Windsurf, Warp, Korbit, Kodus, Cubic, Ellipsis, Sonar Review — mais
plus aucune catégorie matérielle. La recherche est arrêtée par **saturation de
catégories**, pas par quota. Les accès automatisés bloqués en 403/429, pages
vivantes sans date et transcripts absents sont consignés dans le ledger.
## Taxonomie des substituts
| Famille | Exemple minimal | Ce qu'elle remplace | Limite qui peut rester utile à Inspectrum |
|---|---|---|---|
| Instruction ou skill | `AGENTS.md` / `SKILL.md` demandant une revue fraîche | prompt, rôle, format et étape volontaire | déclenchement et conformité restent probabilistes |
| Sous-agent ou mode reviewer | agent lecture seule, modèle et outils dédiés | contexte frais, spécialisation, attribution basique | schémas et garanties diffèrent par harnais |
| Script ou intégration continue | deux interfaces en ligne de commande + JSON + fichier | fan-out, validation, timeout, journal | maintenance des identités, versions, quotas et erreurs |
| Hook natif | sortie de plan, `Stop`, avant commit ou push | déclenchement déterministe et blocage/réessai | événements et UX non portables |
| Serveur MCP générique | outil `review_plan` ou « council » | invocation typée et portée multi-client | le client peut ne jamais l'appeler ; nouvelle surface de confiance |
| Équipe ou Oracle natif | Claude/Codex/Cline teams, Amp Oracle | parallèle, débat et second fournisseur | coût, contexte et erreurs corrélées |
| SDK d'agents | graphe reviewer → critique → juge | reprise, budgets, tracing et humain dans la boucle | ce sont des primitives, pas une preuve de meilleure décision |
| Contrôle déterministe | tests, schémas, policy-as-code, analyse statique | invariants vérifiables avec faible bruit | ne comprend pas l'intention métier |
| Produit de pull request | bot natif ou spécialiste | installation, inline, historique et workflow d'équipe | bruit, confidentialité, coût par push |
L'alternative de référence n'est donc pas « ne rien faire ». C'est :
```text
skill portable
→ hook natif
→ deux appels headless indépendants
→ schéma JSON + délai + artefacts
→ validation humaine
```
Cette pile est inspectable, utilise des abonnements existants et évite une
nouvelle dépendance. Son coût initial est faible ; sa maintenance sur 90 jours
est moyenne. Inspectrum doit battre ce témoin, pas une copie manuelle naïve.
## Harnais de codage : matrice de substitution
Les cellules décrivent les capacités documentées au 30 juillet 2026.
| Harnais | Instructions / skills | Reviewer ou équipe | Hook / politique | Headless / contrat | Menace principale |
|---|---|---|---|---|---|
| [Claude Code](https://code.claude.com/docs/en/features-overview) | `CLAUDE.md`, rules, skills, plugins | sous-agents, teams, `/review`, `/code-review`, `/ultrareview` | hooks bloquants, événements agent et outils | print + JSON Schema, coût/usage | peut emballer presque tout le flux dans un plugin natif |
| [Codex](https://learn.chatgpt.com/docs/agent-configuration/subagents) | `AGENTS.md`, skills, plugins | sous-agents natifs, `/review`, revue GitHub | hooks, permissions, sandbox | exécution non interactive et sortie structurée | revue locale de working tree/base/commit déjà native |
| [Gemini CLI](https://geminicli.com/docs/hooks/reference/) | `GEMINI.md`, `AGENTS.md`, extensions, skills | sous-agents en préversion | hooks JSON et policy engine | headless / JSON | `AfterAgent` peut refuser une sortie et relancer |
| [OpenCode](https://opencode.ai/docs/agents) | rules, commands, skills | agent reviewer lecture seule | permissions ordonnées et plugins | oui | recette reviewer déjà documentée |
| [Cursor](https://docs.cursor.com/en/cli/using) | `.cursor/rules`, `AGENTS.md` | modes, agents en arrière-plan, Bugbot | guardrails ; hooks moins complets dans les sources | print JSON, mais accès en écriture à surveiller | possède éditeur, contexte et revue avant push |
| [GitHub Copilot](https://docs.github.com/en/copilot/concepts/agents/code-review) | instructions, `AGENTS.md`, skills multi-chemins | agent code review natif | hooks CLI/cloud | GitHub Actions, IDE et CLI | distribution GitHub et revue automatique |
| [Aider](https://aider.chat/docs/usage/modes.html) | conventions et contexte manuel | architect + editor | lint/test/git | scriptable | le pair planning/exécution existe depuis longtemps |
| [Continue](https://docs.continue.dev/cli/headless-mode) | rules et prompts | séparation de modes | politiques par outil | CLI headless ; recette hook Git | `git diff | reviewer` est déjà documenté |
| [Cline](https://docs.cline.bot/features/subagents) | rules, `AGENTS.md`, skills | sous-agents et teams CLI | huit types de hooks | JSON et coûts enfants | contrôle de coût/lecture seule déjà visible |
| [Roo Code](https://docs.roocode.com/features/boomerang-tasks) | règles par mode | Orchestrator / Boomerang | groupes d'outils et approbations | partiel | summaries perdent une partie de la preuve |
| [Kilo Code](https://kilo.ai/docs/customize/custom-subagents) | rules et skills | reviewer spécialisé, PR review | permissions et sandbox | oui | reviewer à modèle/étapes/permissions configurables |
| [goose](https://block.github.io/goose/) | skills et recettes YAML | sous-agents, adversary reviewer | permissions et sandbox | recettes CI et API | offre déjà un reviewer modèle-neutre |
| [Amp](https://ampcode.com/manual) | `AGENTS.md` et règles | review agent et Oracle cross-vendor | permissions SDK | CLI/plugin API | exemple direct d'avis cross-vendor ; le rend lent/cher et optionnel |
| [OpenHands](https://docs.openhands.dev/openhands/usage/cli/command-reference) | repository skills | composition SDK | sandbox, approbations, sécurité | JSONL | orchestration ouverte, plus lourde à installer |
| [Windsurf](https://docs.windsurf.com/de/windsurf/cascade/hooks) | rules et `AGENTS.md` | modes Cascade | hooks système/utilisateur/workspace | partiel | ajoute blocage et audit d'appels MCP |
| [Warp](https://docs.warp.dev/agent-platform/capabilities/rules) | reconnaît huit formats de règles | plateforme agent | rules/policies | oui | étend la convergence des formats, pas une nouvelle catégorie |
Lecture : la capacité est banalisée. La différence possible se déplace vers la
qualité mesurée, la politique de panne portable et l'historique de décisions.
## Orchestration : « plusieurs agents + juge » n'est pas un moat
### Le bon « Hermes »
Le projet pertinent est
[NousResearch/Hermes Agent](https://github.com/NousResearch/hermes-agent/blob/main/AGENTS.md),
observé en release `v2026.7.20`, et non le modèle Hermes 3 ni d'autres
homonymes. Hermes Agent expose délégation isolée, concurrence et profondeur
bornées, plusieurs fournisseurs, mixture-of-agents, skills et MCP
[OD-HERMES-001 à 003]. Il remplace directement un « comité de reviewers »
configurable pour ses utilisateurs.
### SDK et frameworks
| Famille | Produits observés | Primitives déjà disponibles | Conséquence |
|---|---|---|---|
| SDK fournisseurs | [Claude Agent SDK](https://code.claude.com/docs/en/agent-sdk/overview), [OpenAI Agents SDK](https://openai.github.io/openai-agents-python/multi_agent/) | sous-agents, hooks, MCP, sorties typées, handoffs, agents-outils, guardrails, sessions, tracing et parallèle | une boucle reviewers + juge tient dans peu de code |
| Microsoft | [Agent Framework](https://learn.microsoft.com/en-us/agent-framework/overview/), AutoGen, Semantic Kernel | graphes typés, checkpoints, approbations, sessions, group chat, Magentic | la garantie opérationnelle générique devient bibliothèque |
| Graphes / workflows | [LangGraph](https://langchain-ai.github.io/langgraph/concepts/multi_agent/), [Mastra](https://mastra.ai/ai-workflows), [Pydantic AI](https://pydantic.dev/docs/ai/guides/multi-agent-applications/) | parallèle, branche, boucle, reprise, interruptions, idempotence, durable execution | Inspectrum ne possède pas ces primitives |
| Équipes | [CrewAI](https://docs.crewai.com/), [CAMEL](https://docs.camel-ai.org/key_modules/workforce), [Agno](https://docs.agno.com/teams/overview), [smolagents](https://huggingface.co/docs/smolagents/main/en/tutorials/building_good_agents) | crews/workforces, sorties structurées, humain, mémoire et métriques | un comité est une configuration |
| Plateformes cloud | [Google ADK](https://adk.dev/workflows/), [Strands/harness-sdk](https://strandsagents.com/docs/user-guide/concepts/multi-agent/graph/) | séquence, boucle, parallèle, A2A, délais, statuts, traces et évaluations | copie rapide par fournisseurs majeurs |
| Sociétés logicielles | [MetaGPT](https://github.com/FoundationAgents/MetaGPT), [ChatDev](https://github.com/OpenBMB/ChatDev) | rôles spécialisés et procédures de développement | le récit « agents qui discutent » est ancien et reproductible |
Le prototype [llm-council](https://github.com/karpathy/llm-council) suffit à
montrer la barrière technique : plusieurs avis via OpenRouter, classement
anonymisé et « président » dans une application locale. Son statut de
prototype non maintenu ne crée pas un moat pour le concept.
## Produits de revue : marché saturé
### Spécialistes
| Produit | Surface / garantie | Prix public observé | Menace pour Inspectrum |
|---|---|---:|---|
| [CodeRabbit](https://docs.coderabbit.ai/management/plans) | PR incrémentale, règles, sévérité, fixes, multi-dépôt, MCP | 24–30 $/développeur/mois Pro | large distribution et apprentissage ; bruit mesuré |
| [Qodo / PR-Agent](https://docs.qodo.ai/code-review) | agents spécialisés + juge, multi-forge, BYOK/entreprise | crédits ; montant simple non trouvé | architecture presque identique à « reviewers + juge » |
| [Greptile](https://www.greptile.com/docs/introduction) | graphe de dépôt, P0–P2, apprentissage, fixes | 30 $/développeur actif + dépassement | contexte et apprentissage, mais coût par revue |
| [Graphite Agent](https://graphite.com/docs/billing-plans) | revue dans stacked PR, règles, métriques d'acceptation | 20–40 $/siège/mois | avantage de distribution du workflow |
| [Bito](https://docs.bito.ai/help/billing-and-plans/overview) | Git/IDE/CLI, incrémental, plusieurs forges, self-hosted | 12–25 $/siège/mois | offre large à bas prix |
| [Sourcery](https://docs.sourcery.ai/Code-Review/Code-Reviews-on-Pull-Requests/Overview/) | PR/MR, IDE, règles, sécurité, interaction | prix privé exact non trouvé | promet une revue de collègue, admet ne pas encore l'égaler |
| [Cubic](https://www.cubic.dev/pricing-plans) | PR, CLI, agents personnalisés, wiki | 30–40 $/développeur/mois dans la source relevée | vend déjà le « faible bruit » |
| [Korbit](https://www.korbit.ai/index.html) | multi-forge, règles supérieures, on-prem | 12–15 $/utilisateur/mois dans la source relevée | pression prix forte |
| [Ellipsis](https://www.ellipsis.dev/pricing) | agents définis au dépôt, budgets, BYOK/private cloud | exemple vendeur ≈ 0,74 $/revue | orchestration programmable et budgétable |
| [Kodus](https://kodus.io/pricing/) | open source, hosted/self-hosted, BYOK, mémoire/MCP | 10 $/développeur + jetons | portabilité et BYOK déjà peu chers |
### Revue native
| Plateforme | Surface actuelle | Menace |
|---|---|---|
| Claude Code | revue locale, plugin quatre agents, ultrareview cloud, revue PR managée | très forte ; parallèle, vérification, budgets et check run natifs |
| OpenAI Codex | working tree, base, commit, GitHub `@codex review` et automatique | couvre exactement la revue de commit envisagée |
| GitHub Copilot | GitHub, CLI, mobile, IDE, automatique, effort, skills/MCP | distribution dominante ; modèle interne non exposé |
| Cursor Bugbot | GitHub/GitLab, `/review` avant push, règles et MCP | possède l'activation dans l'éditeur |
| GitLab Duo | merge request, CI, contexte projet, modèle sélectionnable, self-managed | prix annoncé de 0,25 $/revue et intégration native |
| Amazon Q | `/q review`, GitHub et IDE, règles et fixes | forte pour les clients AWS |
### Hybrides déterministes + IA
[Snyk/DeepCode](https://docs.snyk.io/scan-with-snyk/snyk-code),
[DeepSource](https://deepsource.com/),
[Sonar Review](https://docs.sonarsource.com/sonarqube-cloud/ai-capabilities)
et [Codacy](https://docs.codacy.com/codacy-ai/codacy-ai/)
combinent règles, analyse de flux, portes de branche et génération. Pour
sécurité, conformité et conventions explicites, leur échec est plus
interprétable qu'un vote de modèles.
## Ce que la recherche scientifique autorise à dire
### Résultats favorables, limités
- ReConcile rapporte jusqu'à `+11,4` points sur sept benchmarks et attribue une
partie du gain à la diversité [OD-RES-001].
- Mixture-of-Agents rapporte `65,1 %` contre `57,5 %` pour GPT-4 Omni sur
AlpacaEval 2.0 ; l'hétérogénéité bat des échantillons répétés dans son
ablation [OD-RES-002].
- PairCoder rapporte `91,0 % pass@1`, jusqu'à `+20,3` points et `40–70 %` de
tokens en moins que ses baselines multi-agents, mais seulement sur HumanEval,
pas sur un dépôt réel [OD-RES-016].
### Résultats qui réfutent un bénéfice général
- Une étude Nature Machine Intelligence du 24 juillet 2026 trouve, sur six
benchmarks et cinq architectures, un effet de `+80,8 %` à `-70,0 %` selon
tâche/topologie, **0,0 % de gain agrégé moyen**, une légère dégradation sur
SWE-bench et une saturation avec un agent fort. Son exploration de
modèles hétérogènes reste préliminaire ; ce n'est pas une étude de revue de
plan [OD-RES-004].
- MAST trouve `41 %` à `86,7 %` de traces multi-agents en échec selon les
systèmes et tâches [OD-RES-005].
- Le débat n'aide que si le critique classe mieux que le juge et si le juge
vérifie ses affirmations ; un seul tour réponse → critique → juge capture
l'essentiel du gain [OD-RES-006].
- Sur des tâches de natural-language inference et RewardBench — pas de revue de
code — neuf juges de sept familles représentent environ deux votes
indépendants ; le meilleur juge seul égale ou bat le panel [OD-RES-008].
- Même entre fournisseurs, les erreurs sont corrélées sur un corpus de
classements généralistes : parmi plus de 350 modèles, deux modèles qui se
trompent donnent la même mauvaise réponse 60 % du temps. Ce chiffre est
propre au dataset et ne mesure pas la revue de plan [OD-RES-009].
- La critique mono-modèle avec outils externes est un témoin sérieux. Tests,
compilateurs, analyse statique et localisation d'erreur passent avant le
nombre de logos [OD-RES-010 à 013].
Conclusion : **l'accord n'est pas une preuve, le désaccord n'est pas
automatiquement utile, et le juge est un risque**. Le produit doit conserver
les opinions et preuves séparées, puis mesurer l'erreur marginale. Le juge peut
éditer une synthèse ; il ne doit pas masquer la minorité ni simuler un vote
indépendant.
## Demande, vécu et volonté de payer
### Douleur crédible
Plusieurs communautés décrivent le même déplacement de coût : le code se
génère vite, mais un reviewer senior doit reconstruire intention et contexte.
Une anecdote estime `30–40 %` de temps économisé quand l'IA pré-trie avant
revue humaine [RMD-051] ; une autre décrit une fuite de confidentialité rare
détectée par CodeRabbit après qu'un reviewer humain a manqué l'interaction
[RMD-064]. Ce sont des tâches à accomplir plausibles, pas une mesure de marché.
### Bruit mesuré
- L'étude CodeRabbit sur `31 073` paires de revue/retour observe `56,3 %` de
rejets et `36,4 %` d'acceptations ; faux positifs, redondance et hors-périmètre
dominent [RMD-045].
- SWE-PRBench plafonne le meilleur système étudié à `31 %` de détection, avec
`0,193–0,417` de faux positifs ; davantage de contexte plat dégrade les huit
modèles du protocole [RMD-046].
- Les communautés répètent les mêmes mécanismes : nouvelle vague de findings
après correction, contexte ignoré, sévérité erronée, plusieurs cycles de
triage et alertes progressivement ignorées [RMD-050, 053–055, 060, 065].
Le bon objectif n'est pas le nombre de commentaires, mais les **défauts majeurs
confirmés uniques par minute de triage humain**.
### Paiement et quotas
Les prix montrent une catégorie financée, mais pas une volonté de payer pour
Inspectrum. Les anecdotes acceptent 15–25 $ pour authentification, paiement ou
données à haut risque ; elles refusent souvent un abonnement supplémentaire
quand Codex, Claude ou Copilot est déjà payé [RMD-050, 057–059]. Le coût par
push de Bugbot peut rendre la revue continue prohibitive [RMD-056].
Hypothèse de paiement : une équipe paiera pour un risque ou du temps senior
évité, pas pour « deux modèles ont parlé ». Elle doit être testée par pilote,
jamais inférée des tarifs concurrents.
### Confidentialité
« Local » décrit l'orchestrateur et le journal, pas le transit. Le plan ou le
code quitte la machine vers chaque reviewer cloud. CodeRabbit documente un
partage avec OpenAI/Anthropic ; Bito clone puis transmet du contexte ; Claude
Code Review managé est indisponible en Zero Data Retention ; plusieurs outils
proposent opt-out, BYOK ou moteur local [RMD-003, 014, 020, 028, 032].
Une promesse honnête doit séparer :
1. stockage du journal ;
2. transit du contenu ;
3. rétention et entraînement par fournisseur ;
4. possibilité de routage local ;
5. multiplication du périmètre avec chaque reviewer.
## Coût de substitution et garanties
| Garantie | Skill seul | Hook + script | SDK / produit spécialisé | Inspectrum aujourd'hui | Différentiel non prouvé |
|---|---|---|---|---|---|
| déclenchement | volontaire/probabiliste | déterministe par hôte | déterministe | déterministe sur `ExitPlanMode` Claude | portabilité réelle entre hôtes |
| contrat de sortie | convention | JSON possible | typé courant | Zod + structured MCP | stabilité sémantique et migrations |
| attribution | faible | complète si journalisée | agents/traces | reviewer attribué | modèle/version/effort au niveau du finding |
| trace | chat/fichier | artefact complet | tracing/checkpoints | session Markdown locale | replay, disposition humaine et historique calibré |
| échec | implicite | à coder | retries/branches | fail-open du gate | politique adaptée au risque et état partiel normalisé |
| budget | prompt | délai/coût/process | limites natives | timeout et tours | escalade adaptative à valeur marginale mesurée |
| reproductibilité | faible | moyenne | moyenne | hash/cache partiels | variance et fixtures réalistes versionnées |
| humain | manuel | explicite | interruptions/checks | approbation finale conservée | présentation qui réduit le temps de décision |
Le produit actuel combine utilement plusieurs cases. Mais chaque case est
copiable ; seule leur performance historique, mesurée sur des cas réels, peut
devenir coûteuse à reproduire.
Aucune source du ledger ne prouve qu'un système unique réunit déjà ces
garanties sur plusieurs harnais, ni qu'Inspectrum les exécute mieux. La
« garantie portable » est donc une **hypothèse intégrée à tester**, construite à
partir de primitives disponibles séparément — pas un différentiel actuel
validé.
## Risques de substitution à 12 et 24 mois
### Prévision à 12 mois — juillet 2027
**Inférences, confiance moyenne à forte :**
- skills et instructions multi-clients convergent davantage ; la copie du
workflow devient moins chère ;
- hooks, sorties typées, sous-agents et revues de diff/PR deviennent standards
dans les grands harnais ;
- OpenAI, Anthropic, GitHub, Cursor et GitLab ajoutent budgets, provenance et
filtres anti-bruit à leurs revues ;
- les SDK absorbent reprise, approbation et observabilité ; aucune valeur
durable dans un graphe reviewer/juge ;
- les seconds avis cross-vendor restent optionnels et activés par risque, comme
l'Oracle d'Amp, car coût et latence empêchent un déclenchement universel ;
- MCP/A2A améliorent la portabilité mais élargissent les risques de confiance et
de supply chain.
Fonctions copiables rapidement : nouveau backend, juge, agents parallèles,
sortie JSON, timeout, hook, résumé, stockage Markdown et plugin.
Actifs encore plausiblement défendables : corpus de défauts confirmés,
calibration par modèle/version/tâche, mesure de corrélation, historique de
disposition humaine et routage coût/qualité basé sur ces données.
### Prévision à 24 mois — juillet 2028
**Inférences, confiance moyenne :**
- le « plan » discret peut reculer face aux agents continus et aux exécutions
longues ; un produit lié uniquement à `ExitPlanMode` risque l'obsolescence ;
- la frontière durable se déplace du nom de l'artefact vers un **point de
décision risqué** : avant migration, mutation de données, déploiement,
paiement, authentification ou merge ;
- les plateformes natives peuvent copier provenance, budget et replay ; elles
possèdent l'UX et la distribution ;
- une couche indépendante ne survit que si elle prouve une calibration
inter-fournisseurs supérieure, une politique commune multi-harnais ou un
dossier de conformité/audit que les plateformes ne veulent pas partager ;
- sans données et usage récurrent, Inspectrum devient au mieux une petite
utilité open source ; sans gain net mesuré, il doit être maintenu en mode
minimal ou arrêté.
## Comparaison avec la roadmap héritée
Cette section est un constat historique sur la roadmap antérieure ; elle
n'autorise aucun travail. Les décisions actives vivent uniquement dans la
[thèse](moat-thesis.md), la
[roadmap d'exécution](outcome-moat-roadmap-post-0.2.2.md) et le
[protocole de preuve](evidence-protocol-post-0.2.2.md).
La roadmap locale observée sur
`chore/growth-combined-validation` au commit `2f1561b` choisissait déjà la revue
de plan Claude→Codex, puis proposait résilience, changements, gates locaux et
pull requests. Elle avait correctement identifié l'attribution, le fail-open,
le fallback et la validation humaine.
Cette recherche modifie trois décisions :
1. **Le créneau plan n'est plus présumé valide.** Il doit battre le témoin
skill + hook + un modèle fort avec outils, à budget égal.
2. **La revue de code/commit/PR n'est plus la suite automatique.** Codex couvre
le commit ; Claude/Copilot/Cursor/GitLab et les spécialistes dominent les PR.
3. **Le moat n'est pas l'arbitrage multi-fournisseur.** C'est, au mieux, la
donnée de calibration et l'assurance mesurée accumulée à travers versions et
harnais.
Le travail de distribution 0.2.2 reste séparé et n'est ni modifié ni
cherry-pické. Cette contre-analyse porte uniquement sur l'après-publication.
## Signaux historiques repris par les décisions actives
Cette synthèse est explicative, pas normative. Les seuils et horloges vivent
uniquement dans le
[protocole de preuve](evidence-protocol-post-0.2.2.md) ; les règles de
portefeuille vivent uniquement dans la
[roadmap d'exécution](outcome-moat-roadmap-post-0.2.2.md).
Les signaux de risque identifiés par la recherche sont :
- un harnais majeur fournit une revue de plan cross-vendor native avec preuve,
budget et humain final ;
- le second fournisseur n'ajoute pas de défauts majeurs confirmés à budget égal
face à un modèle fort + outils ;
- la réutilisation parmi les utilisateurs réellement réexposés échoue à la
porte P3 ;
- le temps de triage ajouté dépasse le rework évité ;
- le plan cesse d'être une étape distincte dans les usages cibles ;
- un substitut de moins de 100 lignes produit une utilité statistiquement
indistinguable.
Ces critères ont rendu la suite falsifiable. Le créneau actif et l'expérience
la moins coûteuse pour le réfuter sont maintenant définis dans les trois
documents de décision liés ci-dessus.
# Protocole de preuve post-0.2.2
État : protocole expérimental défini le 30 juillet 2026, état contrôlé le
1er août 2026. **Aucune porte P1, P2 ou P3 n'a encore réussi ; le gain net de
fiabilité inter-fournisseurs et le moat fondé sur les preuves restent non
prouvés.** Ce document contient uniquement
les trois portes qui autorisent ou arrêtent les investissements fondés sur un
gain inter-fournisseurs. La
[roadmap d'exécution](outcome-moat-roadmap-post-0.2.2.md) reste l'unique source
pour le produit, le calendrier et la croissance.
Le positionnement public et les travaux à faible regret de la Phase B peuvent
avancer sans attendre ces portes. P1 et P2 utilisent une baseline 0.2.2 figée
et versionnée. P3 mesure le build de Phase B publié, puis figé et versionné
avant le premier utilisateur. Une capacité développée en parallèle n'entre pas
silencieusement dans un bras mesuré.
L'horloge commence à l'ouverture écrite de la Phase C. Le premier passage P1 à
P3 tient dans 18 semaines. Une seule reprise par porte est autorisée et le
protocole entier s'arrête au plus tard à 26 semaines. Au-delà, la décision est
`STOP` ou `MAINTENANCE`, jamais une prolongation silencieuse.
## Définitions
- **Cas admissible :** tâche à risque dont l'issue peut être établie par un
test rouge, un rollback, un incident, un correctif causal, un invariant
déterministe ou une adjudication indépendante.
- **Cas apparié :** même paquet de plan, contexte, tests et preuves présenté
aux deux conditions comparées.
- **Cas adjudiqué :** cas dont les constats ont été codés par un reviewer
non-auteur selon la grille pré-enregistrée.
- **Cas publiable :** cas admissible, assaini et partagé avec consentement.
Un cas peut être admissible à l'expérience sans être publiable. Les volumes de
30 à 50 cas en P1, 120 à 150 cas en P2 et 12 utilisateurs en P3 répondent à des
questions différentes ; ils ne s'additionnent pas en un « data moat ».
## P1 : test de décorrélation plan
Objectif : tuer rapidement l'hypothèse « autre fournisseur = angle mort
utile ».
### Jeu de cas
- 30 à 50 plans historiques à issue connue ;
- inclure seulement les plans satisfaisant au moins un déclencheur de risque
pré-enregistré ;
- privilégier migrations, authentification, paiement, données et
compatibilité ;
- conserver original, issue ex post et transformation assainie ;
- inclure des plans corrects pour mesurer les faux positifs ;
- exclure les plans dont l'issue ne peut pas être établie.
Une opinion du créateur du plan ne suffit pas comme vérité terrain.
La préparation peut prendre jusqu'à deux semaines avant les deux jours
d'exécution. Si 30 cas admissibles et adjudicables ne sont pas disponibles, P1
est `STOP`, sans prolongation indéfinie.
Deux évaluateurs sont sélectionnés avant les sorties pour leur expérience du
domaine. Ils déclarent leurs conflits, n'ont écrit ni Inspectrum ni le
protocole et restent aveugles à l'identité du bras. Ils codent indépendamment
au moins 20 % des cas ; accord brut et kappa de Cohen sont publiés.
`κ < 0,60` interdit tout calcul de décision. La seule révision autorisée,
pré-enregistrée avant les sorties, porte sur une catégorie que les deux
évaluateurs ont indépendamment marquée ambiguë ; elle ne change ni seuil ni
sévérité. Le lot entier est alors recodé une fois, avec un nouvel échantillon
double-codé. Si `κ` reste inférieur à 0,60, P1 est `STOP`. Les désaccords
restants au-dessus du seuil vont à un troisième arbitre indépendant.
### Protocole
Un test purement opérationnel, sans cas d'issue ni mesure de qualité, doit
d'abord montrer qu'une configuration atteint la cible de latence P3. Cette
configuration est ensuite pré-enregistrée et ne change plus. Si aucune
configuration ne tient la cible, P1 est `STOP` avant collecte.
1. pré-enregistrer prompts, modèles, versions, effort, budget, classes de
défaut et grille de sévérité ;
2. lancer Claude et Codex séparément, sans voir l'autre sortie ;
3. randomiser l'ordre de présentation aux évaluateurs ;
4. faire normaliser manuellement les constats, indépendamment, par les deux
évaluateurs non-auteurs avec une grille figée ; l'arbitre tranche les
désaccords, sans juge qui vote ni kit de calibration produit ;
5. mesurer recouvrement, erreurs confirmées uniques, faux positifs, minutes de
triage, latence et échecs ;
6. publier méthode et résultats négatifs avec les cas qui peuvent l'être.
Cette porte est directionnelle : elle ne permet pas d'affirmer une précision
universelle.
### Décision
`GO P2` seulement si :
- recouvrement des objections confirmées inférieur ou égal à 70 % ;
- au moins 10 % des cas reçoivent une contribution marginale confirmée ;
- au moins 15 % des défauts utiles sont supplémentaires ;
- les intervalles bootstrap pré-enregistrés à 90 % excluent zéro gain pour ces
deux mesures ;
- faux positifs et triage ne rendent pas l'utilité nette négative.
`STOP` si :
- recouvrement supérieur à 70 % sans utilité marginale ;
- aucun défaut majeur unique confirmé ;
- objections non falsifiables ;
- coût du test supérieur au rework historique plausible.
Si P1 s'arrête, Inspectrum reste une utilité locale de seconde opinion. Les
Phases D et E de la roadmap ne démarrent pas.
## P2 : comparaison à budget égal
Objectif : battre le meilleur substitut raisonnable, pas une absence de revue.
### Porte de faisabilité
P2 ne démarre que lorsque 120 cas admissibles au minimum sont inventoriés,
dédupliqués et auditables. Les sources permises sont :
- cas historiques privés avec consentement du propriétaire ;
- issues, correctifs, pull requests ou post-mortems publics sous licence
compatible ;
- cas contribués volontairement avec droit d'usage explicite.
Les cas utilisés en P1 sont exclus de P2 et du test court qui choisit la
baseline. P2 utilise des sessions fraîches sur un lot distinct pour éviter une
sélection influencée par les résultats du premier test.
La provenance et l'ordre d'éligibilité sont pré-enregistrés pour empêcher la
sélection favorable. Deux évaluateurs non-auteurs et un arbitre de désaccord
sont engagés avant le premier run ; leur rémunération, leurs conflits et leur
disponibilité sont documentés. Aucun travail gratuit n'est supposé.
L'étude P1 à P3 dispose d'une enveloppe ponctuelle distincte du budget de
maintenance et de croissance : au plus 100 heures d'opération, 100 heures
cumulées d'évaluation externe, 10 000 euros de rémunération externe et 1 000
euros de modèles ou d'infrastructure.
Les minutes attendues par cas sont pré-enregistrées. Chaque plafond est un
maximum, pas un budget à consommer ; son épuisement pendant l'étude produit
`STOP`, sans rallonge. Si les cas, les évaluateurs ou le financement ne sont
pas sécurisés dans l'horloge de 18 semaines, la décision est aussi `STOP`, sans
construire d'automatisation pour compenser.
### Deux bras seulement
Sur environ 120 à 150 cas appariés :
- **A, meilleur substitut :** meilleure configuration du même fournisseur
parmi second passage critique, sous-agent en lecture seule avec outils et
tests, ou déclenchement par skill, hook ou intégration continue ;
- **B, Inspectrum :** second passage d'un autre fournisseur sur le même paquet
de preuves figé, avec le skill ou hook 0.2.2 inchangé.
Les deux bras reçoivent le même plan, contexte, sorties de tests et artefacts
déterministes. Aucun ne produit de nouveau test pendant la mesure principale ;
l'effet de tests supplémentaires est mesuré séparément.
« Même budget » signifie, par cas, un plafond pré-enregistré identique de coût
fournisseur équivalent, de contexte et de temps opérateur. La latence murale
reste une mesure. Les quotas d'abonnement reçoivent un prix implicite publié.
La configuration A est choisie avant P2 par un test court sur des cas de
calibration exclus de l'analyse, avec la même grille d'utilité. Une seule
configuration gagnante entre dans les deux bras.
Ces configurations sont des artefacts jetables d'expérience : elles ne sont
ni distribuées ni réutilisées comme produit. Recette, version et résultats
assainis sont archivés pour reproductibilité.
Pas de comité à quatre bras, de débat ou de juge obligatoire. Un troisième
bras exige un calcul de puissance et une nouvelle pré-inscription.
### Mesures
Mesures principales :
- défauts majeurs confirmés uniques ;
- précision utile : constats acceptés et confirmés / constats triés ;
- minutes de triage par constat confirmé ;
- coût marginal par défaut confirmé ;
- rework évité selon une grille pré-enregistrée ;
- taux de runs échoués, partiels ou sautés.
Mesures secondaires :
- accord ou corrélation par classe de tâche ;
- variance entre répétitions ;
- latence p50 et p95 ;
- capacité d'un test ou outil déterministe à remplacer le reviewer.
Le suivi principal dure deux à quatre semaines, puis une fenêtre de maturation
de deux semaines capte correctifs, rollbacks et rework tardifs. Preuves,
prompts, hook, versions et séparation de l'effet des tests sont figés avant le
premier cas.
### Décision
`GO P3` seulement si B produit une utilité nette positive et un gain matériel
pré-enregistré sur A :
- au moins 10 % des cas avec défaut majeur marginal ;
- au moins 15 % de défauts utiles supplémentaires ;
- intervalles bootstrap à 90 % excluant zéro gain ;
- aucune hausse supérieure du triage.
`REVISE` une fois si le protocole découvre un défaut de mesure corrigeable sans
changer la question. Une seconde reprise est interdite.
`STOP` si :
- les intervalles restent compatibles avec aucun gain utile ;
- triage ou latence annule le rework évité ;
- tests ou outils déterministes expliquent le gain ;
- le résultat dépend d'un seul modèle ou disparaît à la version suivante ;
- la baseline skill ou hook est indistinguable.
### Couture P2 vers P3
Avant le premier utilisateur P3, le build publié de Phase B est rejoué sur
l'ensemble du corpus P2 figé. Les modèles, prompts, efforts, délais et entrées
reviewer restent identiques ; seuls l'enveloppe de preuve, les états et la
disposition humaine peuvent différer.
Le replay doit conserver les seuils de gain et d'utilité nette de P2, nommer
exactement chaque état dégradé et mesurer p50/p95. Toute modification de
modèle, prompt, effort ou délai invalide le protocole courant et produit
`STOP`, sans consommer ni créer une reprise. Si la qualité régresse ou si la
latence P3 reste hors seuil, la décision est aussi `STOP`. Aucun réglage n'est
effectué après le gel du build P3.
## P3 : pilote comportemental et commercial
Objectif : vérifier que l'effet mesuré devient un comportement récurrent sans
affaiblir la vigilance humaine.
### Cohorte et parcours
- 12 utilisateurs externes ciblés ;
- gratuit pendant six semaines ;
- autorité et consentement sur les plans utilisés ;
- tâches à haut risque sélectionnées explicitement ;
- support d'installation sans collecte silencieuse ;
- au plus six contacts existants et au moins six recrutements froids, avec
résultats rapportés séparément.
```text
invitation ciblée
-> installation publique
-> doctor
-> première session verte
-> disposition de chaque constat
-> confirmation ex post
-> nouvelle exposition à une tâche risquée
-> deuxième utilisation ou skip explicite
```
### Mesures
Activation :
- au moins 70 % des accompagnés atteignent une session verte ;
- médiane installation vers valeur inférieure à 10 minutes ;
- moins de 20 % d'échecs opérationnels.
Usage :
- au moins huit utilisateurs sont réexposés à une tâche à risque ;
- au moins 50 % des réexposés réutilisent le checkpoint sous six semaines et
la borne basse unilatérale de Wilson à 80 % reste au moins à 20 % ;
- le skip volontaire est suivi ;
- p50 inférieur ou égal à 45 secondes et p95 inférieur ou égal à 120 secondes.
Vigilance :
- demander une décision de risque avant la revue ;
- ne jamais afficher un vert sans preuve et statut complet ;
- comparer temps et justification d'approbation avant et après ;
- faire coder les décisions par un tiers non impliqué, aveugle au bras lorsque
les traces le permettent ;
- arrêter si, dans au moins deux cas confirmés ou 10 % des cas observables, le
vert accélère l'acceptation sans vérification ou augmente la confiance alors
que l'exactitude baisse.
Valeur :
- défauts majeurs confirmés uniques ;
- rework évité avec preuve ex post ;
- minutes de triage ;
- cas exportés volontairement.
Paiement :
- après trois usages ou à la sixième semaine, présenter une offre réelle ;
- prix exploratoire de 10 à 20 euros par mois ou pilote équipe payé ;
- servir l'offre manuellement avec la baseline gelée, sans automatisation
nouvelle, et rembourser si la garantie annoncée n'est pas tenue ;
- le paiement pour une seconde opinion générique valide seulement cette
utilité, pas le moat de confiance ;
- comparer à prix égal seconde opinion générique et garantie inter-fournisseurs
avec provenance, échec visible, cas adjudiqués et calibration publique.
### Décision
`GO` vers les Phases D et E seulement si qualité, comportement et vigilance
passent.
`REVISE` une fois si moins de huit utilisateurs sont réexposés à la sixième
semaine.
`STOP PRODUIT` si :
- récurrence inférieure à 20 % sur au moins huit réexposés ;
- fausse confiance au seuil défini ;
- activation inférieure à 40 %.
La décision commerciale est indépendante :
- `OFFRE PAYANTE` seulement si au moins cinq personnes ont réellement accepté
de payer et au moins trois préfèrent la garantie inter-fournisseurs ;
- `OPEN SOURCE` si ce seuil manque : aucune offre payante ni automatisation
commerciale, sans annuler un éventuel `GO` produit ;
- un pilote équipe isolé ne suffit pas sans cinq décisions payantes
individuelles.
## Tableau go/no-go complet
| Signal | Go | Revise | Stop ou maintenance |
|---|---|---|---|
| version publique | alignée, parcours réel vert | blocage d'activation corrigeable | dérive ou échec silencieux |
| décorrélation | ≤70 % + deux seuils marginaux + intervalles >0 | protocole ambigu | >70 % sans gain ou un seuil absent |
| qualité face à la baseline | gain pré-enregistré, utilité nette positive | mesure corrigeable une fois | indistinguable ou négative |
| activation | ≥70 %, <10 min | 40 à 69 % | <40 % ou >20 min |
| récurrence exposée | ≥50 %, n≥8, borne Wilson ≥20 % | n<8 ou signal incertain | <20 % avec n≥8 |
| vigilance | stable ou améliorée | signal ambigu | fausse confiance |
| latence | p50 ≤45 s, p95 ≤120 s | défaut de mesure corrigeable avant le gel | cible manquée après le gel |
| paiement et garantie | offre payante si ≥5 payants dont ≥3 préfèrent la garantie | paiement générique ou pilote seul | aucune offre payante ; maintien open source |

Sorry, the diff of this file is too big to display

# Boucle de croissance GitHub d'Inspectrum
État : plan post-publication 0.2.2, mis à jour le 1er août 2026. Les chiffres
sont des instantanés datés, pas des preuves de qualité, de fiabilité ou de moat.
## Point de départ
| Signal | Valeur observée | Lecture |
|---|---:|---|
| étoiles GitHub | 2 | découverte presque inexistante |
| visiteurs uniques sur 14 jours | 9 | trop peu pour mesurer une conversion |
| cloneurs uniques sur 14 jours | 8 | signal faible, mais plus proche de l'essai |
| référents GitHub visibles | 0 | aucun canal organique identifié |
| téléchargements npm sur 30 jours | 430 | concentrés autour des releases, donc non assimilables à des utilisateurs |
| téléchargements de l'actif MCPB 0.2.1 | 7 | usage Desktop encore marginal |
Sources :
- <https://github.com/yannmenec/inspectrum>
- <https://api.npmjs.org/downloads/range/last-month/inspectrum>
- API de trafic GitHub du dépôt, visible par son propriétaire.
Ordres de grandeur concurrents observés le même jour : PR-Agent dépasse
12 000 étoiles, Roo Code 24 000, Aider 47 000, Cline 65 000, OpenHands 82 000,
OpenCode 191 000 et Hermes Agent 222 000. Ces nombres mesurent surtout leur
distribution ; l'avantage produit d'Inspectrum reste à démontrer.
## Rôle des étoiles
Une étoile GitHub signifie : « je veux retrouver, suivre ou soutenir ce
projet ». Elle ne prouve ni installation, ni activation, ni rétention.
La hiérarchie des mesures est :
1. checkpoint à risque avec statut exact et décision humaine ;
2. installation externe réussie ;
3. cas, retour ou contribution externe ;
4. étoile GitHub ;
5. impression, vue ou téléchargement brut.
Une campagne est saine seulement si les niveaux 1 à 3 progressent avec les
étoiles.
## Boucle composée
```text
tâche réelle à risque
→ checkpoint Inspectrum
→ preuve ou échec visible
→ cas assaini et consentant
→ benchmark / comparaison / démonstration
→ découverte GitHub
→ étoile qualifiée
→ installation
→ nouvelle tâche réelle à risque
```
La boucle peut produire simultanément distribution et actif candidat. Un
article sans cas réel crée une pointe de trafic ; un cas confirmé peut aussi
enrichir la calibration. Aucun de ces effets n'est encore prouvé.
## Ce qui mérite une étoile
La page d'accueil doit répondre, dans cet ordre :
1. quel risque est évité ;
2. quand Inspectrum intervient ;
3. pourquoi un skill seul peut être insuffisant ;
4. ce qui se passe si la revue échoue ;
5. quelle donnée quitte la machine ;
6. comment obtenir une première preuve en moins de 10 minutes ;
7. quel cas réel confirme ou réfute la valeur.
Actifs nécessaires :
- démonstration réelle de 60 à 90 secondes ;
- schéma animé ou capture du checkpoint ;
- cas positif, résultat nul et panne visible ;
- comparaison honnête avec skill/hook, Amp Oracle et revue native ;
- commande d'installation copiée une seule fois ;
- exemple de session lisible sans installer ;
- badges limités à version, tests, couverture, sécurité et licence ;
- `CONTRIBUTING.md` avec une contribution de moins de 30 minutes.
## Jalons
| Horizon | Repère de distribution | Preuve qui doit accompagner les étoiles |
|---|---:|---|
| 14 jours | 15 étoiles | 5 installations externes, 3 retours distincts |
| 30 jours | 25 | 10 installations, 3 cas ou issues utiles |
| 90 jours | 100 | 25 activations, 10 cas, 3 contributeurs externes |
| 6 mois | 250 | 50 activations, 30 cas, 5 contributeurs |
| 12 mois | 500 | 100 activations, résultat du protocole publié, 10 contributeurs |
Ces repères dimensionnent seulement le budget de distribution à partir d'une
base trop faible pour établir une prévision. Aucune cible d'étoiles n'est un
critère de sortie d'une phase produit. Elle n'autorise ni spam, ni achat, ni
concours sans rapport avec le produit.
## Séquence de lancement
### État public au 1er août 2026
- npm 0.2.2 et la release GitHub sont disponibles ;
- le MCP Registry et Glama référencent Inspectrum ;
- la soumission Claude Community est en attente ;
- PulseMCP ne référence pas encore Inspectrum ;
- la capture terminal reste une preuve 0.2.1 et ne doit pas être présentée
comme une preuve 0.2.2.
### J0 à J2
- vérifier `doctor` et un checkpoint depuis un environnement vide avec la
version npm publique ;
- enregistrer une démonstration réelle ;
- publier la note de release centrée sur l'outcome ;
- mettre à jour description, aperçu social, sujets GitHub et README.
### J3 à J7
- soumettre aux catalogues MCP et Claude déjà préparés ;
- publier un cas réel assaini avec méthode, coût et limite ;
- contacter directement 10 à 20 mainteneurs concernés par migrations,
authentification, paiement ou données, sans message de masse ;
- demander un essai ou un cas, jamais une étoile isolée ;
- répondre à chaque problème d'installation le jour même.
### Semaines 2 à 4
- publier le résultat nul et l'échec visible ;
- proposer une comparaison reproductible avec un skill de moins de 100 lignes ;
- contribuer un guide aux communautés Claude Code, Codex et MCP ;
- candidater aux listes « awesome » pertinentes après validation publique ;
- transformer les questions répétées en documentation, pas en réponses privées.
### Mois 2 à 3
- publier le premier rapport de calibration ;
- lancer une issue « good first case » ;
- inviter des mainteneurs externes à contester le protocole ;
- publier les corrections et résultats négatifs aussi vite que les succès ;
- refaire un lancement seulement pour un nouvel actif de preuve, pas pour une
hausse mineure de version.
## Canaux
Priorité :
1. marketplace Claude Code, npm et registre MCP ;
2. README, release GitHub et cas reproductibles ;
3. communautés Claude Code, Codex, MCP et sécurité logicielle ;
4. Reddit, Hacker News et YouTube lorsque le cas est démontrable ;
5. listes « awesome », newsletters et mainteneurs d'outils ;
6. comparaisons recherchées : skill, hook, Oracle, revue native.
Chaque publication pointe vers un artefact précis. Aucun message générique
« découvrez mon outil ».
## Cadence soutenable
Budget normal : deux heures par semaine, hors semaine de release.
La fenêtre de lancement J0 à J14 dispose d'un budget exceptionnel maximal de
huit heures de distribution au total, puis revient au budget normal. Les
corrections produit de Phase A ont leur propre estimation et ne sont jamais
masquées dans ce budget. L'étude P1 à P3 possède l'enveloppe ponctuelle définie
dans le [protocole de preuve](evidence-protocol-post-0.2.2.md) ; aucune cible de
croissance ne suppose une adjudication gratuite.
- une preuve ou amélioration documentaire toutes les deux semaines ;
- un rapport de calibration par trimestre ;
- une seule démonstration maintenue ;
- une seule page de comparaison par alternative réellement rencontrée ;
- triage des issues deux fois par semaine ;
- aucune présence quotidienne obligatoire sur les réseaux ;
- automatiser collecte de métriques, contrôle de liens et génération des
tableaux datés.
Le plafond de deux jours par mois dans la roadmap concerne la maintenance du
produit. Si la croissance dépasse son propre budget de deux heures par semaine
pendant deux mois, couper le canal ou l'actif le moins corrélé aux
installations.
## Tableau de bord minimal
Enregistrer chaque semaine :
- nouvelles étoiles, forks et contributeurs ;
- visiteurs et cloneurs uniques ;
- téléchargements npm et actifs de release, avec anomalies de CI séparées ;
- installations externes confirmées ;
- `doctor` verts rapportés ;
- cas soumis, acceptés, refusés et publiables ;
- temps médian vers la première valeur ;
- issues d'installation ouvertes et résolues ;
- provenance des visites lorsque GitHub la fournit.
Un CSV daté suffit. Pas de produit analytique ni de télémétrie embarquée.
Ratios utiles :
- étoiles / visiteurs uniques ;
- installations confirmées / cloneurs uniques ;
- cas utiles / installations confirmées ;
- contributeurs externes / étoiles ;
- étoiles accompagnées d'une activation / nouvelles étoiles.
Les ratios restent directionnels sur les petits volumes.
## Interdits
- acheter, échanger ou automatiser des étoiles ;
- demander une étoile avant l'essai ;
- concours et cadeaux sans rapport avec un cas produit ;
- messages privés de masse ;
- cacher les faux positifs, pannes ou résultats nuls ;
- gonfler les téléchargements npm par automatisation ;
- ajouter une intégration uniquement pour profiter du nom d'un concurrent ;
- confondre communauté et support gratuit illimité.
## Décisions
- étoiles en hausse, activations stables : corriger onboarding et message ;
- activations en hausse, étoiles faibles : améliorer preuve partageable et
découverte ;
- étoiles seules en hausse : arrêter le canal de curiosité concerné ;
- cas et contributeurs en hausse : investir dans le protocole et les outils de
contribution ;
- aucune installation externe après 30 jours : revenir au wedge et à la
démonstration avant toute fonctionnalité.
# Thèse de créneau et d'avantage défendable
État : thèse stratégique post-0.2.2, mise à jour le 1er août 2026 et fondée sur le
[paysage concurrentiel](competitive-landscape-2026-07.md) et son
[registre de 198 sources](evidence/competitive-source-ledger.csv), consultées
le 30 juillet 2026.
## Décision en une phrase
**Créneau principal à tester : un checkpoint d'assurance avant l'exécution
d'une tâche agentique à haut risque, activé aujourd'hui à la sortie du plan,
qui montre les preuves et désaccords d'un reviewer indépendant sans supprimer
la décision humaine.**
Ce créneau utilise l'actif déjà construit sans prétendre que le « plan » ou le
« multi-modèle » est durable. Son avantage actuel est une intégration pratique,
pas un moat. Un avantage potentiel serait une position de tiers neutre et un
historique de calibration : quels reviewers, versions et politiques trouvent
quels défauts confirmés, à quel coût et avec quelle corrélation. À la taille
actuelle, ce n'est pas encore un actif défendable.
## Décision d'exécution du 30 juillet 2026
La publication de 0.2.2 est vérifiée sur npm et GitHub ; le MCP Registry et
Glama exposent aussi Inspectrum. Le positionnement est donc adopté sans
attendre les expériences de gain marginal ou le pilote commercial :
> **Inspectrum est le contrôle pré-vol indépendant avant qu'un agent exécute
> un changement difficile à annuler. Il garde les preuves, désaccords et
> échecs visibles. L'humain décide.**
Cette décision change le positionnement, pas le niveau de preuve. Le moat reste
une cible, jamais une affirmation publique. Au 1er août 2026, aucune porte du
protocole n'a réussi et les expériences n'ont pas prouvé de gain net de
fiabilité. Si elles sont lancées, elles alimenteront le corpus, la calibration
et le routage qui pourraient rendre la cible défendable.
Trois documents transforment cette décision en exécution :
- [roadmap orientée résultats et moat](outcome-moat-roadmap-post-0.2.2.md) ;
- [protocole de preuve et portes d'arrêt](evidence-protocol-post-0.2.2.md) ;
- [boucle de croissance GitHub](github-star-growth-loop.md).
Les travaux à faible regret peuvent commencer après 0.2.2 : positionnement,
activation, contrat de preuve, provenance, états dégradés, disposition humaine,
export assaini. Aucun nouvel adaptateur d'hôte ne démarre avant le `GO` du
protocole. Les extensions pull request, pair programming et débat multi-tours
restent hors portefeuille.
## Contre-thèse la plus forte
Un développeur compétent n'a pas besoin d'Inspectrum. Il peut écrire :
```text
AGENTS.md / SKILL.md
→ hook natif de fin de plan ou Stop
→ un modèle fort avec tests/outils
→ éventuellement un second appel headless
→ JSON + délai + artefacts
→ décision humaine
```
Cette solution demande environ quelques heures pour une revue volontaire et un
à trois jours pour un gate journalisé. Elle utilise les abonnements et les
interfaces déjà installés, évite une nouvelle configuration et s'adapte mieux
au harnais principal. Amp offre déjà un Oracle d'un autre fournisseur ; Claude,
Codex, Copilot, Gemini, Cline et Windsurf offrent les briques de hook, review ou
sous-agent. Les SDK offrent graphes, budgets, reprise et traces.
La recherche ne prouve pas non plus le mécanisme causal vendu par le produit :
- fournisseur différent ne signifie pas erreur indépendante ;
- le meilleur juge seul peut égaler un panel sur des tâches hors revue de code ;
- l'étude multi-agent la plus actuelle trouve 0,0 % de gain agrégé moyen sur
six benchmarks et cinq architectures, avec forte variation ;
- tests et critique mono-modèle outillée peuvent produire le même gain à
moindre coût ;
- la revue de code actuelle souffre déjà de faux positifs et de fatigue.
Conclusion honnête : **l'utilité de réduire le copier-coller est réelle ; le
gain de fiabilité net ne l'est pas encore.** Si l'expérience ne mesure pas ce
gain, Inspectrum doit rester une petite utilité open source ou cesser
d'élargir son produit.
## Utilisateurs et tâches à accomplir
### Segment initial
Développeur indépendant, mainteneur ou petite équipe qui :
- utilise déjà Claude Code et Codex, ou deux harnais de fournisseurs distincts ;
- fait des changements où une erreur de plan entraîne migration ratée,
corruption de données, faille d'authentification, incident de paiement,
rupture de compatibilité ou plusieurs heures de rework ;
- garde une approbation humaine et accepte une latence supplémentaire seulement
sur les tâches à risque ;
- peut partager volontairement un résumé assaini du résultat pour un pilote.
Ce n'est pas le bon produit pour une petite correction évidente, une équipe
mono-harnais satisfaite de sa revue native ou une organisation qui interdit
l'envoi du même contenu à plusieurs fournisseurs.
### Tâche à accomplir principale
> Avant d'autoriser mon agent à exécuter une décision coûteuse à inverser,
> donne-moi un second signal borné, attribué et vérifiable, puis montre-moi
> clairement ce qui a échoué ou divergé pour que je décide vite.
### Tâches secondaires
- conserver une preuve minimale de ce qui a été relu, par quel modèle et à
quelle version ;
- éviter de repayer une revue inchangée ;
- savoir quand la revue n'a pas eu lieu ou n'est que partielle ;
- apprendre quels reviewers valent leur latence sur les tâches réelles du
projet.
## Les cinq surfaces, décidées séparément
### 1. Revue de plan entre modèles — créneau principal expérimental
| Dimension | Décision |
|---|---|
| Douleur | une hypothèse erronée validée avant implémentation peut provoquer un rework disproportionné |
| Alternative native/bricolée | skill + appel headless ; hook `ExitPlanMode`/`Stop` ; sous-agent reviewer ; Amp Oracle |
| Valeur différentielle | activation certaine au bon moment, état d'échec visible, input hashé, preuves/désaccords, attribution, humain final |
| Coût de substitution | <2 h volontaire ; 1–3 jours pour hook + JSON + logs ; maintenance récurrente moyenne |
| Latence/coût | une inférence supplémentaire ; effort maximal observé ici entre 126 et 226 s sur prompts bornés, et deux échecs à 10 min ; produit cible bien plus court |
| Confidentialité | plan transmis à chaque provider cloud ; journal local n'élimine pas le transit |
| Produit minimum désirable | un reviewer indépendant, un tour, activation par risque, sortie « must fix / information / dissent », skip/failure explicite, pas de juge opaque |
| Preuve requise | défauts majeurs confirmés uniques **ex post**, rework évité, triage, latence, coût, vigilance humaine et réutilisation par exposition |
| Dépendances | cas historiques à issue connue, test/rollback/correctif/incident ou adjudication indépendante, capture modèle/version/effort, baseline skill/hook |
| Abandon | échec d'une porte du protocole, fausse confiance ou disparition du plan discret |
Pourquoi principal : le produit et sa distribution existent déjà ; la frontière
avant exécution est claire ; l'expérience peut se faire sans nouvelle
architecture. Pourquoi seulement expérimental : le hook est copiable et la
demande récurrente n'est pas prouvée.
### 2. Revue de changements entre modèles — instrumentation, pas extension produit
| Dimension | Décision |
|---|---|
| Douleur | contexte d'auteur, erreurs inter-fichiers et logique non couverte par tests |
| Alternative native/bricolée | Codex `/review`, Claude `/review`, Copilot/Kilo, `git diff` vers deux CLIs |
| Valeur différentielle | findings ancrés, déduplication, provenance, tests/reproduction, feedback humain |
| Coût de substitution | environ un jour pour script local ; 2–5 jours pour CI robuste |
| Latence/coût/confidentialité | contexte plus large, risque d'exfiltration accru, faux positifs coûteux |
| Produit minimum désirable | fixture locale sans publication : diff exact, statut non validé, accepted/rejected/duplicate/out-of-scope |
| Preuve requise | vérité terrain pour relier une objection de plan à un défaut de changement confirmé |
| Dépendances | changements/bugs historiques, lignes stables, tests et adjudication |
| Abandon | aucun bug unique matériel confirmé, triage net plus long ou substitut simple équivalent |
Cette surface n'est pas une version à construire après le plan. Elle sert
d'instrumentation au protocole : le diff, le test ou le correctif ex post peut
confirmer ou réfuter une objection formulée sur le plan.
### 3. Revue commit et pull request — repousser
| Dimension | Décision |
|---|---|
| Douleur | gate d'équipe, commentaires ancrés, politique de branche et audit |
| Alternative native/bricolée | Codex commit/GitHub, Claude Code Review, Copilot, Bugbot, GitLab Duo, CodeRabbit, Qodo, Greptile, GitHub Action |
| Valeur différentielle | politique inter-fournisseurs et preuve portable, encore hypothétique |
| Coût de substitution | faible pour commit local ; élevé pour application multi-forge fiable |
| Latence/coût/confidentialité | chaque push multiplie facture et bruit ; secrets/identités de forge ; contexte cloud |
| Produit minimum désirable | aucun avant preuve locale ; au plus export d'un dossier de findings acceptés |
| Preuve requise | gain clair face au meilleur natif/spécialiste et demande d'une politique cross-forge |
| Dépendances | distribution forge, identités, permissions, sécurité CI, SLA |
| Abandon | plateforme native offre provenance/budget/désaccord, ou équipe refuse un check de plus |
Le marché est saturé, les plateformes contrôlent l'activation et GitLab annonce
0,25 $ par revue. Inspectrum ne doit pas devenir un bot de pull request
généraliste.
### 4. Pair programming entre modèles — abandon produit
| Dimension | Décision |
|---|---|
| Douleur | séparer planification, exécution et critique |
| Alternative native/bricolée | Aider architect/editor, Amp Oracle, équipes et sous-agents, changement manuel de modèle |
| Valeur différentielle | aucune démontrée ; les harnais possèdent contexte, éditeur et boucle |
| Coût de substitution | nul à quelques heures |
| Latence/coût/confidentialité | tours répétés, contextes dupliqués, plusieurs providers |
| Produit minimum désirable | aucune nouvelle surface ; au plus un seul checkpoint reviewer dans l'expérience plan |
| Preuve requise | temps total de tâche plus court ou moins de rework à budget égal |
| Dépendances | benchmark de dépôt longue durée inexistant |
| Abandon | déjà satisfait : absence de preuve et substitution native immédiate |
PairCoder justifie une expérience bornée auteur → reviewer → tests → révision,
pas un produit de discussion continue.
### 5. Raisonnement, désaccord et discussion — abandon du débat libre
| Dimension | Décision |
|---|---|
| Douleur | hypothèses cachées et confiance excessive |
| Alternative native/bricolée | council, agent team, trois appels réponse/critique/juge |
| Valeur différentielle | conserver la minorité, preuve et arrêt humain ; pas faire « parler » les agents |
| Coût de substitution | <1 jour prototype ; semaines pour calibration fiable |
| Latence/coût/confidentialité | pire surface : plusieurs tours et copies de contexte |
| Produit minimum désirable | comparaison déterministe d'opinions indépendantes en un tour |
| Preuve requise | meilleure décision que reviewers indépendants sans discussion |
| Dépendances | oracle et mesure de corrélation |
| Abandon | consensus augmente confiance sans exactitude ou discussion augmente bruit/latence |
Le juge reste un éditeur optionnel. Il ne compte jamais les reviewers comme des
votes indépendants et ne doit pas effacer le dissent.
## Trois créneaux candidats
| Rang provisoire | Candidat | Utilisateur / activation | Pourquoi maintenant | Menace principale | Décision |
|---:|---|---|---|---|---|
| 1 | checkpoint avant exécution d'une tâche à haut risque | solo/petite équipe ; sortie du plan | produit existant, activation claire, expérience peu coûteuse | hook + skill natif ; plan peut disparaître | **wedge principal à tester** |
| 2 | dossier local de preuves pour diff/commit | mainteneur ; après exécution | seule vérité terrain ancrée disponible pour le plan | revues Codex/Claude natives, bruit PR | **instrumentation du candidat 1, aucun budget produit** |
| 3 | kit de calibration open source pour reviewers | mainteneur de harnais/équipe plateforme ; changement de modèle/version | pourrait matérialiser une neutralité publique | autre utilisateur, demande inconnue, bénéficie aussi aux concurrents | **gelé pendant le pilote** |
Le troisième candidat n'est pas une option active. Créer un framework
d'évaluation sans cas réels serait une architecture sans demande et publierait
la capacité au bénéfice d'acteurs disposant de beaucoup plus de données.
## Moat : présent, potentiel et érosion
### Moat actuel
**Aucun.**
- le MCP, le prompt, le juge, le hook, le stockage Markdown et les backends sont
copiables ;
- la portabilité est un avantage d'acquisition, pas une barrière ;
- le fail-open est une bonne décision de sécurité, pas un moat ;
- la marque et les catalogues peuvent aider la découverte, pas empêcher la
copie ;
- aucune donnée de rétention, précision ou volonté de payer n'existe encore.
### Avantage potentiel — pas encore un moat
Un avantage défendable demanderait quatre couches cumulées :
1. **Corpus consenti de défaillances réelles** : plan, issue connue,
transformation assainie, oracle, disposition humaine.
2. **Calibration longitudinale** : modèle/version/effort/prompt, classe de tâche,
erreur marginale, corrélation, faux positifs, variance et coût.
3. **Politique adaptative** : un seul reviewer par défaut, escalade seulement
quand risque ou désaccord historique le justifie.
4. **Neutralité et confiance opérationnelle** : déclenchement observé, état dégradé exact,
replay, compatibilité multi-harnais et rapport exploitable par un humain.
À 12 utilisateurs et quelques dizaines de cas, le corpus est une preuve de
concept, pas un moat. Les fournisseurs disposent de volumes très supérieurs et
les données se périment à chaque changement de modèle. La seule asymétrie
structurelle possible est la neutralité : Anthropic n'a pas intérêt à calibrer
Codex, ni OpenAI à calibrer Claude. Cette position devient crédible seulement
avec méthode publique, audit externe, mises à jour régulières et usage
récurrent. Elle reste un moat de confiance/standard, non un monopole de données.
### Risques d'érosion
- Anthropic/OpenAI/Cursor/GitHub ajoutent revue cross-vendor ou provenance
complète ;
- les règles/skills/hooks deviennent parfaitement portables ;
- le plan disparaît comme artefact ;
- changements de politiques interdisent la réutilisation des abonnements par un
produit tiers ;
- les modèles convergent et l'erreur marginale tombe ;
- absence de télémétrie empêche d'apprendre, tandis qu'une collecte intrusive
détruirait la promesse locale ;
- peu d'utilisateurs acceptent de partager des cas ;
- un meilleur modèle avec outils bat toujours le comité à budget égal.
## Hypothèses et critères d'abandon
La thèse dépend de sept observations : douleur avec rework vérifiable, utilité
marginale face au meilleur substitut, utilité nette après triage et latence,
vigilance humaine préservée, activation et réutilisation, absence de parité
native à coût inférieur, et demande commerciale distincte de la curiosité.
Les seuils, échantillons et issues autorisées vivent uniquement dans le
[protocole de preuve](evidence-protocol-post-0.2.2.md). La règle de substitution
native vit uniquement dans les conditions de recentrage de la
[roadmap d'exécution](outcome-moat-roadmap-post-0.2.2.md). La thèse ne duplique
aucun nombre normatif.
### Protocole de preuve
Les expériences, leur numérotation, leurs seuils et leur calendrier vivent
uniquement dans le
[protocole de preuve post-0.2.2](evidence-protocol-post-0.2.2.md). La thèse
explique pourquoi ces portes existent ; elle ne constitue pas une seconde
source d'exécution.
## Positionnement recommandé
Ne pas dire :
> Plusieurs modèles débattent et rendent votre plan correct.
Dire :
> Avant une tâche risquée, Inspectrum fait passer le plan par un checkpoint
> indépendant, conserve ce qui a été trouvé ou échoué, et vous laisse décider.
La preuve publique doit montrer une entrée, un finding confirmé, la décision
humaine, le coût et la limite. Un échec ou un faux positif documenté vaut mieux
qu'un taux de « confiance » sans oracle.
## Acquisition et activation
### Acquisition
Après la publication 0.2.2, cibler les personnes qui possèdent déjà Claude Code et
Codex et publient des tâches de migration, auth, paiements ou données. Les
canaux utiles sont les catalogues natifs, dépôts/communautés des deux harnais,
le premier cas éligible pré-enregistré et consentant, résultat positif ou nul,
et des invitations directes. Les refus de publication restent comptés. Une
campagne large ou des étoiles avant preuve créeraient de la curiosité, pas de
rétention.
Avantages de distribution existants :
- plugin Claude Code et parcours à deux commandes ;
- MCP local réutilisable par plusieurs hôtes ;
- npm, GitHub, MCP Registry et Glama déjà publics ; Claude Community en attente
et PulseMCP absent au 1er août 2026 ;
- preuve locale exportable sans compte Inspectrum.
Ils facilitent l'essai mais seront copiés. Le vrai canal organique potentiel est
le cas de défaut confirmé partageable : « ce changement semblait sûr ; voici
l'hypothèse trouvée avant exécution ».
### Activation
Moment d'activation :
1. l'utilisateur marque ou accepte une tâche comme risquée ;
2. la sortie de plan déclenche une revue unique ;
3. le résultat nomme reviewer, durée, statut et preuves ;
4. l'utilisateur accepte/rejette chaque finding ;
5. l'agent revient au plan ou à l'approbation humaine ;
6. un résumé assaini peut être exporté volontairement.
Indicateurs d'usage récurrent :
- première session verte ;
- deuxième utilisation parmi les personnes réellement réexposées à une tâche
à risque sous six semaines ;
- taux de skip volontaire par niveau de risque ;
- findings majeurs acceptés et uniques ;
- minutes de triage par finding accepté ;
- rework évité déclaré puis vérifié quand possible ;
- taux d'échec/partiel et p50/p95 ;
- export volontaire d'un cas.
### Volonté de payer
Elle est **absente pour Inspectrum**. Les prix concurrents et anecdotes montrent
seulement que certaines équipes paient pour du temps senior ou des bugs évités.
Elles ne fixent ni prix, ni demande, ni porte pour Inspectrum.
Si personne ne paie malgré une utilité répétée, maintenir l'outil open source
léger peut rester rationnel ; cela invalide le SaaS, pas nécessairement
l'utilité.
Le test doit distinguer paiement pour une seconde opinion générique et paiement
pour la garantie inter-fournisseurs. Le protocole P3 fixe seul le moment, les
seuils et les issues commerciales ; la roadmap fixe seule la forme autorisée
d'une éventuelle offre de Phase E.
## Décision de portefeuille
- **Principal :** checkpoint de plan haut risque, borné et mesuré.
- **Instrumentation :** diff/commit local uniquement comme vérité terrain, pas
comme produit.
- **Avantage potentiel :** neutralité, corpus et calibration ; aucun moat tant
que volume, rétention et audit n'existent pas.
- **Gelé :** kit de calibration public pendant le pilote.
- **Repoussé :** intégration pull request/multi-forge.
- **Abandonné :** pair programming continu et débat libre.
- **À retirer du message :** « plus de modèles = plus fiable » et « local =
aucune donnée ne quitte la machine ».
La [roadmap d'exécution](outcome-moat-roadmap-post-0.2.2.md) fixe les résultats
et le portefeuille ; le
[protocole de preuve](evidence-protocol-post-0.2.2.md) fixe les portes d'arrêt ;
la [boucle GitHub](github-star-growth-loop.md) fixe la distribution. Aucun de
ces documents ne peut autoriser seul une extension du produit.
# Roadmap post-0.2.2 orientée résultats, wedge et moat
État : décision d'exécution du 30 juillet 2026, mise à jour le 1er août 2026.
`inspectrum@0.2.2`, la release GitHub, la fiche MCP Registry et la fiche Glama
sont publiques. La soumission Claude Community est en attente et Inspectrum
n'est pas référencé par PulseMCP. Cette roadmap est active ; elle n'autorise ni
nouvelle publication, ni extension de portée sans la porte correspondante.
Les investissements fondés sur un gain inter-fournisseurs restent gouvernés
par le [protocole de preuve](evidence-protocol-post-0.2.2.md). Le
positionnement et la Phase B à faible regret avancent en parallèle ; les
Phases D et E exigent un `GO` du protocole.
## Cap
### Catégorie à posséder
**Assurance indépendante des changements agentiques à risque.**
Inspectrum se concentre sur une frontière précise : le moment avant qu'un agent
prenne une action difficile à annuler. Les comités de modèles, bots de pull
request et harnais généralistes restent hors de cette catégorie.
### Positionnement
> **Inspectrum est le contrôle pré-vol indépendant avant qu'un agent exécute
> un changement difficile à annuler. Il garde les preuves, désaccords et
> échecs visibles. L'humain décide.**
Version courte :
> **Independent pre-flight review for risky coding-agent changes.**
« Indépendant » signifie ici un reviewer distinct du modèle auteur, exécuté
séparément sans voir sa sortie. Le terme ne prétend jamais que leurs erreurs
sont statistiquement indépendantes.
### Wedge
Le wedge, c'est-à-dire le premier usage étroit qui ouvre le marché, reste
`ExitPlanMode` dans Claude Code :
- l'utilisateur prépare une migration, une modification d'authentification, un
paiement, une rupture d'interface, un déploiement ou une refonte coûteuse ;
- Inspectrum déclenche un reviewer indépendant une fois ;
- le résultat distingue constat, preuve, désaccord et échec ;
- l'utilisateur garde l'approbation finale.
Le nom durable de la frontière est **avant décision difficile à inverser**. La
sortie de plan est la première intégration, pas la définition définitive du
produit.
### Moat à construire
Le moat visé, c'est-à-dire l'avantage durable difficile à reproduire,
combinerait quatre actifs :
1. cas réels consentis avec défaut et issue confirmés ;
2. calibration par modèle, version, classe de risque, coût et latence ;
3. routage qui appelle le bon reviewer et n'escalade que si cela vaut son coût ;
4. protocole neutre de preuve et d'état dégradé réutilisable entre harnais.
Chaque fonction isolée reste copiable. Leur historique vérifié, leur méthode
publique et la confiance acquise forment l'actif défendable potentiel.
**Au 1er août 2026, ni le gain net de fiabilité ni ce moat potentiel ne sont
prouvés.** Aucune porte P1, P2 ou P3 n'a encore réussi.
## Règles de construction
1. **Un noyau.** Un serveur local, un outil MCP `review_plan`, un contrat de
preuve et des adaptateurs minces.
2. **Aucune infrastructure propriétaire.** Pas de serveur HTTPS, base distante,
compte Inspectrum ou télémétrie cachée.
3. **Une seule nouvelle frontière à la fois.** Claude Code d'abord ; les autres
harnais consomment le même contrat.
4. **Preuve avant spectacle.** Pas de débat multi-tours, de vote ou de nombre de
modèles affiché comme score de confiance.
5. **Le cas utilisateur produit l'actif.** Chaque usage peut, avec consentement,
devenir un cas assaini, une entrée de calibration et une preuve publique.
6. **Budget de complexité fixe.** Toute capacité nouvelle nomme ce qu'elle
remplace ou supprime. Pas de backend ajouté uniquement pour afficher un logo.
7. **Compatibilité avant vitesse.** Les changements de contrat ont version,
migration, fixture et test.
## Étoile polaire et mesures
L'étoile polaire produit est :
> **Nombre mensuel de checkpoints à risque terminés avec statut exact,
> disposition humaine et issue vérifiable.**
Sans télémétrie, elle est mesurée par cas volontairement exportés, pilotes,
issues consenties et retours structurés. Les étoiles GitHub mesurent la
distribution et la confiance publique ; elles ne remplacent jamais l'usage.
Mesures secondaires :
- installation publique vers premier `doctor` vert en moins de 10 minutes ;
- première revue réussie, partielle ou échouée correctement nommée ;
- findings majeurs acceptés puis confirmés ;
- minutes de triage par finding confirmé ;
- deuxième utilisation lorsqu'une nouvelle tâche à risque se présente ;
- exports assainis et cas réutilisables ;
- étoiles, forks, contributeurs externes et installations qualifiées ;
- coût et latence par checkpoint.
## Séquence sur douze mois
| Phase | Période après 0.2.2 | Résultat utilisateur | Actif candidat, non prouvé |
|---|---:|---|---|
| A : posséder la catégorie | J0–J30 | comprendre, installer et voir une vraie revue en moins de 10 minutes | aucun ; positionnement seulement |
| B : rendre la garantie tangible | M1–M2 | savoir exactement ce qui a été revu, échoué et décidé | enveloppe de preuve et disposition humaine |
| C : lancer la boucle de preuves | M2 jusqu'au `GO`, premier passage ≤18 semaines, plafond absolu 26 semaines | comparer les reviewers sur des cas confirmés | premier corpus et première calibration publique |
| D : devenir portable sans grossir | à partir du `GO`, jamais avant M6 | réutiliser la même garantie depuis trois harnais | contrat commun et adaptateurs communautaires |
| E : transformer les données en produit | à partir du `GO`, jamais avant M6 | obtenir le bon niveau de revue au bon coût | routage calibré, historique et confiance neutre |
Les objectifs GitHub vivent uniquement dans la
[boucle de croissance](github-star-growth-loop.md). Ils ne sont jamais un
critère de sortie d'une phase produit.
## Phase A : posséder la catégorie
### Résultat attendu
Un développeur comprend en trente secondes le risque traité, installe en deux
commandes et voit un statut honnête en moins de dix minutes.
### Livrables
- README centré sur le contrôle pré-vol, avec l'alternative skill expliquée ;
- démonstration réelle de 60 à 90 secondes, sans montage trompeur ;
- un cas positif, un résultat nul et un échec visible ;
- tableau « skill maison / revue native / Inspectrum » sur les garanties ;
- `doctor` et message d'activation sans ambiguïté ;
- pages de catalogue cohérentes avec le même positionnement ;
- modèles d'issue pour cas, friction d'installation et faux positif.
### Garde-fous
- aucune promesse de meilleure exactitude ;
- aucun cas artificiel présenté comme usage réel ;
- aucune demande d'étoile avant d'avoir montré la valeur ;
- aucune fonctionnalité majeure pendant les 48 premières heures publiques.
### Décision
Si l'installation publique ou le premier checkpoint échoue, corriger
l'activation avant tout travail de moat ou de croissance.
## Phase B : rendre la garantie tangible
### Résultat attendu
L'utilisateur peut répondre à cinq questions : qui a relu, avec quelle version,
qu'est-ce qui a réussi, qu'est-ce qui a échoué et qu'ai-je décidé ?
### Portée produit
- provenance exacte du reviewer : fournisseur, modèle, version, effort, durée ;
- états `reviewed`, `partial`, `unreviewed` sans conversion d'un échec en vert ;
- séparation `claim`, `evidence`, `dissent` et `uncertainty` ;
- disposition humaine : `accepted`, `rejected`, `duplicate`, `out_of_scope`,
`unverified` ;
- export local assaini et volontaire ;
- schéma de preuve versionné avec fixtures de migration ;
- juge optionnel et éditorial, jamais compteur de votes.
- instrumentation p50/p95 sur la baseline avant P3, sans changer modèle,
prompt, effort ou délai du reviewer.
### Simplicité
Ces informations restent dans les fichiers de session. Aucun tableau de bord,
compte, synchronisation ou base distante.
### Résultat de qualité
Cent pour cent des fixtures de panne affichent le bon état ; aucun reviewer ne
peut muter le dépôt ; les anciennes sessions restent lisibles.
## Phase C : lancer la boucle de preuves
### Résultat attendu
Chaque constat important peut être relié à une issue confirmée ou rester
explicitement non vérifié.
### Livrables
- protocole public minimal de soumission consentie ;
- 10 premiers cas publiables, positifs ou négatifs ;
- jeu de cas versionné couvrant migration, données, authentification, paiement
et compatibilité ;
- rapport trimestriel de résultats par modèle/version : défauts uniques, faux
positifs, triage, coût, latence et échecs ; ce rapport publie des mesures,
pas un kit ou framework de calibration réutilisable ;
- comparaison avec le meilleur skill/hook simple, pas avec l'absence de revue ;
- résultats négatifs conservés.
### Forme soutenable
Le registre commence en CSV/Markdown et se reconstruit par script. Une
contribution passe par pull request et validation automatique. Pas de service
de collecte permanent.
### Décision
Les dix premiers cas publiables sont un actif de transparence, pas une preuve
statistique ni un moat. La décision suit P1, P2 et P3 du
[protocole de preuve](evidence-protocol-post-0.2.2.md).
`GO` vers les Phases D et E seulement si P1, P2 et P3 rendent tous `GO` selon
les critères complets du
[protocole de preuve](evidence-protocol-post-0.2.2.md). Toute issue `STOP
PRODUIT` maintient Inspectrum comme utilité locale et interdit routage calibré
et plateforme.
Au terme du premier passage de 18 semaines, moins de dix cas publiables
abandonnent l'hypothèse de moat de données. Ce résultat n'allonge pas le
protocole et n'est pas compensé par des cas choisis après coup.
## Phase D : devenir portable sans grossir
Cette phase ne démarre que si la Phase C et le protocole de preuve rendent
`GO`.
### Résultat attendu
Le même contrat de preuve fonctionne depuis Claude Code, Codex et un troisième
harnais choisi par demande observée.
### Architecture
- le serveur et `review_plan` restent le noyau ;
- le comportement automatique Claude Code reste un adaptateur ;
- Codex et le troisième harnais utilisent skill, hook ou recette mince ;
- les adaptateurs vivent hors du noyau lorsqu'ils ont un cycle de release
différent ;
- la communauté peut maintenir un adaptateur sans modifier l'orchestrateur.
### Critère de choix du troisième harnais
Choisir entre OpenCode, Gemini CLI, Cursor ou autre à partir des issues,
installations et contributions, jamais à partir du nombre d'étoiles du
concurrent.
### Limite
Trois harnais maximum maintenus par le projet. Les suivants sont communautaires
ou documentés comme recettes.
## Phase E : transformer les données en produit
Cette phase ne démarre que si la Phase C et le protocole de preuve rendent
`GO`.
### Résultat attendu
Une tâche reçoit le reviewer, l'effort et le budget adaptés au risque, sans
comité systématique.
### Portée
- profils de risque explicites et modifiables ;
- recommandation de reviewer fondée sur la calibration observée ;
- escalade seulement quand l'historique montre une valeur marginale ;
- budget de coût et de latence avant lancement ;
- avertissement quand la calibration est absente ou périmée ;
- comparaison des versions dans le temps ;
- rapport d'assurance local exportable.
Le routage commence par des règles lisibles. Aucun apprentissage automatique
avant un volume et une qualité de données suffisants.
### Modèle soutenable
Le noyau open source reste local et gratuit. Des revenus peuvent ensuite venir
de rapports de calibration vérifiés, politiques d'assurance d'équipe, support
et audits, sans héberger le code ni les plans.
Aucune offre payante n'est construite avant la décision commerciale `OFFRE
PAYANTE` de P3 dans le
[protocole de preuve](evidence-protocol-post-0.2.2.md). Avant cette porte, la
livraison reste documentaire et manuelle, en mode concierge. Elle ne crée ni
compte, ni synchronisation d'équipe, ni automatisation propre.
## Contrat de qualité
« Qualité parfaite » devient un contrat vérifiable :
- zéro vulnérabilité de production haute ou critique à la release ;
- aucun test, typecheck, lint, couverture ou test de contrat rouge ;
- couverture maintenue au-dessus des seuils existants, jamais abaissée ;
- aucun statut vert lorsqu'un reviewer a échoué ou n'a pas répondu ;
- aucune mutation du dépôt par le reviewer ;
- versions, prompts, modèles et efforts présents dans les preuves ;
- compatibilité descendante ou migration documentée ;
- limites, coûts et confidentialité écrits dans le même changement que la
fonctionnalité ;
- release reproductible et paquet vérifié ;
- un seul moyen recommandé d'accomplir chaque tâche importante.
Un défaut critique bloque la release. Un défaut de documentation qui change la
promesse publique est traité comme un défaut produit.
## Portefeuille explicitement fermé
Ne pas construire pendant ces douze mois :
- bot généraliste de pull request ;
- produit autonome de revue de commit ;
- pair programming continu ;
- débat libre ou multi-tours entre modèles ;
- interface Web, SaaS ou hébergement de plans ;
- base de données distante ;
- marketplace propriétaire ;
- nouveau protocole de transport ;
- orchestration d'équipe générique.
Le diff et le commit restent des instruments de confirmation ex post. Une
nouvelle frontière n'entre au portefeuille que si elle réutilise le même
contrat, les mêmes preuves et le même actif de calibration.
## Conditions de recentrage
- après 30 jours, terminer l'enveloppe de preuve de Phase B comme seul travail
produit autorisé ; avec 1 à 4 installations externes réussies, corriger
positionnement et activation ; avec zéro installation, suspendre tout travail
après Phase B et revoir le wedge, la démonstration et les canaux ;
- adaptateur équivalent en moins de 100 lignes : le traiter comme canal, pas
comme différentiel produit ;
- fonction native équivalente sur déclenchement, contrat, preuve, échec et
portabilité, démontrée par une vérification indépendante reproductible à coût
inférieur ou égal : déplacer Inspectrum vers le standard ouvert ou la
maintenance ;
- coût de maintenance supérieur à deux jours par mois hors release : supprimer,
externaliser ou geler la surface responsable.
## État au 1er août et prochains pas
1. npm 0.2.2, la release GitHub, le MCP Registry et Glama sont disponibles ;
2. Claude Community reste en attente et PulseMCP reste absent ;
3. remplacer la capture terminal 0.2.1 seulement par une preuve publique 0.2.2
reproductible ;
4. exécuter `doctor` et un checkpoint non artificiel hors checkout ;
5. publier la démonstration, le cas réel et le résultat nul ;
6. aligner description GitHub et catalogues quand leur statut change ;
7. lancer la boucle GitHub décrite dans
[github-star-growth-loop.md](github-star-growth-loop.md) ;
8. ouvrir le schéma de preuve de Phase B, sans autre extension.
# Stratégie post-0.2.2
État public vérifié le 1er août 2026. Ce dossier est la source de vérité pour
les décisions produit prises après Inspectrum 0.2.2.
## Décision active
Inspectrum est un **contrôle indépendant avant un changement agentique
difficile à annuler**. Sa première intégration est le point de sortie du mode
plan (`ExitPlanMode`) dans Claude Code. L'utilisateur garde la décision finale.
« Indépendant » signifie qu'un reviewer distinct du modèle auteur est invoqué
séparément. Cela ne signifie pas que leurs erreurs sont statistiquement
indépendantes. **Ni le gain net de fiabilité, ni un avantage durable difficile
à reproduire ne sont prouvés à ce jour.** Aucune porte du protocole de preuve
n'a encore réussi.
## Documents normatifs
- [Roadmap orientée résultats](outcome-moat-roadmap-post-0.2.2.md) : portée,
séquence et portefeuille autorisé.
- [Protocole de preuve](evidence-protocol-post-0.2.2.md) : expériences et portes
d'arrêt qui peuvent autoriser les investissements conditionnels.
- [Thèse de créneau et d'avantage défendable](moat-thesis.md) : raisonnement,
contre-thèse et hypothèses à réfuter.
Documents d'appui :
- [paysage concurrentiel daté de juillet 2026](competitive-landscape-2026-07.md)
et son [registre de sources](evidence/competitive-source-ledger.csv) ;
- [boucle de croissance GitHub](github-star-growth-loop.md), qui gouverne la
distribution sans servir de preuve produit.
L'[ancienne roadmap post-0.2.2](roadmap-post-0.2.2.md) est remplacée et ne donne
plus d'autorité d'exécution.
## État de distribution
| Canal | État au 1er août 2026 |
|---|---|
| npm | disponible en version 0.2.2 |
| GitHub | dépôt et release 0.2.2 disponibles |
| MCP Registry | version 0.2.2 disponible |
| Glama | fiche Inspectrum disponible |
| Claude Community | soumission en attente |
| PulseMCP | aucune fiche Inspectrum observée |
## Portefeuille fermé
La revue de code, la revue de pull request et le pair programming ne sont pas
des extensions autorisées. Ils restent hors portefeuille tant que les portes
de preuve n'ont pas réussi ; leur succès ne les ouvrirait pas automatiquement,
car une décision de roadmap explicite resterait nécessaire.
# Roadmap post-0.2.2 — remplacée
État : **remplacée le 1er août 2026**.
Cette ancienne roadmap n'est plus une source d'exécution. La stratégie active
est décrite dans l'[index post-0.2.2](README.md), la
[roadmap orientée résultats](outcome-moat-roadmap-post-0.2.2.md) et le
[protocole de preuve](evidence-protocol-post-0.2.2.md).
En particulier, ses anciennes expansions vers la revue de code, la revue de
pull request ou le pair programming ne sont plus autorisées.
+23
-2

@@ -8,2 +8,3 @@ import * as fs from "node:fs";

import { loadConfig, getConfigPath, defaultConfig } from "./config.js";
import { getPackageVersion } from "./version.js";
/**

@@ -51,4 +52,8 @@ * Resolves which model/reasoning-effort a codex review will actually use:

const Z = useColor ? "\x1b[0m" : "";
let hasWarnings = false;
const pass = (label) => process.stdout.write(` ${G}✅${Z} ${label}\n`);
const warn = (label) => process.stdout.write(` ${Y}⚠${Z} ${label}\n`);
const warn = (label) => {
hasWarnings = true;
process.stdout.write(` ${Y}⚠${Z} ${label}\n`);
};
const failMsg = (label) => process.stdout.write(` ${R}❌${Z} ${label}\n`);

@@ -164,4 +169,17 @@ const hint = (text) => process.stdout.write(` ${text}\n`);

const pluginLabel = `inspectrum@inspectrum${plugin.version ? ` ${plugin.version}` : ""}`;
const packageVersion = getPackageVersion();
if (plugin.warning || !plugin.ok)
warn(`${pluginLabel}${plugin.warning ? ` — ${plugin.warning}` : ""}`);
else if (plugin.version && plugin.version !== packageVersion) {
const mismatch = `${pluginLabel} — version mismatch: automatic plan gate uses inspectrum@${plugin.version}; this doctor uses inspectrum@${packageVersion}`;
if (config.plan_gate.enabled) {
failMsg(mismatch);
allOk = false;
}
else {
warn(`${mismatch} — plan gate is disabled`);
}
hint("Fix: claude plugin uninstall inspectrum@inspectrum && claude plugin marketplace remove inspectrum");
hint("Then: claude plugin marketplace add yannmenec/inspectrum && claude plugin install inspectrum@inspectrum");
}
else

@@ -174,3 +192,6 @@ pass(pluginLabel);

if (allOk) {
process.stdout.write(`${G}✅ All checks passed${Z}\n\n`);
if (hasWarnings)
process.stdout.write(`${Y}⚠ Checks passed with warnings${Z}\n\n`);
else
process.stdout.write(`${G}✅ All checks passed${Z}\n\n`);
}

@@ -177,0 +198,0 @@ else {

+27
-21

@@ -8,29 +8,28 @@ # Codex plugin: review a plan with Claude

The plugin does not add a tool or change the server architecture. Its bundled
MCP configuration starts the candidate package with:
MCP configuration starts the public package with:
```text
npx -y inspectrum@0.2.2
npx -y inspectrum@0.2.3
```
The package selector must match `package.json`; the contract test fails if the
two versions drift.
two versions drift. Codex allows the MCP call 330 seconds: Inspectrum's default
reviewer limit is 300 seconds, leaving 30 seconds for aggregation, session
writing, and result delivery. The MCP server startup has a separate timeout.
## Public installation
The public installation smoke test is currently **blocked**. npm and the public
GitHub release still expose `0.2.1`, while this plugin belongs to the `0.2.2`
candidate. Do not install the older public package as a silent fallback.
For version `0.2.3`, verify the exact package after it is published:
After `0.2.2` is published to npm and this marketplace is merged into `main`,
verify the exact package first:
```bash
npm view inspectrum@0.2.2 version
npx -y inspectrum@0.2.2 doctor
npm view inspectrum@0.2.3 version
npx -y inspectrum@0.2.3 doctor
```
Both commands must resolve `0.2.2`. Then install the repository marketplace
and plugin:
Both commands must resolve `0.2.3`. If an older manual MCP registration already
uses the name `inspectrum`, remove it before installing the plugin; otherwise
the duplicate name can hide the plugin's bundled server:
```bash
codex mcp remove inspectrum
codex plugin marketplace add yannmenec/inspectrum --ref main

@@ -46,7 +45,17 @@ codex plugin add inspectrum@inspectrum

## Validation before publication
On the first call, Codex asks whether the `inspectrum` MCP server may run
`review_plan`. Choose **Allow for this session** to continue without granting a
permanent permission. This interactive authorization is expected; a first call
from non-interactive `codex exec` can be cancelled because nobody can answer
the prompt.
Before the npm package exists, validate the local candidate rather than
claiming a public end-to-end success:
The public end-to-end smoke test completed successfully on 0.2.2: Codex invoked
`review_plan`, Claude returned a structured `revise` verdict in 46.3 seconds,
and Inspectrum wrote the local session. The user remained in control of the
review and no repository file was changed by the smoke task.
## Validation
Validate repository changes with:
```bash

@@ -61,7 +70,4 @@ npm ci

The repository build and tests run the local `0.2.2` source. The targeted
contract validates the Codex manifest, marketplace entry, pinned MCP package,
reviewer direction, and failure semantics. The committed plugin launcher
itself cannot complete its public npm smoke test until `inspectrum@0.2.2` is
published.
The targeted contract validates the Codex manifest, marketplace entry, pinned
MCP package, reviewer direction, activation guidance, and failure semantics.

@@ -68,0 +74,0 @@ ## Failure and privacy

# Inspectrum 0.2.2 submission kit
Status: candidate only, prepared on 2026-07-30. **Do not submit** to any
external channel until every hard gate below is checked.
Status: maintained distribution record, prepared on 2026-07-30 and updated on
2026-08-01. This file records completed listings and remaining submissions; it
does not authorize publication.
**Do not submit** to a new channel, resubmit a pending application, or publish
an update without explicit authorization and the relevant green checks.
Technical identifiers stay lowercase where registries require them:

@@ -11,2 +15,15 @@ `inspectrum` for npm and Claude namespacing, and

## Channel status
| Channel | Status on 2026-08-01 | Public evidence |
|---|---|---|
| npm | Available | `inspectrum@0.2.2` |
| GitHub | Available | repository and release `v0.2.2` |
| MCP Registry | Available | `io.github.yannmenec/inspectrum@0.2.2` |
| Glama | Available | public Inspectrum listing with one tool |
| Claude Community | Pending | no public catalog listing yet |
| PulseMCP | Absent | no Inspectrum listing observed |
The OpenAI Plugin Directory is not part of the current availability claim.
## Reusable listing copy

@@ -16,12 +33,12 @@

**Short description:** Review coding-agent plans on demand with peer models,
attributed findings, and a structured verdict.
**Short description:** Add an independent checkpoint before a risky
coding-agent change becomes difficult to undo, starting at plan exit.
**Long description:**
Inspectrum adds a second model's review before a coding plan reaches execution.
Its Claude Code plugin can run a bounded Codex review when plan mode exits; its
local MCP server exposes `review_plan` to hosts that support local
standard-input/output MCP. Findings retain reviewer attribution and the user
keeps final approval.
Inspectrum adds an independent pre-flight checkpoint before a coding-agent
change becomes difficult to undo. Its first automatic integration runs a
bounded Codex review when Claude Code exits plan mode; its local MCP server
exposes `review_plan` to hosts that support local standard-input/output MCP.
Findings retain reviewer attribution and the user keeps final approval.

@@ -38,6 +55,12 @@ Inspectrum runs locally, has no first-party telemetry, and stores successful

**Claude Community:** `A repeatable second-model checkpoint for Claude Code
plans: automatic at the plan boundary, bounded, fail-open, evidence-backed, and
always leaves final approval to you.`
Inspectrum has not yet proved that a cross-provider review produces a net
reliability gain after false positives, triage, cost, and latency. It has no
proved moat. Code review, pull-request review, and pair programming remain out
of scope; successful evidence gates would not authorize them automatically,
because an explicit roadmap decision would still be required.
**Claude Community:** `An independent pre-flight checkpoint for risky Claude
Code plans: automatic at plan exit, bounded, fail-open, and always leaves final
approval to you.`
**MCP directories:** `Turn ad-hoc second opinions into a repeatable plan-review

@@ -47,2 +70,6 @@ checkpoint. One local MCP tool returns attributed findings and one structured

**Current MCP Registry description:** `Review coding-agent plans on demand with
peer models, attributed findings, and a structured verdict.` This is the public
0.2.2 manifest text; use the revised copy above for a future authorized update.
**Primary category:** Developer Tools

@@ -61,3 +88,3 @@

**Public URLs after release:**
**Public URLs:**

@@ -67,2 +94,4 @@ - Source: https://github.com/yannmenec/inspectrum

- Release: https://github.com/yannmenec/inspectrum/releases/tag/v0.2.2
- MCP Registry: https://registry.modelcontextprotocol.io/
- Glama: https://glama.ai/mcp/servers/yannmenec/inspectrum
- Documentation: https://github.com/yannmenec/inspectrum#readme

@@ -86,11 +115,11 @@ - Privacy: https://github.com/yannmenec/inspectrum/blob/main/PRIVACY.md

| `assets/brand/social-preview.png` (1280x640) | Ready | Optional wide preview |
| `assets/brand/terminal-doctor.png` (1280x720) | Blocked | Real 0.2.1 evidence; never present it as 0.2.2 |
| `assets/brand/terminal-doctor.png` (1280x720) | Archived | Real 0.2.1 evidence; never present it as 0.2.2 |
Replace the terminal capture only after installing public `inspectrum@0.2.2` in
an empty temporary environment and obtaining a green release-candidate
validation. Preserve the transcript; update hashes and provenance in
`assets/brand/README.md`; exclude credentials, real home paths, tokens, and
private plan content.
The terminal capture remains unchanged because it is accurately labeled 0.2.1.
Replace it only after installing public `inspectrum@0.2.2` in an empty
temporary environment and obtaining a green validation. Preserve the
transcript; update hashes and provenance in `assets/brand/README.md`; exclude
credentials, real home paths, tokens, and private plan content.
## Hard gates before any external submission
## Release evidence and remaining checks

@@ -100,15 +129,18 @@ - [ ] The release-candidate report explicitly marks its required build, type,

Record its commit and evidence URL in the release record.
- [ ] `inspectrum@0.2.2` is publicly retrievable from npm.
- [ ] GitHub release `v0.2.2` is public, not a draft or prerelease, and contains
- [x] `inspectrum@0.2.2` is publicly retrievable from npm.
- [x] GitHub release `v0.2.2` is public, not a draft or prerelease, and contains
`inspectrum-0.2.2.mcpb`.
- [ ] `main` publicly contains the 0.2.2 `package.json`, `server.json`, Claude
- [x] `main` publicly contains the 0.2.2 `package.json`, `server.json`, Claude
plugin manifests, Codex Git marketplace, privacy notice, documentation,
and optional brand assets.
- [ ] `npm audit --omit=dev` has no high-severity production finding for the
- [x] MCP Registry lists `io.github.yannmenec/inspectrum@0.2.2`.
- [x] Glama lists Inspectrum with the single `review_plan` tool.
- [x] `npm audit --omit=dev` has no high-severity production finding for the
exact lockfile used to build the Claude Desktop bundle.
- [ ] `npm run check:submission -- --public` exits successfully.
- [x] `npm run check:submission -- --registry` exits successfully, including
the public npm and GitHub checks.
- [ ] A fresh public install returns `0.2.2`, exposes exactly `review_plan`, and
passes `doctor` without leaking secrets.
The local-only check is safe before release:
The local checks remain safe after release:

@@ -121,6 +153,6 @@ ```bash

Use the official `validate` subcommand for this local check. Do not authenticate
or invoke `publish` until every hard gate below passes.
Use the official `validate` subcommand. Do not authenticate or invoke a publish
command merely to recheck an existing listing.
## Channel 1 — MCP Registry
## Channel 1 — MCP Registry — available

@@ -132,10 +164,6 @@ The registry requires a valid `server.json`, a public install artifact, matching

`yannmenec`. Local standard-input/output servers are supported; no HTTPS server
is needed. The registry remains in preview.
is needed. Version 0.2.2 is publicly listed. Recheck without publishing:
After all hard gates pass, an authorized operator may run:
```bash
mcp-publisher login github
mcp-publisher validate server.json
mcp-publisher publish server.json
npm run check:submission -- --registry

@@ -153,6 +181,6 @@ ```

`.agents/plugins/` and a validated plugin under `plugins/inspectrum/`. This makes
Inspectrum directly installable from its GitHub repository after 0.2.2 is public;
Inspectrum directly installable from its public GitHub repository;
it does not by itself create a listing in OpenAI's curated Plugin Directory.
After all hard gates pass:
Install from the existing public source:

@@ -171,3 +199,3 @@ ```bash

## Channel 3 — OpenAI Plugin Directory
## Channel 3 — OpenAI Plugin Directory — not pursued

@@ -183,3 +211,4 @@ OpenAI's public portal accepts skills-only, MCP-only, and combined submissions.

plugin's bundled local MCP configuration. This is a follow-up deliverable, not a
claim that the current package is submission-ready.
claim that the current package is submission-ready. No submission is claimed
by this document.

@@ -200,3 +229,3 @@ Before submission:

## Channel 4 — Claude Community
## Channel 4 — Claude Community — pending

@@ -208,3 +237,4 @@ The target is `claude-community`; `claude-plugins-official` is curated separately

Prepared form copy:
The submission is pending and Inspectrum is not present in the public community
catalog checked on 2026-08-01. Prepared form copy:

@@ -215,5 +245,5 @@ - Display name: `Inspectrum`

- Plugin path: repository root
- Description: `A repeatable second-model checkpoint for Claude Code plans:
automatic at the plan boundary, bounded, fail-open, evidence-backed, and
always leaves final approval to you.`
- Description: `An independent pre-flight checkpoint for risky Claude Code
plans: automatic at plan exit, bounded, fail-open, and always leaves final
approval to you.`
- Privacy summary: `No first-party telemetry. Plans are sent to user-configured

@@ -223,6 +253,4 @@ reviewer tools or endpoints and successful sessions are stored locally as

Rerun `claude plugin validate . --strict`, then use the individual-author form:
https://platform.claude.com/plugins/submit. The Claude.ai form requires a Team or
Enterprise organization plus directory-management access:
https://claude.ai/admin-settings/directory/submissions/plugins/new.
Rerun `claude plugin validate . --strict` before responding to review feedback.
Do not resubmit while the current submission remains pending.

@@ -234,18 +262,11 @@ - https://code.claude.com/docs/en/plugins

## Channel 5 — Glama
## Channel 5 — Glama — available
Glama verifies GitHub write or administrator access, then builds, runs, and
introspects the server in a sandbox; a failed reproducible build is not
discoverable. It also ingests the official MCP Registry.
discoverable. It also ingests the official MCP Registry. The public
[Inspectrum listing](https://glama.ai/mcp/servers/yannmenec/inspectrum) reports
one tool, `review_plan`. Do not opt into Glama hosting or create an HTTPS
endpoint merely to maintain the listing.
1. Publish to the MCP Registry.
2. Search https://glama.ai/mcp/servers for `Inspectrum` and
`io.github.yannmenec/inspectrum`.
3. If no listing appears, use **Add Server** with
https://github.com/yannmenec/inspectrum while signed in as a repository
maintainer. Do not opt into Glama hosting or create an HTTPS endpoint.
4. If a summary field is available, use the **MCP directories** copy above.
5. Verify the listing reports one tool, `review_plan`, and the intended local
standard-input/output install command.
- https://glama.ai/

@@ -255,3 +276,3 @@ - https://glama.ai/mcp/servers

## Channel 6 — PulseMCP
## Channel 6 — PulseMCP — absent

@@ -262,6 +283,8 @@ The server flow at https://www.pulsemcp.com/submit directs maintainers to the

1. Publish to the MCP Registry.
2. Wait up to one week, then search https://www.pulsemcp.com/servers for
Inspectrum was not observed in the directory on 2026-08-01. The MCP Registry
publication is complete. After the documented ingestion delay:
1. Search https://www.pulsemcp.com/servers for
`Inspectrum` and the registry name.
3. If still missing or incorrect, email the source URL, registry name, expected
2. If still missing or incorrect, email the source URL, registry name, expected
title, **MCP directories** copy above, and affected field. Exclude

@@ -274,3 +297,3 @@ credentials and private evidence.

## Evidence to retain after submission
## Evidence to retain for listings

@@ -277,0 +300,0 @@ - MCP Registry: publisher output and the exact API result for version 0.2.2.

{
"name": "inspectrum",
"version": "0.2.2",
"version": "0.2.3",
"description": "Automatic Codex plan review in Claude Code; on-demand in local MCP hosts; human approval stays yours",

@@ -5,0 +5,0 @@ "type": "module",

@@ -5,3 +5,3 @@ # Privacy and data flow

This document describes Inspectrum `0.2.2`. Provider and CLI behavior can change independently.
This document describes Inspectrum `0.2.3`. Provider and CLI behavior can change independently.

@@ -8,0 +8,0 @@ ## Data you provide

+37
-17

@@ -5,3 +5,3 @@ <div align="center">

### Catch the bad plan before your agent spends the tokens.
### Independent review before a risky agent change becomes hard to undo.

@@ -19,7 +19,18 @@ [![CI](https://github.com/yannmenec/inspectrum/actions/workflows/ci.yml/badge.svg)](https://github.com/yannmenec/inspectrum/actions/workflows/ci.yml)

Every AI coding disaster starts the same way: a plausible plan, approved in three seconds.
A plausible plan can commit an agent to a migration, authentication change,
payment flow, compatibility break, or deployment that is expensive to undo.
The problem isn't that your agent plans badly — it's that **nobody checks the plan**. You skim it, hit approve, and find out 40 minutes and 200k tokens later that step 2 was wrong. Asking the same model to review its own plan doesn't help: same model, same blind spots, same miss — twice.
**Inspectrum is an independent pre-flight check before that decision.** Its
first automatic integration runs when Claude Code exits plan mode: Codex (GPT)
reviews the plan before the approval dialog reaches you, findings can send the
plan back for revision, and you keep final approval. If the reviewer cannot
run, the plan passes through with a visible warning instead of being silently
reported as reviewed.
**Inspectrum wires a rival LLM into your agent's plan mode.** When Claude Code finishes a plan, Codex (GPT) reviews it *before* the approval dialog reaches you. Findings bounce the plan back to Claude for revision — so the plan you finally approve has already survived a second opinion. (And if the reviewer can't run, the plan passes through with a warning, never blocked.)
Here, independent means a reviewer distinct from the author model, invoked
separately. It does not mean their errors are statistically independent.
Inspectrum makes the checkpoint repeatable and its failures visible; **a net
reliability gain and a defensible moat are not yet proven**. The
[post-0.2.2 strategy](docs/strategy/README.md) defines the evidence gates and
keeps code review, pull-request review, and pair programming out of scope.

@@ -34,2 +45,9 @@ ## When a skill is enough

Public availability as of 1 August 2026:
[npm 0.2.2](https://www.npmjs.com/package/inspectrum/v/0.2.2),
[GitHub release](https://github.com/yannmenec/inspectrum/releases/tag/v0.2.2),
[MCP Registry](https://registry.modelcontextprotocol.io/), and
[Glama](https://glama.ai/mcp/servers/yannmenec/inspectrum). The Claude Community
submission is pending, and Inspectrum is not listed on PulseMCP.
## Quick start

@@ -67,3 +85,3 @@

````text
Set up inspectrum's Codex plan gate. Use normal approvals only — do not
Set up Inspectrum's Codex plan gate. Use normal approvals only — do not
switch to Bypass Permissions or Full Access.

@@ -90,3 +108,3 @@

Inside that window, click 'Sign in with ChatGPT', complete the
login in my browser, then close the Terminal window. inspectrum
login in my browser, then close the Terminal window. Inspectrum
is then ready."

@@ -127,7 +145,9 @@

## Why a rival model?
## Why a separate reviewer?
- **Plans are leverage.** A flaw caught at plan time costs a paragraph. The same flaw caught at PR time costs a rewrite.
- **Self-review is an echo chamber.** The model that wrote the plan is the least qualified to find its blind spots.
- **Claude and GPT disagree usefully.** Different training, different failure modes, different objections. That disagreement is the product.
- **Plans are leverage.** A flaw caught before execution can be cheaper to fix than the same flaw found after a difficult-to-reverse change.
- **Separation makes the check inspectable.** The author and reviewer run independently, and findings remain attributed.
- **Cross-provider value is a hypothesis.** Claude and GPT can raise different
objections, but Inspectrum has not yet proved that this produces a net
reliability gain after false positives, triage, cost, and latency.
- **Use an existing subscription.** No separate API bill when using your ChatGPT subscription; reviews consume your existing Codex subscription allowance. API-key backends are billed by their provider.

@@ -140,3 +160,3 @@

| 🚦 **Plan gate** | Every Claude Code plan reviewed by Codex before it reaches you — automatic, max 2 revision rounds |
| 🔍 **On-demand review** | `/inspectrum:review` or "Review this plan with inspectrum" from any MCP host |
| 🔍 **On-demand review** | `/inspectrum:review` or "Review this plan with Inspectrum" from any MCP host |
| 🧑‍⚖️ **Multi-reviewer + judge** | Run codex + gemini + claude in parallel; a judge consolidates into one verdict |

@@ -153,3 +173,3 @@ | 📋 **One verdict** | `approve / revise / reject` + findings by severity, with reviewer attribution |

| **Codex app / CLI** | Claude | `codex mcp add inspectrum -- npx -y inspectrum@latest` + config below |
| **Claude Desktop** (macOS) | Codex (GPT) | Download [`inspectrum-0.2.2.mcpb`](https://github.com/yannmenec/inspectrum/releases/download/v0.2.2/inspectrum-0.2.2.mcpb), open, confirm. The earlier v0.2.0 bundle was incomplete — use the v0.2.2 asset, not npm/stdio. |
| **Claude Desktop** (macOS) | Codex (GPT) | Download [`inspectrum-0.2.3.mcpb`](https://github.com/yannmenec/inspectrum/releases/download/v0.2.3/inspectrum-0.2.3.mcpb), open, confirm. The earlier v0.2.0 bundle was incomplete — use the v0.2.3 asset, not npm/stdio. |
| **Cursor** | Codex (GPT) | [![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.png)](https://cursor.com/en/install-mcp?name=inspectrum&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsImluc3BlY3RydW1AbGF0ZXN0Il19) |

@@ -163,3 +183,3 @@

````text
Set up inspectrum so I can review my plans with Claude. Use normal
Set up Inspectrum so I can review my plans with Claude. Use normal
approvals only.

@@ -184,6 +204,6 @@

- "If claude shows its chat prompt, you're already logged in —
close the Terminal window. inspectrum is ready."
close the Terminal window. Inspectrum is ready."
- "If claude shows /login or opens a browser, complete the sign-in
with your Claude account, then close the Terminal window.
inspectrum is then ready."
Inspectrum is then ready."
(The ⚠ claude line in the doctor stays even after login because

@@ -295,3 +315,3 @@ claude doesn't expose a status command we can detect — harmless.)

**`sh: inspectrum: command not found` / `claude mcp list` shows `✗ Failed to connect` — but only when your current directory is the inspectrum repo itself.** `npx inspectrum@<version>` resolves the spec against the *local* package when cwd is inside a package named `inspectrum` whose version matches, and a package's own bin is never self-linked into its `node_modules/.bin`. The published package is fine. Fixes: run from any other directory, or install the real binary once and register that instead:
**`sh: inspectrum: command not found` / `claude mcp list` shows `✗ Failed to connect` — but only when your current directory is the Inspectrum repo itself.** `npx inspectrum@<version>` resolves the spec against the *local* package when cwd is inside a package named `inspectrum` whose version matches, and a package's own bin is never self-linked into its `node_modules/.bin`. The published package is fine. Fixes: run from any other directory, or install the real binary once and register that instead:

@@ -309,3 +329,3 @@ ```bash

**If inspectrum caught a bad plan for you, [star the repo ⭐](https://github.com/yannmenec/inspectrum) — it's how other agent-wranglers find it.**
**If Inspectrum caught a bad plan for you, [star the repo ⭐](https://github.com/yannmenec/inspectrum) — it's how other agent-wranglers find it.**

@@ -312,0 +332,0 @@ MIT — [Yann Menec](https://github.com/yannmenec). Contributions welcome: [CONTRIBUTING.md](CONTRIBUTING.md).

@@ -11,3 +11,3 @@ {

},
"version": "0.2.2",
"version": "0.2.3",
"websiteUrl": "https://github.com/yannmenec/inspectrum/blob/main/docs/claude-code-codex-plan-review.md",

@@ -19,3 +19,3 @@ "packages": [

"identifier": "inspectrum",
"version": "0.2.2",
"version": "0.2.3",
"transport": {

@@ -22,0 +22,0 @@ "type": "stdio"