/regex-builder
**DEPRECATED** — Modern Claude models produce accurate, well-explained regex patterns with edge-case test suites natively, including multi-language usage examples. The uplift delta from this skill approaches zero. Retained for archival reference only.
$ npx -y skills add Mathews-Tom/armory --skill regex-builder --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/regex-builder
Context preview
The summary Claude sees to decide when to auto-load this skill.
**DEPRECATED** — Modern Claude models produce accurate, well-explained regex patterns with edge-case test suites natively, including multi-language usage examples. The uplift delta from this skill approaches zero. Retained for archival reference only.
SKILL.md
regex-builder.SKILL.mdname: regex-builder
description:
"DEPRECATED: The base model generates, explains, and tests regex patterns
natively with high accuracy. This skill no longer provides meaningful uplift. Retained
for reference only.
"
metadata:
version: 1.1.1
status: deprecated
category: development
tags: [regex, pattern-matching, testing, validation]
difficulty: beginner
> **DEPRECATED** — Modern Claude models produce accurate, well-explained regex patterns > with edge-case test suites natively, including multi-language usage examples. The uplift > delta from this skill approaches zero. Retained for archival reference only.
Regex Builder
Transforms matching requirements (positive and negative examples) into tested regex patterns with component-by-component explanations, capture group documentation, edge case identification, and ready-to-use code in Python and JavaScript.
Reference Files
| File | Contents | Load When | | ---------------------------------- | --------------------------------------------------------------- | --------------------------- | | `references/character-classes.md` | Character class reference, Unicode categories, POSIX classes | Always | | `references/quantifiers.md` | Quantifier behavior, greedy vs lazy vs possessive, backtracking | Pattern needs repetition | | `references/common-patterns.md` | Validated patterns for email, URL, phone, IP, date, UUID, etc. | Common validation requested | | `references/flavor-differences.md` | Syntax differences between Python, JavaScript, PCRE, POSIX | Multi-language usage needed |
Prerequisites
- Clear specification: what should match and what should not
- Target regex flavor (Python `re`, JavaScript, PCRE) — defaults to Python
Workflow
Phase 1: Collect Examples
Gather positive (should match) and negative (should not match) examples:
1. **From user** — Explicit examples provided 2. **From context** — If the user says "match email addresses," infer standard positive and negative examples 3. **From data** — If sample data is provided, identify the pattern within it
Minimum: 3 positive examples and 3 negative examples. Fewer examples risk overfitting the pattern to specific cases.
Phase 2: Infer Pattern
Analyze the examples to build a pattern:
1. **Identify fixed literals** — Characters that appear in the same position across all positive examples 2. **Identify character classes** — Positions where different characters appear but follow a pattern (digits, letters, alphanumeric) 3. **Identify repetition** — Elements that appear a variable number of times 4. **Identify optional elements** — Parts present in some positive examples but not others 5. **Identify anchoring** — Must the pattern match the entire string or can it be a substring?
Phase 3: Explain Pattern
Break down the pattern into a component table:
| Component | Meaning | | ---------- | --------------------------- | | `^` | Start of string | | `[A-Za-z]` | One letter (upper or lower) | | `\d{3,5}` | 3 to 5 digits | | `$` | End of string |
Document capture groups separately if the pattern uses them.
Phase 4: Generate Edge Cases
For every pattern, identify inputs that are likely to cause problems:
1. **Empty string** — Does the pattern handle it correctly? 2. **Almost-matching strings** — One character off from a valid match 3. **Boundary lengths** — Minimum and maximum valid lengths 4. **Special characters** — Dots, brackets, backslashes in the input 5. **Unicode** — Multi-byte characters, emoji, diacritics 6. **Catastrophic backtracking** — Inputs that cause exponential matching time
Phase 5: Output
Produce the pattern, explanation, test cases, and usage examples.
Output Format
## Regex Pattern: {Brief Description}
### Requirements
- **Must match:** {description of valid inputs}
- **Must reject:** {description of invalid inputs}
- **Flavor:** {Python re | JavaScript | PCRE}
### Pattern
```regex
{pattern}
````
### Explanation
| Component | Meaning |
| ------------- | ------------------------- |
| `{component}` | {what it matches and why} |
### Capture Groups
| Group | Name | Captures | Example |
| ----- | ------ | -------- | --------------- |
| 1 | {name} | {what} | {example value} |
### Test Cases
| # | Input | Should Match | Reason |
| --- | ---------- | ------------ | ------------------ |
| 1 | `{input}` | Yes | {why — happy path} |
| 2 | `{input}` | Yes | {why — boundary} |
| 3 | `{input}` | No | {why — invalid} |
| 4 | `{input}` | No | {why — near-miss} |
| 5 | `` (empty) | No | Empty input |
### Edge Cases
- {Edge case 1}: {what to watch for}
- {Edge case 2}: {what to watch for}
### Usage
**Python:**
```python
import re
pattern = re.compile(r'{pattern}')
# Match entire string
if pattern.fullmatch(text):
...
# Search within string
match = pattern.search(text)
if match:
captured = match.group(1)
# Find all matches
matches = pattern.findall(text)**JavaScript:**
const pattern = /{pattern}/;
// Test
if (pattern.test(text)) { ... }
// Match
const match = text.match(pattern);
if (match) {
const captured = match[1];
}
// Find all
const matches = [...text.matchAll(/{pattern}/g)];
## Calibration Rules
1. **Correctness over cleverness.** A readable, slightly longer pattern is better than
a cryptic short one. `[A-Za-z0-9]` is clearer than `\w` when you specifically mean
alphanumeric without underscores.
2. **Test negatives as rigorously as positives.** A pattern that matches everything
technically matches all positive examples. Negative examples prevent over-matching.
3. **Ancho
Read more
name: regex-builder description: "DEPRECATED: The base model generates, explains, and tests regex patterns natively with high accuracy. This skill no longer provides meaningful uplift. Retained for reference only. " metadata: version: 1.1.1 status: deprecated category: development tags: [regex, pattern-matching, testing, validation] difficulty: beginner
> **DEPRECATED** — Modern Claude models produce accurate, well-explained regex patterns > with edge-case test suites natively, including multi-language usage examples. The uplift > delta from this skill approaches zero. Retained for archival reference only.
Regex Builder
Transforms matching requirements (positive and negative examples) into tested regex patterns with component-by-component explanations, capture group documentation, edge case identification, and ready-to-use code in Python and JavaScript.
Reference Files
| File | Contents | Load When | | ---------------------------------- | --------------------------------------------------------------- | --------------------------- | | `references/character-classes.md` | Character class reference, Unicode categories, POSIX classes | Always | | `references/quantifiers.md` | Quantifier behavior, greedy vs lazy vs possessive, backtracking | Pattern needs repetition | | `references/common-patterns.md` | Validated patterns for email, URL, phone, IP, date, UUID, etc. | Common validation requested | | `references/flavor-differences.md` | Syntax differences between Python, JavaScript, PCRE, POSIX | Multi-language usage needed |
Prerequisites
- Clear specification: what should match and what should not
- Target regex flavor (Python `re`, JavaScript, PCRE) — defaults to Python
Workflow
Phase 1: Collect Examples
Gather positive (should match) and negative (should not match) examples:
1. **From user** — Explicit examples provided 2. **From context** — If the user says "match email addresses," infer standard positive and negative examples 3. **From data** — If sample data is provided, identify the pattern within it
Minimum: 3 positive examples and 3 negative examples. Fewer examples risk overfitting the pattern to specific cases.
Phase 2: Infer Pattern
Analyze the examples to build a pattern:
1. **Identify fixed literals** — Characters that appear in the same position across all positive examples 2. **Identify character classes** — Positions where different characters appear but follow a pattern (digits, letters, alphanumeric) 3. **Identify repetition** — Elements that appear a variable number of times 4. **Identify optional elements** — Parts present in some positive examples but not others 5. **Identify anchoring** — Must the pattern match the entire string or can it be a substring?
Phase 3: Explain Pattern
Break down the pattern into a component table:
| Component | Meaning | | ---------- | --------------------------- | | `^` | Start of string | | `[A-Za-z]` | One letter (upper or lower) | | `\d{3,5}` | 3 to 5 digits | | `$` | End of string |
Document capture groups separately if the pattern uses them.
Phase 4: Generate Edge Cases
For every pattern, identify inputs that are likely to cause problems:
1. **Empty string** — Does the pattern handle it correctly? 2. **Almost-matching strings** — One character off from a valid match 3. **Boundary lengths** — Minimum and maximum valid lengths 4. **Special characters** — Dots, brackets, backslashes in the input 5. **Unicode** — Multi-byte characters, emoji, diacritics 6. **Catastrophic backtracking** — Inputs that cause exponential matching time
Phase 5: Output
Produce the pattern, explanation, test cases, and usage examples.
Output Format
## Regex Pattern: {Brief Description}
### Requirements
- **Must match:** {description of valid inputs}
- **Must reject:** {description of invalid inputs}
- **Flavor:** {Python re | JavaScript | PCRE}
### Pattern
```regex
{pattern}
````
### Explanation
| Component | Meaning |
| ------------- | ------------------------- |
| `{component}` | {what it matches and why} |
### Capture Groups
| Group | Name | Captures | Example |
| ----- | ------ | -------- | --------------- |
| 1 | {name} | {what} | {example value} |
### Test Cases
| # | Input | Should Match | Reason |
| --- | ---------- | ------------ | ------------------ |
| 1 | `{input}` | Yes | {why — happy path} |
| 2 | `{input}` | Yes | {why — boundary} |
| 3 | `{input}` | No | {why — invalid} |
| 4 | `{input}` | No | {why — near-miss} |
| 5 | `` (empty) | No | Empty input |
### Edge Cases
- {Edge case 1}: {what to watch for}
- {Edge case 2}: {what to watch for}
### Usage
**Python:**
```python
import re
pattern = re.compile(r'{pattern}')
# Match entire string
if pattern.fullmatch(text):
...
# Search within string
match = pattern.search(text)
if match:
captured = match.group(1)
# Find all matches
matches = pattern.findall(text)**JavaScript:**
const pattern = /{pattern}/;
// Test
if (pattern.test(text)) { ... }
// Match
const match = text.match(pattern);
if (match) {
const captured = match[1];
}
// Find all
const matches = [...text.matchAll(/{pattern}/g)];## Calibration Rules 1. **Correctness over cleverness.** A readable, slightly longer pattern is better than a cryptic short one. `[A-Za-z0-9]` is clearer than `\w` when you specifically mean alphanumeric without underscores. 2. **Test negatives as rigorously as positives.** A pattern that matches everything technically matches all positive examples. Negative examples prevent over-matching. 3. **Ancho
Curated, production-grade skills, agents, hooks, rules, commands, utilities, and presets for AI coding agents. No magic, no demos — battle-tested workflows built for developers who use AI seriously.
Repo: Mathews-Tom/armory
Other skills on armory.
- /adr-writer
Generates Architecture Decision Records capturing context, rationale, alternatives, and consequences in numbered status-tracked format. Triggers on: "write an ADR", "document this decision", "architecture decision record", "decision record", "design decision", "ADR for".
Open skill - /agent-builder
Build AI agents and automate Claude Code programmatically via the Claude Agent SDK and headless CLI mode. Covers Python SDK, claude -p, SDK MCP servers, hooks, sessions. Triggers on: "build an agent", "agent SDK", "headless mode", "automate Claude", "programmatic agent".
Open skill - /api-docs-generator
Audits and enhances FastAPI and REST API documentation: missing descriptions, response codes, examples, docstrings, Pydantic models, OpenAPI spec. Triggers on: "generate API docs", "document this API", "OpenAPI for", "FastAPI docs", "document endpoints", "swagger docs".
Open skill - /architecture-diagram
Generate layered architecture diagrams as self-contained HTML with inline SVG icons, CSS Grid containers, and connection overlays. Triggers on: "architecture diagram", "infra diagram", "system diagram", "deployment diagram", "topology", "draw architecture". NOT for architecture
Open skill - /architecture-reviewer
Architecture reviews across 7 dimensions (structural, scalability, enterprise readiness, performance, security, ops, data) with scored reports. Triggers on: "review architecture", "critique design", "audit system", "assess scalability", "enterprise readiness", "technical due
Open skill - /arxiv-figures
Optimize and prepare figures for arXiv submission: format conversion (EPS/PDF/PNG/JPG), size reduction, metadata stripping, processor compatibility (DVI vs PDFLaTeX). Triggers on: "optimize figures for arXiv", "reduce figure size", "convert figures for arXiv", "fix arXiv
Open skill

