ignore
$
npx mdskill add terrylica/cc-skills/ignore> **Navigation**: [Plugin CLAUDE.md](../../CLAUDE.md) | [Root CLAUDE.md](../../../../CLAUDE.md)
SKILL.md
.github/skills/ignoreView on GitHub ↗
---
name: ignore
description: "Manage global ignore patterns for lint-relative-paths. TRIGGERS - statusline ignore, add ignore pattern, lint ignore, path lint exclude."
allowed-tools: Read, Bash, TodoWrite, TodoRead, AskUserQuestion
argument-hint: "[add|list|remove] [pattern]"
model: haiku
---
> **Navigation**: [Plugin CLAUDE.md](../../CLAUDE.md) | [Root CLAUDE.md](../../../../CLAUDE.md)
# Global Ignore Patterns
Manage global ignore patterns for the `lint-relative-paths` linter.
> **Self-Evolving Skill**: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.
## Purpose
Some repositories intentionally use relative paths in markdown (e.g., `../docs/file.md`)
instead of repo-root paths (e.g., `/docs/file.md`). This command manages a global ignore
file that skips path validation for matching workspaces.
## Actions
| Action | Description | Example |
| -------- | --------------------------------------- | ----------------------------------------- |
| `add` | Add a pattern to the global ignore file | `/statusline-tools:ignore add my-repo` |
| `list` | Show current patterns | `/statusline-tools:ignore list` |
| `remove` | Remove a pattern from the ignore file | `/statusline-tools:ignore remove my-repo` |
## Pattern Matching
Patterns use **substring matching**. A pattern matches if the workspace path contains the pattern.
**Example**: Pattern `alpha-forge` matches:
- `/Users/user/projects/alpha-forge`
- `/Users/user/eon/alpha-forge.worktree-feature-x`
- `/home/user/code/alpha-forge-v2`
## Ignore File Location
`~/.claude/lint-relative-paths-ignore`
Lines starting with `#` are comments.
## Execution
### Skip Logic
- If action + pattern provided -> execute directly
- If only `list` provided -> show patterns immediately
- If no arguments -> use AskUserQuestion flow
### Workflow
1. **Check Current State**: Run `list` to show existing patterns
2. **Action Selection**: Use AskUserQuestion to select action:
- "Add a new pattern" -> prompt for pattern
- "Remove an existing pattern" -> show current patterns to select
- "Just view current patterns" -> display and exit
3. **Pattern Input**: For add/remove, AskUserQuestion with examples
4. **Execute**: Run the management script
5. **Verify**: Confirm changes applied
### AskUserQuestion Flow (No Arguments)
When invoked without arguments, guide the user interactively:
```
Question: "What would you like to do with lint-relative-paths ignore patterns?"
Options:
- "Add pattern" -> "Add a new repository pattern to skip path linting"
- "List patterns" -> "Show all current ignore patterns"
- "Remove pattern" -> "Remove an existing pattern from the ignore list"
```
For "Add pattern":
```
Question: "Enter the repository pattern to ignore"
Note: Patterns use substring matching. Example: 'alpha-forge' matches any path containing 'alpha-forge'.
```
### Direct Execution (With Arguments)
Parse `$ARGUMENTS` and run the management script:
```bash
/usr/bin/env bash << 'IGNORE_SCRIPT_EOF'
PLUGIN_DIR="${CLAUDE_PLUGIN_ROOT:-$HOME/.claude/plugins/marketplaces/cc-skills/plugins/statusline-tools}"
bash "$PLUGIN_DIR/scripts/manage-ignore.sh" $ARGUMENTS
IGNORE_SCRIPT_EOF
```
## Manual Editing
The ignore file can also be edited manually:
```bash
# View current patterns
cat ~/.claude/lint-relative-paths-ignore
# Add a pattern manually
echo "my-repo-pattern" >> ~/.claude/lint-relative-paths-ignore
```
## Troubleshooting
| Issue | Cause | Solution |
| --------------------- | ------------------------- | ---------------------------------------------------- |
| Pattern not matching | Substring match is strict | Use broader pattern (e.g., `forge` vs `alpha-forge`) |
| Ignore file not found | ~/.claude doesn't exist | Create with `mkdir -p ~/.claude` |
| Permission denied | File not writable | Check file permissions with `ls -la` |
| Script not found | Plugin not installed | Reinstall plugin from marketplace |
## Post-Execution Reflection
After this skill completes, check before closing:
1. **Did the command succeed?** — If not, fix the instruction or error table that caused the failure.
2. **Did parameters or output change?** — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
3. **Was a workaround needed?** — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.
Only update if the issue is real and reproducible — not speculative.