pageel/para-workspace/scan-sec
Claude Code and agent skill by pageel/para-workspace
- community
Checking that the SKILL.md file is still in the repository.
Use when scanning code for security vulnerabilities. Use when user says "scan security", "kiểm tra bảo mật", "security audit", "review security", or invokes `/scan-sec`. For large scans (>20 main-language files OR >30 total OR >14 days) processes chunks sequentially. Outputs bilingual reports (vi/en).
Install
npx vskill@latest install pageel/para-workspace/scan-secSKILL.md
scan-sec — Security Scanner for Vibe Coders (Antigravity variant)
Scan security vulnerabilities for AI-generated code (vibe code). This skill checks for the 21 most common vulnerabilities of vibe code, inheriting the SMALL/LARGE mode architecture, generalized cross-language + deep-dive for Go/PHP/Python/TypeScript/.NET.
Platform: Google Antigravity. This version uses sequential chunking to preserve portability — ~3× slower but identical output.
Resource Router
| Resource | Relative Path | Description | |
|---|---|---|---|
| Arguments Parser | scripts/parse-args.sh | Main script to parse scope arguments and gather target files | |
| Language Detection | references/language-detection.md | Language detection guide to find primary repo language | |
| Output Template | references/output-format.md | Layout template for report generation | |
| Data Flow Classification | references/data-flow-classification.md | Data flow mapping (L1-L4) guidelines | |
| Rules directory | rules/ | Directory containing all 21 generic, language-specific, and custom rule files | |
| Project Extension | Projects/<name>/.agents/rules/ | Custom project security rules dynamically loaded during scans |
Extensible Security Engine & Domain Profiles
scan-sec automatically discovers and loads domain-specific security rules:
- Universal OWASP Baseline: Secrets, Auth/RBAC, Input Injection, Transport/TLS, Resource Limits.
- Healthcare & Medical (HIPAA): Patient Data Isolation, Audit Logs, PII/PHI Redaction.
- FinTech & E-commerce (PCI-DSS): Key Tokenization, Anti-Fraud, Transaction Protection.
- Multi-Tenant SaaS: Row-Level Security (RLS), Tenant Isolation Boundaries.
- AI & Agentic Systems: Prompt Injection Guards, Tool Execution Sandboxing.
- Custom Project Rules: Dynamic loading from
Projects/<name>/.agents/rules/*security*.md.
Invocation
In the Antigravity Agent Manager chat box:
- Auto-trigger: speak naturally — "scan security for this repo", "check security", "security audit". Antigravity automatically matches the description and loads the skill.
- Explicit slash command: if the workspace contains
.agents/workflows/scan-sec.md, type/scan-secto invoke.
| Argument | Scope | Description | ||
|---|---|---|---|---|
| (no args) | Entire repo | Default — scan the entire repository | ||
all | Entire repo | Explicit alias | ||
uncommitted / diff | Uncommitted changes | Staged + unstaged changes | ||
staged | Staged files only | Pre-commit scan | ||
project <name> | Specific project | Scan files in Projects/<name> | ||
resource <name> | Specific resource | Scan files in Resources/<name> (or Areas/Learning/Resources) | ||
area <name> | Specific area | Scan files in Areas/<name> | ||
| `plan <path\ | name>` | Implementation Plan | Audit Plan file against OWASP rules using plan-security-report-template.md |
Output Language Selection: lang=vi / --vi (default) or lang=en / --en.
Examples:
CRITICAL: How to use this skill (for LLM agent)
The bash/grep patterns in the rule files are EXAMPLES, NOT commands to be run literally.
Principles
- Reason, do not just pattern-match — Understand the security intent behind each check, do not just search for strings.
- Use appropriate tools — Antigravity has built-in file/grep tools (read, grep, search). Do not call raw shell grep/find when native tools are available.
- Read complete context — When finding a pattern, read the surrounding function to understand if it is a real vulnerability.
- Data flow trust levels — A string formatting query is only dangerous if the interpolated data is L1 (untrusted).
- No Auto-Remediation (Strict Guardrail) — The Agent MUST NOT modify, edit, or refactor any codebase file to fix vulnerabilities during or after the scan without explicit user request. The scanner is strictly a diagnostic tool. Remediation is user-led.
Data Flow Classification (L1–L4)
| Level | Source | Trust | Example | |
|---|---|---|---|---|
| L1 | User input | UNTRUSTED | req.body, $_GET, request.params, HTTP headers, file uploads | |
| L2 | Database | Semi-trusted | Values from DB whose origin was user input | |
| L3 | Internal code | Trusted | Hardcoded strings, config keys, computed values | |
| L4 | System | Trusted | Env vars, internal file paths, framework constants |
Key insight: f"SELECT ... {x}" is SAFE if x is L3+. It is CRITICAL if x is L1 without parameterization.
Refer to: `references/data-flow-classification.md`.
Workflow
Step 0: Parse Arguments
Offload CLI argument parsing and file gathering to the helper script:
Note: Skill works on non-git folders. Default scope (all) uses find instead of git ls-files. Git-specific scopes (staged, uncommitted, commit within, commit id, pr id) require git.
Step 1: Load i18n Strings
Read i18n file corresponding to $LANG:
lang=vi→ read `references/i18n/vi.md`lang=en→ read `references/i18n/en.md`
The i18n file contains key-value pairs for all user-facing strings. All report text must come from i18n, DO NOT hardcode.
Strings NEVER translated: rule ID, file path, code snippet, command name.
Step 2: Detect Primary Code Language
Read `references/language-detection.md`. Summary:
- Count extensions in file list:
.go,.py,.php,.js,.ts,.jsx,.tsx,.rb,.java,.rs,.cs,.csproj,.sln - Primary lang = language representing ≥30% of total files
- If
rules/languages/<lang>/exists → load overlay; otherwise → use generic rules only - Multi-lang repo (e.g. Go backend + Vue frontend) → load both overlays
Currently supported language overlays: go, php, typescript (JS+TS combined), python, dotnet.
Step 3: Route by Size
| Condition | Threshold | Mode | |
|---|---|---|---|
| Primary language files | ≤20 | SMALL | |
| Primary language files | >20 | LARGE | |
| Total files | ≤30 | SMALL | |
| Total files | >30 | LARGE | |
Timespan (scope commit within) | ≤14 days | SMALL | |
| Timespan | >14 days | LARGE |
If ANY condition goes to LARGE → use LARGE mode.
- SMALL mode: Read `workflows/small-review.md` — inline scan.
- LARGE mode: Read `workflows/large-review-sequential.md` — chunk + process sequentially.
Step 4: Apply Rules
For each rule in rules/generic/ (01-21):
- Read rule file → understand intent, severity, search patterns.
- Apply to files in scope.
- For each match: trace data flow (L1-L4) to classify if it is a real vulnerability.
- If a rule with the same
idexists inrules/languages/<detected-lang>/, the specific rule overrides the generic one.
Step 4.5: Graph Blast Radius & Mitigation Analysis (if --graph)
If parse-args.sh outputs Use Graph: true, execute blast radius analysis for each finding (MEDIUM severity and above):
- Build Graph: Run
/para-graph build [project-name](or/para-graph build @resources/[namespace]for resources) to ensure the graph database is fresh. - Execute Graph Analyzer: Run the analyzer script to query the call tree:
``bash node .agents/skills/scan-sec/scripts/graph-analyzer.js --project <project_path> --file <relative_file_path> ``
- Parse Output: Extract
callerCount,severityBoost,mermaid, andremediationPoints. - Boost Severity: If
severityBoostis elevated (e.g.HIGHorCRITICAL), upgrade the finding's severity level. - Add to Finding Details: Keep the Mermaid call graph and remediation points in memory to embed them into the final report.
Step 5: Generate Report
Refer to template in `references/output-format.md`. Core rules:
Verbose level by severity:
- CRITICAL → overview table + full verbose block per finding
- HIGH → overview table + medium block per finding
- MEDIUM → compact table only (or full block if
--graphcontains blast radius) - LOW → compact table only
OWASP Mapping & Packaged References:
- For each finding, read
references/owasp/mappings.jsonto resolve its corresponding OWASP Top 10 category. - Display the resolved OWASP category tag next to the rule name (e.g.,
HARDCODED-SECRET [OWASP A02/A05]). - Provide local relative/absolute
file:///links to the local markdown documents packaged underreferences/owasp/2025/en/so users can read the detailed official guides offline.
Graph Blast Radius & Remediation (if `--graph`):
- Display
Caller Count: Nnext to the finding file path. - Include a "Blast Radius (Upstream Callers)" sub-section showing the Mermaid flowchart.
- Include a "Suggested Remediation Points" list detailing where sanitization or validation controls should be placed.
Layout:
- Header block (scope, file count, primary lang, mode, date, lang code)
- VERDICT + 1-line description
- CRITICAL section
- HIGH section
- MEDIUM section
- LOW section
- PASSED CHECKS
- Next steps
- Save notification
- Gitignore warning (if needed)
- Footer + disclaimer
- JSON summary (canonical EN)
Save-to-file: write the ENTIRE report (identical to stdout) to the Report file path printed by the parse-args.sh script (e.g., reports/security/scan-<timestamp>.md or artifacts/reports/security/scan-<timestamp>.md) using Antigravity write tool.
Then print 1-2 summary lines to stdout:
All headers, labels, and verdicts must come from the i18n file loaded in Step 1.
Next Steps & Actionable Workflows:
- If the scan fails (
Verdict: FAILorWARNdue to findings), the Agent MUST actively suggest that the user initiate a follow-up workflow: /brainstorm: To discuss design trade-offs and structural changes./plan create: To design a security mitigation plan./vibecode: To fix and verify vulnerabilities in sandbox mode.
Verdict Logic
| Condition | Verdict | |
|---|---|---|
| Has ≥1 CRITICAL | FAIL | |
| No CRITICAL, has ≥1 HIGH | WARN | |
| No CRITICAL, no HIGH | PASS |
WARN is not an approval. The report should specify HIGH issues to be fixed before production.
Differences with Claude Code variant
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 70 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingtemplates/common/agents/skills/scan-sec/SKILL.md
Popularity
- Repository stars
- 48
- Repository forks
- 17
- 7-day trend score
- 19
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/pageel/para-workspace/scan-sec)