awesome-slash 4.0.0 → 4.1.1

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.
Files changed (91) hide show
  1. package/.agnix.toml +13 -6
  2. package/.claude-plugin/marketplace.json +19 -12
  3. package/.claude-plugin/plugin.json +1 -1
  4. package/AGENTS.md +16 -4
  5. package/CHANGELOG.md +58 -0
  6. package/README.md +117 -12
  7. package/adapters/codex/install.sh +4 -0
  8. package/adapters/opencode/install.sh +4 -0
  9. package/bin/cli.js +19 -50
  10. package/bin/dev-cli.js +496 -0
  11. package/lib/discovery/index.js +306 -0
  12. package/lib/index.js +21 -1
  13. package/meta/skills/maintain-cross-platform/SKILL.md +4 -4
  14. package/package.json +17 -15
  15. package/plugins/agnix/.claude-plugin/plugin.json +22 -0
  16. package/plugins/agnix/agents/agnix-agent.md +56 -0
  17. package/plugins/agnix/commands/agnix.md +139 -0
  18. package/plugins/agnix/skills/agnix/SKILL.md +138 -0
  19. package/plugins/audit-project/.claude-plugin/plugin.json +1 -1
  20. package/plugins/audit-project/commands/audit-project.md +1 -0
  21. package/plugins/audit-project/lib/discovery/index.js +306 -0
  22. package/plugins/audit-project/lib/index.js +21 -1
  23. package/plugins/deslop/.claude-plugin/plugin.json +1 -1
  24. package/plugins/deslop/commands/deslop.md +1 -0
  25. package/plugins/deslop/lib/discovery/index.js +306 -0
  26. package/plugins/deslop/lib/index.js +21 -1
  27. package/plugins/deslop/skills/deslop/SKILL.md +9 -0
  28. package/plugins/drift-detect/.claude-plugin/plugin.json +1 -1
  29. package/plugins/drift-detect/commands/drift-detect.md +1 -0
  30. package/plugins/drift-detect/lib/discovery/index.js +306 -0
  31. package/plugins/drift-detect/lib/index.js +21 -1
  32. package/plugins/enhance/.claude-plugin/plugin.json +1 -1
  33. package/plugins/enhance/commands/enhance.md +1 -0
  34. package/plugins/enhance/lib/discovery/index.js +306 -0
  35. package/plugins/enhance/lib/index.js +21 -1
  36. package/plugins/enhance/skills/enhance-agent-prompts/SKILL.md +9 -0
  37. package/plugins/enhance/skills/enhance-cross-file/SKILL.md +7 -0
  38. package/plugins/enhance/skills/enhance-docs/SKILL.md +9 -0
  39. package/plugins/enhance/skills/enhance-hooks/SKILL.md +9 -1
  40. package/plugins/enhance/skills/enhance-plugins/SKILL.md +8 -0
  41. package/plugins/enhance/skills/enhance-prompts/SKILL.md +8 -0
  42. package/plugins/learn/.claude-plugin/plugin.json +1 -1
  43. package/plugins/learn/commands/learn.md +1 -0
  44. package/plugins/learn/lib/discovery/index.js +306 -0
  45. package/plugins/learn/lib/index.js +21 -1
  46. package/plugins/learn/skills/learn/SKILL.md +8 -0
  47. package/plugins/next-task/.claude-plugin/plugin.json +1 -1
  48. package/plugins/next-task/commands/delivery-approval.md +1 -0
  49. package/plugins/next-task/commands/next-task.md +1 -0
  50. package/plugins/next-task/lib/discovery/index.js +306 -0
  51. package/plugins/next-task/lib/index.js +21 -1
  52. package/plugins/perf/.claude-plugin/plugin.json +1 -1
  53. package/plugins/perf/commands/perf.md +1 -0
  54. package/plugins/perf/lib/discovery/index.js +306 -0
  55. package/plugins/perf/lib/index.js +21 -1
  56. package/plugins/perf/skills/perf-benchmarker/SKILL.md +8 -0
  57. package/plugins/perf/skills/perf-profiler/SKILL.md +8 -0
  58. package/plugins/repo-map/.claude-plugin/plugin.json +1 -1
  59. package/plugins/repo-map/commands/repo-map.md +1 -0
  60. package/plugins/repo-map/lib/discovery/index.js +306 -0
  61. package/plugins/repo-map/lib/index.js +21 -1
  62. package/plugins/repo-map/skills/repo-mapping/SKILL.md +8 -0
  63. package/plugins/ship/.claude-plugin/plugin.json +1 -1
  64. package/plugins/ship/commands/ship.md +1 -0
  65. package/plugins/ship/lib/discovery/index.js +306 -0
  66. package/plugins/ship/lib/index.js +21 -1
  67. package/plugins/sync-docs/.claude-plugin/plugin.json +1 -1
  68. package/plugins/sync-docs/commands/sync-docs.md +1 -0
  69. package/plugins/sync-docs/lib/discovery/index.js +306 -0
  70. package/plugins/sync-docs/lib/index.js +21 -1
  71. package/plugins/sync-docs/skills/sync-docs/SKILL.md +9 -0
  72. package/scripts/bump-version.js +15 -17
  73. package/scripts/dev-install.js +19 -50
  74. package/scripts/generate-plugin-list.js +20 -0
  75. package/scripts/migrate-opencode.js +5 -1
  76. package/scripts/plugins.txt +11 -0
  77. package/scripts/setup-hooks.js +28 -17
  78. package/scripts/test-transform.js +68 -56
  79. package/scripts/validate-agent-skill-compliance.js +8 -3
  80. package/scripts/validate-counts.js +7 -34
  81. package/scripts/validate-opencode-install.js +29 -17
  82. package/site/assets/css/main.css +1525 -0
  83. package/site/assets/css/tokens.css +493 -0
  84. package/site/assets/favicon.svg +23 -0
  85. package/site/assets/js/main.js +801 -0
  86. package/site/assets/logo.png +0 -0
  87. package/site/assets/og-image.html +163 -0
  88. package/site/content.json +291 -0
  89. package/site/index.html +698 -0
  90. package/site/ux-spec.md +683 -0
  91. package/site/version.json +5 -0
package/.agnix.toml CHANGED
@@ -12,6 +12,7 @@ exclude = [
12
12
  ]
13
13
  target = "ClaudeCode"
14
14
  tools = []
15
+ locale = "en"
15
16
 
16
17
  [rules]
17
18
  skills = true
@@ -22,19 +23,25 @@ plugins = true
22
23
  xml = true
23
24
  mcp = true
24
25
  imports = true
25
- cross_platform = false # Intentional - we document all 3 platform paths
26
+ cross_platform = false # Intentional - we document all 3 platform paths
26
27
  agents_md = true
27
- copilot = false # Not targeting Copilot
28
- cursor = false # Not targeting Cursor
28
+ copilot = false # Not targeting Copilot
29
+ cursor = false # Not targeting Cursor
29
30
  prompt_engineering = true
30
31
  generic_instructions = true
31
32
  frontmatter_validation = true
32
33
  xml_balance = true
33
34
  import_references = true
34
35
  disabled_rules = [
35
- "hardcoded-claude-path", # Intentional - we document platform paths
36
- "hardcoded-opencode-path", # Intentional - we document platform paths
37
- "windows-path-separator", # False positives on regex escape sequences (\n, \s, \d)
36
+ "XP-003", # Intentional - we document all 3 platform paths (.claude/, .opencode/, .codex/)
37
+ "AS-014", # False positives on regex escape sequences (\n, \s, \d)
38
+ "CC-AG-009", # False positive - Skill, AskUserQuestion, LSP are valid Claude Code tools
39
+ "CC-MEM-009", # Intentional - CLAUDE.md uses structured sections, size is necessary
40
+ "AGM-006", # Intentional - root AGENTS.md (instructions) + docs/reference/AGENTS.md (reference)
41
+ "AGM-003", # docs/reference/AGENTS.md is a comprehensive reference doc
42
+ "PE-001", # Reference docs have structured layout; middle placement is intentional
43
+ "AS-012", # enhance-hooks is a comprehensive hook reference (needs >500 lines)
44
+ "CC-SK-009", # enhance-skills contains example injections for teaching purposes
38
45
  ]
39
46
 
40
47
  [tool_versions]
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "awesome-slash",
3
- "description": "10 specialized plugins for AI workflow automation - task orchestration, PR workflow, slop detection, code review, drift detection, enhancement analysis, documentation sync, repo mapping, perf investigations, and topic research",
4
- "version": "4.0.0",
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.1",
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.0.0",
29
+ "version": "4.1.1",
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.0.0",
36
+ "version": "4.1.1",
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.0.0",
43
+ "version": "4.1.1",
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.0.0",
50
+ "version": "4.1.1",
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.0.0",
57
+ "version": "4.1.1",
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.0.0",
64
+ "version": "4.1.1",
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.0.0",
71
+ "version": "4.1.1",
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.0.0",
78
+ "version": "4.1.1",
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.0.0",
85
+ "version": "4.1.1",
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.0.0",
92
+ "version": "4.1.1",
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 155 rules across 10+ AI tools",
99
+ "version": "4.1.1",
100
+ "category": "development"
94
101
  }
95
102
  ]
96
103
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "awesome-slash",
3
- "version": "4.0.0",
3
+ "version": "4.1.1",
4
4
  "description": "Professional-grade slash commands for Claude Code with cross-platform support",
5
5
  "keywords": [
6
6
  "workflow",
package/AGENTS.md CHANGED
@@ -11,7 +11,7 @@
11
11
  *WHY: Breaking changes affect all plugin users immediately.*
12
12
 
13
13
  2. **Plugin for OTHER projects** - Optimize for plugin users, not internal dev convenience.
14
- *WHY: Every decision should improve the experience for developers using this in their repos.*
14
+ *WHY: Every decision MUST improve the experience for developers using this in their repos.*
15
15
 
16
16
  3. **Use CHANGELOG.md for completion tracking** - MUST use CHANGELOG.md for release notes. NEVER create `*_AUDIT.md`, `*_SUMMARY.md`, `*_COMPLETION.md` files.
17
17
  *WHY: Summary files clutter repos and add no value. Report completion verbally.*
@@ -39,7 +39,7 @@
39
39
  - Run the `/enhance` command on new or modified commands, agents, skills, hooks or prompts
40
40
  - Verify cross-platform compatibility (OpenCode + Codex)
41
41
  - Update `bin/cli.js` mappings if new command/agent added
42
- - Don't mark complete until ALL checklist items are done
42
+ - Only mark complete after ALL checklist items are done
43
43
  *WHY: Checklists exist because we kept missing things. They are the definition of "done".*
44
44
 
45
45
  8. **Use plain text markers** - MUST use `[OK]`, `[ERROR]`, `[WARN]`, `[CRITICAL]` for status. NEVER use emojis or ASCII art boxes.
@@ -104,9 +104,21 @@ bin/cli.js → npm CLI installer
104
104
 
105
105
  ### Dev Commands
106
106
  ```bash
107
+ npx awesome-slash-dev status # Project health (version, counts, branch)
108
+ npx awesome-slash-dev validate # Run all validators
109
+ npx awesome-slash-dev validate plugins # Run single validator
110
+ npx awesome-slash-dev bump <version> # Bump all version files (e.g., 3.7.3)
111
+ npx awesome-slash-dev sync-lib # Sync lib/ to plugins/
112
+ npx awesome-slash-dev test # Run test suite
113
+ npx awesome-slash-dev --help # Show all commands
114
+
115
+ # Or invoke directly:
116
+ node bin/dev-cli.js <command>
117
+
118
+ # npm aliases still work:
107
119
  npm test # Run tests (do before commits)
108
- npm run bump <version> # Bump all version files (e.g., 3.7.3)
109
- ./scripts/sync-lib.sh # Sync lib/ to plugins/
120
+ npm run validate # All validators via dev-cli
121
+ npm run bump <version> # Bump versions via dev-cli
110
122
  npm pack # Build package
111
123
  awesome-slash # Run installer
112
124
  ```
package/CHANGELOG.md CHANGED
@@ -5,8 +5,66 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [4.1.1] - 2025-02-09
9
+
10
+ ### Fixed
11
+ - **Skills $ARGUMENTS parsing** - Added `$ARGUMENTS` parsing to 13 skills that declared `argument-hint` but never consumed the arguments (CC-SK-012)
12
+ - **agnix config** - Migrated `.agnix.toml` `disabled_rules` from deprecated slug format to proper rule IDs (XP-003, AS-014)
13
+ - **Memory file language** - Strengthened imperative language in AGENTS.md/CLAUDE.md (PE-003, CC-MEM-006)
14
+
8
15
  ## [Unreleased]
9
16
 
17
+ ### Added
18
+ - **Unified Dev CLI** (`awesome-slash-dev`) - Single discoverable entry point for all dev scripts
19
+ - `awesome-slash-dev validate` runs all 7 validators sequentially
20
+ - `awesome-slash-dev validate <sub>` runs individual validators (plugins, cross-platform, consistency, etc.)
21
+ - `awesome-slash-dev status` shows project health (version, plugin/agent/skill counts, git branch)
22
+ - `awesome-slash-dev bump <version>`, `sync-lib`, `setup-hooks`, `detect`, `verify`, `test`
23
+ - `awesome-slash-dev --help` lists all commands with descriptions
24
+ - All existing `npm run` commands still work (now delegate through dev-cli)
25
+ - All direct `node scripts/foo.js` invocations still work (require.main guards)
26
+ - No external CLI framework dependencies - hand-rolled parsing matching bin/cli.js style
27
+
28
+ ### Changed
29
+ - **Plugin Discovery** - Convention-based filesystem scanning replaces 14+ hardcoded registration lists (#182)
30
+ - New `lib/discovery/` module auto-discovers plugins, commands, agents, and skills
31
+ - `bin/cli.js`, `scripts/dev-install.js`, `scripts/bump-version.js` use discovery calls
32
+ - Adding a new plugin no longer requires updating registration points
33
+ - Fixed stale lists in `dev-install.js` and `bump-version.js` (missing learn, agnix)
34
+ - Added `codex-description` frontmatter for Codex trigger phrases
35
+ - `scripts/sync-lib.sh` reads from generated `plugins.txt` manifest
36
+ - Deprecated `adapters/opencode/install.sh` and `adapters/codex/install.sh`
37
+ - **README /agnix Documentation** - Expanded agnix section to be on par with other major commands
38
+ - Added "The problem it solves" section explaining why agent config linting matters
39
+ - Added "What it validates" table with 5 categories (Structure, Security, Consistency, Best Practices, Cross-Platform)
40
+ - Added details about 100 validation rules and their sources
41
+ - Added CI/CD integration example with GitHub Code Scanning SARIF workflow
42
+ - Added installation instructions (Cargo, Homebrew)
43
+ - Added "Why use agnix" value proposition section
44
+ - Prominent link to [agnix CLI project](https://github.com/avifenesh/agnix)
45
+ - Updated Commands table with more descriptive entry
46
+ - Updated skill count to 26 across all references
47
+
48
+ ## [4.1.0] - 2026-02-05
49
+
50
+ ### Added
51
+ - **New /agnix Plugin** - Lint agent configurations before they break your workflow
52
+ - Validates Skills, Hooks, MCP, Memory, Plugins across Claude Code, Cursor, GitHub Copilot, and Codex CLI
53
+ - 100 validation rules from official specs, research papers, real-world testing
54
+ - Auto-fix support with `--fix` flag
55
+ - SARIF output for GitHub Code Scanning integration
56
+ - Target-specific validation (`--target claude-code|cursor|codex`)
57
+ - Requires [agnix CLI](https://github.com/avifenesh/agnix) (`cargo install agnix-cli`)
58
+
59
+ ### Changed
60
+ - **Plugin Count** - Now 11 plugins, 40 agents, 26 skills
61
+ - **CLAUDE.md Rule #11** - Added rule about using `[]` not `<>` for argument hints
62
+
63
+ ### Fixed
64
+ - **Prompt Injection** - Sanitize user arguments in agnix command (validate target, strip newlines from path)
65
+ - **Argument Parsing** - Support both `--target=value` and `--target value` forms
66
+ - **enhance-hooks/SKILL.md** - Fixed path example escaping
67
+
10
68
  ## [4.0.0] - 2026-02-05
11
69
 
12
70
  ### Added
package/README.md CHANGED
@@ -1,18 +1,36 @@
1
- # awesome-slash
1
+ <p align="center">
2
+ <img src="site/assets/logo.png" alt="awesome-slash" width="120">
3
+ </p>
2
4
 
3
- [![npm version](https://img.shields.io/npm/v/awesome-slash.svg)](https://www.npmjs.com/package/awesome-slash)
4
- [![npm downloads](https://img.shields.io/npm/dm/awesome-slash.svg)](https://www.npmjs.com/package/awesome-slash)
5
- [![CI](https://github.com/avifenesh/awesome-slash/actions/workflows/ci.yml/badge.svg)](https://github.com/avifenesh/awesome-slash/actions/workflows/ci.yml)
6
- [![GitHub stars](https://img.shields.io/github/stars/avifenesh/awesome-slash?style=social)](https://github.com/avifenesh/awesome-slash/stargazers)
7
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ <h1 align="center">awesome-slash</h1>
8
6
 
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.
7
+ <p align="center">
8
+ <strong>Automate the entire dev workflow. Not just the coding.</strong>
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="https://www.npmjs.com/package/awesome-slash"><img src="https://img.shields.io/npm/v/awesome-slash.svg" alt="npm version"></a>
13
+ <a href="https://www.npmjs.com/package/awesome-slash"><img src="https://img.shields.io/npm/dm/awesome-slash.svg" alt="npm downloads"></a>
14
+ <a href="https://github.com/avifenesh/awesome-slash/actions/workflows/ci.yml"><img src="https://github.com/avifenesh/awesome-slash/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
15
+ <a href="https://github.com/avifenesh/awesome-slash/stargazers"><img src="https://img.shields.io/github/stars/avifenesh/awesome-slash?style=social" alt="GitHub stars"></a>
16
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
17
+ <a href="https://avifenesh.github.io/awesome-slash/"><img src="https://img.shields.io/badge/Website-awesome--slash-blue?style=flat&logo=github" alt="Website"></a>
18
+ </p>
19
+
20
+ <p align="center">
21
+ <b>11 plugins · 40 agents · 26 skills · 26k lines of lib code · 3,357 tests · 3 platforms</b>
22
+ </p>
23
+
24
+ <p align="center">
25
+ <a href="#commands">Commands</a> · <a href="#installation">Installation</a> · <a href="https://avifenesh.github.io/awesome-slash/">Website</a> · <a href="https://github.com/avifenesh/awesome-slash/discussions">Discussions</a>
26
+ </p>
10
27
 
11
- **10 plugins · 39 agents · 25 skills · 26k lines of lib code · 3,357 tests · 3 platforms**
28
+ ---
12
29
 
13
- If you find this useful: [⭐ Star the repo](https://github.com/avifenesh/awesome-slash)
30
+ 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.
14
31
 
15
32
  ---
33
+ > Building custom skills, agents, hooks, or MCP tools? [agnix](https://github.com/avifenesh/agnix) is the CLI + LSP linter that catches config errors before they fail silently - real-time IDE validation, auto suggestions, auto-fix, and 155 rules for Cursor, Claude Code, Cline, Copilot, Codex, Windsurf, and more.
16
34
 
17
35
  ## What This Is
18
36
 
@@ -51,6 +69,7 @@ This came from testing on 1,000+ repositories.
51
69
  | Command | What it does |
52
70
  |---------|--------------|
53
71
  | [`/next-task`](#next-task) | Task → exploration → plan → implementation → review → ship |
72
+ | [`/agnix`](#agnix) | **Lint agent configs** - 155 rules for Skills, Memory, Hooks, MCP across 10+ AI tools |
54
73
  | [`/ship`](#ship) | Branch → PR → CI → reviews addressed → merge → cleanup |
55
74
  | [`/deslop`](#deslop) | 3-phase detection pipeline, certainty-graded findings |
56
75
  | [`/perf`](#perf) | 10-phase performance investigation with baselines and profiling |
@@ -67,7 +86,7 @@ Each command works standalone. Together, they form complete workflows.
67
86
 
68
87
  ## Skills
69
88
 
70
- 25 skills included across the plugins:
89
+ 26 skills included across the plugins:
71
90
 
72
91
  | Category | Skills |
73
92
  |----------|--------|
@@ -77,6 +96,7 @@ Each command works standalone. Together, they form complete workflows.
77
96
  | **Cleanup** | `deslop:deslop`, `sync-docs:sync-docs` |
78
97
  | **Analysis** | `drift-detect:drift-analysis`, `repo-map:repo-mapping` |
79
98
  | **Learning** | `learn:learn` |
99
+ | **Linting** | `agnix:agnix` |
80
100
 
81
101
  Skills give your agents specialized capabilities. When you install a plugin, its skills become available to all agents in that session.
82
102
 
@@ -87,8 +107,8 @@ Skills give your agents specialized capabilities. When you install a plugin, its
87
107
  | Section | What's there |
88
108
  |---------|--------------|
89
109
  | [The Approach](#the-approach) | Why it's built this way |
90
- | [Commands](#commands) | All 9 commands overview |
91
- | [Skills](#skills) | 25 skills across plugins |
110
+ | [Commands](#commands) | All 11 commands overview |
111
+ | [Skills](#skills) | 26 skills across plugins |
92
112
  | [Command Details](#command-details) | Deep dive into each command |
93
113
  | [How Commands Work Together](#how-commands-work-together) | Standalone vs integrated |
94
114
  | [Design Philosophy](#design-philosophy) | The thinking behind the architecture |
@@ -155,6 +175,88 @@ Phase 9 uses the `orchestrate-review` skill to spawn parallel reviewers (code qu
155
175
 
156
176
  ---
157
177
 
178
+ ### /agnix
179
+
180
+ **Purpose:** Lint agent configurations before they break your workflow. The first dedicated linter for AI agent configs.
181
+
182
+ **[agnix](https://github.com/avifenesh/agnix)** is a standalone open-source project that provides the validation engine. This plugin integrates it into your workflow.
183
+
184
+ **The problem it solves:**
185
+
186
+ Agent configurations are code. They affect behavior, security, and reliability. But unlike application code, they have no linting. You find out your SKILL.md is malformed when the agent fails. You discover your hooks have security issues when they're exploited. You realize your CLAUDE.md has conflicting rules when the AI behaves unexpectedly.
187
+
188
+ agnix catches these issues before they cause problems.
189
+
190
+ **What it validates:**
191
+
192
+ | Category | What It Checks |
193
+ |----------|----------------|
194
+ | **Structure** | Required fields, valid YAML/JSON, proper frontmatter |
195
+ | **Security** | Prompt injection vectors, overpermissive tools, exposed secrets |
196
+ | **Consistency** | Conflicting rules, duplicate definitions, broken references |
197
+ | **Best Practices** | Tool restrictions, model selection, trigger phrase quality |
198
+ | **Cross-Platform** | Compatibility across Claude Code, Cursor, Copilot, Codex, OpenCode, Gemini CLI, Cline, and more |
199
+
200
+ **155 validation rules** (57 auto-fixable) derived from:
201
+ - Official tool specifications (Claude Code, Cursor, GitHub Copilot, Codex CLI, OpenCode, Gemini CLI, and more)
202
+ - Research papers on agent reliability and prompt injection
203
+ - Real-world testing across 500+ repositories
204
+ - Community-reported issues and edge cases
205
+
206
+ **Supported files:**
207
+
208
+ | File Type | Examples |
209
+ |-----------|----------|
210
+ | Skills | `SKILL.md`, `*/SKILL.md` |
211
+ | Memory | `CLAUDE.md`, `AGENTS.md`, `.github/CLAUDE.md` |
212
+ | Hooks | `.claude/settings.json`, hooks configuration |
213
+ | MCP | `*.mcp.json`, MCP server configs |
214
+ | Cursor | `.cursor/rules/*.mdc`, `.cursorrules` |
215
+ | Copilot | `.github/copilot-instructions.md` |
216
+
217
+ **CI/CD Integration:**
218
+
219
+ agnix outputs SARIF format for GitHub Code Scanning. Add it to your workflow:
220
+
221
+ ```yaml
222
+ - name: Lint agent configs
223
+ run: agnix --format sarif > results.sarif
224
+ - uses: github/codeql-action/upload-sarif@v3
225
+ with:
226
+ sarif_file: results.sarif
227
+ ```
228
+
229
+ **Usage:**
230
+
231
+ ```bash
232
+ /agnix # Validate current project
233
+ /agnix --fix # Auto-fix fixable issues
234
+ /agnix --strict # Treat warnings as errors
235
+ /agnix --target claude-code # Only Claude Code rules
236
+ /agnix --format sarif # Output for GitHub Code Scanning
237
+ ```
238
+
239
+ **Agent:** agnix-agent (sonnet model)
240
+
241
+ **External tool:** Requires [agnix CLI](https://github.com/avifenesh/agnix)
242
+
243
+ ```bash
244
+ npm install -g agnix # Install via npm
245
+ # or
246
+ cargo install agnix-cli # Install via Cargo
247
+ # or
248
+ brew install agnix # Install via Homebrew (macOS)
249
+ ```
250
+
251
+ **Why use agnix:**
252
+ - Catch config errors before they cause agent failures
253
+ - Enforce security best practices across your team
254
+ - Maintain consistency as your agent configs grow
255
+ - Integrate validation into CI/CD pipelines
256
+ - Support multiple AI tools from one linter
257
+
258
+ ---
259
+
158
260
  ### /ship
159
261
 
160
262
  **Purpose:** Takes your current branch from "ready to commit" to "merged PR."
@@ -692,6 +794,9 @@ awesome-slash --development # Dev mode (bypasses marketplace)
692
794
  **For /repo-map:**
693
795
  - ast-grep (`sg`) installed
694
796
 
797
+ **For /agnix:**
798
+ - [agnix CLI](https://github.com/avifenesh/agnix) installed (`cargo install agnix-cli` or `brew install agnix`)
799
+
695
800
  **Local diagnostics (optional):**
696
801
  ```bash
697
802
  npm run detect # Platform detection (CI, deploy, project type)
@@ -1,6 +1,10 @@
1
1
  #!/usr/bin/env bash
2
2
  set -e
3
3
 
4
+ # [DEPRECATED] This script is outdated and uses old plugin names.
5
+ # Use instead: awesome-slash --tool codex
6
+ # Or: node scripts/dev-install.js codex
7
+
4
8
  # Codex CLI Installer for awesome-slash commands
5
9
  # This script installs all 5 slash commands for use with OpenAI Codex CLI
6
10
 
@@ -1,6 +1,10 @@
1
1
  #!/usr/bin/env bash
2
2
  set -e
3
3
 
4
+ # [DEPRECATED] This script is outdated and uses old plugin names.
5
+ # Use instead: awesome-slash --tool opencode
6
+ # Or: node scripts/dev-install.js opencode
7
+
4
8
  # OpenCode Installer for awesome-slash commands
5
9
  # This script installs all 5 slash commands for use with OpenCode
6
10
 
package/bin/cli.js CHANGED
@@ -16,6 +16,7 @@ const readline = require('readline');
16
16
  const VERSION = require('../package.json').version;
17
17
  // Use the installed npm package directory as source (no git clone needed)
18
18
  const PACKAGE_DIR = path.join(__dirname, '..');
19
+ const discovery = require('../lib/discovery');
19
20
 
20
21
  // Valid tool names
21
22
  const VALID_TOOLS = ['claude', 'opencode', 'codex'];
@@ -219,9 +220,11 @@ function installForClaude() {
219
220
  // May already exist
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
+ // Discover plugins from filesystem convention
224
+ const plugins = discovery.discoverPlugins(PACKAGE_DIR);
224
225
  for (const plugin of plugins) {
226
+ // Validate plugin name before shell use (prevents injection)
227
+ if (!/^[a-z0-9][a-z0-9-]*$/.test(plugin)) continue;
225
228
  console.log(` Installing ${plugin}...`);
226
229
  try {
227
230
  // Try install first
@@ -237,7 +240,7 @@ function installForClaude() {
237
240
  }
238
241
 
239
242
  console.log('\n[OK] Claude Code installation complete!\n');
240
- console.log('Commands: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /perf, /learn');
243
+ console.log('Commands: ' + plugins.map(p => '/' + p).join(', '));
241
244
  return true;
242
245
  } catch (err) {
243
246
  console.log('[ERROR] Auto-install failed. Manual installation:');
@@ -261,7 +264,7 @@ function installForClaudeDevelopment() {
261
264
  }
262
265
 
263
266
  const pluginsDir = getClaudePluginsDir();
264
- const plugins = ['next-task', 'ship', 'deslop', 'audit-project', 'drift-detect', 'enhance', 'sync-docs', 'repo-map', 'perf', 'learn'];
267
+ const plugins = discovery.discoverPlugins(PACKAGE_DIR);
265
268
 
266
269
  // Remove marketplace plugins first
267
270
  console.log('Removing marketplace plugins...');
@@ -273,6 +276,8 @@ function installForClaudeDevelopment() {
273
276
  }
274
277
 
275
278
  for (const plugin of plugins) {
279
+ // Validate plugin name before shell use (prevents injection)
280
+ if (!/^[a-z0-9][a-z0-9-]*$/.test(plugin)) continue;
276
281
  try {
277
282
  execSync(`claude plugin uninstall ${plugin}@awesome-slash`, { stdio: 'pipe' });
278
283
  console.log(` [OK] Uninstalled ${plugin}`);
@@ -310,7 +315,7 @@ function installForClaudeDevelopment() {
310
315
 
311
316
  console.log('\n[OK] Claude Code development installation complete!');
312
317
  console.log(' Plugins installed to: ' + pluginsDir);
313
- console.log(' Commands: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /perf, /learn');
318
+ console.log(' Commands: ' + plugins.map(p => '/' + p).join(', '));
314
319
  console.log('\n[NOTE] To revert to marketplace version:');
315
320
  console.log(' rm -rf ~/.claude/plugins/*@awesome-slash');
316
321
  console.log(' awesome-slash --tool claude');
@@ -359,20 +364,8 @@ function installForOpenCode(installDir, options = {}) {
359
364
  fs.rmSync(legacyPluginDir, { recursive: true, force: true });
360
365
  }
361
366
 
362
- // OPENCODE_COMMAND_MAPPINGS - Sync command files
363
- const commandMappings = [
364
- ['deslop.md', 'deslop', 'deslop.md'],
365
- ['enhance.md', 'enhance', 'enhance.md'],
366
- ['next-task.md', 'next-task', 'next-task.md'],
367
- ['delivery-approval.md', 'next-task', 'delivery-approval.md'],
368
- ['sync-docs.md', 'sync-docs', 'sync-docs.md'],
369
- ['audit-project.md', 'audit-project', 'audit-project.md'],
370
- ['ship.md', 'ship', 'ship.md'],
371
- ['drift-detect.md', 'drift-detect', 'drift-detect.md'],
372
- ['repo-map.md', 'repo-map', 'repo-map.md'],
373
- ['perf.md', 'perf', 'perf.md'],
374
- ['learn.md', 'learn', 'learn.md']
375
- ];
367
+ // Discover command mappings from filesystem
368
+ const commandMappings = discovery.getCommandMappings(installDir);
376
369
 
377
370
  // Helper function to transform content for OpenCode
378
371
  function transformForOpenCode(content) {
@@ -387,8 +380,9 @@ function installForOpenCode(installDir, options = {}) {
387
380
 
388
381
  // Strip plugin prefix from agent references (next-task:agent-name -> agent-name)
389
382
  // This is critical - OpenCode agents are installed without the plugin prefix
390
- content = content.replace(/`(next-task|deslop|enhance|ship|sync-docs|audit-project|drift-detect|repo-map|perf):([a-z-]+)`/g, '`$2`');
391
- content = content.replace(/(next-task|deslop|enhance|ship|sync-docs|audit-project|drift-detect|repo-map|perf):([a-z-]+)/g, '$2');
383
+ const pluginNames = discovery.discoverPlugins(installDir).join('|');
384
+ content = content.replace(new RegExp('`(' + pluginNames + '):([a-z-]+)`', 'g'), '`$2`');
385
+ content = content.replace(new RegExp('(' + pluginNames + '):([a-z-]+)', 'g'), '$2');
392
386
 
393
387
  // Transform ALL code blocks (with OR without language identifier)
394
388
  // Pattern matches: ```javascript, ```js, ```bash, or just ``` (unmarked)
@@ -575,7 +569,7 @@ After user answers, proceed to Phase 2 with the selected policy.
575
569
  fs.mkdirSync(agentsDir, { recursive: true });
576
570
 
577
571
  console.log(' Installing agents for OpenCode...');
578
- const pluginDirs = ['next-task', 'enhance', 'audit-project', 'drift-detect', 'ship', 'deslop', 'repo-map', 'perf', 'sync-docs', 'learn'];
572
+ const pluginDirs = discovery.discoverPlugins(installDir);
579
573
  let agentCount = 0;
580
574
 
581
575
  for (const pluginName of pluginDirs) {
@@ -687,7 +681,7 @@ After user answers, proceed to Phase 2 with the selected policy.
687
681
  console.log(` Commands: ${commandsDir}`);
688
682
  console.log(` Agents: ${agentsDir}`);
689
683
  console.log(` Plugin: ${pluginDir}`);
690
- console.log(' Access via: /next-task, /ship, /deslop, /audit-project, /drift-detect, /enhance, /sync-docs, /perf, /learn');
684
+ console.log(' Access via: ' + commandMappings.map(([target]) => '/' + target.replace(/\.md$/, '')).join(', '));
691
685
  console.log(' Native features: Auto-thinking selection, workflow enforcement, session compaction\n');
692
686
  return true;
693
687
  }
@@ -727,33 +721,8 @@ function installForCodex(installDir) {
727
721
  }
728
722
  }
729
723
 
730
- // Skill mappings: [skillName, plugin, sourceFile, description]
731
- // CODEX_SKILL_MAPPINGS - Skills with trigger-phrase descriptions
732
- // Format: "Use when user asks to 'phrase1', 'phrase2'. Description of what it does."
733
- const skillMappings = [
734
- ['enhance', 'enhance', 'enhance.md',
735
- 'Use when user asks to "enhance prompts", "improve agents", "analyze plugins", "optimize documentation", "review CLAUDE.md". Runs 5 parallel analyzers on prompts, agents, plugins, docs, and project memory files.'],
736
- ['next-task', 'next-task', 'next-task.md',
737
- 'Use when user asks to "find next task", "what should I work on", "automate workflow", "implement and ship", "run next-task". Orchestrates complete task-to-production workflow: discovery, implementation, review, and delivery.'],
738
- ['ship', 'ship', 'ship.md',
739
- 'Use when user asks to "ship this", "create PR", "merge to main", "deploy changes", "push to production". Complete PR workflow: commit, create PR, monitor CI, merge, deploy, validate.'],
740
- ['deslop', 'deslop', 'deslop.md',
741
- 'Use when user asks to "clean up slop", "remove AI artifacts", "deslop the codebase", "find debug statements", "remove console.logs", "repo hygiene". Detects and removes AI-generated slop patterns.'],
742
- ['audit-project', 'audit-project', 'audit-project.md',
743
- 'Use when user asks to "review my code", "check for issues", "run code review", "analyze PR quality". Multi-agent iterative review that loops until all critical/high issues are resolved.'],
744
- ['drift-detect', 'drift-detect', 'drift-detect.md',
745
- 'Use when user asks to "check plan drift", "compare docs to code", "verify roadmap", "scan for reality gaps". Analyzes documentation vs actual code to detect drift and outdated plans.'],
746
- ['repo-map', 'repo-map', 'repo-map.md',
747
- 'Use when user asks to "create repo map", "generate repo map", "update repo map", "repo map status", "map symbols". Builds and updates AST-based repo map using ast-grep.'],
748
- ['perf', 'perf', 'perf.md',
749
- 'Use when user asks to "run perf", "performance investigation", "benchmark regression", "profiling workflow", "baseline performance". Runs structured perf investigations with baselines, profiling, hypotheses, and decisions.'],
750
- ['delivery-approval', 'next-task', 'delivery-approval.md',
751
- 'Use when user asks to "validate delivery", "approve for shipping", "check if ready to ship", "verify task completion". Autonomous validation that tests pass, build succeeds, and requirements are met.'],
752
- ['sync-docs', 'sync-docs', 'sync-docs.md',
753
- 'Use when user asks to "update docs", "sync documentation", "fix outdated docs", "refresh README". Compares documentation to actual code and fixes discrepancies.'],
754
- ['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
- ];
724
+ // Discover skill mappings from filesystem (descriptions from codex-description frontmatter)
725
+ const skillMappings = discovery.getCodexSkillMappings(installDir);
757
726
 
758
727
  for (const [skillName, plugin, sourceFile, description] of skillMappings) {
759
728
  const srcPath = path.join(installDir, 'plugins', plugin, 'commands', sourceFile);