From siae-devforge
Use when evaluating, choosing, or analyzing architectural patterns for an existing or new system. Analizza architettura di sistemi software: C4 model, HLD, bounded context, CQRS, event-driven, microservizi vs monolite, resilienza, accoppiamento tra servizi. Trigger: VALUTARE, SCEGLIERE, ANALIZZARE pattern architetturali. **Best after**: siae-brainstorming Step 4 (options proposed) — questa skill è specialistica per deepen architectural choice già scoperto. Examples: "valutiamo CQRS", "microservizi o monolite?", "crea il C4", "definisci i bounded context", "HLD per il sistema X".
How this skill is triggered — by the user, by Claude, or both
Slash command
/siae-devforge:siae-architectureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
```
╔══════════════════════════════════════════════════════════════════╗
║ ███████╗██╗ █████╗ ███████╗ ██████╗ ███████╗██╗ ██╗ ║
║ ██╔════╝██║██╔══██╗██╔════╝ ██╔══██╗██╔════╝██║ ██║ ║
║ ███████╗██║███████║█████╗ ██║ ██║█████╗ ██║ ██║ ║
║ ╚════██║██║██╔══██║██╔══╝ ██║ ██║██╔══╝ ╚██╗ ██╔╝ ║
║ ███████║██║██║ ██║███████╗ ██████╔╝███████╗ ╚████╔╝ ║
║ ╚══════╝╚═╝╚═╝ ╚═╝╚══════╝ ╚═════╝ ╚══════╝ ╚═══╝ ║
║ 🔨 DevForge · Architecture ║
╚══════════════════════════════════════════════════════════════════╝
Tipo: Flexible | Fase SDLC: 2. Design
📊 Dai repo itsiae: I servizi progettati senza C4 diagram hanno 2.3x piu' richieste di chiarimento durante l'onboarding di nuovi developer. Fonte: analisi su 816 repository GitHub itsiae (60 Java, 44 HCL, 23 Python, 22 TypeScript).
Il modello C4 (Context, Container, Component, Code) e' lo standard per documentare architetture in SIAE. Ogni livello aggiunge dettaglio progressivo; usa il livello minimo necessario per la decisione in corso.
| Livello | Nome | Cosa mostra | Quando usarlo |
|---|---|---|---|
| 1 | Context | Sistema + attori esterni + sistemi adiacenti | Kickoff progetto, allineamento stakeholder |
| 2 | Container | Applicazioni, DB, message broker, deployment unit | Design di alto livello (HLD), review architetturale |
| 3 | Component | Moduli interni di un singolo container | Design dettagliato, code review di modulo |
| 4 | Code | Classi, interfacce, strutture dati | Documentazione tecnica, onboarding sviluppatori |
Riferimento template PlantUML:
reference/c4-template.md
Tutti i pattern seguenti sono estratti da repo reali dell'organizzazione itsiae (816 repository).
Non proporre pattern non presenti in questo catalogo.
| Aspetto | Dettaglio |
|---|---|
| Runtime | Spring Boot 3.x su OpenShift (container OCI) |
| Build | Maven con parent POM custom SIAE (siae-parent) |
| Packaging | Helm chart per deploy su OpenShift |
| API | REST (OpenAPI 3.0), versionamento via URL path (/v1/) |
| Persistenza | PostgreSQL (RDS) o Oracle, JPA/Hibernate |
| Osservabilita' | Micrometer + Prometheus, log JSON strutturato |
| CI/CD | GitHub Actions -> build Maven -> push image -> Helm upgrade |
Quando sceglierlo: servizi con logica di dominio complessa, requisiti di transazionalita', integrazione con sistemi legacy SIAE.
| Aspetto | Dettaglio |
|---|---|
| Runtime | Node.js 20.x su AWS Lambda |
| Framework | Express.js + serverless-http adapter |
| Build | esbuild (bundle + minify + tree-shaking) |
| API | API Gateway (REST o HTTP API) + Lambda proxy |
| Persistenza | Drizzle ORM + PostgreSQL (RDS) oppure DynamoDB |
| IaC | Terragrunt (vedi pattern 2.4) |
| CI/CD | GitHub Actions -> esbuild -> zip -> deploy Lambda |
Quando sceglierlo: API leggere, webhook handler, BFF per frontend, servizi event-driven con carico variabile.
| Aspetto | Dettaglio |
|---|---|
| Architettura | Medallion Architecture (bronze -> silver) |
| Runtime | AWS Glue 4.0 (PySpark), Python 3.11 |
| Orchestrazione | AWS Step Functions (state machine JSON/ASL) |
| Trigger | Amazon EventBridge (schedule o event pattern) |
| Storage | S3 (datalake con prefissi bronze/ silver/), Parquet |
| Catalogo | AWS Glue Data Catalog + Athena per query ad-hoc |
| CI/CD | GitHub Actions -> upload script S3 -> update Glue job |
Quando sceglierlo: ingestione dati da sorgenti esterne, trasformazioni batch, alimentazione datawarehouse, reportistica.
| Aspetto | Dettaglio |
|---|---|
| Tool | Terragrunt + Terraform |
| Struttura | live/ (ambienti) + modules/ (moduli riusabili), mirror |
| Configurazione | config.yaml per ambiente, iniettato via read_terragrunt_config() |
| State | S3 bucket + DynamoDB table per locking |
| Ambienti | live/dev/, live/uat/, live/prod/ |
| CI/CD | GitHub Actions con OIDC federation (no secret statiche) |
Quando sceglierlo: qualsiasi infrastruttura AWS nuova. Sempre. Non usare CloudFormation o CDK.
| Aspetto | Dettaglio |
|---|---|
| Framework | Vue.js 3 (Composition API) + Pinia (state management) |
| UI Library | PrimeVue (componenti + tema SIAE custom) |
| Build | Vite |
| Hosting | S3 (static) + CloudFront (CDN + HTTPS) |
| Config | Firebase Remote Config (feature flags, parametri runtime) |
| Auth | Amazon Cognito (OAuth2/OIDC) |
| CI/CD | GitHub Actions -> npm build -> sync S3 -> invalidate CF |
Quando sceglierlo: applicazioni web interne SIAE, portali, dashboard, backoffice.
Servizi AWS approvati e in uso nei repository SIAE.
| Categoria | Servizi |
|---|---|
| Compute | Lambda, Glue (PySpark), OpenShift (self-managed su EC2) |
| Storage | S3, DynamoDB, PostgreSQL (RDS), Oracle (RDS) |
| Messaging | SNS, SQS, EventBridge |
| Security | Cognito, KMS, Secrets Manager, IAM OIDC (GitHub Actions) |
| CDN | CloudFront |
| Monitoring | CloudWatch (Logs, Metrics, Alarms) |
| Data | Glue Data Catalog, Athena |
Riferimento dettagliato con diagrammi:
reference/aws-patterns.md
| 🔴 ALTO (difficile da annullare) — 🔨 DevForge · siae-architecture |
|---|
| ⚠️ WARNING |
🏗️ Contesto: Modifica architettura sistema esistente in produzione SIAE |
| ▼ Azione |
1. ⚠️ Modifica architettura → sistema esistente |
| 💡 Perche': Modificare architettura esistente impatta sistemi dipendenti, integrations e contratti API. |
| 🚫 Se NO: La modifica non viene applicata. Documentare la decisione come ADR con stato Rejected. |
⏸️ ATTENDI CONFERMA ESPLICITA — mostra la card e NON eseguire finché l'utente risponde esplicitamente ("sì, procedi" / "no, annulla"). Silenzio ≠ consenso.
| 🟡 MEDIO (reversibile) — 🔨 DevForge · siae-architecture |
|---|
🏗️ Contesto: Selezione libreria o dipendenza esterna per progetto SIAE |
| ▼ Azione |
1. 📦 Aggiunta dipendenza → pom.xml / package.json / requirements.txt |
| 💡 Perche': Librerie esterne introducono rischi di licenza, CVE e debito tecnico. |
| 🚫 Se NO: Non aggiungere la dipendenza. Rivalutare se esiste un servizio AWS o modulo interno equivalente. |
```plantuml inline. Per rendering standalone: file .puml in docs/diagrams/.
MAI usare Mermaid. MAI usare ASCII art.| 🟡 MEDIO (reversibile) — 🔨 DevForge · siae-architecture |
|---|
🏗️ Contesto: Pubblicazione ADR su Confluence per decisione architetturale SIAE |
| ▼ Azione |
1. 📄 Pubblicazione ADR → Confluence / docs/architecture/ |
| 💡 Perche': Un ADR pubblicato e' un artefatto ufficiale che impatta tutti i team. |
| 🚫 Se NO: L ADR rimane in stato Draft locale. Richiedere revisione al tech lead prima di procedere. |
| Vincolo | Limite | Se superato |
|---|---|---|
| Tentativi fix per errore | 2 | Fermati. Diagnosi diversa necessaria. |
| File modificati per singolo step | 5 | Se devi toccare piu' file, decomponi in sub-task. |
| Output max per raccomandazione | 200 righe | Prioritizza. Top 5 issue, non lista esaustiva. |
Invoca siae-verification prima di dichiarare il design architetturale completo.
| Pensiero | Realta' |
|---|---|
| "Abbiamo gia' un pattern uguale altrove" | Il contesto cambia. Il pattern va validato per questo caso. |
| "E' solo un CRUD, non serve architettura" | I CRUD diventano complessi. L'ADR previene il debito tecnico. |
| "Lo decidiamo durante l'implementazione" | Le decisioni architetturali in corso d'opera costano di piu'. |
| "Il team conosce gia' il sistema" | La conoscenza tacita non scala. Documentala. |
| "Aggiorniamo l'ADR dopo il rilascio" | Dopo il rilascio non si aggiorna mai. |
| "Non abbiamo tempo per HLD" | Il tempo risparmiato ora viene perso nel refactoring. |
| "L'architettura e' ovvia" | Ovvia per te. Non per chi entra nel team dopo. |
| Operazione | Livello | Card |
|---|---|---|
| Analisi requisiti non funzionali | 🟢 Sicuro | No |
| Proposta pattern architetturale | 🟢 Sicuro | No |
| Confronto trade-off tra opzioni | 🟢 Sicuro | No |
| Scrittura ADR in docs/architecture/ | 🟢 Sicuro | No |
| Scelta librerie/dipendenze esterne | 🟡 Medio | Si |
| Pubblicazione ADR su Confluence | 🟡 Medio | Si |
| Modifica architettura di sistema esistente | 🔴 Alto | Si |
npx claudepluginhub itsiae/siae-dev-forge --plugin siae-devforgeProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.