Skip to content

Conversation

@dguido
Copy link
Member

@dguido dguido commented Feb 12, 2026

Summary

  • Adds semgrep-scanner agent (Bash) for parallel semgrep CLI scans per language category
  • Adds semgrep-triager agent (Read, Grep, Glob, Write) for classifying findings as true/false positives
  • Updates SKILL.md Steps 4/5 to reference the new agent types
  • Bumps plugin version to 1.1.0

New files

  • plugins/static-analysis/agents/semgrep-scanner.md (71 lines)
  • plugins/static-analysis/agents/semgrep-triager.md (107 lines)

Test plan

  • YAML frontmatter parses correctly for both agent files
  • {baseDir}/skills/semgrep/references/scanner-task-prompt.md resolves correctly
  • {baseDir}/skills/semgrep/references/triage-task-prompt.md resolves correctly
  • SKILL.md changes don't break existing skill trigger behavior
  • marketplace.json version matches plugin.json (both 1.1.0)

🤖 Generated with Claude Code

dguido and others added 2 commits February 11, 2026 21:56
Introduces formal agent definitions for the scanning and triage
workflows. Updates SKILL.md to reference agents and bumps version
to 1.1.0.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dguido dguido requested a review from axelm-tob as a code owner February 12, 2026 03:09
- Update scanner-task-prompt.md to reference semgrep-scanner subagent
  type instead of Bash (consistent with SKILL.md Step 4 change)
- Update triage-task-prompt.md to reference semgrep-triager subagent
  type instead of general-purpose (consistent with SKILL.md Step 5 change)
- Add Agents Included section to README.md documenting new agents
- Fix Agents table column header in SKILL.md from "Type" to "Tools"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@dguido
Copy link
Member Author

dguido commented Feb 12, 2026

Code Review Summary

Findings by severity

  • P2 (Important): 3
  • P3 (Nice to have): 1 (fixed), 2 (dismissed)
  • P4 (Informational): 3

Fixed (3 P2 + 1 P3)

  1. P2: scanner-task-prompt.md still referenced subagent_type: Bash — Updated to semgrep-scanner to match the SKILL.md Step 4 change. Without this fix, anyone following the reference template would spawn the wrong subagent type.

  2. P2: triage-task-prompt.md still referenced subagent_type: general-purpose — Updated to semgrep-triager to match the SKILL.md Step 5 change. Same inconsistency as above.

  3. P2: README.md missing agents documentation — Added an "Agents Included" table listing both new agents with their tools and purposes, so users browsing the README know agents are available.

  4. P3: SKILL.md Agents table column header said "Type" instead of "Tools" — Fixed to "Tools" since the column lists tool names (Bash, Read/Grep/Glob/Write), not agent types.

Dismissed (2 P3)

  1. P3: {baseDir} vs ${CLAUDE_PLUGIN_ROOT} in agent files — The agents use {baseDir}/skills/semgrep/references/... paths. While official docs suggest ${CLAUDE_PLUGIN_ROOT} for plugins, {baseDir} is the established convention across all agent PRs in this series and the existing codebase. This is a cross-cutting concern that would need to be addressed repo-wide if at all. Dismissed as not specific to this PR.

  2. P3: semgrep-triager missing Bash tool — The triager workflow (read JSON findings, search source context, write triage output) is fully served by Read, Grep, Glob, and Write. No shell commands are needed for the described workflow.

Informational (P4, no action taken)

  1. Version bump 1.0.3 -> 1.1.0 is appropriate for new agent additions.
  2. Agent files don't need "When to Use" / "When NOT to Use" sections (those are SKILL.md requirements, not agent requirements).
  3. Agent descriptions are adequately specific for trigger matching.

Quality pipeline

All validation checks pass:

  • JSON validation (marketplace.json, plugin.json)
  • Marketplace consistency check
  • SKILL.md frontmatter validation
  • No hardcoded user paths
  • No personal emails
  • Pre-commit hooks (ruff, shellcheck, shfmt, yaml, json, trailing whitespace, end of files)

Fixes committed as f9702e1.

Plugin agents require the `plugin-name:agent-name` format at runtime,
but the skill referenced bare names (`semgrep-scanner`, `semgrep-triager`)
causing "Agent type not found" errors when spawning scan/triage Tasks.

Also adds agent types to the Step 3 plan template and pre-scan checklist
so they appear in generated plans and survive context clearing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@CLAassistant
Copy link

CLAassistant commented Feb 12, 2026

CLA assistant check
All committers have signed the CLA.

@axelm-tob
Copy link

Running into permission issues when spawning static-analysis:semgrep-scanner:

The X scanner was denied Bash access. Let me re-launch both scanners directly with explicit commands.

Tool permissions seem correct as currently defined, but require further debugging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants