refactor: extract skills from commands across 8 plugins
Refactored commands to extract reusable skills following the Commands → Skills separation pattern. Each command is now <50 lines and references skill files for detailed knowledge. Plugins refactored: - claude-config-maintainer: 5 commands → 7 skills - code-sentinel: 3 commands → 2 skills - contract-validator: 5 commands → 6 skills - data-platform: 10 commands → 6 skills - doc-guardian: 5 commands → 6 skills (replaced nested dir) - git-flow: 8 commands → 7 skills Skills contain: workflows, validation rules, conventions, reference data, tool documentation Commands now contain: YAML frontmatter, agent assignment, skills list, brief workflow steps, parameters Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
136
plugins/claude-config-maintainer/skills/lint-rules.md
Normal file
136
plugins/claude-config-maintainer/skills/lint-rules.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# CLAUDE.md Lint Rules
|
||||
|
||||
This skill defines all linting rules for validating CLAUDE.md files.
|
||||
|
||||
## Rule Categories
|
||||
|
||||
### Security Rules (SEC)
|
||||
|
||||
| Rule | Description | Severity | Auto-fix |
|
||||
|------|-------------|----------|----------|
|
||||
| SEC001 | Hardcoded absolute paths | Warning | Yes |
|
||||
| SEC002 | Potential secrets/API keys | Error | No |
|
||||
| SEC003 | Hardcoded IP addresses | Warning | No |
|
||||
| SEC004 | Exposed credentials patterns | Error | No |
|
||||
| SEC005 | Hardcoded URLs with tokens | Error | No |
|
||||
| SEC006 | Environment variable values (not names) | Warning | No |
|
||||
|
||||
### Structure Rules (STR)
|
||||
|
||||
| Rule | Description | Severity | Auto-fix |
|
||||
|------|-------------|----------|----------|
|
||||
| STR001 | Missing required sections | Error | Yes |
|
||||
| STR002 | Invalid header hierarchy (h3 before h2) | Warning | Yes |
|
||||
| STR003 | Orphaned content before first header | Info | No |
|
||||
| STR004 | Excessive nesting depth (>4 levels) | Warning | No |
|
||||
| STR005 | Empty sections | Warning | Yes |
|
||||
| STR006 | Missing section content | Warning | No |
|
||||
|
||||
### Content Rules (CNT)
|
||||
|
||||
| Rule | Description | Severity | Auto-fix |
|
||||
|------|-------------|----------|----------|
|
||||
| CNT001 | Contradictory instructions | Error | No |
|
||||
| CNT002 | Vague or ambiguous rules | Warning | No |
|
||||
| CNT003 | Overly long sections (>100 lines) | Info | No |
|
||||
| CNT004 | Duplicate content | Warning | No |
|
||||
| CNT005 | TODO/FIXME in production config | Warning | No |
|
||||
| CNT006 | Outdated version references | Info | No |
|
||||
| CNT007 | Broken internal links | Warning | No |
|
||||
|
||||
### Format Rules (FMT)
|
||||
|
||||
| Rule | Description | Severity | Auto-fix |
|
||||
|------|-------------|----------|----------|
|
||||
| FMT001 | Inconsistent header styles | Info | Yes |
|
||||
| FMT002 | Inconsistent list markers | Info | Yes |
|
||||
| FMT003 | Missing code block language | Info | Yes |
|
||||
| FMT004 | Trailing whitespace | Info | Yes |
|
||||
| FMT005 | Missing blank lines around headers | Info | Yes |
|
||||
| FMT006 | Inconsistent indentation | Info | Yes |
|
||||
|
||||
### Best Practice Rules (BPR)
|
||||
|
||||
| Rule | Description | Severity | Auto-fix |
|
||||
|------|-------------|----------|----------|
|
||||
| BPR001 | No Quick Start section | Warning | No |
|
||||
| BPR002 | No Critical Rules section | Warning | No |
|
||||
| BPR003 | Instructions without examples | Info | No |
|
||||
| BPR004 | Commands without explanation | Info | No |
|
||||
| BPR005 | Rules without rationale | Info | No |
|
||||
| BPR006 | Missing plugin integration docs | Info | No |
|
||||
|
||||
## Anti-Pattern Examples
|
||||
|
||||
### SEC002: Hardcoded Secrets
|
||||
```markdown
|
||||
# BAD
|
||||
API_KEY=sk-1234567890abcdef
|
||||
|
||||
# GOOD
|
||||
API_KEY=$OPENAI_API_KEY # Set via environment
|
||||
```
|
||||
|
||||
### SEC001: Hardcoded Paths
|
||||
```markdown
|
||||
# BAD
|
||||
Config file: /home/john/projects/myapp/config.yml
|
||||
|
||||
# GOOD
|
||||
Config file: ./config.yml
|
||||
Config file: $PROJECT_ROOT/config.yml
|
||||
```
|
||||
|
||||
### CNT001: Contradictory Rules
|
||||
```markdown
|
||||
# BAD
|
||||
- Always use TypeScript
|
||||
- JavaScript files are acceptable for scripts
|
||||
|
||||
# GOOD
|
||||
- Always use TypeScript for source code
|
||||
- JavaScript (.js) is acceptable only for config files and scripts
|
||||
```
|
||||
|
||||
### CNT002: Vague Instructions
|
||||
```markdown
|
||||
# BAD
|
||||
- Be careful with the database
|
||||
|
||||
# GOOD
|
||||
- Never run DELETE without WHERE clause
|
||||
- Always backup before migrations
|
||||
```
|
||||
|
||||
### STR002: Invalid Hierarchy
|
||||
```markdown
|
||||
# BAD
|
||||
# Main Title
|
||||
### Skipped Level
|
||||
|
||||
# GOOD
|
||||
# Main Title
|
||||
## Section
|
||||
### Subsection
|
||||
```
|
||||
|
||||
## Output Format
|
||||
|
||||
```
|
||||
[SEVERITY] RULE_ID: Description (line N)
|
||||
| Context line showing issue
|
||||
| ^^^^^^ indicator
|
||||
+-- Explanation of problem
|
||||
|
||||
Suggested fix:
|
||||
- old line
|
||||
+ new line
|
||||
```
|
||||
|
||||
## Severity Levels
|
||||
|
||||
| Level | Meaning | Action |
|
||||
|-------|---------|--------|
|
||||
| Error | Must fix | Blocks commit |
|
||||
| Warning | Should fix | Review recommended |
|
||||
| Info | Consider fixing | Optional improvement |
|
||||
Reference in New Issue
Block a user