Skip to main content

astro-agent-ready-website

Guida la creazione di un sito personale (portfolio/blog) con Astro + TypeScript, ottimizzato per SEO, AEO e "agent readiness" (leggibilità da parte di agenti AI). Usa SEMPRE questa skill quando l'utente vuole creare, ristrutturare o rendere "agent-friendly"/"AI-friendly" un sito personale, un portfolio, o un blog — anche se non menziona esplicitamente Astro, SEO, AEO, llms.txt o "agent readiness" per nome. Fornisce un workflow spec-driven (spec.md prima del codice) e template pronti da copiare, tra cui spec.md, llms.txt, robots.txt con distinzione bot retrieval/training, endpoint .well-known (agent-readiness.json, webmcp.json, skills/index.json), api/catalog.json, middleware Astro di content negotiation Markdown, AGENTS.md, schema frontmatter dei post. Attiva anche per richieste come "voglio che il mio sito sia leggibile da ChatGPT/Claude/Perplexity", "aggiungi llms.txt al mio sito", o "come blocco i crawler di training AI ma non i bot di ricerca".

Aller à l'installation

Informations de source

Dépôt
Daniel-97/agent-skills
Dernière activité de la source
24 juillet 2026 à 07:04
Langue détectée de SKILL.md
italien
Étoiles
1
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
12 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
astro-agent-ready-website
description
Guida la creazione di un sito personale (portfolio/blog) con Astro + TypeScript, ottimizzato per SEO, AEO e "agent readiness" (leggibilità da parte di agenti AI). Usa SEMPRE questa skill quando l'utente vuole creare, ristrutturare o rendere "agent-friendly"/"AI-friendly" un sito personale, un portfolio, o un blog — anche se non menziona esplicitamente Astro, SEO, AEO, llms.txt o "agent readiness" per nome. Fornisce un workflow spec-driven (spec.md prima del codice) e template pronti da copiare, tra cui spec.md, llms.txt, robots.txt con distinzione bot retrieval/training, endpoint .well-known (agent-readiness.json, webmcp.json, skills/index.json), api/catalog.json, middleware Astro di content negotiation Markdown, AGENTS.md, schema frontmatter dei post. Attiva anche per richieste come "voglio che il mio sito sia leggibile da ChatGPT/Claude/Perplexity", "aggiungi llms.txt al mio sito", o "come blocco i crawler di training AI ma non i bot di ricerca".
# Astro Agent-Ready Personal Website Skill per costruire (o retrofittare) un sito personale con Astro + TypeScript che sia contemporaneamente: veloce da realizzare con un assistente AI, SEO-solido, e leggibile/citabile in modo affidabile dagli agenti AI (AEO / agent readiness). Basata sul workflow descritto in "Building an Agent Friendly Personal Website with Specs" (Salih Güler) e sul repo di riferimento salihgueler/salih-dev. ## Quando usarla - L'utente vuole creare da zero un sito personale/portfolio/blog. - L'utente ha già un sito e vuole aggiungere SEO/AEO/agent-readiness. - L'utente menziona `llms.txt`, "content negotiation", "robots.txt per bot AI", "far leggere il mio sito a un agente", "citazioni AI", ecc. - L'utente chiede di scrivere uno `spec.md` per un progetto web prima di iniziare a programmare. Se lo stack richiesto NON è Astro, applica comunque i principi (spec-driven, le 5 categorie di agent readiness, content negotiation) ma adatta l'implementazione tecnica al framework scelto — i template in `assets/` restano un riferimento concettuale valido ovunque, solo il middleware Astro va riscritto per lo stack target. ## Workflow (segui questo ordine) ### 1. Raccogli il minimo indispensabile Prima di generare qualsiasi file, chiedi (se non già note): - Nome/dominio del sito, bio breve, cosa deve contenere (blog? conferenze? progetti? mappa location?). - Se ha contenuti esistenti da importare (dev.to, Medium, altro) e da dove. - Policy sui contenuti: permettere training AI oppure no (default consigliato: search=yes, ai-input=yes, ai-train=no — vedi motivazioni sotto). - Non-goal per questa iterazione (es. niente deploy, niente test, niente auth). Non fare troppe domande in una volta: raggruppale, oppure usa i default ragionevoli indicati nei template e segnalali esplicitamente. ### 2. Genera `spec.md` PRIMA di scrivere codice Copia `assets/spec.md.template`, compilalo con le info raccolte. Regole da rispettare quando lo compili: - Usa linguaggio forte: `MUST` / `MUST NOT` / `SHOULD` / `SHOULD NOT` in maiuscolo per ogni regola vincolante. Non ammorbidire ("potremmo forse..."). - Le scelte tecniche (Astro, TypeScript) sono già decise: non proporre "valutiamo alternative". - Mantieni la sezione "Non-Goals" esplicita: aiuta a rispettare lo scope. - Mostra lo spec compilato all'utente e chiedi conferma prima di procedere all'implementazione. ### 3. Pianifica prima di implementare Per ogni funzionalità non banale, proponi un piano breve con criteri di accettazione e attendi l'approvazione dell'utente prima di scrivere codice. Questo vale soprattutto per: struttura contenuti, endpoint agent-readiness, script di import. ### 4. Implementa la base SEO - `sitemap.xml`, `rss.xml` generati dai contenuti (non statici). - Meta tag/Open Graph per pagina. - URL canonici (importante se un post è anche pubblicato altrove). - Pagine di listing per categorie/tag. ### 5. Implementa agent readiness (le 5 categorie) Usa i file in `assets/` come base, sostituendo `<dominio>`/`<NOME>` con i valori reali. Leggi `references/agent-readiness-details.md` per la spiegazione di ciascuna categoria e il "perché" prima di generare i file, così puoi spiegarli all'utente se chiede chiarimenti. | Categoria | File/asset da usare | Note | |---|---|---| | Discoverability | `llms.txt.template`, `robots.txt.template` (+ sitemap/rss del passo 4) | `llms.txt`/`llms-full.txt` vanno **generati dinamicamente** a build time dai contenuti, non scritti a mano una tantum | | Content Accessibility | `content-negotiation.middleware.ts.template` | Ogni pagina HTML deve avere un alternate `.md` | | Bot Access Control | `robots.txt.template` (sezione retrieval vs training) | Aggiungi anche l'header `Content-Signal` (già nel middleware) | | Protocol Discovery | `agent-readiness.json.template`, `webmcp.json.template`, `skills-index.json.template`, `catalog.json.template` | Vanno serviti sotto `/.well-known/...` e `/api/...` | | Commerce | dentro `agent-readiness.json.template` (campo `commerce`) | Per un sito personale, lascia `"status": "unavailable"` con motivo — non ometterlo | **Regola chiave da applicare sempre**: qualunque capacità elencata ma non implementata deve rispondere con uno stato `"unavailable"` esplicito e un motivo (vedi esempio nel template `agent-readiness.json`). Mai un 404 muto: un agente che riceve 404 continua a fare tentativi, uno che riceve "unavailable" con motivo si ferma. ### 6. Genera `AGENTS.md` Copia `assets/AGENTS.md.template` nella root del repo: fissa le regole di processo e l'elenco degli endpoint agent-readiness da non rompere in futuro, per qualsiasi assistente che lavorerà sul repo dopo di te. ### 7. Import contenuti esistenti (se richiesto) Se l'utente ha contenuti su dev.to/Medium/altro: - Scrivi uno script di import dedicato per fonte (`scripts/import-<fonte>.mjs`). - Lo script DEVE richiedere metadati revisionati manualmente (categoria, riassunto AI) per ogni contenuto — se mancano, fallisce esplicitamente, non usa default silenziosi. - Gestisci la deduplicazione: se lo stesso post esiste su più fonti, fai merge (aggiungi source link) invece di creare un duplicato. - Usa `assets/blog-post-frontmatter.md.template` come schema del frontmatter. ### 8. Polish finale Chiedi esplicitamente "cosa manca?" prima di considerare l'iterazione chiusa. Tipicamente restano: fix responsive/mobile, piccoli overflow CSS. Falli per ultimi, sono rapidi e non bloccano il resto. ## Checklist di verifica finale - [ ] `spec.md` scritto e approvato PRIMA del codice - [ ] `robots.txt`, `sitemap.xml`, `rss.xml` presenti - [ ] `llms.txt` + `llms-full.txt` generati dinamicamente dal contenuto reale - [ ] Content negotiation attiva (`Accept: text/markdown` → risposta markdown) - [ ] Header `Link` (canonical/alternate/service-desc) su ogni pagina HTML - [ ] Header `Content-Signal` su ogni risposta - [ ] `robots.txt` distingue bot di retrieval (consentiti) da crawler di training (bloccati) - [ ] `/.well-known/agent-readiness.json`, `/.well-known/webmcp.json`, `/.well-known/skills/index.json` serviti - [ ] `/api/catalog.json`, `/api/openapi.json` serviti - [ ] Ogni capacità non supportata risponde "unavailable" + motivo (mai 404 muto) - [ ] `AGENTS.md` presente nella root - [ ] Import contenuti (se applicabile): dedup + metadati revisionati a mano ## File disponibili in questa skill ``` assets/ spec.md.template — spec iniziale da compilare llms.txt.template — riassunto machine-readable del sito robots.txt.template — bot retrieval vs training agent-readiness.json.template — manifest capacità (.well-known) webmcp.json.template — dichiarazione onesta "nessun tool" skills-index.json.template — skill read-only del sito catalog.json.template — catalogo documenti/API content-negotiation.middleware.ts.template — middleware Astro Accept:text/markdown AGENTS.md.template — istruzioni persistenti per coding assistant blog-post-frontmatter.md.template — schema frontmatter dei post references/ agent-readiness-details.md — spiegazione estesa delle 5 categorie, da leggere se serve motivare le scelte all'utente ``` Copia sempre i template in output reali (sostituendo placeholder come `<dominio>`, `<NOME>`), non lasciarli con i placeholder nel repo finale.
Voir sur GitHub