Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ayalaphiscan/web-security-guard --skill architettura-fortezzagit clone --depth 1 https://github.com/ayalaphiscan/web-security-guardWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ayalaphiscan/web-security-guard/architettura-fortezza)<a href="https://agentmods.dev/skills/ayalaphiscan/web-security-guard/architettura-fortezza"><img src="https://agentmods.dev/badge/skills/ayalaphiscan/web-security-guard/architettura-fortezza/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ayalaphiscan/web-security-guard/architettura-fortezza"><img src="https://agentmods.dev/badge/skills/ayalaphiscan/web-security-guard/architettura-fortezza.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00185 | $0.01738 |
| Opus 5 | $0.00093 | $0.00869 |
| Sonnet 5 | $0.00037 | $0.00348 |
| Haiku 4.5 | $0.00018 | $0.00174 |
Grade A, and why
architettura-fortezza scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 107 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Architettura Fortezza (4 livelli) · Fortress Architecture
🇮🇹 Versione italiana qui sotto · 🇬🇧 English version below
Quando l'utente vuole un sistema "blindato" dove il cuore è staccato e lo scudo è
invisibile, proporre e installare questa architettura. I file template completi
(proxy guardian, Caddy, docker-compose, firewall, WireGuard, backup cifrati) sono
in references/fortezza/ dentro questa skill; questa skill spiega come adattarli.
Premessa onesta da dare SEMPRE all'utente
La porta web pubblica non può essere invisibile: se i visitatori la raggiungono, la raggiunge anche chi attacca. Invisibili possono diventare invece SSH, l'amministrazione, il server reale e la cassaforte. E i DDoS volumetrici enormi restano gestibili solo con un CDN/WAF esterno (es. Cloudflare free) davanti allo scudo. Non promettere "non attaccabile": promettere "superficie ridotta al minimo, cuore irraggiungibile, dati sempre recuperabili".
I quattro livelli
- Scudo invisibile — unica macchina pubblica. Caddy (HTTPS + rimozione
impronte) → proxy
guardian(WAF, rate limit, blocklist silenziosa, lockdown, honeypot). Firewall stealth: solo 80/443 visibili, resto in DROP, niente ping. - Server origine nascosto — sito + DB, nessuna porta pubblica, accetta solo lo scudo via VPN. L'app ascolta sull'IP VPN, mai esposta dal provider.
- WireGuard — rete privata cifrata tra scudo, origine e admin. Non risponde
senza chiave valida → invisibile agli scanner. Solo gli
AllowedIPspassano. - Cassaforte offline — air-gapped, custodisce la chiave privata. Backup cifrati con chiave pubblica (il server cifra ma non può decifrare). La cassaforte va a prendere i backup (sola andata); il server non la conosce.
Principi di progettazione da rispettare
- Minima superficie: ogni livello espone solo ciò che serve al livello accanto.
- Conoscenza parziale: ogni macchina conosce solo il vicino, mai l'intera catena.
- One-way verso il cuore: nessun percorso che parta dal server e arrivi alla cassaforte.
- Cifratura asimmetrica: chi può essere compromesso (il server) ha solo la chiave pubblica.
- Silenzio: agli attaccanti non si risponde (stealth), per non dare impronte né feedback.
- Difesa in profondità: questa architettura si SOMMA alle altre skill del plugin (hardening-siti, difesa-attacchi, privacy-pagamenti, autenticazione-sicura), non le sostituisce.
What ships with it
13 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/fortezza/cassaforte/backup-cifrato.sh 1.6 KB runs code
- references/fortezza/cassaforte/genera-chiavi.sh 1018 B runs code
- references/fortezza/cassaforte/pull-su-cassaforte.sh 1.4 KB runs code
- references/fortezza/origine/firewall-origine.sh 1.3 KB runs code
- references/fortezza/README.md 3.6 KB
- references/fortezza/scudo/Caddyfile 1.1 KB
- references/fortezza/scudo/docker-compose.yml 1.0 KB
- references/fortezza/scudo/firewall-stealth.sh 1.4 KB runs code
- references/fortezza/scudo/guardian-proxy/Dockerfile 292 B
- references/fortezza/scudo/guardian-proxy/guardian.js 5.7 KB runs code
- references/fortezza/scudo/guardian-proxy/package.json 309 B
- references/fortezza/scudo/guardian-proxy/server.js 2.4 KB runs code
- references/fortezza/vpn-wireguard/README-wireguard.md 1.8 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 107 lines · 185 tokens per session scan A 7c47ec41bcec
architettura-fortezza is a skill published in the GitHub repository ayalaphiscan/web-security-guard (4 stars, last pushed 3mo ago), licensed MIT. It adds 185 tokens to every session and 1,738 once invoked, about $0.0009 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
framework-compliance-triage
Make a cloud account compliant with a security or industry framework using Prowler Cloud.
deploy-site
Deploys an existing Power Pages code site to a Power Pages environment using PAC CLI. Handles tooling verification, authentication, environment confirmation, building, and uploading. Use when the user wants to deploy, upload, or publish their code site.
activate-site
Activates and provisions a Power Pages website in a Power Platform environment via the Power Platform REST API. Use when the user wants to activate, provision, turn on, or enable a Power Pages website or portal.
deploy
Builds and deploys a Power Apps code app to Power Platform. Use when deploying changes, redeploying an existing app, or pushing updates.
deploy-to-connect
Deploy or publish Python and R content to a Posit Connect server using rsconnect-python or the R rsconnect package. Handles interactive apps and dashboards, web APIs, rendered documents, and prepared bundles/manifests. Use whenever the user asks to deploy, publish, or redeploy content to Posit Connect, or mentions…
telephony-and-conferencing
Runs voice and meeting infrastructure — phone systems and numbers, emergency calling obligations, conference rooms and their AV, call recording and its retention consequences, and the porting that makes provider changes go badly. Use this to replace a phone system, fix rooms nobody can start a meeting in, meet…