Strumenti Linter Optimizer Recommender - diShine-digital-agency/ai-prompt-library GitHub Wiki
Approfondimento sui tre strumenti di qualitΓ β come funzionano, i loro sistemi di punteggio e come ottenere il massimo.
CLI: prompt-lib lint
Workshop: scheda Strumenti β Linter
Sorgente: src/linter.js
Il Prompt Linter analizza qualsiasi prompt rispetto a 14 regole di qualitΓ e produce un punteggio da 0 a 100, un voto in lettere (AβF) e suggerimenti prioritizzati per il miglioramento.
| # | ID Regola | Nome Regola | Peso | Cosa Controlla |
|---|---|---|---|---|
| 1 | has-role |
Definizione del ruolo | 10 | Il prompt specifica chi deve essere l'IA (you are, act as, role:, persona:) |
| 2 | has-task |
Compito chiaro | 12 | Il prompt indica cosa deve fare l'IA (task:, your job, please create/write/generate) |
| 3 | has-context |
Contesto fornito | 8 | Informazioni di contesto sono incluse (context:, background:, given that) |
| 4 | has-output-format |
Formato output specificato | 10 | Il formato di output atteso Γ¨ definito (output format:, respond in, use markdown/json) |
| 5 | has-constraints |
Vincoli o regole | 8 | Regole e limiti sono definiti (rule, never, always, do not, must not) |
| 6 | sufficient-length |
Dettaglio sufficiente | 8 | Il prompt Γ¨ lungo almeno 50 parole |
| 7 | not-too-long |
Non eccessivamente lungo | 5 | Il prompt Γ¨ sotto le 2000 parole |
| 8 | has-examples |
Esempi inclusi | 7 | Esempi dell'output atteso sono forniti (example:, for example, such as) |
| 9 | has-sections |
Sezioni strutturate | 7 | Il prompt ha 2+ intestazioni o sezioni etichettate (## Header o LABEL:) |
| 10 | no-vague-language |
Linguaggio specifico | 7 | Usa 3 o meno parole vaghe (good, nice, proper, appropriate) |
| 11 | has-audience |
Pubblico di destinazione | 5 | Specifica chi leggerΓ l'output (audience:, for a beginner/expert/developer) |
| 12 | has-tone |
Tono specificato | 5 | Definisce lo stile comunicativo (tone:, be professional/casual/technical) |
| 13 | no-please-overuse |
Non eccessivamente cortese | 3 | Usa "please" 2 volte o meno |
| 14 | has-quality-check |
Passaggio di verifica qualitΓ | 5 | Chiede all'IA di verificare il proprio lavoro (verify, check your, double-check, ensure accuracy) |
score = (sum of passed rule weights / total weight) Γ 100
Peso totale: 100 (somma di tutti i 14 pesi: 10+12+8+10+8+8+5+7+7+7+5+5+3+5)
| Voto | Intervallo | Significato |
|---|---|---|
| A | 90β100 | Eccellente β prompt pronto per la produzione |
| B | 75β89 | Buono β miglioramenti minori possibili |
| C | 60β74 | Accettabile β diverse aree da migliorare |
| D | 40β59 | Sotto la media β problemi significativi |
| F | 0β39 | Scarso β necessita rielaborazione importante |
Prompt in input:
Can you please help me write something good about dogs? Please make it nice
and interesting. Please include some good information.
Risultato dell'analisi:
Score: 15/100 (Grade: F)
Rules: 2/14 passed | 23 words
β
Passing:
β’ Not excessively long
β’ Specific language
π‘ Suggestions to improve:
β State the task explicitly: "Your task is toβ¦"
β Add a role definition like "You are a senior [role] expertβ¦"
β Specify the output format: "Respond in [format]"
β Add context: "Context: β¦" or "Given the following information: β¦"
β Add constraints: "Rules: β¦" or "Never do X" / "Always do Y"
β Your prompt is quite short. Add more detail about what you want.
β Add examples of expected input/output to guide the AI.
β Organize your prompt with clear sections using headers or labels.
β Specify the target audience: "This is for [audience]β¦"
β Define the tone: "Use a [professional/casual/technical] tone."
β Reduce "please" usage β direct instructions work better with AI.
β Add a quality check: "Before responding, verify thatβ¦"
- Aggiungi una definizione di ruolo (10 punti):
"You are a senior content writer" - Indica il compito chiaramente (12 punti):
"Your task is to write a 500-word blog post" - Specifica il formato di output (10 punti):
"Respond in markdown with headings" - Aggiungi vincoli (8 punti):
"Never make up statistics" - Aggiungi contesto (8 punti):
"Context: This is for a pet adoption website" - Scrivi almeno 50 parole (8 punti)
- Includi esempi (7 punti)
- Usa intestazioni di sezione (7 punti)
Il linter rileva automaticamente il tipo di prompt e adegua i pesi delle regole:
| Tipo | Rilevamento | Modifiche ai pesi |
|---|---|---|
| π¨ Immagine | Parole chiave: image, photo, visual, dall-e, midjourney... | Salta audience, tone, quality-check. Aumenta vague-language (Γ1.5) |
| π» Codice | Parole chiave: code, function, class, api, debug... | Aumenta task, context, output-format, constraints (Γ1.2) |
| π€ Sistema | Parole chiave: you are, act as, persona... + lunghezza < 800 | Aumenta role (Γ1.5), constraints (Γ1.5). Rilassa length (Γ0.5) |
| π Generale | Predefinito | Tutti i pesi a Γ1.0 |
Per la tabella completa dei moltiplicatori, vedi INFRASTRUCTURE.md.
CLI: prompt-lib optimize
Workshop: scheda Strumenti β Optimizer
Sorgente: src/optimizer.js
Il Prompt Optimizer riscrive i prompt usando un'analisi consapevole del contenuto. Rileva il dominio, il pubblico e l'intento, poi applica miglioramenti mirati specifici per il contenuto effettivo del prompt.
| ModalitΓ | Come Funziona | Requisiti | VelocitΓ |
|---|---|---|---|
| Istantanea (offline) | Ottimizzazione basata su regole tramite pipeline integrata | Nessuno | Istantanea |
| Basata su IA | Invia il prompt a GPT/Claude/Gemini per riscrittura professionale | Chiave API | 2β10s |
L'ottimizzatore elabora il prompt attraverso questi passaggi in ordine:
Prompt in input
β
βββ 1. Rilevamento del dominio (7 domini)
βββ 2. Rimozione del riempitivo (frasi ridondanti)
βββ 3. Riduzione della cortesia (eccesso di "please")
βββ 4. Rafforzamento dei verbi deboli (tentennamento β direttive)
βββ 5. Sostituzione del linguaggio vago (termini specifici)
βββ 6. Decomposizione dei compiti composti (multi-task β passaggi)
βββ 7. Inserimento del ruolo specifico per dominio
βββ 8. Rilevamento del pubblico e impostazione del tono
βββ 9. Aggiunta dei vincoli (specifici per dominio)
βββ 10. Specifica del formato di output
βββ 11. Segnaposto per gli esempi
βββ 12. Passaggio di verifica qualitΓ
β
βΌ
Prompt ottimizzato + punteggi prima/dopo + log delle modifiche
L'ottimizzatore analizza le parole chiave per identificare uno dei 7 domini:
| Dominio | Parole Chiave Esempio | Ruolo Assegnato Automaticamente |
|---|---|---|
| Programmazione | code, programming, api, debug, refactor, javascript, python | Senior software engineer with deep expertise in software architecture |
| Scrittura | write, blog, article, essay, email, content, draft | Experienced content strategist and professional writer |
| Marketing | marketing, seo, social media, campaign, conversion, funnel | Senior marketing strategist with expertise in digital marketing |
| Dati | data, analysis, sql, dashboard, statistics, ml, pipeline | Senior data analyst with expertise in statistical analysis |
| Business | business, proposal, strategy, stakeholder, budget, revenue | Experienced business consultant with expertise in strategic planning |
| Formazione | teach, explain, student, course, lesson, simplify | Experienced educator skilled at breaking down complex concepts |
| Immagini | image, photo, visual, design, logo, midjourney, dall-e | Expert visual artist and AI image prompt engineer |
Ogni dominio fornisce:
- Un ruolo esperto specifico (invece del generico "helpful assistant")
- Vincoli rilevanti per il dominio
- Formato di output appropriato
- Controlli di qualitΓ specifici per il dominio
- Segnaposto per gli esempi
L'ottimizzatore elimina queste espressioni di riempimento:
-
basically,essentially,actually,literally,honestly -
obviously,clearly,simply put,in other words -
as you know,it goes without saying,needless to say -
I think,I believe,I feel like,in my opinion
Questi pattern di tentennamento vengono rimossi o sostituiti con istruzioni dirette:
| Prima | Dopo |
|---|---|
| "Can you write..." | "Write..." |
| "Could you create..." | "Create..." |
| "I want you to..." | (rimosso, segue istruzione diretta) |
| "I need you to..." | (rimosso) |
| "Try to..." | (rimosso) |
| "Maybe..." | (rimosso) |
| "If possible..." | (rimosso) |
| "Just..." | (rimosso) |
| "Kind of..." | (rimosso) |
| "Sort of..." | (rimosso) |
| Vago | Sostituito Con |
|---|---|
| "a good way" | "an effective, well-reasoned way" |
| "make it good" | "ensure it is clear, thorough, and well-structured" |
| "something nice" | "a polished, professional result" |
| "properly" | "correctly and following established standards" |
| "appropriate" | "suitable for the stated context and audience" |
| "interesting" | "insightful and thought-provoking" |
| "as much as possible" | "comprehensively, covering all key aspects" |
| "etc." | "and related items" |
| "stuff" | "components" |
| "things" | "elements" |
Prima (Punteggio: 35/100, Voto: F):
Can you please help me write a good blog post about machine learning?
Please make it interesting and cover the basics. I want you to maybe
include some good examples if possible. Thanks!
Dopo (Punteggio: 88/100, Voto: B):
You are an experienced content strategist and professional writer with
expertise in clear, engaging communication.
TASK:
Write a blog post about machine learning. Cover the basics. Include
insightful and thought-provoking examples.
TARGET AUDIENCE:
This is for beginners.
TONE:
Be clear, engaging, and well-paced.
OUTPUT FORMAT:
Respond in well-structured prose with clear headings, short paragraphs,
and a logical narrative flow. Use markdown formatting.
RULES:
- Use clear, concise language appropriate to the target audience
- Maintain a consistent tone and voice throughout
- Structure content with logical flow and smooth transitions
- Support claims with specific details or examples
Before responding, verify that the writing is clear, free of jargon,
logically structured, and engaging for the target audience.
Modifiche apportate:
- Rimosse le parole di riempimento e le frasi ridondanti
- Sostituito il linguaggio esitante con istruzioni dirette
- Sostituito il linguaggio vago con termini specifici
- Aggiunto il ruolo specifico per il dominio (scrittura)
- Organizzato il prompt in sezioni etichettate chiare
- Aggiunto il formato di output specifico per la scrittura
- Aggiunti vincoli di qualitΓ specifici per la scrittura
- Aggiunto il passaggio di verifica della qualitΓ
Dopo l'ottimizzazione, alterna tra:
- Ottimizzato β prompt ottimizzato pulito
- Vista Diff β confronto colorato riga per riga (π’ aggiunto, π΄ rimosso, senza marcatore = invariato)
CLI: prompt-lib recommend <query>
Workshop: scheda Strumenti β Recommender
Sorgente: src/recommender.js
Lo Smart Recommender analizza la tua descrizione in linguaggio naturale e suggerisce i prompt migliori dalla libreria, includendo una combinazione ottimale.
Descrizione dell'utente
β
βββ 1. Estrazione dei termini (suddivisione in parole ricercabili)
βββ 2. Rilevamento dell'intento (mappatura su 8 categorie di intento)
βββ 3. Punteggio dei prompt (corrispondenza dei termini con tutti i prompt)
βββ 4. Bonus intento (potenziamento dei prompt nelle categorie corrispondenti)
βββ 5. Costruzione della combinazione (prompt di sistema + framework + template)
β
βΌ
Prime 8 corrispondenze + combinazione suggerita
Per ogni prompt nella libreria, il recommender calcola un punteggio di pertinenza:
| Posizione della Corrispondenza | Punti per Termine |
|---|---|
| Titolo | 20 |
| Tag | 15 |
| Categoria | 10 |
| Contenuto | 3 |
I prompt nelle categorie che corrispondono all'intento rilevato ricevono un bonus.
| Intento | Parole Chiave di Attivazione |
|---|---|
| Programmazione | code, programming, developer, software, api, debug, refactor, test, git, deploy |
| Scrittura | write, blog, article, copy, content, essay, email, letter, documentation |
| Marketing | marketing, seo, social media, campaign, ads, brand, landing page, conversion |
| Dati | data, analysis, sql, database, dashboard, report, statistics, visualization, etl |
| Business | business, proposal, meeting, stakeholder, strategy, okr, pitch, client, project |
| Immagini | image, photo, visual, design, logo, illustration, portrait, scene, art |
| Ricerca | research, analyze, investigate, study, compare, evaluate, review |
| Didattica | teach, explain, tutor, learn, student, course, education |
Il recommender restituisce:
- Primi 8 prompt corrispondenti β ordinati per punteggio di pertinenza
-
Combinazione suggerita β la migliore combinazione di:
- π§ Prompt di sistema β prompt di sistema con punteggio piΓΉ alto
- π§ Framework β framework con punteggio piΓΉ alto
- π Template β template di dominio con punteggio piΓΉ alto
- Risultati categorizzati β primi 3 prompt di sistema, primi 3 framework, primi 5 template
Query: "I need to build a REST API with authentication"
Output:
Suggested combination:
π§ System prompt: Coding Assistant (coding-assistant)
π§ Framework: Chain-of-Thought (chain-of-thought)
π Template: API Design (api-design)
Top matching prompts:
API Design
slug: api-design | category: development | score: 68
System Design
slug: system-design | category: development | score: 43
Coding Assistant
slug: coding-assistant | category: system-prompts | score: 38
...
- Sii descrittivo: "I need to write marketing emails for a SaaS product" > "email help"
- Includi parole chiave del dominio: "data analysis SQL dashboard" attiva l'intento dati
- Menziona l'obiettivo finale: "create a landing page that converts" > "make a web page"
- Combina contesti: "code review for Python REST API" attiva sia programmazione che sviluppo
Navigazione: β Guida Modelli AI | API e Playground β