Evidence-driven security engineering skills for AI-assisted web development.
Twelve focused skills with 130 authored controls help developers design, implement, review, and verify web applications against the OWASP Top 10:2025 and API Security Top 10:2023. The suite connects security requirements to code paths, negative tests, deployment evidence, and operational ownership.
The detailed ambiguity review records the subsequent instruction refinements, source-binding change, and new behavioral evaluations.
It is intended for developers building websites, APIs, SaaS applications,
administration tools, and serverless systems with an AI coding assistant.
Instructions are written in formal English and use the open SKILL.md format.
Security depends on the application, infrastructure, dependencies, operations, and quality of verification. These skills cannot make an application unhackable, replace an independent security assessment, or certify ASVS compliance. Their purpose is to make security work concrete and reviewable.
Read installation and compatibility, install the suite in your coding assistant's supported skill directory, and invoke the main skill:
Use $web-security to assess this repository at its current revision.
Map the architecture and trust boundaries, then review the applicable
OWASP Top 10:2025 and API Security Top 10:2023 controls. Inspect authenticated
and cross-tenant paths. Report confirmed findings, supporting evidence,
tests actually performed, and controls that remain unverified.
For implementation work:
Use $web-security in build mode to implement this feature securely.
Define its trust boundaries and business invariants, apply the relevant
specialist controls, and implement meaningful positive and negative tests.
Finish the authorized code changes and report remaining deployment checks.
For a harness without skill discovery, explicitly provide the main SKILL.md and let the agent load its referenced files. Model access alone does not give a harness file access, testing tools, or permission to modify an application.
| Skill | Primary coverage | Examples of decisions it changes |
|---|---|---|
| web-security | Coordination and evidence | Select the right scope; trace boundaries; distinguish verified results from missing evidence. |
| web-security-access-control | A01 Broken Access Control | Object, property, function and tenant authorization; SSRF; revocation across caches and jobs. |
| web-security-configuration | A02 Security Misconfiguration | Effective configuration, headers, CORS, proxy trust, cache isolation and cloud exposure. |
| web-security-supply-chain | A03 Software Supply Chain Failures | Dependency lifecycle, CI trust boundaries, pinned actions, publisher identity and provenance. |
| web-security-cryptography | A04 Cryptographic Failures | Secrets, frontend exposure, key lifecycle, encryption, password storage and recovery. |
| web-security-injection | A05 Injection | SQL, NoSQL, command, template and browser sinks; uploads and contextual encoding. |
| web-security-design | A06 Insecure Design | Threat models, transaction invariants, abuse cases, concurrent state changes and AI features. |
| web-security-authentication | A07 Authentication Failures | OAuth/OIDC, sessions, MFA, recovery, token validation and credential attacks. |
| web-security-integrity | A08 Software or Data Integrity Failures | Webhook authenticity, replay controls, signed artifacts, deserialization and trusted updates. |
| web-security-logging | A09 Security Logging and Alerting Failures | Events, redaction, tamper resistance, actual alert delivery and response ownership. |
| web-security-exceptions | A10 Mishandling of Exceptional Conditions | Fail-closed authorization, bounded resources, retries, partial writes and recovery. |
| web-security-api | All ten API Security Top 10:2023 categories | REST, GraphQL, WebSockets, API inventory, consumption budgets and third-party responses. |
Each specialist has a concise entrypoint and detailed, independently usable control references. A Cloudflare profile covers relevant Workers, Pages, R2, D1, KV, and Queues boundaries. Controls are selected according to the actual architecture; provider names are not evidence that a control is enabled.
Framework adapters cover Next.js/Node, Django/FastAPI, Laravel/PHP, Spring Security, ASP.NET Core, Rails, Go, and Cloudflare/Hono. They identify where to inspect enforcement and how to challenge it; they do not assert that those integrations were tested here.
The suite incorporates researched methods from Trail of Bits, Sentry, OpenAI, and Anthropic: architecture reconstruction, source-to-sink tracing, differential review, variant analysis, secure defaults, framework-aware guidance, and evidence-based reporting. See the inspected files, licenses, strengths, and limitations in the research comparison.
The instructions are original. External skill implementations are not bundled. This is a reasoned synthesis of useful methods, not a measured claim of being the best security system or an endorsement by the referenced organizations.
The workflow explicitly addresses common sources of false confidence:
- An authenticated attacker can still violate object, tenant, or role boundaries.
- A public identifier is not automatically a secret; a build-time secret can become public when embedded in a browser bundle.
- A configured WAF, CORS policy, or security header does not prove authorization.
- A scanner result requires context and triage. Missing tests are an evidence gap, not proof of a high-severity vulnerability.
- A logged event does not prove a notification reached an accountable owner.
- Security must hold during timeouts, retries, malformed inputs, concurrent requests, and partial failures.
The control catalog assigns
stable project IDs to the authored controls. Its four states are verified,
failed, unverified, and not_applicable.
A control with multiple obligations is verified only when every applicable obligation has adequate evidence. Demonstrated current failures take precedence over unrelated uncertainty; omitted work is not automatically inapplicable. The version 2 catalog binds a declared digest of the instruction sources as well as the control index. Migration guidance explains why prior records must be reassessed rather than silently upgraded.
A local Python utility can initialize and validate an assessment ledger:
python3 skills/web-security/scripts/assessment.py init \
--target example-application \
--revision FULL_COMMIT_SHA \
--output /private/path/assessment.json
python3 skills/web-security/scripts/assessment.py check \
/private/path/assessment.json --require-completeReplace FULL_COMMIT_SHA with the application's full immutable revision and
choose an existing private output directory. The utility does not run tests,
inspect the application, contact a service, or verify the authenticity of an
evidence claim. For uncommitted source, use the retained snapshot procedure in
the evidence format instead of attributing edited
code to an unchanged commit. The utility rejects malformed ledgers, missing
controls, and unsupported completion claims within its documented evidence format.
Read the evidence format, use the assessment report template, and keep real findings and credentials out of this public repository.
The research baseline is OWASP Top 10:2025, API Security Top 10:2023, ASVS 5.0.0, and WSTG 4.2. Other primary sources inform protocol, platform, and implementation guidance. Version boundaries and the distinction between an authored control and an official verification requirement are documented in standards and mapping.
The suite includes all ten Top 10 risk categories. It does not reproduce every ASVS requirement or cover every possible vulnerability, framework, cloud service, or jurisdiction. For an explicit ASVS assessment, select the official version and level, then track every applicable requirement separately.
The Python utilities require Python 3.10 or newer and use only the standard library. No package installation is needed for the bundled checks.
python3 tools/validate_repository.py
python3 -m unittest discover -s tests -v
python3 -B -m unittest discover -s evals/results/redemption -p 'test_redemption.py' -vRepository CI checks structure, local references, catalog consistency, Python syntax, 54 evidence-helper tests, 21 repository-tool tests, and 23 tests of the preserved secure-build example. It does not run a security audit on downstream applications. The checkout action is pinned to a reviewed release commit, credentials are not persisted, and jobs receive read-only repository access.
Evaluation scenarios cover realistic decision failures, negative controls, and secure implementation. Validation results distinguish checks that were actually run from additional evaluations still to be performed. Compatibility and effectiveness across untested models remain unverified.
Improve a concrete security decision, provide a primary source, and include a synthetic negative test or evaluation scenario. See CONTRIBUTING.md and SECURITY.md. Security guidance needs continued maintenance; pin a reviewed revision and inspect changes before updating your installation.
Original project content is licensed under Apache-2.0. Referenced sources retain their own licenses and trademarks; see NOTICE.