# Matches

> Check if text matches regex pattern or contains substring

- Skill: `bdambrosio/matches` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add bdambrosio/matches`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bdambrosio/matches/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: bdambrosio (https://skillmd.com/u/bdambrosio)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/bdambrosio/matches

---


# Contains Pattern

Check whether text contains a pattern or substring.

## Purpose

- Enable conditional logic based on content
- Pattern matching for flow control
- Content validation
- Simple filtering

## Input Format

Accepts a Note containing text to check.

## Parameters

**Required:**
- **pattern** - Text string or regex pattern to match

**Optional:**
- **match_type** - "substring" (default), "regex", or "exact"

## Output Format

Returns a Note containing:
- "true" if pattern found
- "false" if pattern not found

## Usage Examples

**Simple substring check:**
```json
{"type":"matches","target":"$text","pattern":"error","out":"$has_error"}
```

**Regex pattern match:**
```json
{"type":"matches","target":"$email","pattern":"^[a-z]+@example\\.com$","match_type":"regex","out":"$is_valid_email"}
```

**Exact match:**
```json
{"type":"matches","target":"$status","pattern":"complete","match_type":"exact","out":"$is_complete"}
```

## Match Types

- **substring**: Pattern appears anywhere in text (case-sensitive)
- **regex**: Full regex pattern matching
- **exact**: Entire text must exactly match pattern

## Guidelines

- Case-sensitive by default
- Returns boolean as text ("true"/"false")
- Use for conditional logic in plans
- Combine with other conditionals as needed

## Examples

**Substring (default):**
```
Text: "Error occurred in module X"
Pattern: "Error"
Result: true
```

**Regex:**
```
Text: "user@example.com"
Pattern: ".*@example\\.com$"
Result: true
```

**Exact:**
```
Text: "done"
Pattern: "done"
Result: true

Text: "almost done"
Pattern: "done"
Result: false
```


