awesome-slash 4.0.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +19 -12
- package/.claude-plugin/plugin.json +1 -1
- package/CHANGELOG.md +20 -0
- package/README.md +41 -2
- package/bin/cli.js +11 -8
- package/package.json +2 -2
- package/plugins/agnix/.claude-plugin/plugin.json +22 -0
- package/plugins/agnix/agents/agnix-agent.md +56 -0
- package/plugins/agnix/commands/agnix.md +138 -0
- package/plugins/agnix/skills/agnix/SKILL.md +128 -0
- package/plugins/audit-project/.claude-plugin/plugin.json +1 -1
- package/plugins/deslop/.claude-plugin/plugin.json +1 -1
- package/plugins/drift-detect/.claude-plugin/plugin.json +1 -1
- package/plugins/enhance/.claude-plugin/plugin.json +1 -1
- package/plugins/enhance/skills/enhance-hooks/SKILL.md +1 -1
- package/plugins/learn/.claude-plugin/plugin.json +1 -1
- package/plugins/next-task/.claude-plugin/plugin.json +1 -1
- package/plugins/perf/.claude-plugin/plugin.json +1 -1
- package/plugins/repo-map/.claude-plugin/plugin.json +1 -1
- package/plugins/ship/.claude-plugin/plugin.json +1 -1
- package/plugins/sync-docs/.claude-plugin/plugin.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "awesome-slash",
|
|
3
|
-
"description": "
|
|
4
|
-
"version": "4.
|
|
3
|
+
"description": "11 specialized plugins for AI workflow automation - task orchestration, PR workflow, slop detection, code review, drift detection, enhancement analysis, documentation sync, repo mapping, perf investigations, topic research, and agent config linting",
|
|
4
|
+
"version": "4.1.0",
|
|
5
5
|
"owner": {
|
|
6
6
|
"name": "Avi Fenesh",
|
|
7
7
|
"url": "https://github.com/avifenesh"
|
|
@@ -26,71 +26,78 @@
|
|
|
26
26
|
"name": "next-task",
|
|
27
27
|
"source": "./plugins/next-task",
|
|
28
28
|
"description": "Master workflow orchestrator: autonomous workflow with model optimization (opus/sonnet/haiku), two-file state management, workflow enforcement gates, 14 specialist agents",
|
|
29
|
-
"version": "4.
|
|
29
|
+
"version": "4.1.0",
|
|
30
30
|
"category": "productivity"
|
|
31
31
|
},
|
|
32
32
|
{
|
|
33
33
|
"name": "ship",
|
|
34
34
|
"source": "./plugins/ship",
|
|
35
35
|
"description": "Complete PR workflow: commit to production, skips review when called from next-task, removes task from registry on cleanup, automatic rollback",
|
|
36
|
-
"version": "4.
|
|
36
|
+
"version": "4.1.0",
|
|
37
37
|
"category": "deployment"
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
40
|
"name": "deslop",
|
|
41
41
|
"source": "./plugins/deslop",
|
|
42
42
|
"description": "3-phase AI slop detection: regex patterns (HIGH), multi-pass analyzers (MEDIUM), CLI tools (LOW)",
|
|
43
|
-
"version": "4.
|
|
43
|
+
"version": "4.1.0",
|
|
44
44
|
"category": "development"
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
"name": "audit-project",
|
|
48
48
|
"source": "./plugins/audit-project",
|
|
49
49
|
"description": "Multi-agent iterative code review until zero issues remain",
|
|
50
|
-
"version": "4.
|
|
50
|
+
"version": "4.1.0",
|
|
51
51
|
"category": "development"
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
"name": "drift-detect",
|
|
55
55
|
"source": "./plugins/drift-detect",
|
|
56
56
|
"description": "Deep repository analysis to realign project plans with code reality - detects drift, gaps, and creates prioritized reconstruction plans",
|
|
57
|
-
"version": "4.
|
|
57
|
+
"version": "4.1.0",
|
|
58
58
|
"category": "productivity"
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"name": "enhance",
|
|
62
62
|
"source": "./plugins/enhance",
|
|
63
63
|
"description": "Master enhancement orchestrator: parallel analyzer execution for plugins, agents, docs, CLAUDE.md, and prompts with unified reporting",
|
|
64
|
-
"version": "4.
|
|
64
|
+
"version": "4.1.0",
|
|
65
65
|
"category": "development"
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
68
|
"name": "sync-docs",
|
|
69
69
|
"source": "./plugins/sync-docs",
|
|
70
70
|
"description": "Standalone documentation sync: find outdated refs, update CHANGELOG, flag stale examples based on code changes",
|
|
71
|
-
"version": "4.
|
|
71
|
+
"version": "4.1.0",
|
|
72
72
|
"category": "development"
|
|
73
73
|
},
|
|
74
74
|
{
|
|
75
75
|
"name": "repo-map",
|
|
76
76
|
"source": "./plugins/repo-map",
|
|
77
77
|
"description": "AST-based repository map generation using ast-grep with incremental updates for faster drift analysis",
|
|
78
|
-
"version": "4.
|
|
78
|
+
"version": "4.1.0",
|
|
79
79
|
"category": "development"
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
"name": "perf",
|
|
83
83
|
"source": "./plugins/perf",
|
|
84
84
|
"description": "Rigorous performance investigation workflow with baselines, profiling, hypotheses, and evidence-backed decisions",
|
|
85
|
-
"version": "4.
|
|
85
|
+
"version": "4.1.0",
|
|
86
86
|
"category": "development"
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
"name": "learn",
|
|
90
90
|
"source": "./plugins/learn",
|
|
91
91
|
"description": "Research topics online and create comprehensive learning guides with RAG-optimized indexes",
|
|
92
|
-
"version": "4.
|
|
92
|
+
"version": "4.1.0",
|
|
93
93
|
"category": "productivity"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"name": "agnix",
|
|
97
|
+
"source": "./plugins/agnix",
|
|
98
|
+
"description": "Lint agent configuration files (SKILL.md, CLAUDE.md, hooks, MCP) against 100 rules",
|
|
99
|
+
"version": "4.1.0",
|
|
100
|
+
"category": "development"
|
|
94
101
|
}
|
|
95
102
|
]
|
|
96
103
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [4.1.0] - 2026-02-05
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **New /agnix Plugin** - Lint agent configurations before they break your workflow
|
|
14
|
+
- Validates Skills, Hooks, MCP, Memory, Plugins across Claude Code, Cursor, GitHub Copilot, and Codex CLI
|
|
15
|
+
- 100 validation rules from official specs, research papers, real-world testing
|
|
16
|
+
- Auto-fix support with `--fix` flag
|
|
17
|
+
- SARIF output for GitHub Code Scanning integration
|
|
18
|
+
- Target-specific validation (`--target claude-code|cursor|codex`)
|
|
19
|
+
- Requires [agnix CLI](https://github.com/avifenesh/agnix) (`cargo install agnix-cli`)
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
- **Plugin Count** - Now 11 plugins, 40 agents, 26 skills
|
|
23
|
+
- **CLAUDE.md Rule #11** - Added rule about using `[]` not `<>` for argument hints
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
- **Prompt Injection** - Sanitize user arguments in agnix command (validate target, strip newlines from path)
|
|
27
|
+
- **Argument Parsing** - Support both `--target=value` and `--target value` forms
|
|
28
|
+
- **enhance-hooks/SKILL.md** - Fixed path example escaping
|
|
29
|
+
|
|
10
30
|
## [4.0.0] - 2026-02-05
|
|
11
31
|
|
|
12
32
|
### Added
|
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
AI models can write code. That's not the hard part anymore. The hard part is everything else—picking what to work on, managing branches, reviewing output, cleaning up artifacts, handling CI, addressing comments, deploying. **awesome-slash automates the entire workflow**, not just the coding.
|
|
10
10
|
|
|
11
|
-
**
|
|
11
|
+
**11 plugins · 40 agents · 26 skills · 26k lines of lib code · 3,357 tests · 3 platforms**
|
|
12
12
|
|
|
13
13
|
If you find this useful: [⭐ Star the repo](https://github.com/avifenesh/awesome-slash)
|
|
14
14
|
|
|
@@ -60,6 +60,7 @@ This came from testing on 1,000+ repositories.
|
|
|
60
60
|
| [`/repo-map`](#repo-map) | AST symbol and import mapping via ast-grep |
|
|
61
61
|
| [`/sync-docs`](#sync-docs) | Finds outdated references, stale examples, missing CHANGELOG entries |
|
|
62
62
|
| [`/learn`](#learn) | Research any topic, gather online sources, create learning guide with RAG index |
|
|
63
|
+
| [`/agnix`](#agnix) | Lint agent configs (SKILL.md, CLAUDE.md, hooks, MCP) against 100 rules |
|
|
63
64
|
|
|
64
65
|
Each command works standalone. Together, they form complete workflows.
|
|
65
66
|
|
|
@@ -77,6 +78,7 @@ Each command works standalone. Together, they form complete workflows.
|
|
|
77
78
|
| **Cleanup** | `deslop:deslop`, `sync-docs:sync-docs` |
|
|
78
79
|
| **Analysis** | `drift-detect:drift-analysis`, `repo-map:repo-mapping` |
|
|
79
80
|
| **Learning** | `learn:learn` |
|
|
81
|
+
| **Linting** | `agnix:agnix` |
|
|
80
82
|
|
|
81
83
|
Skills give your agents specialized capabilities. When you install a plugin, its skills become available to all agents in that session.
|
|
82
84
|
|
|
@@ -87,7 +89,7 @@ Skills give your agents specialized capabilities. When you install a plugin, its
|
|
|
87
89
|
| Section | What's there |
|
|
88
90
|
|---------|--------------|
|
|
89
91
|
| [The Approach](#the-approach) | Why it's built this way |
|
|
90
|
-
| [Commands](#commands) | All
|
|
92
|
+
| [Commands](#commands) | All 10 commands overview |
|
|
91
93
|
| [Skills](#skills) | 25 skills across plugins |
|
|
92
94
|
| [Command Details](#command-details) | Deep dive into each command |
|
|
93
95
|
| [How Commands Work Together](#how-commands-work-together) | Standalone vs integrated |
|
|
@@ -515,6 +517,43 @@ agent-knowledge/
|
|
|
515
517
|
|
|
516
518
|
---
|
|
517
519
|
|
|
520
|
+
### /agnix
|
|
521
|
+
|
|
522
|
+
**Purpose:** Lint agent configurations before they break your workflow. Validates Skills, Hooks, MCP, Memory, Plugins.
|
|
523
|
+
|
|
524
|
+
**What it does:**
|
|
525
|
+
|
|
526
|
+
1. **Validates 100 rules** - From official specs, research papers, real-world testing
|
|
527
|
+
2. **Multi-tool support** - Claude Code, Cursor, GitHub Copilot, Codex CLI
|
|
528
|
+
3. **Auto-fix** - Automatically fixes fixable issues with `--fix`
|
|
529
|
+
4. **SARIF output** - Integrates with GitHub Code Scanning
|
|
530
|
+
|
|
531
|
+
**Supported files:**
|
|
532
|
+
|
|
533
|
+
| File Type | Examples |
|
|
534
|
+
|-----------|----------|
|
|
535
|
+
| Skills | `SKILL.md` |
|
|
536
|
+
| Memory | `CLAUDE.md`, `AGENTS.md` |
|
|
537
|
+
| Hooks | `.claude/settings.json` |
|
|
538
|
+
| MCP | `*.mcp.json` |
|
|
539
|
+
| Cursor | `.cursor/rules/*.mdc` |
|
|
540
|
+
| Copilot | `.github/copilot-instructions.md` |
|
|
541
|
+
|
|
542
|
+
**Usage:**
|
|
543
|
+
|
|
544
|
+
```bash
|
|
545
|
+
/agnix # Validate current project
|
|
546
|
+
/agnix --fix # Auto-fix issues
|
|
547
|
+
/agnix --strict # Treat warnings as errors
|
|
548
|
+
/agnix --target claude-code # Only Claude Code rules
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
**Agent:** agnix-agent (sonnet model)
|
|
552
|
+
|
|
553
|
+
**External tool:** Requires [agnix CLI](https://github.com/avifenesh/agnix) (`cargo install agnix-cli`)
|
|
554
|
+
|
|
555
|
+
---
|
|
556
|
+
|
|
518
557
|
## How Commands Work Together
|
|
519
558
|
|
|
520
559
|
**Standalone use:**
|
package/bin/cli.js
CHANGED
|
@@ -220,7 +220,7 @@ function installForClaude() {
|
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
// PLUGINS_ARRAY - Install or update plugins
|
|
223
|
-
const plugins = ['next-task', 'ship', 'deslop', 'audit-project', 'drift-detect', 'enhance', 'sync-docs', 'repo-map', 'perf', 'learn'];
|
|
223
|
+
const plugins = ['next-task', 'ship', 'deslop', 'audit-project', 'drift-detect', 'enhance', 'sync-docs', 'repo-map', 'perf', 'learn', 'agnix'];
|
|
224
224
|
for (const plugin of plugins) {
|
|
225
225
|
console.log(` Installing ${plugin}...`);
|
|
226
226
|
try {
|
|
@@ -237,7 +237,7 @@ function installForClaude() {
|
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
console.log('\n[OK] Claude Code installation complete!\n');
|
|
240
|
-
console.log('Commands: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /perf, /learn');
|
|
240
|
+
console.log('Commands: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /perf, /learn, /agnix');
|
|
241
241
|
return true;
|
|
242
242
|
} catch (err) {
|
|
243
243
|
console.log('[ERROR] Auto-install failed. Manual installation:');
|
|
@@ -261,7 +261,7 @@ function installForClaudeDevelopment() {
|
|
|
261
261
|
}
|
|
262
262
|
|
|
263
263
|
const pluginsDir = getClaudePluginsDir();
|
|
264
|
-
const plugins = ['next-task', 'ship', 'deslop', 'audit-project', 'drift-detect', 'enhance', 'sync-docs', 'repo-map', 'perf', 'learn'];
|
|
264
|
+
const plugins = ['next-task', 'ship', 'deslop', 'audit-project', 'drift-detect', 'enhance', 'sync-docs', 'repo-map', 'perf', 'learn', 'agnix'];
|
|
265
265
|
|
|
266
266
|
// Remove marketplace plugins first
|
|
267
267
|
console.log('Removing marketplace plugins...');
|
|
@@ -310,7 +310,7 @@ function installForClaudeDevelopment() {
|
|
|
310
310
|
|
|
311
311
|
console.log('\n[OK] Claude Code development installation complete!');
|
|
312
312
|
console.log(' Plugins installed to: ' + pluginsDir);
|
|
313
|
-
console.log(' Commands: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /perf, /learn');
|
|
313
|
+
console.log(' Commands: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /perf, /learn, /agnix');
|
|
314
314
|
console.log('\n[NOTE] To revert to marketplace version:');
|
|
315
315
|
console.log(' rm -rf ~/.claude/plugins/*@awesome-slash');
|
|
316
316
|
console.log(' awesome-slash --tool claude');
|
|
@@ -371,7 +371,8 @@ function installForOpenCode(installDir, options = {}) {
|
|
|
371
371
|
['drift-detect.md', 'drift-detect', 'drift-detect.md'],
|
|
372
372
|
['repo-map.md', 'repo-map', 'repo-map.md'],
|
|
373
373
|
['perf.md', 'perf', 'perf.md'],
|
|
374
|
-
['learn.md', 'learn', 'learn.md']
|
|
374
|
+
['learn.md', 'learn', 'learn.md'],
|
|
375
|
+
['agnix.md', 'agnix', 'agnix.md']
|
|
375
376
|
];
|
|
376
377
|
|
|
377
378
|
// Helper function to transform content for OpenCode
|
|
@@ -575,7 +576,7 @@ After user answers, proceed to Phase 2 with the selected policy.
|
|
|
575
576
|
fs.mkdirSync(agentsDir, { recursive: true });
|
|
576
577
|
|
|
577
578
|
console.log(' Installing agents for OpenCode...');
|
|
578
|
-
const pluginDirs = ['next-task', 'enhance', 'audit-project', 'drift-detect', 'ship', 'deslop', 'repo-map', 'perf', 'sync-docs', 'learn'];
|
|
579
|
+
const pluginDirs = ['next-task', 'enhance', 'audit-project', 'drift-detect', 'ship', 'deslop', 'repo-map', 'perf', 'sync-docs', 'learn', 'agnix'];
|
|
579
580
|
let agentCount = 0;
|
|
580
581
|
|
|
581
582
|
for (const pluginName of pluginDirs) {
|
|
@@ -687,7 +688,7 @@ After user answers, proceed to Phase 2 with the selected policy.
|
|
|
687
688
|
console.log(` Commands: ${commandsDir}`);
|
|
688
689
|
console.log(` Agents: ${agentsDir}`);
|
|
689
690
|
console.log(` Plugin: ${pluginDir}`);
|
|
690
|
-
console.log(' Access via: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /sync-docs, /perf, /learn');
|
|
691
|
+
console.log(' Access via: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /sync-docs, /perf, /learn, /agnix');
|
|
691
692
|
console.log(' Native features: Auto-thinking selection, workflow enforcement, session compaction\n');
|
|
692
693
|
return true;
|
|
693
694
|
}
|
|
@@ -752,7 +753,9 @@ function installForCodex(installDir) {
|
|
|
752
753
|
['sync-docs', 'sync-docs', 'sync-docs.md',
|
|
753
754
|
'Use when user asks to "update docs", "sync documentation", "fix outdated docs", "refresh README". Compares documentation to actual code and fixes discrepancies.'],
|
|
754
755
|
['learn', 'learn', 'learn.md',
|
|
755
|
-
'Use when user asks to "learn about topic", "research subject", "create learning guide", "build knowledge base", "study topic". Gathers online sources and synthesizes comprehensive guide with RAG index.']
|
|
756
|
+
'Use when user asks to "learn about topic", "research subject", "create learning guide", "build knowledge base", "study topic". Gathers online sources and synthesizes comprehensive guide with RAG index.'],
|
|
757
|
+
['agnix', 'agnix', 'agnix.md',
|
|
758
|
+
'Use when user asks to "lint agent configs", "validate skills", "check CLAUDE.md", "validate hooks", "lint MCP". Validates agent configuration files against 100 rules.']
|
|
756
759
|
];
|
|
757
760
|
|
|
758
761
|
for (const [skillName, plugin, sourceFile, description] of skillMappings) {
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "awesome-slash",
|
|
3
|
-
"version": "4.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "4.1.0",
|
|
4
|
+
"description": "11 specialized plugins for AI workflow automation (drift detection + AST repo maps + topic research + agent config linting) - works with Claude Code, OpenCode, and Codex CLI",
|
|
5
5
|
"main": "lib/platform/detect-platform.js",
|
|
6
6
|
"type": "commonjs",
|
|
7
7
|
"bin": {
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "agnix",
|
|
3
|
+
"version": "4.1.0",
|
|
4
|
+
"description": "Lint agent configurations before they break your workflow. Validates Skills, Hooks, MCP, Memory, Plugins.",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Avi Fenesh",
|
|
7
|
+
"email": "[email protected]",
|
|
8
|
+
"url": "https://github.com/avifenesh"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/avifenesh/agnix",
|
|
11
|
+
"repository": "https://github.com/avifenesh/awesome-slash",
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"linting",
|
|
15
|
+
"validation",
|
|
16
|
+
"agents",
|
|
17
|
+
"skills",
|
|
18
|
+
"mcp",
|
|
19
|
+
"hooks",
|
|
20
|
+
"claude-code"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agnix-agent
|
|
3
|
+
description: Lint agent configurations using agnix CLI. Invoke agnix skill and return validation results.
|
|
4
|
+
tools:
|
|
5
|
+
- Bash(agnix:*)
|
|
6
|
+
- Bash(cargo:*)
|
|
7
|
+
- Skill
|
|
8
|
+
- Read
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
model: sonnet
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Agnix Agent
|
|
15
|
+
|
|
16
|
+
Validate agent configuration files using the agnix skill.
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
### 1. Parse Arguments
|
|
21
|
+
|
|
22
|
+
Extract from prompt:
|
|
23
|
+
- **path**: Target path (default: `.`)
|
|
24
|
+
- **fix**: Whether to auto-fix
|
|
25
|
+
- **strict**: Whether to treat warnings as errors
|
|
26
|
+
- **target**: Tool-specific rules (claude-code, cursor, codex)
|
|
27
|
+
|
|
28
|
+
### 2. Invoke Agnix Skill
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Skill: agnix
|
|
32
|
+
Args: [path] [--fix] [--strict] [--target=[target]]
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The skill contains full CLI documentation and execution steps.
|
|
36
|
+
|
|
37
|
+
### 3. Return Structured Results
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
=== AGNIX_RESULT ===
|
|
41
|
+
{
|
|
42
|
+
"path": ".",
|
|
43
|
+
"errors": N,
|
|
44
|
+
"warnings": N,
|
|
45
|
+
"fixable": N,
|
|
46
|
+
"fixed": N,
|
|
47
|
+
"success": true|false
|
|
48
|
+
}
|
|
49
|
+
=== END_RESULT ===
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Constraints
|
|
53
|
+
|
|
54
|
+
- Do NOT modify files unless `--fix` is passed
|
|
55
|
+
- Return structured data for orchestrator
|
|
56
|
+
- If agnix not installed, return install instructions
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Use when user asks to 'lint agent configs', 'validate skills', 'check CLAUDE.md', 'validate hooks', 'lint MCP', or mentions 'agent config issues', 'skill validation'.
|
|
3
|
+
argument-hint: "[path] [--fix] [--strict] [--target [target]]"
|
|
4
|
+
allowed-tools: Task, Read
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# /agnix - Agent Config Linter
|
|
8
|
+
|
|
9
|
+
Lint agent configurations before they break your workflow. Validates Skills, Hooks, MCP, Memory, Plugins across Claude Code, Cursor, GitHub Copilot, and Codex CLI.
|
|
10
|
+
|
|
11
|
+
## Arguments
|
|
12
|
+
|
|
13
|
+
Parse from $ARGUMENTS or use defaults:
|
|
14
|
+
|
|
15
|
+
- **Path**: Target path (default: `.`)
|
|
16
|
+
- **--fix**: Auto-fix issues
|
|
17
|
+
- **--strict**: Treat warnings as errors
|
|
18
|
+
- **--target**: `claude-code`, `cursor`, `codex`, or `generic` (default)
|
|
19
|
+
|
|
20
|
+
## Execution
|
|
21
|
+
|
|
22
|
+
### Phase 1: Spawn Agnix Agent
|
|
23
|
+
|
|
24
|
+
```javascript
|
|
25
|
+
const args = '$ARGUMENTS'.split(' ').filter(Boolean);
|
|
26
|
+
const fix = args.includes('--fix');
|
|
27
|
+
const strict = args.includes('--strict');
|
|
28
|
+
|
|
29
|
+
// Parse --target (supports both --target=value and --target value forms)
|
|
30
|
+
const allowedTargets = ['claude-code', 'cursor', 'codex', 'generic'];
|
|
31
|
+
let rawTarget = 'generic';
|
|
32
|
+
const targetEqIdx = args.findIndex(a => a.startsWith('--target='));
|
|
33
|
+
const targetSpaceIdx = args.findIndex(a => a === '--target');
|
|
34
|
+
if (targetEqIdx !== -1) {
|
|
35
|
+
rawTarget = args[targetEqIdx].split('=')[1] || 'generic';
|
|
36
|
+
} else if (targetSpaceIdx !== -1 && args[targetSpaceIdx + 1] && !args[targetSpaceIdx + 1].startsWith('-')) {
|
|
37
|
+
rawTarget = args[targetSpaceIdx + 1];
|
|
38
|
+
}
|
|
39
|
+
const target = allowedTargets.includes(rawTarget) ? rawTarget : 'generic';
|
|
40
|
+
|
|
41
|
+
// Parse path - exclude flags and --target's value, sanitize to prevent injection
|
|
42
|
+
const excludeIndices = new Set([targetSpaceIdx, targetSpaceIdx + 1].filter(i => i >= 0));
|
|
43
|
+
const path = (args.find((a, i) => !a.startsWith('-') && !excludeIndices.has(i)) || '.').replace(/[\n\r]/g, '');
|
|
44
|
+
|
|
45
|
+
const result = await Task({
|
|
46
|
+
subagent_type: "agnix:agnix-agent",
|
|
47
|
+
prompt: `Validate agent configurations.
|
|
48
|
+
Path: ${path}
|
|
49
|
+
Fix: ${fix}
|
|
50
|
+
Strict: ${strict}
|
|
51
|
+
Target: ${target}
|
|
52
|
+
|
|
53
|
+
Return structured results between === AGNIX_RESULT === markers.`
|
|
54
|
+
});
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Phase 2: Parse Agent Results
|
|
58
|
+
|
|
59
|
+
Extract structured JSON from agent output:
|
|
60
|
+
|
|
61
|
+
```javascript
|
|
62
|
+
function parseAgnix(output) {
|
|
63
|
+
const match = output.match(/=== AGNIX_RESULT ===[\s\S]*?({[\s\S]*?})[\s\S]*?=== END_RESULT ===/);
|
|
64
|
+
return match ? JSON.parse(match[1]) : { errors: 0, warnings: 0, diagnostics: [] };
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
const findings = parseAgnix(result);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Phase 3: Present Results
|
|
71
|
+
|
|
72
|
+
#### No Issues
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
## Validation Passed
|
|
76
|
+
|
|
77
|
+
No issues found in agent configurations.
|
|
78
|
+
|
|
79
|
+
- Files validated: N
|
|
80
|
+
- Target: {target}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### Issues Found
|
|
84
|
+
|
|
85
|
+
```markdown
|
|
86
|
+
## Agent Config Issues
|
|
87
|
+
|
|
88
|
+
| File | Line | Level | Rule | Message |
|
|
89
|
+
|------|------|-------|------|---------|
|
|
90
|
+
| SKILL.md | 3 | error | AS-004 | Invalid name |
|
|
91
|
+
| CLAUDE.md | 15 | warning | PE-003 | Generic instruction |
|
|
92
|
+
|
|
93
|
+
## Summary
|
|
94
|
+
|
|
95
|
+
- **Errors**: N
|
|
96
|
+
- **Warnings**: N
|
|
97
|
+
- **Fixable**: N
|
|
98
|
+
|
|
99
|
+
## Do Next
|
|
100
|
+
|
|
101
|
+
- [ ] Run `/agnix --fix` to auto-fix {fixable} issues
|
|
102
|
+
- [ ] Review remaining issues manually
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
#### After Fix
|
|
106
|
+
|
|
107
|
+
```markdown
|
|
108
|
+
## Fixed Issues
|
|
109
|
+
|
|
110
|
+
| File | Line | Rule | Fix Applied |
|
|
111
|
+
|------|------|------|-------------|
|
|
112
|
+
| SKILL.md | 3 | AS-004 | Renamed to lowercase |
|
|
113
|
+
|
|
114
|
+
**Fixed**: N issues
|
|
115
|
+
**Remaining**: N issues (manual review needed)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Supported Files
|
|
119
|
+
|
|
120
|
+
| File Type | Examples |
|
|
121
|
+
|-----------|----------|
|
|
122
|
+
| Skills | `SKILL.md` |
|
|
123
|
+
| Memory | `CLAUDE.md`, `AGENTS.md` |
|
|
124
|
+
| Hooks | `${STATE_DIR}/settings.json` (Claude: .claude/, OpenCode: .opencode/, Codex: .codex/) |
|
|
125
|
+
| MCP | `*.mcp.json` |
|
|
126
|
+
| Cursor | `.cursor/rules/*.mdc` |
|
|
127
|
+
| Copilot | `.github/copilot-instructions.md` |
|
|
128
|
+
|
|
129
|
+
## Error Handling
|
|
130
|
+
|
|
131
|
+
- **agnix not installed**: Show install command `cargo install agnix-cli`
|
|
132
|
+
- **Invalid path**: Exit with "Path not found: [path]"
|
|
133
|
+
- **Parse errors**: Show raw agnix output
|
|
134
|
+
|
|
135
|
+
## Links
|
|
136
|
+
|
|
137
|
+
- [agnix GitHub](https://github.com/avifenesh/agnix)
|
|
138
|
+
- [Rules Reference](https://github.com/avifenesh/agnix/blob/main/knowledge-base/VALIDATION-RULES.md)
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agnix
|
|
3
|
+
description: "Use when user asks to 'lint agent configs', 'validate skills', 'check CLAUDE.md', 'validate hooks', 'lint MCP'. Validates agent configuration files against 100 rules."
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
argument-hint: "[path] [--fix] [--strict] [--target=claude-code|cursor|codex]"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# agnix
|
|
9
|
+
|
|
10
|
+
Lint agent configurations before they break your workflow. Validates Skills, Hooks, MCP, Memory, Plugins across Claude Code, Cursor, GitHub Copilot, and Codex CLI.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
Invoke when user asks to:
|
|
15
|
+
- "Lint my agent configs"
|
|
16
|
+
- "Validate my skills"
|
|
17
|
+
- "Check my CLAUDE.md"
|
|
18
|
+
- "Validate hooks"
|
|
19
|
+
- "Lint MCP configs"
|
|
20
|
+
- "Fix agent configuration issues"
|
|
21
|
+
- "Check if my SKILL.md is correct"
|
|
22
|
+
|
|
23
|
+
## Prerequisites
|
|
24
|
+
|
|
25
|
+
agnix must be installed. Check with:
|
|
26
|
+
```bash
|
|
27
|
+
agnix --version
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
If not installed:
|
|
31
|
+
```bash
|
|
32
|
+
cargo install agnix-cli
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Execution
|
|
36
|
+
|
|
37
|
+
### 1. Validate Project
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
agnix .
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 2. If Issues Found and Fix Requested
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
agnix --fix .
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 3. Re-validate to Confirm
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
agnix .
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## CLI Reference
|
|
56
|
+
|
|
57
|
+
| Command | Description |
|
|
58
|
+
|---------|-------------|
|
|
59
|
+
| `agnix .` | Validate current project |
|
|
60
|
+
| `agnix --fix .` | Auto-fix issues |
|
|
61
|
+
| `agnix --strict .` | Treat warnings as errors |
|
|
62
|
+
| `agnix --target claude-code .` | Only Claude Code rules |
|
|
63
|
+
| `agnix --target cursor .` | Only Cursor rules |
|
|
64
|
+
| `agnix --watch .` | Watch mode - re-validate on changes |
|
|
65
|
+
| `agnix --format json .` | JSON output |
|
|
66
|
+
| `agnix --format sarif .` | SARIF for GitHub Code Scanning |
|
|
67
|
+
|
|
68
|
+
## Supported Files
|
|
69
|
+
|
|
70
|
+
| File Type | Examples |
|
|
71
|
+
|-----------|----------|
|
|
72
|
+
| Skills | `SKILL.md` |
|
|
73
|
+
| Memory | `CLAUDE.md`, `AGENTS.md` |
|
|
74
|
+
| Hooks | `${STATE_DIR}/settings.json` |
|
|
75
|
+
| MCP | `*.mcp.json` |
|
|
76
|
+
| Cursor | `.cursor/rules/*.mdc` |
|
|
77
|
+
| Copilot | `.github/copilot-instructions.md` |
|
|
78
|
+
|
|
79
|
+
## Output Format
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
CLAUDE.md:15:1 warning: Generic instruction 'Be helpful' [fixable]
|
|
83
|
+
help: Remove generic instructions. Claude already knows this.
|
|
84
|
+
|
|
85
|
+
skills/review/SKILL.md:3:1 error: Invalid name [fixable]
|
|
86
|
+
help: Use lowercase letters and hyphens only
|
|
87
|
+
|
|
88
|
+
Found 1 error, 1 warning (2 fixable)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Exit codes:
|
|
92
|
+
- `0` - No errors (warnings allowed)
|
|
93
|
+
- `1` - Errors found
|
|
94
|
+
- `2` - Invalid arguments
|
|
95
|
+
|
|
96
|
+
## Rule Categories
|
|
97
|
+
|
|
98
|
+
| Prefix | Category | Examples |
|
|
99
|
+
|--------|----------|----------|
|
|
100
|
+
| AS-* | Agent Skills | Name format, triggers, description |
|
|
101
|
+
| CC-* | Claude Code | Hooks, memory, plugins |
|
|
102
|
+
| MCP-* | MCP Protocol | Server config, tool definitions |
|
|
103
|
+
| PE-* | Prompt Engineering | Generic instructions, redundancy |
|
|
104
|
+
| XP-* | Cross-Platform | Compatibility across tools |
|
|
105
|
+
| AGM-* | AGENTS.md | Structure, sections |
|
|
106
|
+
| COP-* | GitHub Copilot | Instructions format |
|
|
107
|
+
| CUR-* | Cursor | MDC format, rules |
|
|
108
|
+
|
|
109
|
+
## Common Issues & Fixes
|
|
110
|
+
|
|
111
|
+
| Issue | Solution |
|
|
112
|
+
|-------|----------|
|
|
113
|
+
| Invalid skill name | Use lowercase with hyphens: `my-skill` |
|
|
114
|
+
| Directory/name mismatch | Rename directory to match `name:` field |
|
|
115
|
+
| Generic instructions | Remove "be helpful", "be accurate" |
|
|
116
|
+
| Missing trigger phrase | Add "Use when..." to description |
|
|
117
|
+
|
|
118
|
+
## Integration
|
|
119
|
+
|
|
120
|
+
This skill is standalone and can be invoked directly via `/agnix`.
|
|
121
|
+
|
|
122
|
+
For CI integration, see the [GitHub Action](https://github.com/avifenesh/agnix#github-action).
|
|
123
|
+
|
|
124
|
+
## Links
|
|
125
|
+
|
|
126
|
+
- [GitHub](https://github.com/avifenesh/agnix)
|
|
127
|
+
- [Rules Reference](https://github.com/avifenesh/agnix/blob/main/knowledge-base/VALIDATION-RULES.md)
|
|
128
|
+
- [Configuration](https://github.com/avifenesh/agnix/blob/main/docs/CONFIGURATION.md)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "drift-detect",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "Deep repository analysis to realign project plans with actual code reality - discovers drift, gaps, and produces prioritized reconstruction plans",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Avi Fenesh",
|