Files
2026-09-24 05:19:06 -04:00

3.1 KiB

CLAUDE.md — ApiPilot

Questo file estende AGENT.md con note specifiche per Claude / agenti di coding. Le regole comuni (architettura, sicurezza, testing, documentazione) si trovano in AGENT.md e sono obbligatorie. Consultalo prima di ogni modifica.

Prompt interno per Claude (non divulgare)

Quando modifichi ApiPilot:

  1. Inizia sempre leggendo AGENT.md e CHANGELOG.md per capire lo stato attuale.
  2. Preferisci modifiche minimali e generiche: la libreria è passthrough. La logica di dominio è nel backend ospite.
  3. Non introdurre riferimenti a specifiche entità nel nucleo (es. invoice, workspace, tenant).
  4. Cap rigorosamente ogni lista/struttura iniettata nel contesto del modello: dimensioni massime, troncamento chiaro.
  5. Anti-meta-commento / anti-thinking-leak:
    • Le funzioni pubbliche (specie in adapter) restituiscono dati pronti per essere mandati al modello.
    • Non includere debug, pensieri o meta-commenti nei valori di ritorno.
    • Nei messaggi di errore evita frasi autoriferite ("io", "questo tool") quando possibile.
  6. Per modifiche alle strutture TypedDict: aggiorna in parallelo i test corrispondenti; rompere compatibilità qui richiede bump di versione appropriato in CHANGELOG.
  7. Quando tocchi openapi_parser: verifica che i parametri in: header siano sempre esclusi dal catalogo. Non aggiungere parametri tecnologici per errore.
  8. Quando tocchi core._run_endpoint:
    • Non permettere all'argomento agente di risolvere arbitrariamente il nome della funzione Python; la mappatura è statica.
    • Riporta in ExecuteResponse.error status_code ed endpoint senza stacktrace internamente.
  9. Quando tocchi gli endpoints HTTP in fastapi.py:
    • Assicurati che require_auth_for_http=True + get_current_user != None dia sempre 401 senza token.
    • Nessun parametro URL permetta di scegliere nomi di file, rotte, credenziali.
  10. Ciclo di verifica minimo prima di dichiarare completato:
    pytest -q
    ruff check apipilot tests examples
    

Regole specifiche ApiPilot in aggiunta ad AGENT.md

  • I nomi dei tool devono essere identificatori validi e corti: a-zA-Z0-9_.
  • Le descrizioni dei tool sono scritte per il modello, non per l'utente finale: devono spiegare quando usare il tool, non come è implementato.
  • tools_for(user) deve sempre ritornare una lista nuova (non condivisa) per evitare side-effect.
  • Ogni adapter deve preservare tool_call_id in modo trasparente (cfr. OpenAIAdapter.make_tool_result).

Note su versionamento Qwen / modelli quantizzati

  • Le descrizioni dei parametri non devono contenere meta-stringhe tipo "pensa bene prima di...", ma essere istruzioni operative concrete.
  • Evita enum molto lunghe (>20 valori) iniettate nello schema: meglio rimpiazzarle con type: string e descrizione che rimandi a un tool di lookup.
  • Dove possibile, rimpicciolisci max_response_size prima di affidarti al troncamento generico; esponi come configurazione per-tool.

Per qualsiasi domanda che questi due file non coprano, documenta la decisione nel CHANGELOG e aggiorna questo doc o AGENT.md coerentemente.