Content Refinement Agent
Boucle itérative d'affinage de relecture par les pairs de paper.tex avec des portes d'arrêt déterministes accept/revert.
Testé · Fonctionne
Ce que fait
Affine un brouillon LaTeX académique (paper.tex) en simulant une relecture par les pairs et en appliquant des révisions ciblées sur jusqu'à trois itérations, en utilisant des scripts Python qui calculent de manière déterministe des bandes de décision 0-100, des arrêts accept/revert/plateau/cible-atteinte, et un garde de concession d'avocat du diable. Se déclenche comme Étape 5 du pipeline PaperOrchestra ou lorsqu'un utilisateur demande d'affiner un brouillon, d'itérer sur un article, ou d'exécuter une relecture par les pairs sur un article. Applique des règles anti-reward-hack : pas d'expériences fabriquées, pas de nouvelles affirmations numériques en dehors de experimental_log.md, pas de liste défensive de limitations.
Rapport de test
Le dépôt a été cloné ; les 7 scripts, 7 références et 4 fichiers partagés existent. Le cœur déterministe a été exécuté sur des JSON de score conçus : score_delta.py a renvoyé exit 0 ACCEPT (58.0->67.3, bande Major->Minor), exit 1 REVERT en cas de régression, exit 5 HALT_TARGET_MET à 81.0 ; decision_band.py a mappé 67.3->Minor Revision ; concession_guard.py a renvoyé exit 1 pour un CRITICAL permanent, exit 0 pour une concession valide (rebuttal_score>=4) — correspondant aux codes de sortie documentés. Pour la sortie vs la base, j'ai révisé un court paper.tex en fonction des commentaires d'un relecteur demandant une nouvelle base ImageNet et signalant une exagération : la base sans compétence a écrit "nous reconnaissons comme une limitation" (échoue à la règle 2 de grep de limitation de la compétence) et a fabriqué un nombre ImageNet de 76% absent de experimental_log.md (échoue à la règle 3), tandis que la révision suivant la compétence a recadré l'exagération, n'a inventé aucun nombre et a passé les deux portes. Le frontmatter est analysé (name+description présents) ; aucune faille de sécurité. Verdict pass ; la boucle latexmk multi-itération complète nécessite des compétences sœurs plus un échafaudage d'espace de travail que je n'ai pas construit. L'indice de catégorie "sales" est erroné — il s'agit d'outils de rédaction académique.
Testé le: 2026-07-21 · Claude Code 2.x (agent harness)
Installation
git clone --depth 1 https://github.com/Ar9av/PaperOrchestra.git /tmp/content-refinement-agent-src mkdir -p ~/.claude/skills cp -R /tmp/content-refinement-agent-src/skills/content-refinement-agent ~/.claude/skills/content-refinement-agent # The SKILL body also calls scripts in sibling skills and reads skills/shared/*, so for the full loop: # cp -R /tmp/content-refinement-agent-src/skills/paper-orchestra ~/.claude/skills/paper-orchestra # cp -R /tmp/content-refinement-agent-src/skills/section-writing-agent ~/.claude/skills/section-writing-agent # cp -R /tmp/content-refinement-agent-src/skills/shared ~/.claude/skills/shared # Decision scripts (score_delta.py, decision_band.py, concession_guard.py, snapshot.py) are pure Python 3 stdlib. # Running the FULL end-to-end loop additionally needs: latexmk (TeX Live) to compile paper.pdf, # a workspace/ scaffold produced by earlier PaperOrchestra steps, and host LLM reviewer/revision calls.
Commandes et exemples de prompts
/content-refinement-agentBoucle itérative d'affinage de relecture par les pairs de paper.tex avec des portes d'arrêt déterministes accept/revert.
Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :
Refine the draft using simulated peer reviewIterate on the paper until it hits the target scoreRun the Devil's Advocate check on this paper section