### Register and Install Plugins via CLI Source: https://context7.com/factory-ai/factory-plugins/llms.txt Commands to add the marketplace repository, install specific plugins, and access the UI. ```bash # Add the official Factory plugins marketplace droid plugin marketplace add https://github.com/Factory-AI/factory-plugins # Install a specific plugin from the marketplace droid plugin install security-engineer@factory-plugins # Browse available plugins via the UI /plugins ``` -------------------------------- ### Start Slidev Dev Server with Custom Entry Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Starts the development server using a specified markdown file as the entry point. ```bash slidev my-slides.md ``` -------------------------------- ### Install and configure nanobanana Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/image-generation.md Installation instructions and API key configuration for the CLI tool. ```bash npm install -g @factory/nanobanana ``` ```bash export GEMINI_API_KEY="your-api-key" ``` -------------------------------- ### Install a Plugin from Marketplace Source: https://github.com/factory-ai/factory-plugins/blob/master/README.md After adding the marketplace, use this command to install a specific plugin, such as 'security-engineer', from the 'factory-plugins' source. ```bash droid plugin install security-engineer@factory-plugins ``` -------------------------------- ### Start Slidev Dev Server (Default) Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Starts the development server with default settings, typically using `slides.md` on port 3030. ```bash slidev ``` -------------------------------- ### Start Slidev Dev Server with Custom Port and Auto-Open Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Starts the development server on a custom port and automatically opens the presentation in the default browser. ```bash slidev --port 8080 --open ``` -------------------------------- ### Run Slidev Development Server Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Starts the Slidev development server to preview your presentation. ```bash npx slidev ``` -------------------------------- ### Skill Verification Example Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/skill-creation/SKILL.md Provides examples of verification steps to ensure a skill has functioned correctly. ```markdown ## Verify it worked Run `npm test` and make sure nothing broke. Check that the new file exists at `src/config.ts`. ``` -------------------------------- ### Add Slidev to Existing Project Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Install Slidev CLI and default theme into an existing project. ```bash npm install @slidev/cli @slidev/theme-default ``` -------------------------------- ### Install agent-browser Globally or via npx Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/browser-navigation/SKILL.md Install the agent-browser tool globally using npm or execute commands directly using npx. ```bash npm install -g agent-browser ``` ```bash npx agent-browser open https://example.com ``` -------------------------------- ### Development Commands Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Commands for starting the local development server for Slidev presentations. ```APIDOC ## Development Commands ### Description Starts the local development server to preview slides. ### Endpoint `slidev [entry_file]` ### Parameters #### Path Parameters - **entry_file** (string) - Optional - The path to the markdown file (default: slides.md) #### Query Parameters - **--port** (number) - Optional - Port to run the server on (default: 3030) - **--open** (boolean) - Optional - Automatically open the browser - **--remote** (string) - Optional - Enable remote access, optionally with a password ``` -------------------------------- ### Get prompting help Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/image-generation.md Access built-in tips for improving prompts for specific commands. ```bash nanobanana tips # general tips nanobanana tips generate # tips for generate command nanobanana tips diagram # tips for diagram command ``` -------------------------------- ### Scraping Data from a Web Page Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/browser-navigation/SKILL.md Example of opening a URL, taking a snapshot to get page structure, and then extracting specific text content and attribute values using element references. ```bash agent-browser open https://example.com/products agent-browser snapshot -i --json > page_structure.json # Get specific data agent-browser get text @e5 # Product title agent-browser get attr @e6 href # Product link ``` -------------------------------- ### Form Submission Workflow Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/browser-navigation/SKILL.md A multi-step example demonstrating how to open a form, identify elements using snapshots, fill in data, click submit, and wait for page load. ```bash agent-browser open https://example.com/form snapshots: agent-browser snapshot -i # Output shows: textbox "Email" [ref=e1], textbox "Password" [ref=e2], button "Submit" [ref=e3] agent-browser fill @e1 "user@example.com" agent-browser fill @e2 "password123" agent-browser click @e3 agent-browser wait --load networkidle agent-browser snapshot -i # Check result ``` -------------------------------- ### Add Marketplace to Factory Source: https://github.com/factory-ai/factory-plugins/blob/master/README.md Use this command to add the official Factory plugins marketplace to your Factory installation. This is a prerequisite for installing plugins from this marketplace. ```bash droid plugin marketplace add https://github.com/Factory-AI/factory-plugins ``` -------------------------------- ### Summary of Created Branches Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/autoresearch/skills/autoresearch/SKILL.md Example output summarizing the creation of clean branches from experiments, including metric improvements and readiness for review. It also notes the preservation of the original experiment branch. ```text Created 2 clean branches from 20 experiments: autoresearch/finalize/reduce-depth val_bpb: 1.15 -> 1.08 (-6.1%) Ready for review autoresearch/finalize/cosine-schedule val_bpb: 1.08 -> 1.05 (-2.8%) Ready for review Original experiment branch preserved: autoresearch/ ``` -------------------------------- ### Slidev Frontmatter Configuration Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Example of frontmatter for configuring individual slides, including layout and transitions. ```yaml --- layout: two-cols transition: slide-left class: px-20 --- ``` -------------------------------- ### Testing a Login Flow Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/browser-navigation/SKILL.md A comprehensive example for testing a login process, including navigation, filling credentials, clicking submit, waiting for redirection, and verifying successful login by checking for a username element. ```bash # Navigate to login agent-browser open https://app.example.com/login # Take initial snapshot agent-browser snapshot -i # Fill credentials agent-browser fill @e1 "test@example.com" agent-browser fill @e2 "testpassword" # Click login agent-browser click @e3 # Wait for redirect agent-browser wait --url "**/dashboard" # Verify logged in agent-browser get text @e10 # Should show username ``` -------------------------------- ### Enable Remote Access with Password Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Starts the development server with remote access enabled and password protection. ```bash slidev --remote mypassword ``` -------------------------------- ### Generate and edit images with nanobanana CLI Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/SKILL.md Install the CLI globally and set the API key before running generation or editing commands. ```bash npm install -g @factory/nanobanana export GEMINI_API_KEY="your-key" nanobanana generate "company logo" --count=4 --styles=modern,minimal nanobanana edit photo.png "remove background" nanobanana icon "settings gear" --style=flat nanobanana diagram "auth flow" --type=flowchart ``` -------------------------------- ### Human Writing Transformation Example Source: https://context7.com/factory-ai/factory-plugins/llms.txt Comparison of AI-sounding text versus humanized text. ```markdown # Before (AI-sounding): The new software update serves as a testament to the company's commitment to innovation. Moreover, it provides a seamless, intuitive, and powerful user experience—ensuring that users can accomplish their goals efficiently. # After (humanized): The software update adds batch processing, keyboard shortcuts, and offline mode. Early feedback from beta testers has been positive, with most reporting faster task completion. ``` -------------------------------- ### Example of Grouping Files in Review Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/core/skills/review/SKILL.md Illustrates how to group modified files into logical clusters for parallel review, based on related functionality, file relationships, risk profile, or dependencies. ```text - Group 1 (Auth): src/auth/login.ts, src/auth/session.ts, tests/auth.test.ts - Group 2 (API handlers): src/api/users.ts, src/api/orders.ts - Group 3 (Database): src/db/migrations/001.ts, src/db/schema.ts ``` -------------------------------- ### Record Browser Sessions as Video Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/browser-navigation/SKILL.md Start, stop, and restart video recording of browser sessions. Recordings are saved as WebM files. ```bash agent-browser record start ./demo.webm ``` ```bash agent-browser click @e1 ``` ```bash agent-browser record stop ``` ```bash agent-browser record restart ./take2.webm ``` -------------------------------- ### Two-Column Slide Layout Example Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Demonstrates a two-column layout using '::right::' to separate content for each column. ```markdown --- layout: two-cols --- # Left Column Content here ::right:: # Right Column More content ``` -------------------------------- ### Vue Component Usage Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/reference-slide-example.md Examples of embedding custom and built-in Vue components in slides. ```html ``` ```html ``` -------------------------------- ### Example Experiment Grouping Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/autoresearch/skills/autoresearch/SKILL.md Illustrates how to group experiments into logical changesets, specifying files modified, metric improvements, and associated experiment IDs. This format is used for user presentation and approval. ```text Group 1: "Reduce model depth from 8 to 6" Files: train.py (DEPTH, HEAD_DIM, N_EMBED) Metric improvement: val_bpb 1.15 -> 1.08 (-6.1%) Experiments: #3, #7, #12 Group 2: "Switch to cosine LR schedule" Files: train.py (lr_schedule, warmup_steps) Metric improvement: val_bpb 1.08 -> 1.05 (-2.8%) Experiments: #15, #18 ``` -------------------------------- ### Enable Remote Access for Slidev Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Starts the development server with remote access enabled, allowing control from other devices. ```bash slidev --remote ``` -------------------------------- ### Threat Model Generation Invocations Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/security-engineer/skills/threat-model-generation/SKILL.md Example commands for generating or updating threat models based on project requirements. ```text Generate a threat model for this repository using the threat-model-generation skill. ``` ```text Update the threat model - we added a new payments service in services/payments/. ``` ```text Generate a threat model for this repository. We need to comply with SOC2 and GDPR. ``` -------------------------------- ### Example PR Security Review Scan Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/security-engineer/skills/security-review/SKILL.md Use this command to scan a specific pull request for security vulnerabilities. ```bash Scan PR #123 for security vulnerabilities. ``` -------------------------------- ### Define Slide Deck Structure Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Example of a multi-slide deck using frontmatter, two-column layouts, and Mermaid diagrams. ```markdown --- theme: seriph background: https://cover.sli.dev class: text-center transition: slide-left --- # Project Update Q1 2026 Review --- ## layout: two-cols # What we shipped - Feature A - Feature B - Feature C ::right:: # Metrics - 50% faster - 2x more users - 99.9% uptime --- # Architecture ```mermaid graph LR Client --> API API --> DB API --> Cache ``` ``` -------------------------------- ### Video Recording API Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/browser-navigation/SKILL.md Commands to start, stop, and restart video recording of browser sessions. ```APIDOC ## Video Recording Commands ### Description Commands to record browser sessions as video. ### Method CLI Command ### Endpoint N/A ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```bash agent-browser record start ./demo.webm agent-browser click @e1 agent-browser record stop agent-browser record restart ./take2.webm ``` ### Response #### Success Response (200) Video recording starts, stops, or restarts as specified. #### Response Example N/A ``` -------------------------------- ### Initialize Slidev Project Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Use this command to create a new Slidev project from scratch. ```bash npm init slidev@latest ``` -------------------------------- ### Manage presentations with Slidev Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/SKILL.md Initialize a new project and use the CLI commands to run a development server, export to PowerPoint, or build for production. ```bash npm init slidev@latest slidev # dev server slidev export --format pptx # export to PowerPoint slidev build # build as hostable SPA ``` -------------------------------- ### Initialize Autoresearch Experiment Source: https://context7.com/factory-ai/factory-plugins/llms.txt Set up the experiment environment and baseline logging for optimization research. ```bash # Create experiment branch and initialize state files git checkout -b autoresearch/minimize-val-bpb-2025-01-15 # Initialize the experiment log python3 autoresearch_helper.py init \ --jsonl autoresearch.jsonl \ --name 'minimize-val-bpb' \ --metric-name 'val_bpb' \ --direction lower # Run baseline and log it bash autoresearch.sh python3 autoresearch_helper.py log \ --jsonl autoresearch.jsonl \ --commit $(git rev-parse --short=7 HEAD) \ --metric 1.15 \ --status keep \ --description "baseline" \ --asi '{"hypothesis": "baseline measurement"}' ``` -------------------------------- ### Initialize Experiment Log Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/autoresearch/skills/autoresearch/SKILL.md Use this command to initialize the experiment log file with details about the experiment's goal, metric name, and direction. ```bash python3 autoresearch_helper.py init --jsonl autoresearch.jsonl --name '' --metric-name '' --direction ``` -------------------------------- ### Build Slidev Presentation with PDF Download Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Builds the SPA and includes a button for downloading the presentation as a PDF. ```bash slidev build --download ``` -------------------------------- ### Basic Skill File Structure Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/skill-creation/SKILL.md Illustrates the directory structure for a custom skill, including the SKILL.md file. ```bash .factory/skills/my-skill/ └── SKILL.md ``` -------------------------------- ### Upload Wiki Documentation Source: https://context7.com/factory-ai/factory-plugins/llms.txt Upload generated documentation to the Factory platform using the droid CLI. ```bash # The wiki skill surveys the repository, plans a table of contents, # generates pages with sub-agent delegation, and uploads to Factory # Standard upload (keeps local wiki directory) droid wiki-upload \ --repo-url "$REPO_URL" \ --wiki-dir ./droid-wiki # Remote-only upload (deletes local files after upload) droid wiki-upload \ --repo-url "$REPO_URL" \ --wiki-dir "$WIKI_TMPDIR" \ --cleanup ``` -------------------------------- ### Code Review Suggestion Format Source: https://context7.com/factory-ai/factory-plugins/llms.txt Example of a code suggestion block provided by the review skill. ```markdown ## [P0] SQL Injection in user query handler **File:** `src/api/users.js:45-49` User input from `req.query.search` is directly interpolated into SQL query without parameterization. Attacker can submit `test' OR '1'='1` to bypass search filter and retrieve all users. ```suggestion - const query = `SELECT * FROM users WHERE name LIKE '%${search}%'`; - const results = await db.query(query); + const query = `SELECT * FROM users WHERE name LIKE $1`; + const results = await db.query(query, [`%${search}%`]); ``` ``` -------------------------------- ### Natural language validation invocations Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/security-engineer/skills/vulnerability-validation/SKILL.md Example prompts for triggering security finding validation processes. ```text Validate the security findings from the last scan. ``` ```text Validate findings VULN-001 and VULN-002 from security-findings.json. ``` ```text Validate all HIGH and CRITICAL severity findings from the security scan. ``` ```text Validate findings in security-findings.json using threat model at .factory/threat-model.md. ``` -------------------------------- ### Click Animation Directives Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/reference-slide-example.md Examples of using v-click and v-mark directives for interactive slide elements. ```html
This shows up when you click the slide.
``` ```html inline markers ``` -------------------------------- ### Build Commands Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Commands for building the presentation into a static site. ```APIDOC ## Build Commands ### Description Builds the presentation as a hostable Single Page Application (SPA). ### Endpoint `slidev build` ### Parameters #### Query Parameters - **--out** (string) - Optional - Custom output directory (default: ./dist) - **--download** (boolean) - Optional - Include PDF download button in SPA - **--without-notes** (boolean) - Optional - Exclude speaker notes from the build ``` -------------------------------- ### Build Slidev Presentation to Custom Output Directory Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Builds the presentation and places the output files in a specified directory. ```bash slidev build --out ./public ``` -------------------------------- ### Slidev Magic Move Code Animation Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Example of using 'magic-move' to animate code changes between steps. ```markdown ````md magic-move ```ts // Step 1 const count = ref(0); ``` ```ts // Step 2 const count = ref(0); const doubled = computed(() => count.value * 2); ``` ```` ``` -------------------------------- ### Create sequential stories Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/image-generation.md Generate multi-step images for tutorials or process narratives. ```bash nanobanana story "seed growing into tree" --steps=5 --type=process nanobanana story "making coffee" --type=tutorial --steps=6 nanobanana story "day to night transition" --type=timeline --steps=4 ``` -------------------------------- ### Frontend Design Guidelines Source: https://context7.com/factory-ai/factory-plugins/llms.txt Standardized design tokens and responsive breakpoints for web interface development. ```bash # Spacing scale (use multiples of 4px or 8px) # 4, 8, 12, 16, 24, 32, 48, 64, 96, 128 # Type scale (1.25 or 1.333 ratio) # 12, 14, 16, 20, 24, 32, 40, 48 # Color palette (start minimal) # - One primary color (brand/accent) # - Neutrals: white, black, 3-4 grays # - Semantic: red (errors), green (success) # Responsive breakpoints # Mobile: up to 640px # Tablet: 641px to 1024px # Desktop: 1025px and up ``` -------------------------------- ### List project folders Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/core/skills/session-navigation/SKILL.md Use these commands to view all project directories containing sessions or filter for a specific project. ```bash # See all project folders with sessions ls ~/.factory/sessions/ # Find folders for a specific project (partial match) ls ~/.factory/sessions/ | grep "myapp" ``` -------------------------------- ### Build Slidev Presentation as SPA Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Compiles the presentation into a static Single Page Application for hosting. ```bash slidev build ``` -------------------------------- ### Log Baseline Result Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/autoresearch/skills/autoresearch/SKILL.md Parse the baseline metric from the output and log it as a 'keep' status in the JSONL file. This establishes the starting point for future comparisons. ```bash python3 autoresearch_helper.py log --jsonl autoresearch.jsonl \ --commit $(git rev-parse --short=7 HEAD) \ --metric \ --status keep \ --description "baseline" \ --asi '{"hypothesis": "baseline measurement"}' ``` -------------------------------- ### Manage Browser Cookies and Storage Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/browser-navigation/SKILL.md Commands to get, set, and clear browser cookies and local storage. Useful for managing session data and user preferences. ```bash agent-browser cookies # Get all cookies ``` ```bash agent-browser cookies set name value # Set cookie ``` ```bash agent-browser cookies clear # Clear cookies ``` ```bash agent-browser storage local # Get all localStorage ``` ```bash agent-browser storage local key # Get specific key ``` ```bash agent-browser storage local set k v # Set value ``` ```bash agent-browser storage local clear # Clear all ``` -------------------------------- ### Task Tool Invocation for Subagents Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/core/skills/review/SKILL.md Example of invoking a Task tool to spawn a 'file-group-reviewer' subagent for parallel code review. Ensure all subagents are spawned in a single response. ```json { "subagent_type": "file-group-reviewer", "description": "Review auth module", "prompt": "Must include the PR context, the list of assigned files, the relevant diff sections, and instructions to return a JSON array of findings" } ``` -------------------------------- ### Commit Initial State Files Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/autoresearch/skills/autoresearch/SKILL.md After initializing the experiment log, commit the relevant state files to version control. ```bash git add autoresearch.md autoresearch.sh autoresearch.jsonl git commit -m "autoresearch: initialize experiment session" ``` -------------------------------- ### Example JSON Output for Vulnerability VULN-002 Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/security-engineer/skills/vulnerability-validation/validation-examples.md This JSON object represents the output for a vulnerability identified as VULN-002, indicating a FALSE_POSITIVE due to input validation by Joi schema middleware. ```json { "id": "VULN-002", "original_severity": "HIGH", "status": "FALSE_POSITIVE", "reason": "Input is validated by Joi schema middleware before reaching this code. Schema enforces strict enum values ('electronics', 'clothing', 'food', 'other') which prevents any SQL injection payload from passing through.", "evidence": "See middleware/validation.js:23 - Joi.string().valid('electronics', 'clothing', 'food', 'other'). Middleware applied at routes/products.js:15 before handler." } ``` -------------------------------- ### Run Baseline Benchmark Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/autoresearch/skills/autoresearch/SKILL.md Execute the main benchmark script to establish the baseline performance. ```bash bash autoresearch.sh ``` -------------------------------- ### Create patterns and textures Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/image-generation.md Generate seamless patterns and textures with configurable density and color schemes. ```bash nanobanana pattern "hexagons" --style=geometric --colors=duotone nanobanana pattern "marble texture" --type=texture nanobanana pattern "subtle gradient" --type=wallpaper --density=sparse ``` -------------------------------- ### Theme Configuration Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/reference-slide-example.md Frontmatter configuration for switching presentation themes. ```yaml --- theme: default --- ``` ```yaml --- theme: seriph --- ``` -------------------------------- ### Skill Creation Structure Source: https://context7.com/factory-ai/factory-plugins/llms.txt File structure and YAML frontmatter format for creating new Droid skills. ```bash # Skills live in a folder with a SKILL.md file .factory/skills/my-skill/ └── SKILL.md # Basic skill format with YAML frontmatter ``` ```markdown --- name: my-skill version: 1.0.0 description: | What this skill does. When to use it. --- # My skill Instructions go here. ``` -------------------------------- ### Confirmed SQL Injection Validation Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/security-engineer/skills/vulnerability-validation/validation-examples.md Validates a confirmed SQL injection vulnerability by analyzing reachability, control flow, and exploitability. This example shows a direct string interpolation into an SQL query without sanitization. ```json { "id": "VULN-001", "severity": "HIGH", "vulnerability_type": "SQL Injection", "file": "src/api/users.js", "line_range": "45-49", "code_snippet": "const sql = `SELECT * FROM users WHERE name LIKE '%${query}%'`;" } ``` ```json { "payload": "test%' OR '1'='1' --", "request": "GET /api/users?search=test%25'%20OR%20'1'%3D'1'%20--", "expected_behavior": "Returns users with 'test' in name", "actual_behavior": "Returns ALL users in database" } ``` ```json { "id": "VULN-001", "status": "CONFIRMED", "original_severity": "HIGH", "validated_severity": "CRITICAL", "exploitability": "EASY", "reachability": "EXTERNAL", "existing_mitigations": [], "exploitation_path": [ "Attacker sends GET /api/users?search=", "Express passes query param to searchUsers()", "Function interpolates input into SQL template literal", "db.query() executes malicious SQL", "All user records returned to attacker" ], "proof_of_concept": { "payload": "test%' OR '1'='1' --", "request": "GET /api/users?search=test%25'%20OR%20'1'%3D'1'%20--", "expected_behavior": "Returns users with 'test' in name", "actual_behavior": "Returns ALL users in database" }, "cvss_vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N", "cvss_score": 9.1, "validation_notes": "Confirmed. Direct string interpolation in SQL with no input validation. Upgraded to CRITICAL due to ease of exploitation and data exposure." } ``` -------------------------------- ### Standard Plugin Directory Structure Source: https://context7.com/factory-ai/factory-plugins/llms.txt The required file and folder layout for a valid Factory plugin. ```text plugin-name/ ├── .factory-plugin/ │ └── plugin.json # Plugin metadata (name, description, author) ├── skills/ # Skill definitions │ └── skill-name/ │ └── SKILL.md # Skill instructions with YAML frontmatter ├── droids/ # Droid definitions (optional) ├── commands/ # Custom commands (optional) ├── mcp.json # MCP server config (optional) └── hooks.json # Hook configurations (optional) ``` -------------------------------- ### Generate Visual Assets with Nanobanana Source: https://context7.com/factory-ai/factory-plugins/llms.txt Use the nanobanana CLI to generate images, icons, and diagrams, or manage presentations using Slidev. ```bash # Install nanobanana CLI for image generation npm install -g @factory/nanobanana export GEMINI_API_KEY="your-key" # Generate images nanobanana generate "company logo" --count=4 --styles=modern,minimal nanobanana edit photo.png "remove background" nanobanana icon "settings gear" --style=flat nanobanana diagram "auth flow" --type=flowchart # Create presentations with Slidev npm init slidev@latest slidev # dev server slidev export --format pptx # export to PowerPoint slidev build # build as hostable SPA ``` -------------------------------- ### Generate Assets with Nanobanana Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Use the nanobanana CLI tool to generate diagrams, icons, and background patterns for slide content. ```bash # Generate a diagram nanobanana diagram "user authentication flow" --type=flowchart # Generate an icon nanobanana icon "rocket launch" --style=minimal # Generate a background nanobanana pattern "subtle gradient mesh" --type=wallpaper ``` -------------------------------- ### Full Repository Scan Command Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/security-engineer/skills/security-review/SKILL.md Initiate a comprehensive security scan across the entire repository. ```bash @droid security --full ``` -------------------------------- ### Generate app icons Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/image-generation.md Create icons with specific styles, types, and dimensions. ```bash nanobanana icon "settings gear" --style=minimal nanobanana icon "chat bubble" --type=favicon --sizes=16,32,64 nanobanana icon "rocket" --style=flat --background=transparent ``` -------------------------------- ### Identify projects by content Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/core/skills/session-navigation/SKILL.md Find which project directories contain sessions mentioning a specific keyword. ```bash # Which projects have sessions mentioning "redis"? rg -l "redis" ~/.factory/sessions/ | cut -d'/' -f1-5 | sort -u ``` -------------------------------- ### Interact with Web Elements using Refs Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/browser-navigation/SKILL.md Perform various interactions like clicking, typing, checking, and selecting elements using their references obtained from a snapshot. Supports single clicks, double clicks, hover, focus, text input, keyboard actions, form interactions, scrolling, drag-and-drop, and file uploads. ```bash agent-browser click @e1 ``` ```bash agent-browser dblclick @e1 ``` ```bash agent-browser hover @e1 ``` ```bash agent-browser focus @e1 ``` ```bash agent-browser fill @e2 "text" ``` ```bash agent-browser type @e2 "text" ``` ```bash agent-browser press Enter ``` ```bash agent-browser press Control+a ``` ```bash agent-browser keydown Shift ``` ```bash agent-browser keyup Shift ``` ```bash agent-browser check @e1 ``` ```bash agent-browser uncheck @e1 ``` ```bash agent-browser select @e1 "value" ``` ```bash agent-browser scroll down 500 ``` ```bash agent-browser scrollintoview @e1 ``` ```bash agent-browser drag @e1 @e2 ``` ```bash agent-browser upload @e1 file.pdf ``` -------------------------------- ### Basic Browser Navigation Commands Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/browser-navigation/SKILL.md Navigate websites, go back/forward, reload the page, or close the browser. ```bash agent-browser open ``` ```bash agent-browser back ``` ```bash agent-browser forward ``` ```bash agent-browser reload ``` ```bash agent-browser close ``` -------------------------------- ### Slidev Click-Through Code Highlighting Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Shows how to use line highlighting syntax `{2|3-4|all}` for click-through animations in code blocks. ```markdown ```ts {2|3-4|all} const greeting = "Hello"; const name = "World"; console.log(`${greeting}, ${name}!`); ``` ``` -------------------------------- ### Skill Documentation - What Not To Do Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/skill-creation/SKILL.md Includes a section for documenting potential pitfalls or actions to avoid when using a skill. ```markdown ## What not to do Don't run this on a dirty git working directory. The `--force` flag will overwrite without asking. ``` -------------------------------- ### Authentication with Saved State Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/browser-navigation/SKILL.md Demonstrates logging into an application, saving the authentication state, and then loading that state in a subsequent session to bypass login. ```bash # Login once agent-browser open https://app.example.com/login snapshots: agent-browser snapshot -i agent-browser fill @e1 "username" agent-browser fill @e2 "password" agent-browser click @e3 agent-browser wait --url "**/dashboard" agent-browser state save auth.json # Later sessions: load saved state agent-browser state load auth.json agent-browser open https://app.example.com/dashboard ``` -------------------------------- ### Generate Proof of Concept JSON Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/security-engineer/skills/security-review/SKILL.md Use this structure to document minimal PoCs for confirmed high or critical security findings. ```json { "proof_of_concept": { "payload": "' OR '1'='1", "request": "GET /api/users?search=test%27%20OR%20%271%27%3D%271", "expected_behavior": "Returns users matching 'test'", "actual_behavior": "Returns ALL users due to SQL injection" } } ``` -------------------------------- ### Manage Browser Tabs and Windows Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/browser-navigation/SKILL.md Commands for creating, switching, and closing browser tabs and windows. Useful for managing multiple pages or testing multi-window scenarios. ```bash agent-browser tab # List tabs ``` ```bash agent-browser tab new [url] # New tab ``` ```bash agent-browser tab 2 # Switch to tab ``` ```bash agent-browser tab close # Close tab ``` ```bash agent-browser window new # New window ``` -------------------------------- ### Export Slidev Presentation with Click Animations Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/droid-evolved/skills/visual-design/presentations.md Exports the presentation where each click animation results in a new page in the output. ```bash slidev export --with-clicks ``` -------------------------------- ### Read session details Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/core/skills/session-navigation/SKILL.md Inspect session metadata, settings, and conversation length using standard command-line tools. ```bash # The metadata (title, working directory) head -1 ~/.factory/sessions/-Users-enoreyes-code-work-myapp/.jsonl | jq . # Session stats (model, tokens, duration) cat ~/.factory/sessions/-Users-enoreyes-code-work-myapp/.settings.json | jq . # How long was this conversation? wc -l ~/.factory/sessions/-Users-enoreyes-code-work-myapp/.jsonl ``` -------------------------------- ### Run Experiment Benchmark with Timeout Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/autoresearch/skills/autoresearch/SKILL.md Execute the benchmark script for an experiment, with a specified timeout to prevent indefinite runs. ```bash timeout 600 bash autoresearch.sh ``` -------------------------------- ### Factory Plugin Structure Source: https://github.com/factory-ai/factory-plugins/blob/master/README.md This outlines the standard directory structure for a Factory plugin. Key components include metadata in .factory-plugin/plugin.json, skill definitions in skills/, and optional droids/, commands/, mcp.json, and hooks.json. ```plaintext plugin-name/ ├── .factory-plugin/ │ └── plugin.json # Plugin metadata ├── skills/ # Skill definitions │ └── skill-name/ │ └── SKILL.md ├── droids/ # Droid definitions (optional) ├── commands/ # Custom commands (optional) ├── mcp.json # MCP server config (optional) └── hooks.json # Hook configurations (optional) ``` -------------------------------- ### Run Experiment Loop Source: https://context7.com/factory-ai/factory-plugins/llms.txt Execute the autonomous experiment loop with a timeout. ```bash # The experiment loop runs autonomously: # 1. Choose what to try (read autoresearch.md for context) # 2. Make focused changes (one hypothesis per experiment) # 3. Run the experiment timeout 600 bash autoresearch.sh ``` -------------------------------- ### Create Clean Git Branches for Experiment Groups Source: https://github.com/factory-ai/factory-plugins/blob/master/plugins/autoresearch/skills/autoresearch/SKILL.md Shell commands to create a new Git branch for each experiment group, checking out specific files from the session branch and committing with a detailed description including metric improvements and experiment counts. ```bash merge_base=$(git merge-base HEAD main) git checkout -b autoresearch/finalize/ $merge_base git checkout autoresearch/ -- ... git commit -m " Autoresearch results: - Metric: improved from to (%) - Confidence: x noise floor - Experiments: total, kept" ``` -------------------------------- ### Generate Threat Models Source: https://context7.com/factory-ai/factory-plugins/llms.txt Commands and natural language prompts to generate and update repository threat models. ```bash # Generate initial threat model # Creates .factory/threat-model.md and .factory/security-config.json # Invoke via natural language: "Generate a threat model for this repository using the threat-model-generation skill." # Update after architecture changes: "Update the threat model - we added a new payments service in services/payments/." # With compliance requirements: "Generate a threat model for this repository. We need to comply with SOC2 and GDPR." ```