Applis web fiables : fichier autonome, zéro dépendance externe, pas de bluff

Les modèles promettaient des libs qui ne se chargent jamais hors-ligne
(Stockfish, CDN…), éclataient le code en fichiers incohérents, puis
déclaraient « ça marche » sans rien vérifier.

- Contraintes « appli web » injectées pour toute tâche web (agent +
  moteur code) : UN seul index.html autonome (CSS/JS inline), AUCUNE
  ressource externe (implémenter en JS natif à la place), rendu réel au
  chargement, interdiction de « simuler » une lib en la disant réelle.
- check_html signale désormais les scripts/styles externes (CDN/WASM)
  qui ne se chargeront pas dans le sandbox hors-ligne, en plus des
  références locales cassées.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SVay7z3y7q2gEe54ByAE6N
This commit is contained in:
Claude committed 2026-07-21 08:57:09 +00:00
1 parent 41f07b0ba8
commit 920f575507
3 files changed
+58 -4

No files matched your search

+9 -1
View File
@@ -425,6 +425,12 @@ async def chat(req: ChatRequest) -> StreamingResponse:
if cfg.get("ponytail", True) and is_code_like:
convo.insert(1, {"role": "system", "content": skills.PONYTAIL_GUIDANCE})
# Appli web : contraintes dures (fichier autonome, zéro dépendance
# externe, rendu réel) pour que ça marche vraiment hors-ligne.
want_web = is_code_like and skills.is_web_task(req.content)
if want_web:
convo.insert(1, {"role": "system", "content": skills.WEBAPP_GUIDANCE})
if plan:
yield _sse("plan", {"steps": plan})
@@ -443,7 +449,9 @@ async def chat(req: ChatRequest) -> StreamingResponse:
if recap:
extra = f"\n\n{recap}" + extra
# Le moteur code (Aider) ne voit pas convo : on lui redonne Ponytail
# directement dans la consigne.
# (et les contraintes web) directement dans la consigne.
if want_web:
extra = "\n\n" + skills.WEBAPP_GUIDANCE + extra
if cfg.get("ponytail", True):
extra = "\n\n" + skills.PONYTAIL_GUIDANCE + extra
code_files = _mentioned_files(req.content) or session_files[:8]