Best for
- Review or design auth, session, token, or authorization flows.
- Validate input handling, uploads, rendering, and untrusted-data boundaries.
- Secure APIs, webhooks, browser apps, and admin surfaces.
vasilyu1983/AI-Agents-public/frameworks/shared-skills/skills/software-security-appsec/SKILL.md
Provides application security guidance for design and implementation. Use when reviewing auth, data handling, supply-chain controls, or AppSec architecture.
Decision brief
Use this skill for application-layer security: authentication, authorization, input and output handling, cryptography, supply-chain controls, API security, threat modeling, and security reviews. It is the AppSec decision layer, not general backend or infrastructure hardening.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Declared | Source record | Install path and trigger |
| Claude Code | Declared | Source record | Install path and trigger |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/vasilyu1983/AI-Agents-public --skill "frameworks/shared-skills/skills/software-security-appsec"Inspect the Agent Skill "software-security-appsec" from https://github.com/vasilyu1983/AI-Agents-public/blob/53f6cb73ea53a2646e3e7d4665062ad66f3683ac/frameworks/shared-skills/skills/software-security-appsec/SKILL.md at commit 53f6cb73ea53a2646e3e7d4665062ad66f3683ac. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Identify the asset, trust boundary, attacker capability, and failure consequence. 2. Classify the problem: auth, authZ, untrusted input, API, supply chain, agentic flow, or secure-design issue. 3. Choose the control family from the relevant reference. 4. Apply the concrete sa…
Before finalizing any AppSec design or review output:
Review the “Quick Reference” section in the pinned source before continuing.
Every major cloud provider has two surface-similar storage classes: one encrypted-at-rest with no readback, one plaintext-visible in the dashboard. Picking the wrong one is silent — the app still works — and the audit log for who-read-what exists only on the encrypted form. Plai…
Review or design auth, session, token, or authorization flows.
Permission review
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 92/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 80 | Source | Repository attention, not individual Skill quality |
| Compatibility | 2 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Use this skill for application-layer security: authentication, authorization, input and output handling, cryptography, supply-chain controls, API security, threat modeling, and security reviews. It is the AppSec decision layer, not general backend or infrastructure hardening.
| Task | Use |
|---|---|
| Auth and authorization choices | references/authentication-authorization.md, assets/web-application/template-authentication.md, assets/web-application/template-authorization.md |
| Input handling, uploads, rendering, and common bugs | references/input-validation.md, references/common-vulnerabilities.md |
| Secure design and threat modeling | references/secure-design-principles.md, references/threat-modeling-guide.md |
| API and supply-chain security | references/api-security-patterns.md, references/supply-chain-security.md, assets/api/template-secure-api.md |
| Crypto and transport choices | references/cryptography-standards.md |
| Secret-storage selection | See "Secret-Storage Selection" below — choosing encrypted vs plaintext at the provider, and how to verify after storing |
| Incident response and security program framing | references/incident-response-playbook.md, references/security-business-value.md, references/operational-playbook.md |
Every major cloud provider has two surface-similar storage classes: one encrypted-at-rest with no readback, one plaintext-visible in the dashboard. Picking the wrong one is silent — the app still works — and the audit log for who-read-what exists only on the encrypted form. Plaintext reads are invisible.
| Provider | Yes Encrypted, never-readable | No Plaintext, dashboard-visible |
|---|---|---|
| Cloudflare Workers | wrangler secret put (API type: secret_text) | [vars] in wrangler.toml, Workers > Variables tab |
| Vercel | Environment Variables marked "Sensitive" | Standard Environment Variables |
| GitHub Actions | Repository / Organization Secrets | env: in workflow YAML, repository Variables |
| AWS | Secrets Manager, SSM Parameter Store SecureString | SSM String, plain Lambda env vars |
| Kubernetes | Secret + KMS envelope (SOPS, Sealed Secrets) | ConfigMap, plain env vars |
Rules:
wrangler secret list returns type: secret_text when encrypted. If you see plain_text or the value appears under [vars], the credential is plaintext — treat as compromised and rotate.wrangler secret put APNS_AUTH_KEY --name worker < AuthKey_XXX.p8.If you suspect a secret was stored as plaintext: treat it as compromised. Revoke at the issuer, generate a new credential, store correctly, then verify. Deleting the visible plaintext copy does not invalidate any cached or scraped value. Rotation is a no-regret action; the cost is one credential refresh, the alternative is undetectable use.
AppSec task
-> Identify asset, trust boundary, attacker, and consequence
-> Classify auth, authZ, input, API, supply chain, agentic, or design risk
-> Choose control family and verification depth
-> Implement concrete safeguards at the boundary
-> Test exploit paths, regression cases, and logging
-> Recheck volatile standards and document residual risk
| Situation | Choose | Avoid |
|---|---|---|
| Product with browser users, session state acceptable | Server sessions (cookie + server-side store) | JWTs for sessions — revocation is hard |
| Mobile/desktop app with device-native biometrics | Passkeys (WebAuthn) | SMS OTP — SIM-swap risk |
| Third-party sign-in or delegated access | OIDC / OAuth 2.1 + PKCE | Implicit flow (deprecated in OAuth 2.1) |
| API-to-API, no user context | mTLS or short-lived signed tokens | Long-lived API keys |
| Intra-service auth in a trusted cluster | Service accounts + mTLS | Shared secrets or user tokens |
| Sink / operation | Required control |
|---|---|
| SQL query construction | Parameterized query or ORM binding; never string concatenation |
| Shell / process execution | Allowlist args; avoid shell=True / exec with user input |
| HTML rendering | Context-aware output encoding; CSP header |
| File upload destination path | Canonicalize; reject path traversal sequences; store outside webroot |
| Redirect target | Allowlist known origins; reject open redirect patterns |
| LDAP / XPath / XML | Library-level escaping or schema validation before query construction |
| LLM / agent tool call input | Treat as untrusted; validate schema before execution; log intent + scope |
Default choices:
Choose the simplest safe model that matches the app shape.
Minimum rules:
Threat-model before implementing:
Retroactive hardening is slower and weaker than secure-by-default design.
Model explicitly:
Keep read-only and mutating capabilities separate and log intent, scope, and result.
Metered or costly actions (medium confidence, single-source pattern — see Fact-Checking): for any agent action that consumes a bounded quota, spends money, or is otherwise costly/irreversible, re-check current authorization and quota state immediately before that specific call, not from an earlier cached check. The original task assignment ("do X") is not standing consent to spend a metered resource — treat each metered call as needing its own fresh confirmation. On failure mid-run, resume from saved state rather than restarting, since restarting re-incurs the metered cost.
Use:
Before finalizing any AppSec design or review output:
Default to one of these:
regulatory-threat-model by Ansvar Systems AB, in davila7/claude-code-templates at commit 22d8efa9e9afcf31b98b7e3952ec557694e72c13, licensed CC-BY-4.0. Extracted 2026-08-09. This is a single-source pattern (medium confidence) extracted from one vendor-specific, proprietary-tool-bound skill — treat it as a named pattern to consider, not a widely-corroborated convention.Before applying this skill on a non-trivial task, read learnings.consolidated.md in this directory (and learnings.md if present).
After applying it, if you encountered a pattern worth remembering, a mistake worth preventing, or a domain fact that surprised you, append one dated bullet to learnings.md via agents-skills-feedback-loop/scripts/append_learning.py. Do not modify SKILL.md itself.
Frequently asked questions
Use this skill for application-layer security: authentication, authorization, input and output handling, cryptography, supply-chain controls, API security, threat modeling, and security reviews. It is the AppSec decision layer, not general backend or infrastructure hardening.
The source record exposes this install command: npx skills add https://github.com/vasilyu1983/AI-Agents-public --skill "frameworks/shared-skills/skills/software-security-appsec". Inspect the command and pinned source before running it.
The pinned source record declares support for: codex, claude code.
Alternatives
vasilyu1983/AI-Agents-public
Guides iOS testing with XCTest, XCUITest, Swift Testing, simctl, and xcresult. Use when choosing destinations, controlling flakes, or parsing test artifacts for native apps.
upex-galaxy/agentic-qa-boilerplate
Orchestrates in-sprint manual QA per ticket across Stages 1 (Planning), 2 (Execution) and 3 (Reporting). Use for user-story testing, bug retesting, and batch-sprint QA loops. Creates the PBI folder, drives session-start, runs the triage + veto + risk-score decision tree on bugs, produces the ATP + ATR + TC artifacts in the TMS, executes smoke and trifuerza (UI/API/DB) exploration, and files the final QA comment + bug reports. Triggers on: test this ticket, QA this user story, retest this bug, ve
vasilyu1983/AI-Agents-public
Designs Android testing with Espresso, UI Automator, and Compose. Use when planning device matrices, screenshot tests, CI flows, or flake-control workflows.
vasilyu1983/AI-Agents-public
Builds frontend applications across major web stacks. Use when implementing UI, fixing hydration or SSR issues, or setting up modern frontend architecture.