regex-visual-debugger — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited regex-visual-debugger (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Interactive regex testing, explanation, and debugging tool.
Activate when the user:
# Regex Analysis: `pattern`
## Plain English Explanation
This pattern matches [description]:
- `^` - Start of string
- `[A-Z]` - One uppercase letter
- `\d{3}` - Exactly 3 digits
- `$` - End of string
**Overall**: Matches strings like "A123", "Z999"
## Visual Structure^ - Start anchor [A-Z] - Character class (uppercase letters) \d{3} - Digit, exactly 3 times $ - End anchor
## Test Results
### Matches
- `A123` -> Full match
- `Z999` -> Full match
### No Match
- `a123` -> Lowercase 'a' doesn't match [A-Z]
- `A12` -> Only 2 digits (needs 3)
- `A1234` -> Too many digits
## Capture Groups
1. Group 1: `[captured text]`
2. Group 2: `[captured text]`
## Issues Found
**Issue 1**: Pattern is too restrictive
- **Problem**: Doesn't handle lowercase letters
- **Fix**: Use `[A-Za-z]` instead of `[A-Z]`
## Suggested Improvements^[A-Za-z]\d{3,5}$
**Changes**:
- Added lowercase letters
- Changed `{3}` to `{3,5}` for 3-5 digits
## Generated Test Cases
### Should MatchA123 Z999 B456
### Should NOT Match1ABC (starts with digit) ABCD (no digits) A12 (too few digits)
## Flavor-Specific Notes
**JavaScript**: [any JS-specific notes]
**Python**: [any Python-specific notes]
## Conversion to Other Flavors
### JavaScriptconst pattern = /^[A-Z]\d{3}$/; const match = str.match(pattern);
### Pythonimport re pattern = r'^[A-Z]\d{3}$' match = re.match(pattern, string)
## Performance Notes
- Current complexity: O(n)
- No backtracking issues
- Consider using non-capturing groups: `(?:...)` for better performanceUser: "Why doesn't this regex match emails: \w+@\w+\.\w+?" Response: Analyze pattern → Explain it matches simple emails only → Show test cases (fails on "[email protected]") → Identify issues (doesn't handle special chars, multiple TLDs) → Provide improved pattern → Generate comprehensive test cases
User: "Explain this regex: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" Response: Break down pattern (IP address matcher) → Explain each component → Show it matches valid IPs (0-255 per octet) → Provide test cases → Visualize structure
User: "Convert this Python regex to JavaScript: (?P<name>\w+)" Response: Identify named capture group (Python feature) → Convert to JS equivalent → Explain differences → Show both versions with usage examples
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.