agency-skills-suite/agency-web-developer/SKILL.md
AgentePotente a29db752af Generalizzazione: sostituito clients/{client}/ con {project}/
- Sostituite 135 occorrenze di clients/{client}/ con {project}/
- Aggiornati parametri: client_path → project_path in 11 skills
- README.md aggiornato con nuova convenzione {project}/
- Struttura cartelle ora agnostica: compatibile con clients/, projects/, o qualsiasi cartella
- Maggiore flessibilità per diversi sistemi e workflow

Vantaggi:
 Compatibile con qualsiasi struttura cartelle
 Non impone convenzione 'clients/'
 Utile per progetti interni, campagne, o clienti
 Più generale e riutilizzabile
2026-03-11 00:42:52 +01:00

11 KiB

name description
agency-web-developer Sviluppare siti web statici o landing page partendo da copy e design system. PRIMA di sviluppare: leggi {project}/assets/catalog.md per immagini e asset. Se mancano, richiedi @agency-archivist. Usare quando: (1) costruire sito da sitemap + copy, (2) creare landing page, (3) implementare design in HTML/CSS/JS. Output: Sito completo con HTML semantico, CSS (Bootstrap o custom), JS (jQuery + GSAP).

Agency Web Developer — Sviluppo Siti Web Statici

Trasforma copy e design system in siti web funzionanti con HTML semantico, CSS e JS.

Quando Usare

  • Nuovo sito: Costruire sito completo da sitemap + copy + design tokens
  • Landing page: Pagina singola campaign-specific
  • Design implementation: Convertire mockup in codice
  • Static site: Sito senza backend (brochure, portfolio, landing)

Input

Input Tipo Validazione
project_path string Percorso progetto (cartella di lavoro)
sitemap object Da agency-ux-copy
page_copy array Copy completo per ogni pagina
design_tokens object Da agency-design-system
page_layouts array Layout definitions
seo_metadata array SEO notes per pagina

Processo

Fase 1: Risorse e Setup Struttura Progetto

Obiettivo: Verificare asset disponibili e creare directory structure.

Azioni:

  1. LEGGI CATALOGO RISORSE:

    • Apri {project}/assets/catalog.md
    • Cerca:
      • Logo: #logo → Per header/footer
      • Immagini hero: #hero, #sfondo, #prodotto → Per homepage
      • Immagini pagine: #team, #ufficio, #prodotto → Per pagine interne
      • Favicon: #icon, #favicon → Per <head>
  2. Se risorse mancanti:

    • FERMATI e segnala: "🔒 Bloccato: servono immagini per il sito"
    • Tagga: @agency-archivist
    • Specifica:
      Per sviluppare il sito, servono:
      - [ ] Logo (PNG/SVG, per header)
      - [ ] Immagine hero (1920x1080, per homepage)
      - [ ] Foto team/prodotto (per pagine interne)
      - [ ] Favicon (32x32 o 64x64)
      
    • Attendi che archivist carichi e sblocchi
  3. Crea cartella {project}/website/

  4. Crea sottocartelle:

    • index.html (homepage)
    • pages/ (altre pagine HTML)
    • css/ (stylesheet)
    • js/ (JavaScript)
    • assets/ (immagini, font, etc.)
    • assets/img/
    • assets/fonts/
  5. Collega asset da archivio:

    • Crea symlink o copia da {project}/assets/ a website/assets/
    • Oppure usa path relativi: ../assets/images/logo/logo.png
  6. Inizializza file base:

    • css/main.css (o css/bootstrap.min.css + css/custom.css)
    • js/main.js

Output:

  • Struttura directory pronta
  • Asset collegati o copiati

Fase 2: HTML Semantico

Obiettivo: Costruire struttura HTML per ogni pagina.

Azioni:

  1. Per ogni pagina in sitemap:

  2. Struttura base:

    <!DOCTYPE html>
    <html lang="it">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>{SEO Title}</title>
      <meta name="description" content="{SEO Meta Description}">
      <link rel="stylesheet" href="css/main.css">
    </head>
    <body>
      <header>{Navigation}</header>
      <main>{Content}</main>
      <footer>{Footer}</footer>
      <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
      <script src="js/main.js"></script>
    </body>
    </html>
    
  3. Hero section:

    • <section class="hero">
    • <h1> per headline
    • <p class="hero-sub"> per subcopy
    • <a class="btn btn-primary"> per CTA
  4. Content sections:

    • Usa tag semantici: <section>, <article>, <aside>
    • Heading hierarchy: <h2>, <h3> (mai saltare livelli)
    • Liste: <ul>, <ol> con <li>
    • Immagini: <img alt="descrizione">
  5. Componenti da copy:

    • Card grid per services
    • Testimonial blocks
    • FAQ accordion
    • CTA sections
    • Form di contatto
  6. Segui ../agency-shared-references/references/html_semantics.md:

    • Semantic HTML best practices
    • Accessibility (ARIA labels dove necessario)
    • SEO on-page (heading structure, alt text)

Output:

  • {project}/website/index.html
  • {project}/website/pages/*.html

Fase 3: CSS Layout

Obiettivo: Stilizzare il sito con CSS.

Decisione: Bootstrap vs Custom

Usa Bootstrap se:

  • Design è standard (grid, cards, buttons standard)
  • Progetto semplice/veloce
  • Cliente non richiede customizzazione estrema

Usa Custom CSS se:

  • Design altamente personalizzato
  • Brand ha linee guida specifiche
  • Layout non-standard

Azioni:

  1. Se Bootstrap:

    • Includi CDN in HTML
    • Crea css/custom.css per override
    • Usa classi Bootstrap (.container, .row, .col, .btn, etc.)
    • Override tokens in custom.css
  2. Se Custom:

    • Crea css/main.css da zero
    • Implementa design tokens (fonts, colors, spacing)
    • Crea grid system (o usa CSS Grid/Flexbox)
    • Stilizza componenti uno a uno
  3. Implementa da ../agency-shared-references/references/css_layout.md:

    • Responsive design (mobile-first)
    • Breakpoints (mobile, tablet, desktop)
    • Typography scale
    • Color system
    • Spacing system
  4. Componenti da stilizzare:

    • Header/navigation (sticky, mobile menu)
    • Hero section
    • Buttons (primary, secondary, hover states)
    • Cards
    • Forms
    • Footer

Output:

  • {project}/website/css/main.css (o bootstrap.min.css + custom.css)

Fase 4: JavaScript Interattività

Obiettivo: Aggiungere interattività al sito.

Librerie:

  • jQuery: Per DOM manipulation, event handling, AJAX (se necessario)
  • GSAP: Per animazioni fluide, timeline, effetti complessi

Azioni:

  1. Includi librerie in HTML:

    <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
    <script src="js/main.js"></script>
    
  2. Funzionalità base (jQuery):

    • Mobile menu toggle
    • Smooth scroll per anchor links
    • Form validation
    • Accordion FAQ
    • Image lazy loading
    • Back to top button
  3. Animazioni (GSAP):

    • Fade-in on scroll
    • Hero animations (headline, CTA)
    • Parallax effects (se richiesti)
    • Hover animations complesse
    • Timeline per sequenze animate
  4. Segui ../agency-shared-references/references/js_interactivity.md:

    • Best practices jQuery
    • GSAP patterns
    • Performance considerations
    • Accessibility (respect reduced-motion)

Template js/main.js:

$(document).ready(function() {
  
  // Mobile menu toggle
  $('.mobile-menu-toggle').on('click', function() {
    $('.nav-menu').toggleClass('is-open');
  });
  
  // Smooth scroll
  $('a[href^="#"]').on('click', function(e) {
    e.preventDefault();
    const target = $(this.getAttribute('href'));
    if (target.length) {
      $('html, body').animate({
        scrollTop: target.offset().top - 80
      }, 800);
    }
  });
  
  // FAQ accordion
  $('.faq-question').on('click', function() {
    $(this).next('.faq-answer').slideToggle(300);
    $(this).toggleClass('is-active');
  });
  
  // GSAP animations
  gsap.from('.hero h1', {
    duration: 1,
    opacity: 0,
    y: 30,
    ease: 'power3.out'
  });
  
  gsap.from('.hero .btn', {
    duration: 1,
    opacity: 0,
    y: 20,
    delay: 0.3,
    ease: 'power3.out'
  });
  
  // Scroll animations
  gsap.utils.toArray('.fade-on-scroll').forEach(function(elem) {
    gsap.to(elem, {
      scrollTrigger: {
        trigger: elem,
        start: 'top 80%',
        toggleActions: 'play none none none'
      },
      opacity: 1,
      y: 0
    });
  });
  
});

Output:

  • {project}/website/js/main.js

Fase 5: QA e Testing

Obiettivo: Verificare qualità del sito.

Azioni:

  1. HTML validation:

    • Tag chiusi correttamente
    • Attributi required presenti
    • Nesting corretto
  2. CSS check:

    • Responsive su mobile/tablet/desktop
    • Color contrast (accessibility)
    • No overflow o layout broken
  3. JS check:

    • Console errors (nessuno)
    • Funzionalità testate (menu, form, accordion)
    • Animazioni fluide
  4. SEO check:

    • Title tag unico per pagina
    • Meta description presente
    • Heading hierarchy corretta
    • Alt text su immagini
  5. Performance:

    • Immagini ottimizzate (se presenti)
    • CSS/JS minified (opzionale)
    • No console warnings

Output:

  • {project}/website/qa/qa_website.md

Output

File Formato Descrizione
{project}/website/index.html HTML Homepage
{project}/website/pages/*.html HTML Altre pagine
{project}/website/css/main.css CSS Stylesheet
{project}/website/js/main.js JS Interattività
{project}/website/assets/ Folder Immagini, font, etc.
{project}/website/qa/qa_website.md Markdown QA checklist

References

Shared References (Agency Suite)

Flusso consigliato:

  1. Leggi catalogo risorse (assets/catalog.md)
  2. Verifica asset disponibili o richiedi ad @agency-archivist
  3. Leggi pattern UX da agency-shared-references/references (COSA fare)
  4. Implementa con technical references da agency-shared-references/references (COME codificare)

Note

Edge Cases:

  • Nessun design system: Usa Bootstrap default + stile minimal
  • Solo landing page: Crea single-page con anchor navigation
  • Cliente fornisce asset: Copia in assets/ e usa percorsi corretti
  • Animazioni complesse: Usa GSAP timeline, documenta in decision log

Limitazioni:

  • Siti statici (no backend, no database)
  • Form richiedono servizio esterno (Formspree, Netlify Forms) o backend
  • E-commerce non supportato (richiede piattaforma dedicata)

Skill creata per agency_v3_1 suite