A curated list of practical Codex skills for automating workflows across the Codex CLI and API.
This report summarizes scanner evidence for composio-community/awesome-codex-skills, a Python project with 16,858 GitHub stars. SynthScan examined 114,665 lines of code across 1045 source files, recording 2360 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 45.2 (High pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 2298 finding(s).
Are imports declared and package/API names verified? 35 finding(s).
Are wrappers, guards, and repeated structures necessary? 46 finding(s).
Which changes need focused human review? 2360 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2360 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tion-meeting-intelligence/examples/project-decision.md | 9 | ### Step 1: Search for Context | COMMENT |
| LOW | …tion-meeting-intelligence/examples/project-decision.md | 29 | ### Step 2: Fetch Relevant Pages | COMMENT |
| LOW | …tion-meeting-intelligence/examples/project-decision.md | 62 | ### Step 3: Synthesize Pre-Read | COMMENT |
| LOW | …tion-meeting-intelligence/examples/project-decision.md | 71 | ### Step 4: Create Meeting Agenda | COMMENT |
| LOW | …tion-meeting-intelligence/examples/project-decision.md | 319 | ### Step 5: Share Agenda | COMMENT |
| LOW | linear/SKILL.md | 22 | ### Step 0: Set up Linear MCP (if not already configured) | COMMENT |
| LOW⚡ | connect-apps/SKILL.md | 12 | ### Step 1: Install the Composio CLI | COMMENT |
| LOW⚡ | connect-apps/SKILL.md | 18 | ### Step 2: Log In | COMMENT |
| LOW⚡ | connect-apps/SKILL.md | 27 | ### Step 3: Link the Apps You Need | COMMENT |
| LOW⚡ | connect-apps/SKILL.md | 37 | ### Step 4: Try It | COMMENT |
| LOW | …research-documentation/examples/competitor-analysis.md | 9 | ### Step 1: Search for Competitor Information | COMMENT |
| LOW | …research-documentation/examples/competitor-analysis.md | 28 | ### Step 2: Fetch and Analyze | COMMENT |
| LOW | …research-documentation/examples/competitor-analysis.md | 56 | ### Step 3: Create Comparison Document | COMMENT |
| LOW | …arch-documentation/examples/technical-investigation.md | 9 | ### Step 1: Search for Caching Information | COMMENT |
| LOW | …arch-documentation/examples/technical-investigation.md | 24 | ### Step 2: Fetch Relevant Pages | COMMENT |
| LOW | …arch-documentation/examples/technical-investigation.md | 47 | ### Step 3: Synthesize Findings | COMMENT |
| LOW | …arch-documentation/examples/technical-investigation.md | 56 | ### Step 4: Create Technical Summary | COMMENT |
| LOW | skill-creator/SKILL.md | 224 | ### Step 1: Understanding the Skill with Concrete Examples | COMMENT |
| LOW | skill-creator/SKILL.md | 241 | ### Step 2: Planning the Reusable Skill Contents | COMMENT |
| LOW | skill-creator/SKILL.md | 265 | ### Step 3: Initializing the Skill | COMMENT |
| LOW | skill-creator/SKILL.md | 296 | ### Step 4: Edit the Skill | COMMENT |
| LOW | skill-creator/SKILL.md | 337 | ### Step 5: Packaging a Skill | COMMENT |
| LOW | skill-creator/SKILL.md | 364 | ### Step 6: Iterate | COMMENT |
| LOW⚡ | …tion-knowledge-capture/examples/conversation-to-faq.md | 22 | ### Step 1: Identify Content Type | COMMENT |
| LOW⚡ | …tion-knowledge-capture/examples/conversation-to-faq.md | 26 | ### Step 2: Structure FAQ Entries | COMMENT |
| LOW⚡ | …tion-knowledge-capture/examples/conversation-to-faq.md | 34 | ### Step 3: Determine Destination | COMMENT |
| LOW | …tion-knowledge-capture/examples/conversation-to-faq.md | 55 | ### Step 4: Create FAQ Entries | COMMENT |
| LOW | …tion-knowledge-capture/examples/conversation-to-faq.md | 91 | content: "## Short Answer\n\nDatabase connection errors usually mean either the database isn't running, credentials ar | CODE |
| LOW | …tion-knowledge-capture/examples/conversation-to-faq.md | 114 | ### Step 5: Update FAQ Index | COMMENT |
| LOW | notion-spec-to-implementation/examples/api-feature.md | 9 | ### Step 1: Fetch Specification | COMMENT |
| LOW | notion-spec-to-implementation/examples/api-feature.md | 24 | ### Step 2: Parse Specification | COMMENT |
| LOW | notion-spec-to-implementation/examples/api-feature.md | 79 | ### Step 3: Create Implementation Plan | COMMENT |
| LOW | notion-spec-to-implementation/examples/api-feature.md | 304 | ### Step 4: Find Task Database | COMMENT |
| LOW | notion-spec-to-implementation/examples/api-feature.md | 314 | ### Step 5: Fetch Task Database Schema | COMMENT |
| LOW | notion-spec-to-implementation/examples/api-feature.md | 325 | ### Step 6: Create Implementation Tasks | COMMENT |
| LOW | notion-spec-to-implementation/examples/api-feature.md | 351 | ### Step 7: Link Plan Back to Spec | COMMENT |
| LOW⚡ | composio-skills/seismic-automation/SKILL.md | 43 | ### Step 1: Discover Available Tools | COMMENT |
| LOW⚡ | composio-skills/seismic-automation/SKILL.md | 51 | ### Step 2: Check Connection | COMMENT |
| LOW⚡ | composio-skills/seismic-automation/SKILL.md | 59 | ### Step 3: Execute Tools | COMMENT |
| LOW⚡ | composio-skills/big-data-cloud-automation/SKILL.md | 43 | ### Step 1: Discover Available Tools | COMMENT |
| LOW⚡ | composio-skills/big-data-cloud-automation/SKILL.md | 51 | ### Step 2: Check Connection | COMMENT |
| LOW⚡ | composio-skills/big-data-cloud-automation/SKILL.md | 59 | ### Step 3: Execute Tools | COMMENT |
| LOW⚡ | composio-skills/campaign-cleaner-automation/SKILL.md | 43 | ### Step 1: Discover Available Tools | COMMENT |
| LOW⚡ | composio-skills/campaign-cleaner-automation/SKILL.md | 51 | ### Step 2: Check Connection | COMMENT |
| LOW⚡ | composio-skills/campaign-cleaner-automation/SKILL.md | 59 | ### Step 3: Execute Tools | COMMENT |
| LOW⚡ | composio-skills/corrently-automation/SKILL.md | 43 | ### Step 1: Discover Available Tools | COMMENT |
| LOW⚡ | composio-skills/corrently-automation/SKILL.md | 51 | ### Step 2: Check Connection | COMMENT |
| LOW⚡ | composio-skills/corrently-automation/SKILL.md | 59 | ### Step 3: Execute Tools | COMMENT |
| LOW⚡ | composio-skills/mails-so-automation/SKILL.md | 43 | ### Step 1: Discover Available Tools | COMMENT |
| LOW⚡ | composio-skills/mails-so-automation/SKILL.md | 51 | ### Step 2: Check Connection | COMMENT |
| LOW⚡ | composio-skills/mails-so-automation/SKILL.md | 59 | ### Step 3: Execute Tools | COMMENT |
| LOW⚡ | composio-skills/better-stack-automation/SKILL.md | 43 | ### Step 1: Discover Available Tools | COMMENT |
| LOW⚡ | composio-skills/better-stack-automation/SKILL.md | 51 | ### Step 2: Check Connection | COMMENT |
| LOW⚡ | composio-skills/better-stack-automation/SKILL.md | 59 | ### Step 3: Execute Tools | COMMENT |
| LOW⚡ | composio-skills/builtwith-automation/SKILL.md | 43 | ### Step 1: Discover Available Tools | COMMENT |
| LOW⚡ | composio-skills/builtwith-automation/SKILL.md | 51 | ### Step 2: Check Connection | COMMENT |
| LOW⚡ | composio-skills/builtwith-automation/SKILL.md | 59 | ### Step 3: Execute Tools | COMMENT |
| LOW⚡ | composio-skills/pilvio-automation/SKILL.md | 43 | ### Step 1: Discover Available Tools | COMMENT |
| LOW⚡ | composio-skills/pilvio-automation/SKILL.md | 51 | ### Step 2: Check Connection | COMMENT |
| LOW⚡ | composio-skills/pilvio-automation/SKILL.md | 59 | ### Step 3: Execute Tools | COMMENT |
| 2177 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | video-downloader/scripts/download_video.py | 98 | except Exception as e: | CODE |
| LOW | skill-creator/scripts/init_skill.py | 280 | except Exception as e: | CODE |
| LOW | skill-creator/scripts/init_skill.py | 292 | except Exception as e: | CODE |
| LOW | skill-creator/scripts/init_skill.py | 300 | except Exception as e: | CODE |
| LOW | skill-creator/scripts/package_skill.py | 81 | except Exception as e: | CODE |
| LOW | slack-gif-creator/core/validators.py | 171 | except Exception as e: | CODE |
| MEDIUM | gh-fix-ci/scripts/inspect_pr_checks.py | 99 | print("Error: not inside a Git repository.", file=sys.stderr) | CODE |
| MEDIUM | gh-fix-ci/scripts/inspect_pr_checks.py | 169 | print("Error: unable to parse PR JSON.", file=sys.stderr) | CODE |
| MEDIUM | gh-fix-ci/scripts/inspect_pr_checks.py | 173 | print("Error: no PR number found.", file=sys.stderr) | CODE |
| MEDIUM | gh-fix-ci/scripts/inspect_pr_checks.py | 199 | print("Error: no usable fields available for gh pr checks.", file=sys.stderr) | CODE |
| MEDIUM | gh-fix-ci/scripts/inspect_pr_checks.py | 215 | print("Error: unable to parse checks JSON.", file=sys.stderr) | CODE |
| MEDIUM | gh-fix-ci/scripts/inspect_pr_checks.py | 218 | print("Error: unexpected checks JSON shape.", file=sys.stderr) | CODE |
| MEDIUM | gh-fix-ci/scripts/inspect_pr_checks.py | 488 | print(f"Error fetching logs: {result['error']}") | CODE |
| MEDIUM | skill-installer/scripts/list-curated-skills.py | 98 | print(f"Error: {exc}", file=sys.stderr) | CODE |
| MEDIUM | skill-installer/scripts/install-skill-from-github.py | 326 | print(f"Error: {exc}", file=sys.stderr) | CODE |
| MEDIUM | webapp-testing/scripts/with_server.py | 49 | print("Error: No command specified to run") | CODE |
| MEDIUM | webapp-testing/scripts/with_server.py | 54 | print("Error: Number of --server and --port arguments must match") | CODE |
| LOW | mcp-builder/scripts/evaluation.py | 74 | except Exception as e: | CODE |
| MEDIUM | mcp-builder/scripts/evaluation.py | 75 | print(f"Error parsing evaluation file {file_path}: {e}") | CODE |
| LOW | mcp-builder/scripts/evaluation.py | 153 | except Exception: | CODE |
| LOW | mcp-builder/scripts/evaluation.py | 160 | except Exception as e: | CODE |
| MEDIUM | mcp-builder/scripts/evaluation.py | 376 | print(f"Error: Evaluation file not found: {args.eval_file}") | STRING |
| MEDIUM | mcp-builder/scripts/evaluation.py | 392 | print(f"Error: {e}") | STRING |
| LOW | mcp-builder/reference/mcp_best_practices.md | 734 | except Exception as error: | CODE |
| LOW | mcp-builder/reference/python_mcp_server.md | 494 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skill-creator/scripts/init_skill.py | 227 | CODE | |
| LOW | skill-creator/scripts/package_skill.py | 20 | CODE | |
| LOW | slack-gif-creator/core/typography.py | 164 | CODE | |
| LOW | slack-gif-creator/core/validators.py | 59 | CODE | |
| LOW | slack-gif-creator/core/validators.py | 122 | CODE | |
| LOW | slack-gif-creator/core/validators.py | 241 | CODE | |
| LOW | slack-gif-creator/templates/pulse.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/wiggle.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/slide.py | 19 | CODE | |
| LOW | slack-gif-creator/templates/slide.py | 140 | CODE | |
| LOW | slack-gif-creator/templates/spin.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/spin.py | 149 | CODE | |
| LOW | slack-gif-creator/templates/zoom.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/shake.py | 19 | CODE | |
| LOW | slack-gif-creator/templates/morph.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/explode.py | 23 | CODE | |
| LOW | slack-gif-creator/templates/move.py | 19 | CODE | |
| LOW | slack-gif-creator/templates/flip.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/fade.py | 20 | CODE | |
| LOW | skill-installer/scripts/install-skill-from-github.py | 293 | CODE | |
| LOW | mcp-builder/scripts/evaluation.py | 110 | CODE | |
| LOW | mcp-builder/scripts/connections.py | 112 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | slack-gif-creator/templates/pulse.py | 231 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/wiggle.py | 263 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/kaleidoscope.py | 195 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/slide.py | 234 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/spin.py | 234 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/zoom.py | 282 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/shake.py | 112 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/morph.py | 285 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/bounce.py | 87 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/explode.py | 296 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/move.py | 240 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/flip.py | 256 | # Example usage | COMMENT |
| LOW | slack-gif-creator/templates/fade.py | 290 | # Example usage | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …tion-meeting-intelligence/examples/customer-meeting.md | 10 | query: "Acme Corp" | CODE |
| LOW | webapp-testing/examples/static_html_automation.py | 21 | page.fill('#name', 'John Doe') | CODE |
| LOW | composio-skills/dynamics365-automation/SKILL.md | 57 | companyname: "Acme Corp" | CODE |
| LOW | composio-skills/gorgias-automation/SKILL.md | 79 | Create a new customer named "Jane Doe" with email jane@example.com and phone channel | CODE |
| LOW | composio-skills/googlemeet-automation/SKILL.md | 61 | - items: List of calendar IDs to check (e.g., ["primary", "user@example.com"]) | CODE |
| LOW | composio-skills/excel-automation/SKILL.md | 86 | rows: [["john@example.com","555-0101","Active"],["jane@example.com","555-0102","Pending"]] | CODE |
| LOW | composio-skills/braintree-automation/SKILL.md | 46 | - `email:'user@example.com'` -- Exact match (case insensitive) | CODE |
| LOW | composio-skills/braintree-automation/SKILL.md | 58 | name: "Jane Doe" | CODE |
| LOW | composio-skills/braintree-automation/SKILL.md | 61 | "line1": "123 Main St", | CODE |
| LOW | composio-skills/netsuite-automation/SKILL.md | 114 | "companyName": "Acme Corp", | CODE |
| LOW | composio-skills/netsuite-automation/SKILL.md | 117 | "phone": "555-0100" | CODE |
| LOW | composio-skills/netsuite-automation/SKILL.md | 141 | "companyName": "Acme Corp", | CODE |
| LOW | composio-skills/toggl-automation/SKILL.md | 80 | List all active clients in workspace 123456, then create a new client called "Acme Corp" | CODE |
| LOW | composio-skills/zoho-books-automation/SKILL.md | 162 | > "Find the customer ID for 'Acme Corp', create an invoice for them with consulting services, and then get the PDF" | CODE |
| LOW | mcp-builder/reference/python_mcp_server.md | 332 | "name": str, # Full name (e.g., "John Doe") | STRING |
| LOW | mcp-builder/reference/python_mcp_server.md | 599 | return {"id": user_id, "name": "John Doe", "email": "john@example.com"} | CODE |
| LOW | mcp-builder/reference/node_mcp_server.md | 154 | "name": string, // Full name (e.g., "John Doe") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | slack-gif-creator/core/typography.py | 10 | CODE | |
| LOW | slack-gif-creator/core/gif_builder.py | 10 | CODE | |
| LOW | slack-gif-creator/core/color_palettes.py | 9 | CODE | |
| LOW | slack-gif-creator/templates/wiggle.py | 17 | CODE | |
| LOW | slack-gif-creator/templates/spin.py | 16 | CODE | |
| LOW | slack-gif-creator/templates/morph.py | 14 | CODE | |
| LOW | slack-gif-creator/templates/bounce.py | 16 | CODE | |
| LOW | slack-gif-creator/templates/explode.py | 16 | CODE | |
| LOW | slack-gif-creator/templates/move.py | 212 | CODE | |
| LOW | slack-gif-creator/templates/fade.py | 13 | CODE | |
| LOW | gh-fix-ci/scripts/inspect_pr_checks.py | 2 | CODE | |
| LOW | skill-installer/scripts/github_utils.py | 4 | CODE | |
| LOW | skill-installer/scripts/list-curated-skills.py | 4 | CODE | |
| LOW | skill-installer/scripts/install-skill-from-github.py | 4 | CODE | |
| LOW | gh-address-comments/scripts/fetch_comments.py | 16 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | slack-gif-creator/templates/pulse.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/pulse.py | 188 | CODE | |
| LOW | slack-gif-creator/templates/wiggle.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/slide.py | 19 | CODE | |
| LOW | slack-gif-creator/templates/spin.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/zoom.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/shake.py | 19 | CODE | |
| LOW | slack-gif-creator/templates/morph.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/bounce.py | 19 | CODE | |
| LOW | slack-gif-creator/templates/explode.py | 23 | CODE | |
| LOW | slack-gif-creator/templates/move.py | 19 | CODE | |
| LOW | slack-gif-creator/templates/flip.py | 20 | CODE | |
| LOW | slack-gif-creator/templates/fade.py | 20 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | skill-creator/scripts/init_skill.py | 256 | Initialize a new skill directory with template SKILL.md. Args: skill_name: Name of the skill p | STRING |
| HIGH | mcp-builder/reference/python_mcp_server.md | 308 | Search for users in the Example system by name, email, or team. This tool searches across all user profiles in | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | slack-gif-creator/core/validators.py | 158 | except EOFError: | CODE |
| HIGH | slack-gif-creator/core/frame_composer.py | 310 | except: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | slack-gif-creator/core/typography.py | 248 | # Create a separate layer for the box with alpha | COMMENT |
| MEDIUM | slack-gif-creator/core/gif_builder.py | 70 | # Create a global palette from all frames | COMMENT |
| MEDIUM | slack-gif-creator/core/gif_builder.py | 80 | # Create a properly-shaped RGB image from the pixel data | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | slack-gif-creator/core/validators.py | 200 | def get_optimization_suggestions(results: dict) -> list[str]: | CODE |
| LOW | slack-gif-creator/core/visual_effects.py | 455 | def create_screen_shake_offset(intensity: int, frame_index: int) -> tuple[int, int]: | CODE |
| LOW | slack-gif-creator/core/frame_composer.py | 235 | def create_gradient_background(width: int, height: int, | CODE |
| LOW | slack-gif-creator/core/color_palettes.py | 121 | def get_text_color_for_background(bg_color: tuple[int, int, int]) -> tuple[int, int, int]: | CODE |
| LOW | slack-gif-creator/templates/pulse.py | 188 | def create_breathing_animation( | CODE |
| LOW | slack-gif-creator/templates/kaleidoscope.py | 140 | def create_kaleidoscope_animation( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | webapp-testing/scripts/with_server.py | 12 | --server "cd backend && python server.py" --port 3000 \ | STRING |
| HIGH | webapp-testing/scripts/with_server.py | 13 | --server "cd frontend && npm run dev" --port 5173 \ | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | mcp-builder/reference/evaluation.md | 557 | export OPENAI_API_KEY=your_api_key | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | skill-creator/scripts/init_skill.py | 271 | # Check if directory already exists | COMMENT |
| LOW | slack-gif-creator/core/validators.py | 103 | # Check if roughly square (within 2:1 ratio) | COMMENT |