autoresearch
Autonomous experiment loop for optimization research. Use when the user wants to: - Optimize a metric through systematic…
Analyze code changes for security vulnerabilities using LLM reasoning and threat model patterns. Use for PR reviews, pre-commit checks, or branch comparisons.
$ npx -y skills add factory-ai/factory-plugins --skill commit-security-scan --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/commit-security-scanContext preview
The summary Claude sees to decide when to auto-load this skill.
Analyze code changes for security vulnerabilities using LLM reasoning and threat model patterns. Use for PR reviews, pre-commit checks, or branch comparisons.
name: commit-security-scan description: Analyze code changes for security vulnerabilities using LLM reasoning and threat model patterns. Use for PR reviews, pre-commit checks, or branch comparisons. version: 1.0.0 tags: [security, scanning, vulnerability-detection, ci-cd]
Analyze code changes (commits, PRs, diffs) using LLM-powered reasoning to detect security vulnerabilities. This skill reads code directly and applies patterns from the repository's threat model to identify issues across all STRIDE categories.
This skill requires:
1. **Threat model** - `.factory/threat-model.md` must exist 2. **Security config** - `.factory/security-config.json` for severity thresholds
**IMPORTANT: If these files don't exist, you MUST generate them first before proceeding with the security scan.**
To generate the prerequisites:
1. Tell the user: "The threat model doesn't exist yet. I'll generate it first before scanning." 2. Run the `threat-model-generation` skill to create both files 3. Once complete, continue with the security scan
Do NOT ask the user to run the skill manually - just do it automatically as part of this workflow.
The skill determines what to scan from the user's request:
| Scan Type | How to Specify | Example | | ----------------- | -------------------------- | -------------------------------------------- | | PR | "Scan PR #123" | `Scan PR #456 for security vulnerabilities` | | Commit range | "Scan commits X..Y" | `Scan commits abc123..def456` | | Single commit | "Scan commit X" | `Scan commit abc123` | | Staged changes | "Scan staged changes" | `Scan my staged changes for security issues` | | Uncommitted | "Scan uncommitted changes" | `Scan working directory changes` | | Branch comparison | "Scan from X to Y" | `Scan changes from main to feature-branch` | | Last N commits | "Scan last N commits" | `Scan the last 3 commits` |
If no scope is specified, prompt the user for clarification.
Follow these steps in order:
Try to read these files:
**If either file is missing or cannot be read:**
1. Inform the user: "The security threat model doesn't exist yet. I'll generate it first - this may take a minute." 2. Invoke the `threat-model-generation` skill to analyze the repository and create both files 3. Once generation completes, continue with Step 2
This ensures the security scan always has the threat model context it needs for accurate analysis.
Based on the user's request, get the list of changed files and their diffs using git:
Read the full content of each changed file for context.
Read `.factory/threat-model.md` and `.factory/security-config.json` to understand:
For each changed file, systematically check for STRIDE threats:
For each potential vulnerability:
1. **Trace data flow**: Follow user input from source to sink
2. **Check for existing mitigations**:
3. **Determine severity**:
4. **Assess confidence**:
Official Factory plugins marketplace containing curated skills, droids, and tools.
Autonomous experiment loop for optimization research. Use when the user wants to: - Optimize a metric through systematic…
Create a pull request with Conventional Commits formatting, a templated body, and local verification. Use when the user asks to…
Follow up on an existing PR by rebasing on the base branch, addressing reviewer comments, fixing CI issues, and pushing updates.…
Intercept and debug HTTP traffic from any CLI, service, or script using HTTP Toolkit. Use when you need to inspect LLM API calls,…
Control terminal TUIs, browsers, and native desktop apps for testing, demos, QA, and computer-use tasks. Use when you need to…
Automate browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to: -…