start
This skill should be used when the user asks to "start security analysis", "assess security", "which security tools should I use", "appsec start", "what should I scan", "security assessment", or invokes /appsec:start. Assesses the project's tech stack, data sensitivity, architecture, and installed scanners, then recommends which /appsec:* tools to run in priority order with rationale.
What this skill does
# AppSec Start -- Project Assessment
The entry point for any codebase. Detects what the project is, what data it
handles, what scanners are available, and recommends exactly which `/appsec:*`
tools are relevant, in what order, and why.
This skill runs entirely in the main agent context. It does NOT dispatch
subagents. It produces a recommendation, not findings.
## Supported Flags
This skill accepts a subset of cross-cutting flags. Read
[`../../shared/schemas/flags.md`](../../shared/schemas/flags.md) for the full
specification.
| Flag | Behavior |
|------|----------|
| `--scope` | Ignored. Start always assesses the full project. |
| `--format text` | Human-readable ASCII output (default). |
| `--format json` | Structured JSON assessment. |
| `--format md` | Markdown report. |
| `--quiet` | Suppress explanations, output tool list only. |
## Workflow
Execute all 6 steps sequentially in the main agent context. Use Glob, Grep,
Read, and Bash tools to gather evidence. Do NOT guess -- only report what
you find.
### Step 1: Detect Tech Stack
Read project manifests to determine languages, frameworks, databases, and
infrastructure. Check for each of these files using Glob:
| File Pattern | Reveals |
|-------------|---------|
| `package.json` | Node.js, npm dependencies, scripts |
| `package-lock.json`, `yarn.lock`, `pnpm-lock.yaml` | Dependency lockfiles |
| `requirements.txt`, `Pipfile`, `pyproject.toml`, `setup.py` | Python |
| `go.mod`, `go.sum` | Go |
| `Cargo.toml`, `Cargo.lock` | Rust |
| `Gemfile`, `Gemfile.lock` | Ruby |
| `pom.xml`, `build.gradle`, `build.gradle.kts` | Java/Kotlin |
| `*.csproj`, `*.sln` | .NET/C# |
| `composer.json` | PHP |
| `Dockerfile`, `docker-compose.yml`, `docker-compose.yaml` | Containers |
| `serverless.yml`, `serverless.yaml`, `serverless.ts` | Serverless |
| `terraform/*.tf`, `**/*.tf` | Terraform IaC |
| `*.yaml` in `.github/workflows/` | GitHub Actions CI/CD |
| `.gitlab-ci.yml` | GitLab CI/CD |
| `Jenkinsfile` | Jenkins CI/CD |
| `.circleci/config.yml` | CircleCI |
Read each found manifest to extract framework names, database drivers,
and notable dependencies. Build a concise stack summary.
### Step 2: Detect Data Sensitivity
Scan the codebase for patterns indicating sensitive data handling. Use Grep
with these patterns:
**PII indicators:**
- User model fields: `email`, `phone`, `address`, `ssn`, `date_of_birth`,
`social_security`, `national_id`, `passport`
- GDPR patterns: `consent`, `gdpr`, `data_subject`, `right_to_forget`,
`data_protection`
**Financial indicators:**
- Payment integrations: `stripe`, `paypal`, `braintree`, `adyen`, `square`
- Card patterns: `card_number`, `cvv`, `credit_card`, `payment_method`
- Transaction models: `transaction`, `invoice`, `billing`, `subscription`
**Health data indicators:**
- HIPAA terms: `hipaa`, `phi`, `protected_health`, `medical_record`,
`diagnosis`, `patient`
**Auth mechanism indicators:**
- JWT: `jsonwebtoken`, `jwt`, `jose`
- OAuth: `oauth`, `passport`, `openid`
- Session: `express-session`, `cookie-session`, `session_store`
- Password storage: `bcrypt`, `argon2`, `scrypt`, `pbkdf2`
Classify data sensitivity as: **None detected**, **PII**, **Financial**,
**Health/PHI**, or combinations.
### Step 3: Detect Architecture Patterns
Determine the application type by scanning for these indicators:
| Pattern | Indicator Files / Code |
|---------|----------------------|
| API-only backend | Route handlers without template/view rendering, OpenAPI/Swagger spec |
| Full-stack | Template engines (EJS, Pug, Jinja, ERB), React/Vue/Angular alongside API |
| GraphQL | `.graphql` files, `graphql` in dependencies, schema definitions |
| WebSocket | `ws`, `socket.io`, `websocket` in dependencies or code |
| Serverless | `serverless.yml`, Lambda handlers, Cloud Functions |
| Microservices | Multiple `Dockerfile`s, service mesh config, multiple `package.json`s |
| Monolith | Single deployment unit, single database connection |
| Business logic heavy | Payment processing, e-commerce models, fintech calculations |
| Many dependencies | 100+ entries in lockfile |
| CI/CD present | `.github/workflows/`, `.gitlab-ci.yml`, `Jenkinsfile` |
### Step 4: Detect Installed Scanners
Check PATH for known scanner binaries using Bash `which` commands. Run
these checks in parallel:
```
which semgrep
which bandit
which gosec
which brakeman
which cargo-audit
which gitleaks
which trufflehog
which trivy
which osv-scanner
which checkov
which tfsec
which kics
which npm (for npm audit)
which pip-audit
```
Read [`../../shared/schemas/scanners.md`](../../shared/schemas/scanners.md)
for the full scanner registry and detection patterns.
Mark each as detected or not. For language-specific scanners, only report
relevance if the language is in the detected stack.
### Step 5: Check Existing Security Configs
Scan for security configurations already in place:
| Config | What to Check |
|--------|--------------|
| ESLint security | `.eslintrc*` files for `eslint-plugin-security` or security rules |
| CSP headers | `Content-Security-Policy` in middleware, meta tags, or config |
| CORS config | `cors()` middleware config, `Access-Control-Allow-Origin` settings |
| Rate limiting | `express-rate-limit`, `bottleneck`, rate limit middleware |
| Helmet/headers | `helmet` in dependencies, security header middleware |
| Input validation | `joi`, `zod`, `yup`, `class-validator`, `express-validator` |
| `.gitignore` | Whether `.env`, secrets, and keys are excluded |
| Dependabot | `.github/dependabot.yml` for automated dependency updates |
Note what is present and what is missing. This informs recommendations.
### Step 6: Output Tailored Recommendation
Based on all detected signals, produce a prioritized list of `/appsec:*`
tools to run, with rationale for each.
**Priority rules:**
1. `/appsec:secrets --scope full` is ALWAYS priority 1. Committed secrets
are the most common and most damaging solo dev mistake.
2. Tools matching detected data sensitivity rank higher (financial data
detected -> prioritize `business-logic`, `race-conditions`).
3. Tools matching detected architecture rank higher (GraphQL detected ->
include `graphql`).
4. Tools with no relevant attack surface in this project go to the SKIP list.
5. Include the "why" for each recommendation -- reference specific files or
patterns found.
## Output Format
### Text Format (default)
```
=====================================================
APPSEC START -- Project Assessment
=====================================================
PROJECT: <project name from package.json or directory>
STACK: <languages, frameworks, databases, infra>
DATA: <data sensitivity classifications>
SCANNERS: <scanner> Y/N <scanner> Y/N ...
RECOMMENDED TOOLS (priority order):
1. /appsec:secrets --scope full
WHY: <rationale referencing specific findings>
2. /appsec:<tool> --scope <recommended scope>
WHY: <rationale referencing specific findings>
...
SKIP (not relevant for this project):
- /appsec:<tool> (<reason>)
- ...
EXISTING SECURITY:
- <config found> -- <status>
- ...
QUICK START:
/appsec:run # Run top priorities automatically
/appsec:run --depth deep # Thorough analysis
/appsec:run --depth expert # + Red team simulation
/appsec:full-audit # Everything, with dated report
=====================================================
```
### JSON Format
```json
{
"project": "<name>",
"stack": { "languages": [], "frameworks": [], "databases": [], "infra": [] },
"data_sensitivity": [],
"architecture": [],
"scanners": { "<name>": true|false },
"existing_security": { "<config>": true|false },
"recommended_tools": [
{ "rank": 1, "tool": "secrets", "scope": "full", "rationale": "..." }
],
"skip": [
{ "tool": "graphql", "reason": "No GraphQL schema found" }
]
}
```
## Caching
After assessment, write the results to `.appsec/start-assessment.json`Related in Security
mac-ops
IncludedComprehensive macOS workstation operations — diagnose kernel panics, identify failing drives, audit launchd startup items, decode wake reasons, triage TCC permission denials, manage APFS snapshots, recover from no-boot. Use for: Mac is slow, slow bootup, won't boot, kernel panic, kernel_task hot, mds_stores CPU, photoanalysisd, cloudd, login loop, gray screen, sleep wake failure, drive failing, IO errors, APFS snapshots eating space, Time Machine local snapshots, Spotlight indexing, launchd, LaunchAgent, LaunchDaemon, login items, TCC permissions, Full Disk Access, Screen Recording denied, Gatekeeper, quarantine, com.apple.quarantine, app is damaged, helper tool, /Library/PrivilegedHelperTools, pmset, wake reasons, dark wake, sysdiagnose, panic.ips, DiagnosticReports, configuration profile, MDM profile, remote diagnostics over SSH.
a11y-audit
IncludedRun accessibility audits on web projects combining automated scanning (axe-core, Lighthouse) with WCAG 2.1 AA compliance mapping, manual check guidance, and structured reporting. Output is configurable: markdown report only, markdown plus machine-readable JSON, or markdown plus issue tracker integration. Use this skill whenever the user mentions "accessibility audit", "a11y audit", "WCAG audit", "accessibility check", "compliance scan", or asks to check a web project for accessibility issues. Also trigger when the user wants to verify WCAG conformance or map findings to a specific standard (CAN-ASC-6.2, EN 301 549, ADA/AODA).
erpclaw
IncludedAI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 413 actions across 14 domains, 43 expansion modules. Constitutional guardrails, adversarial audit, schema migration. Double-entry GL, immutable audit trail, US GAAP.
assess
IncludedAssesses and rates quality 0-10 across multiple dimensions (correctness, maintainability, security, performance, testability, simplicity) with pros/cons analysis. Compares against project conventions and prior decisions from memory. Produces structured evaluation reports with actionable improvement suggestions. Use when evaluating code, designs, architectures, or comparing alternative approaches.
spring-boot-security-jwt
IncludedProvides JWT authentication and authorization patterns for Spring Boot 3.5.x covering token generation with JJWT, Bearer/cookie authentication, database/OAuth2 integration, and RBAC/permission-based access control using Spring Security 6.x. Use when implementing authentication or authorization in Spring Boot applications.
code-hardcode-audit
IncludedDetect hardcoded values, magic numbers, and leaked secrets. TRIGGERS - hardcode audit, magic numbers, PLR2004, secret scanning.