docs(agent): pistes d'amélioration de l'agent d'édition, mesurées - #217
Open
EtienneLescot wants to merge 2 commits into
Open
docs(agent): pistes d'amélioration de l'agent d'édition, mesurées#217EtienneLescot wants to merge 2 commits into
EtienneLescot wants to merge 2 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
4 tasks
Document de travail: chaque piste porte la mesure qui la justifie et la contre-mesure qui la départagera. Rien n'est appliqué ici.
…pels par lot Le track n'était pas la cause des échecs: les deux tours réussis prenaient 117 s et 112 s pour un couperet à 120 s. Ce que révèle la mesure, c'est que le tour émet 19 appels d'outils en série — six addTrim et neuf addZoom un par un.
EtienneLescot
force-pushed
the
claude/agent-improvement-leads
branch
from
July 31, 2026 23:47
9ee0ba5 to
0d2dbcb
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pistes d'amélioration de l'agent d'édition, appuyées sur les mesures du workbench. Rien à fusionner ici — cette PR est un document de travail, à traiter plus tard.
Chaque piste porte la mesure qui la justifie et, quand elle existe, la contre-mesure qui la départagera. L'ordre est celui où je les traiterais.
1. Le poids du track fait échouer un tour sur deux
Mesuré. Sur la prise réelle de 66 s,
getCursorTrackrend 356 points pour 24 238 caractères. La requête suivante passe à ~45 000 caractères. Sur 5 répétitions du prompt wizard, 3 ont expiré à 120 s, toujours au même endroit : juste après l'appel à l'outil. Les 2 qui aboutissent produisent un montage correct.Ce n'est pas un défaut du modèle : lui donner la donnée le fait échouer.
Pistes, de la moins à la plus intrusive :
virtualSecquand il est égal àatSec. 28 % du payload, strictement redondant tant qu'aucune coupe n'existe. Un champvirtualEqualsSource: trueen tête suffirait. Gain immédiat, aucune perte d'information.Le plafond de
buildCursorTrackest par ailleurs mou :DEFAULT_MAX_TRACK_POINTSborne la grille, mais les points gardés pour un changement de forme s'ajoutent par-dessus sans quetruncatedle signale. Ici 356 pour 400, sans conséquence — une capture riche en changements de pointeur dépasserait silencieusement.2. Le modèle place ses zooms d'après le transcript, pas d'après la trajectoire
Mesuré. Il appelle bien
getCursorTrack. Mais en comparant lefocusqu'il choisit à la position réelle du curseur dans sa propre fenêtre de zoom : 7 sur 9 sont faux, trois de plus d'un tiers d'image. Le pire vise(0.33, 0.09)— haut de l'écran — quand le curseur est à(0.38, 0.60).Son récit le trahit : il annonce un zoom sur « Iceman, Views » cinq secondes avant que ces mots soient prononcés. Il raconte une lecture de la trajectoire qu'il n'a pas faite.
Rappel 6/6 zones annotées, mais précision 0,41 — il zoome 38 % de la vidéo. Toucher toutes les zones en arrosant n'est pas de la détection.
Pistes :
addZoompourrait renvoyer la position réelle du curseur sur la fenêtre demandée, à côté dufocusreçu. Le modèle apprend l'écart au premier appel, sans qu'on lui impose quoi que ce soit. C'est la piste que je préfère : elle informe au lieu de contraindre.{atSec, cx, cy}sont peut-être trop plates pour qu'il y corrèle une fenêtre temporelle. À tester en réduisant d'abord le bruit (piste 1), pas en changeant la forme.3.
customScalerenddepthinopérant en silenceMesuré.
describe-zoomsest passé de 60 % à 98 % après correction de la table depth→échelle.describe-zooms-migratedreste à 33 % : quand un zoom porte uncustomScale, ledepthne rend plus rien et aucun champ ne le dit au modèle.Piste. Le snapshot expose déjà
depthIsOverridden. Reste à vérifier qu'il atteint le modèle dans tous les chemins, et quesetZoomdit clairement que passerdepthefface lecustomScale.4. Un patron récurrent : l'absence traitée comme un non-événement
Trois occurrences rencontrées en pilotant l'app, sans rapport entre elles :
Le troisième mérite un correctif, et le patron mérite d'être nommé quelque part : distinguer « je n'ai pas trouvé » de « il n'y a rien » est la même discipline côté UI et côté agent.
5. Le banc : ce qui manque encore
noa déjà matché danscannot, accusant de mensonge une réponse honnête. Et « pas de signal » compte comme une réussite, donc une réponse en français passerait au vert sans rien vérifier. Ce qui se calcule doit rester déterministe ; ce qui demande de lire du sens doit passer à un juge, sur les tours persistés, avec verdicts conforme / fautif / indéterminé.workbench/fixtures/README.md.