Not in the top 1,000 by GitHub stars
defi0x1/app-security-skills
Claude Code skill: security + code review in one pass. Evidence-gated findings, invariant-based hunting, deep multi-agent audit engine, read-only.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
appsec/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
05010c7a8a5b → 05010c7a8a5b
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 05010c7a8a5b
No earlier version was observed for comparison.
Heat
1.3- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- appsec
appsec
How it works
appsec
When your agent uses it
Code reviewer with one entry point: /appsec. Use whenever the user wants code reviewed: current-branch work including uncommitted and new files ('review my changes', 'review this branch'), a Merge/Pull Request by number or URL ('review MR 123'), several MRs, or a whole repo/directory ('audit the whole repo', 'pre-pentest sweep'). Auto-detects scope and risk, no questions; runs two equal tracks: SECURITY (OWASP/CWE: injection, access control, auth/session, SSRF, XSS, deserialization, crypto, DoS, race, secrets, supply chain, CI/CD, mobile MASVS, LLM/agent/MCP, domain hunting (HTTP smuggling, OAuth/SAML, tenant isolation, cloud IAM, native memory); invariant-based hunting, 5 verification gates, 'needs validation' verdict) and CODE (correctness, business logic vs spec, migrations/API compatibility, performance, over-engineering, tests, conventions; 4 gates). Large or risky changes get the deep engine: recon, coverage table, parallel hunters, independent verifiers. Returns a merge verdict.
What it loads into context
Frontmatter
241 tokensAlways available to the agent
SKILL.md
1,527 tokensWhen the skill is activated
Reference documents
49,310 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- References
- Fixed principles
Files
SKILL.mdcore6,485 bytesVERSIONasset6 bytesreferences/ai-llm-security.mddoc11,312 bytesreferences/change-classification.mddoc9,173 bytesreferences/code-review.mddoc9,954 bytesreferences/domains/ci-release.mddoc7,399 bytesreferences/domains/client-side.mddoc6,512 bytesreferences/domains/cloud-deployment.mddoc7,101 bytesreferences/domains/data-isolation.mddoc6,298 bytesreferences/domains/local-ipc-desktop.mddoc7,471 bytesreferences/domains/native-memory.mddoc7,694 bytesreferences/domains/protocols-messaging.mddoc6,553 bytesreferences/domains/resource-exhaustion.mddoc5,555 bytesreferences/domains/web-auth.mddoc7,946 bytesreferences/hunting-method.mddoc13,635 bytesreferences/mobile/android.mddoc5,511 bytesreferences/mobile/cross-platform.mddoc3,694 bytesreferences/mobile/ios.mddoc3,870 bytesreferences/mobile/lessons.mddoc4,415 bytesreferences/multi-mr.mddoc4,738 bytesreferences/report-template.mddoc7,424 bytesreferences/secure-coding-patterns.mddoc11,732 bytesreferences/secure-design.mddoc3,832 bytesreferences/severity-cwe.mddoc11,376 bytesreferences/supply-chain-devsecops.mddoc7,710 bytesreferences/tob.mddoc1,451 bytesworkflows/review-deep.mddoc16,333 bytesworkflows/review.mddoc21,367 bytes
Read SKILL.md
# appsec
One purpose: **code review**. One command: **`/appsec`**. Everything after it is optional plain language, not flags:
| Goal | Example |
|---|---|
| Work in progress on this branch (including uncommitted, new files) against the target branch | `/appsec` |
| MR/PR by number or link | `/appsec 123`, `/appsec !123`, `/appsec <URL>` |
| Anything else | `/appsec against develop`, `/appsec uncommitted only`, `/appsec be thorough`, `/appsec audit the whole repo`, `/appsec src/billing`, `/appsec 123. Spec: ...` |
The skill decides scope, standard or deep review, which domains to hunt, and the independent reviewer on its own; it does not ask again unless it cannot continue. It always reviews two equal tracks: **Security** and **Code** (logic, business rules, design, over-engineering, performance, tests, conventions). Respond in the user's language (default English); keep code and identifiers in English.
**Follow [workflows/review.md](workflows/review.md).** Deep review (large/risky diff, whole repo, or the user says "thorough") automatically moves the Security track to [workflows/review-deep.md](workflows/review-deep.md).
View the complete source on GitHubSkills included
- appsec
Repository facts
- License
- MIT
- Created
- Oct 19, 2026
- Last pushed
- Oct 19, 2026
- Forks
- 2
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 5, 2026
- No broad tool permissions
- 3 dangerous shell commandsin 3 files: appsec/references/domains/ci-release.md:18 appsec/references/multi-mr.md:19 appsec/references/severity-cwe.md:92
- 15 network referencesin 4 files: appsec/references/secure-coding-patterns.md:62 appsec/references/multi-mr.md:17 appsec/references/domains/ci-release.md:16 and 1 more
- No hidden or obfuscated text
- No instruction overrides
- No executable scripts
- 19 references to secretsin 10 files: appsec/references/mobile/ios.md:20 appsec/references/domains/local-ipc-desktop.md:3 appsec/references/mobile/cross-platform.md:7 and 7 more
- No requests to vote in Hot
Show all 37 signals by file
appsec/references/ai-llm-security.md
- Access to secretsline 29
[Credential-related source omitted]
appsec/references/change-classification.md
- Access to secretsline 40
[Credential-related source omitted]
appsec/references/domains/ci-release.md
- Network accessline 16
|---|---| | Source and namespace confusion (dependency confusion) | Resolver configuration picks the wrong public/private namespace, registry fallback, mirror, or source URL. Unscoped internal package names; `--extra-index-url`; substitute - Network accessline 17
| Source and namespace confusion (dependency confusion) | Resolver configuration picks the wrong public/private namespace, registry fallback, mirror, or source URL. Unscoped internal package names; `--extra-index-url`; substitute build file - Dangerous shell operationline 18
| Mutable build inputs | The build uses branches, tags, unverified submodules, downloaded tools (`curl \| sh`), generated assets, remote includes, CI actions not pinned to a SHA (`uses: x/y@v1`, `@main`), or mutable image tags. Needs a less - Network accessline 18
| Mutable build inputs | The build uses branches, tags, unverified submodules, downloaded tools (`curl \| sh`), generated assets, remote includes, CI actions not pinned to a SHA (`uses: x/y@v1`, `@main`), or mutable image tags. Needs a less
appsec/references/domains/local-ipc-desktop.md
appsec/references/mobile/android.md
- Access to secretsline 62
[Credential-related source omitted]
appsec/references/mobile/cross-platform.md
appsec/references/mobile/ios.md
appsec/references/mobile/lessons.md
appsec/references/multi-mr.md
- Network accessline 17
# (b) GitLab API: needs GITLAB_TOKEN (scope read_api) and the URL-encoded project path PROJ=$(git remote get-url origin | sed -E 's#^(https?://|ssh://)?([^@/]+@)?[^/:]+[:/]##; s#\.git$##' | sed 's#/#%2F#g') # handles https and scp-style s - Network accessline 18
[Credential-related source omitted] - Dangerous shell operationline 19
[Credential-related source omitted] - Network accessline 19
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Network accessline 20
"https://$GITLAB_HOST/api/v4/projects/$PROJ/merge_requests/$IID" | \
appsec/references/secure-coding-patterns.md
- Network accessline 62
|---|---|---| | Resolve DNS, check the IP, then let the HTTP client resolve again | DNS rebinding | Connect directly to **the exact IP that was checked** (keep Host header/SNI) or go through an egress proxy with an allowlist | | `url.starts - Network accessline 63
| Resolve DNS, check the IP, then let the HTTP client resolve again | DNS rebinding | Connect directly to **the exact IP that was checked** (keep Host header/SNI) or go through an egress proxy with an allowlist | | `url.startswith("https:// - Network accessline 64
| `url.startswith("https://api.partner.com/")` + `allow_redirects=True` | The partner returns a 302 to an internal address | Disable redirects, or re-validate every hop | - Network accessline 78
- `pickle.loads`, `yaml.load`, `ObjectInputStream`, `unserialize`, `node-serialize` on untrusted data: code runs at deserialization time, and an `isinstance` check afterward is too late. Right: JSON + schema validation; `yaml.safe_load`. ML - Network accessline 79
- XXE: `setExpandEntityReferences(false)` is **not enough**. Enable `http://apache.org/xml/features/disallow-doctype-decl`, disable external general and parameter entities, `XMLConstants.FEATURE_SECURE_PROCESSING`.
appsec/references/severity-cwe.md
- Network accessline 90
| Attacker-controlled CI expression injected into a shell | HIGH, CRITICAL if the job has secrets | CWE-78, CWE-94 | | Cache/artifact from a low-trust job consumed by a privileged job | HIGH | CWE-345, CWE-829 | | CI action not pinned to SH - Network accessline 91
| Cache/artifact from a low-trust job consumed by a privileged job | HIGH | CWE-345, CWE-829 | | CI action not pinned to SHA, `curl \| sh` tool in a build | LOW, MEDIUM if the job has secrets or release permission | CWE-494, CWE-829 | | Upd - Dangerous shell operationline 92
| CI action not pinned to SHA, `curl \| sh` tool in a build | LOW, MEDIUM if the job has secrets or release permission | CWE-494, CWE-829 | - Network accessline 92
| CI action not pinned to SHA, `curl \| sh` tool in a build | LOW, MEDIUM if the job has secrets or release permission | CWE-494, CWE-829 |
appsec/references/supply-chain-devsecops.md
- Access to secretsline 57
[Credential-related source omitted]
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Signal confidence: 37 facts
- Access to secrets in prose of documentation: reads a credential storeappsec/references/ai-llm-security.md:29Low confidence
- Access to secrets in code of documentationappsec/references/change-classification.md:40Low confidence
- Network access in prose of documentationappsec/references/domains/ci-release.md:16Low confidence
- Network access in prose of documentationappsec/references/domains/ci-release.md:17Low confidence
- Dangerous shell operation in prose of documentationappsec/references/domains/ci-release.md:18Low confidence
- Network access in prose of documentationappsec/references/domains/ci-release.md:18Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueappsec/references/domains/local-ipc-desktop.md:3Low confidence
- Access to secrets in prose of documentationappsec/references/domains/local-ipc-desktop.md:10Low confidence
- Access to secrets in prose of documentationappsec/references/domains/local-ipc-desktop.md:45Low confidence
- Access to secrets in code of documentationappsec/references/mobile/android.md:62Low confidence
- Access to secrets in prose of documentationappsec/references/mobile/cross-platform.md:7Low confidence
- Access to secrets in prose of documentationappsec/references/mobile/cross-platform.md:8Low confidence
- Access to secrets in prose of documentationappsec/references/mobile/cross-platform.md:16Low confidence
- Access to secrets in prose of documentationappsec/references/mobile/ios.md:20Low confidence
- Access to secrets in prose of documentationappsec/references/mobile/ios.md:21Low confidence
- Access to secrets in prose of documentationappsec/references/mobile/ios.md:22Low confidence
- Access to secrets in prose of documentationappsec/references/mobile/ios.md:27Low confidence
- Access to secrets in prose of documentationappsec/references/mobile/lessons.md:17Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueappsec/references/mobile/lessons.md:18Low confidence
- Network access in code of documentationappsec/references/multi-mr.md:17Low confidence
- Network access in code of documentationappsec/references/multi-mr.md:18Low confidence
- Dangerous shell operation in code of documentationappsec/references/multi-mr.md:19Low confidence
- Network access in code of documentationappsec/references/multi-mr.md:19Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueappsec/references/multi-mr.md:19Low confidence
- Network access in code of documentationappsec/references/multi-mr.md:20Low confidence
- Network access in prose of documentationappsec/references/secure-coding-patterns.md:62Low confidence
- Network access in prose of documentationappsec/references/secure-coding-patterns.md:63Low confidence
- Network access in prose of documentationappsec/references/secure-coding-patterns.md:64Low confidence
- Network access in prose of documentationappsec/references/secure-coding-patterns.md:78Low confidence
- Network access in prose of documentationappsec/references/secure-coding-patterns.md:79Low confidence
- Network access in prose of documentationappsec/references/severity-cwe.md:90Low confidence
- Network access in prose of documentationappsec/references/severity-cwe.md:91Low confidence
- Dangerous shell operation in prose of documentationappsec/references/severity-cwe.md:92Low confidence
- Network access in prose of documentationappsec/references/severity-cwe.md:92Low confidence
- Access to secrets in code of documentation: reads a credential storeappsec/references/supply-chain-devsecops.md:57Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueappsec/workflows/review.md:84Low confidence
- Access to secrets in prose of documentationappsec/workflows/review.md:151Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md appsec/SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md appsec/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md appsec/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md appsec/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md appsec/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md appsec/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.