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.
- package/.agnix.toml +13 -6
- package/.claude-plugin/marketplace.json +19 -12
- package/.claude-plugin/plugin.json +1 -1
- package/AGENTS.md +16 -4
- package/CHANGELOG.md +58 -0
- package/README.md +117 -12
- package/adapters/codex/install.sh +4 -0
- package/adapters/opencode/install.sh +4 -0
- package/bin/cli.js +19 -50
- package/bin/dev-cli.js +496 -0
- package/lib/discovery/index.js +306 -0
- package/lib/index.js +21 -1
- package/meta/skills/maintain-cross-platform/SKILL.md +4 -4
- package/package.json +17 -15
- package/plugins/agnix/.claude-plugin/plugin.json +22 -0
- package/plugins/agnix/agents/agnix-agent.md +56 -0
- package/plugins/agnix/commands/agnix.md +139 -0
- package/plugins/agnix/skills/agnix/SKILL.md +138 -0
- package/plugins/audit-project/.claude-plugin/plugin.json +1 -1
- package/plugins/audit-project/commands/audit-project.md +1 -0
- package/plugins/audit-project/lib/discovery/index.js +306 -0
- package/plugins/audit-project/lib/index.js +21 -1
- package/plugins/deslop/.claude-plugin/plugin.json +1 -1
- package/plugins/deslop/commands/deslop.md +1 -0
- package/plugins/deslop/lib/discovery/index.js +306 -0
- package/plugins/deslop/lib/index.js +21 -1
- package/plugins/deslop/skills/deslop/SKILL.md +9 -0
- package/plugins/drift-detect/.claude-plugin/plugin.json +1 -1
- package/plugins/drift-detect/commands/drift-detect.md +1 -0
- package/plugins/drift-detect/lib/discovery/index.js +306 -0
- package/plugins/drift-detect/lib/index.js +21 -1
- package/plugins/enhance/.claude-plugin/plugin.json +1 -1
- package/plugins/enhance/commands/enhance.md +1 -0
- package/plugins/enhance/lib/discovery/index.js +306 -0
- package/plugins/enhance/lib/index.js +21 -1
- package/plugins/enhance/skills/enhance-agent-prompts/SKILL.md +9 -0
- package/plugins/enhance/skills/enhance-cross-file/SKILL.md +7 -0
- package/plugins/enhance/skills/enhance-docs/SKILL.md +9 -0
- package/plugins/enhance/skills/enhance-hooks/SKILL.md +9 -1
- package/plugins/enhance/skills/enhance-plugins/SKILL.md +8 -0
- package/plugins/enhance/skills/enhance-prompts/SKILL.md +8 -0
- package/plugins/learn/.claude-plugin/plugin.json +1 -1
- package/plugins/learn/commands/learn.md +1 -0
- package/plugins/learn/lib/discovery/index.js +306 -0
- package/plugins/learn/lib/index.js +21 -1
- package/plugins/learn/skills/learn/SKILL.md +8 -0
- package/plugins/next-task/.claude-plugin/plugin.json +1 -1
- package/plugins/next-task/commands/delivery-approval.md +1 -0
- package/plugins/next-task/commands/next-task.md +1 -0
- package/plugins/next-task/lib/discovery/index.js +306 -0
- package/plugins/next-task/lib/index.js +21 -1
- package/plugins/perf/.claude-plugin/plugin.json +1 -1
- package/plugins/perf/commands/perf.md +1 -0
- package/plugins/perf/lib/discovery/index.js +306 -0
- package/plugins/perf/lib/index.js +21 -1
- package/plugins/perf/skills/perf-benchmarker/SKILL.md +8 -0
- package/plugins/perf/skills/perf-profiler/SKILL.md +8 -0
- package/plugins/repo-map/.claude-plugin/plugin.json +1 -1
- package/plugins/repo-map/commands/repo-map.md +1 -0
- package/plugins/repo-map/lib/discovery/index.js +306 -0
- package/plugins/repo-map/lib/index.js +21 -1
- package/plugins/repo-map/skills/repo-mapping/SKILL.md +8 -0
- package/plugins/ship/.claude-plugin/plugin.json +1 -1
- package/plugins/ship/commands/ship.md +1 -0
- package/plugins/ship/lib/discovery/index.js +306 -0
- package/plugins/ship/lib/index.js +21 -1
- package/plugins/sync-docs/.claude-plugin/plugin.json +1 -1
- package/plugins/sync-docs/commands/sync-docs.md +1 -0
- package/plugins/sync-docs/lib/discovery/index.js +306 -0
- package/plugins/sync-docs/lib/index.js +21 -1
- package/plugins/sync-docs/skills/sync-docs/SKILL.md +9 -0
- package/scripts/bump-version.js +15 -17
- package/scripts/dev-install.js +19 -50
- package/scripts/generate-plugin-list.js +20 -0
- package/scripts/migrate-opencode.js +5 -1
- package/scripts/plugins.txt +11 -0
- package/scripts/setup-hooks.js +28 -17
- package/scripts/test-transform.js +68 -56
- package/scripts/validate-agent-skill-compliance.js +8 -3
- package/scripts/validate-counts.js +7 -34
- package/scripts/validate-opencode-install.js +29 -17
- package/site/assets/css/main.css +1525 -0
- package/site/assets/css/tokens.css +493 -0
- package/site/assets/favicon.svg +23 -0
- package/site/assets/js/main.js +801 -0
- package/site/assets/logo.png +0 -0
- package/site/assets/og-image.html +163 -0
- package/site/content.json +291 -0
- package/site/index.html +698 -0
- package/site/ux-spec.md +683 -0
- 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
|
|
26
|
+
cross_platform = false # Intentional - we document all 3 platform paths
|
|
26
27
|
agents_md = true
|
|
27
|
-
copilot = false
|
|
28
|
-
cursor = false
|
|
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
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
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": "
|
|
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.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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
}
|
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
|
|
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
|
-
-
|
|
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
|
|
109
|
-
|
|
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
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="site/assets/logo.png" alt="awesome-slash" width="120">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
[](https://www.npmjs.com/package/awesome-slash)
|
|
5
|
-
[](https://github.com/avifenesh/awesome-slash/actions/workflows/ci.yml)
|
|
6
|
-
[](https://github.com/avifenesh/awesome-slash/stargazers)
|
|
7
|
-
[](https://opensource.org/licenses/MIT)
|
|
5
|
+
<h1 align="center">awesome-slash</h1>
|
|
8
6
|
|
|
9
|
-
|
|
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
|
-
|
|
28
|
+
---
|
|
12
29
|
|
|
13
|
-
|
|
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
|
-
|
|
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
|
|
91
|
-
| [Skills](#skills) |
|
|
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
|
-
//
|
|
223
|
-
const plugins =
|
|
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:
|
|
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 =
|
|
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:
|
|
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
|
-
//
|
|
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
|
-
|
|
391
|
-
content = content.replace(
|
|
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 =
|
|
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:
|
|
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
|
-
//
|
|
731
|
-
|
|
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);
|