awesome-slash 2.4.4 → 2.5.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 (151) hide show
  1. package/.claude-plugin/marketplace.json +6 -6
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +123 -1
  4. package/README.md +186 -159
  5. package/SECURITY.md +25 -81
  6. package/adapters/codex/install.sh +58 -16
  7. package/adapters/opencode/install.sh +92 -23
  8. package/lib/index.js +47 -4
  9. package/lib/patterns/review-patterns.js +58 -11
  10. package/lib/patterns/slop-patterns.js +154 -147
  11. package/lib/platform/detect-platform.js +99 -350
  12. package/lib/platform/detection-configs.js +93 -0
  13. package/lib/platform/state-dir.js +122 -0
  14. package/lib/platform/verify-tools.js +10 -78
  15. package/lib/schemas/README.md +195 -0
  16. package/lib/schemas/validator.js +247 -0
  17. package/lib/sources/custom-handler.js +199 -0
  18. package/lib/sources/policy-questions.js +239 -0
  19. package/lib/sources/source-cache.js +164 -0
  20. package/lib/state/workflow-state.js +368 -665
  21. package/lib/types/README.md +292 -0
  22. package/lib/types/agent-frontmatter.d.ts +134 -0
  23. package/lib/types/command-frontmatter.d.ts +107 -0
  24. package/lib/types/hook-frontmatter.d.ts +115 -0
  25. package/lib/types/index.d.ts +84 -0
  26. package/lib/types/plugin-manifest.d.ts +102 -0
  27. package/lib/types/skill-frontmatter.d.ts +89 -0
  28. package/lib/utils/cache-manager.js +154 -0
  29. package/lib/utils/context-optimizer.js +5 -36
  30. package/lib/utils/deprecation.js +37 -0
  31. package/lib/utils/shell-escape.js +88 -0
  32. package/mcp-server/index.js +513 -22
  33. package/package.json +6 -2
  34. package/plugins/deslop-around/.claude-plugin/plugin.json +1 -1
  35. package/plugins/deslop-around/lib/index.js +170 -0
  36. package/plugins/deslop-around/lib/patterns/review-patterns.js +58 -11
  37. package/plugins/deslop-around/lib/patterns/slop-patterns.js +169 -129
  38. package/plugins/deslop-around/lib/platform/detect-platform.js +162 -316
  39. package/plugins/deslop-around/lib/platform/detection-configs.js +93 -0
  40. package/plugins/deslop-around/lib/platform/state-dir.js +122 -0
  41. package/plugins/deslop-around/lib/platform/verify-tools.js +10 -78
  42. package/plugins/deslop-around/lib/schemas/README.md +195 -0
  43. package/plugins/deslop-around/lib/schemas/validator.js +247 -0
  44. package/plugins/deslop-around/lib/sources/custom-handler.js +199 -0
  45. package/plugins/deslop-around/lib/sources/policy-questions.js +239 -0
  46. package/plugins/deslop-around/lib/sources/source-cache.js +164 -0
  47. package/plugins/deslop-around/lib/state/workflow-state.js +387 -484
  48. package/plugins/deslop-around/lib/types/README.md +292 -0
  49. package/plugins/deslop-around/lib/types/agent-frontmatter.d.ts +134 -0
  50. package/plugins/deslop-around/lib/types/command-frontmatter.d.ts +107 -0
  51. package/plugins/deslop-around/lib/types/hook-frontmatter.d.ts +115 -0
  52. package/plugins/deslop-around/lib/types/index.d.ts +84 -0
  53. package/plugins/deslop-around/lib/types/plugin-manifest.d.ts +102 -0
  54. package/plugins/deslop-around/lib/types/skill-frontmatter.d.ts +89 -0
  55. package/plugins/deslop-around/lib/utils/cache-manager.js +154 -0
  56. package/plugins/deslop-around/lib/utils/context-optimizer.js +115 -37
  57. package/plugins/deslop-around/lib/utils/deprecation.js +37 -0
  58. package/plugins/deslop-around/lib/utils/shell-escape.js +88 -0
  59. package/plugins/next-task/.claude-plugin/plugin.json +1 -1
  60. package/plugins/next-task/agents/delivery-validator.md +2 -2
  61. package/plugins/next-task/agents/implementation-agent.md +3 -4
  62. package/plugins/next-task/agents/planning-agent.md +77 -19
  63. package/plugins/next-task/agents/review-orchestrator.md +21 -122
  64. package/plugins/next-task/agents/task-discoverer.md +164 -23
  65. package/plugins/next-task/commands/next-task.md +180 -14
  66. package/plugins/next-task/lib/index.js +170 -0
  67. package/plugins/next-task/lib/patterns/review-patterns.js +58 -11
  68. package/plugins/next-task/lib/patterns/slop-patterns.js +169 -129
  69. package/plugins/next-task/lib/platform/detect-platform.js +162 -316
  70. package/plugins/next-task/lib/platform/detection-configs.js +93 -0
  71. package/plugins/next-task/lib/platform/state-dir.js +122 -0
  72. package/plugins/next-task/lib/platform/verify-tools.js +10 -78
  73. package/plugins/next-task/lib/schemas/README.md +195 -0
  74. package/plugins/next-task/lib/schemas/validator.js +247 -0
  75. package/plugins/next-task/lib/sources/custom-handler.js +199 -0
  76. package/plugins/next-task/lib/sources/policy-questions.js +239 -0
  77. package/plugins/next-task/lib/sources/source-cache.js +164 -0
  78. package/plugins/next-task/lib/state/workflow-state.js +387 -484
  79. package/plugins/next-task/lib/types/README.md +292 -0
  80. package/plugins/next-task/lib/types/agent-frontmatter.d.ts +134 -0
  81. package/plugins/next-task/lib/types/command-frontmatter.d.ts +107 -0
  82. package/plugins/next-task/lib/types/hook-frontmatter.d.ts +115 -0
  83. package/plugins/next-task/lib/types/index.d.ts +84 -0
  84. package/plugins/next-task/lib/types/plugin-manifest.d.ts +102 -0
  85. package/plugins/next-task/lib/types/skill-frontmatter.d.ts +89 -0
  86. package/plugins/next-task/lib/utils/cache-manager.js +154 -0
  87. package/plugins/next-task/lib/utils/context-optimizer.js +115 -37
  88. package/plugins/next-task/lib/utils/deprecation.js +37 -0
  89. package/plugins/next-task/lib/utils/shell-escape.js +88 -0
  90. package/plugins/project-review/.claude-plugin/plugin.json +1 -1
  91. package/plugins/project-review/lib/index.js +170 -0
  92. package/plugins/project-review/lib/patterns/review-patterns.js +58 -11
  93. package/plugins/project-review/lib/patterns/slop-patterns.js +169 -129
  94. package/plugins/project-review/lib/platform/detect-platform.js +162 -316
  95. package/plugins/project-review/lib/platform/detection-configs.js +93 -0
  96. package/plugins/project-review/lib/platform/state-dir.js +122 -0
  97. package/plugins/project-review/lib/platform/verify-tools.js +10 -78
  98. package/plugins/project-review/lib/schemas/README.md +195 -0
  99. package/plugins/project-review/lib/schemas/validator.js +247 -0
  100. package/plugins/project-review/lib/sources/custom-handler.js +199 -0
  101. package/plugins/project-review/lib/sources/policy-questions.js +239 -0
  102. package/plugins/project-review/lib/sources/source-cache.js +164 -0
  103. package/plugins/project-review/lib/state/workflow-state.js +387 -484
  104. package/plugins/project-review/lib/types/README.md +292 -0
  105. package/plugins/project-review/lib/types/agent-frontmatter.d.ts +134 -0
  106. package/plugins/project-review/lib/types/command-frontmatter.d.ts +107 -0
  107. package/plugins/project-review/lib/types/hook-frontmatter.d.ts +115 -0
  108. package/plugins/project-review/lib/types/index.d.ts +84 -0
  109. package/plugins/project-review/lib/types/plugin-manifest.d.ts +102 -0
  110. package/plugins/project-review/lib/types/skill-frontmatter.d.ts +89 -0
  111. package/plugins/project-review/lib/utils/cache-manager.js +154 -0
  112. package/plugins/project-review/lib/utils/context-optimizer.js +115 -37
  113. package/plugins/project-review/lib/utils/deprecation.js +37 -0
  114. package/plugins/project-review/lib/utils/shell-escape.js +88 -0
  115. package/plugins/reality-check/.claude-plugin/plugin.json +1 -1
  116. package/plugins/reality-check/agents/code-explorer.md +1 -1
  117. package/plugins/ship/.claude-plugin/plugin.json +1 -1
  118. package/plugins/ship/lib/index.js +170 -0
  119. package/plugins/ship/lib/patterns/review-patterns.js +58 -11
  120. package/plugins/ship/lib/patterns/slop-patterns.js +169 -129
  121. package/plugins/ship/lib/platform/detect-platform.js +162 -316
  122. package/plugins/ship/lib/platform/detection-configs.js +93 -0
  123. package/plugins/ship/lib/platform/state-dir.js +122 -0
  124. package/plugins/ship/lib/platform/verify-tools.js +10 -78
  125. package/plugins/ship/lib/schemas/README.md +195 -0
  126. package/plugins/ship/lib/schemas/validator.js +247 -0
  127. package/plugins/ship/lib/sources/custom-handler.js +199 -0
  128. package/plugins/ship/lib/sources/policy-questions.js +239 -0
  129. package/plugins/ship/lib/sources/source-cache.js +164 -0
  130. package/plugins/ship/lib/state/workflow-state.js +387 -484
  131. package/plugins/ship/lib/types/README.md +292 -0
  132. package/plugins/ship/lib/types/agent-frontmatter.d.ts +134 -0
  133. package/plugins/ship/lib/types/command-frontmatter.d.ts +107 -0
  134. package/plugins/ship/lib/types/hook-frontmatter.d.ts +115 -0
  135. package/plugins/ship/lib/types/index.d.ts +84 -0
  136. package/plugins/ship/lib/types/plugin-manifest.d.ts +102 -0
  137. package/plugins/ship/lib/types/skill-frontmatter.d.ts +89 -0
  138. package/plugins/ship/lib/utils/cache-manager.js +154 -0
  139. package/plugins/ship/lib/utils/context-optimizer.js +115 -37
  140. package/plugins/ship/lib/utils/deprecation.js +37 -0
  141. package/plugins/ship/lib/utils/shell-escape.js +88 -0
  142. package/scripts/install/codex.sh +216 -72
  143. package/scripts/install/opencode.sh +197 -21
  144. package/lib/state/workflow-state.schema.json +0 -282
  145. package/plugins/deslop-around/lib/state/workflow-state.schema.json +0 -282
  146. package/plugins/next-task/agents/policy-selector.md +0 -248
  147. package/plugins/next-task/lib/state/tasks-registry.schema.json +0 -85
  148. package/plugins/next-task/lib/state/workflow-state.schema.json +0 -282
  149. package/plugins/next-task/lib/state/worktree-status.schema.json +0 -219
  150. package/plugins/project-review/lib/state/workflow-state.schema.json +0 -282
  151. package/plugins/ship/lib/state/workflow-state.schema.json +0 -282
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Deprecation Warning Utility
3
+ * Centralized utility for handling deprecation warnings across the codebase
4
+ *
5
+ * @author Avi Fenesh
6
+ * @license MIT
7
+ */
8
+
9
+ // Track which functions have already shown deprecation warnings (once per function)
10
+ const _deprecationWarned = new Set();
11
+
12
+ /**
13
+ * Show deprecation warning for sync functions (once per function name)
14
+ * @param {string} funcName - Name of the deprecated sync function
15
+ * @param {string} asyncAlt - Name of the async alternative
16
+ */
17
+ function warnDeprecation(funcName, asyncAlt) {
18
+ if (_deprecationWarned.has(funcName)) return;
19
+ _deprecationWarned.add(funcName);
20
+ console.warn(
21
+ `DEPRECATED: ${funcName}() is synchronous and blocks the event loop. ` +
22
+ `Use ${asyncAlt}() instead. Will be removed in v3.0.0.`
23
+ );
24
+ }
25
+
26
+ /**
27
+ * Reset deprecation warnings (for testing only)
28
+ * @private
29
+ */
30
+ function _resetDeprecationWarnings() {
31
+ _deprecationWarned.clear();
32
+ }
33
+
34
+ module.exports = {
35
+ warnDeprecation,
36
+ _resetDeprecationWarnings
37
+ };
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Shell Escaping Utilities
3
+ * Centralized string escaping functions for safe shell command construction
4
+ *
5
+ * @module lib/utils/shell-escape
6
+ * @author Avi Fenesh
7
+ * @license MIT
8
+ */
9
+
10
+ /**
11
+ * Escape shell special characters for safe command interpolation
12
+ * Handles all dangerous shell metacharacters including command injection vectors
13
+ * Optimized: uses single regex test instead of multiple .includes() calls
14
+ * @param {string} str - String to escape
15
+ * @returns {string} Escaped string safe for shell use
16
+ * @throws {Error} If string contains null bytes or newlines
17
+ */
18
+ function escapeShell(str) {
19
+ if (typeof str !== 'string') return '';
20
+
21
+ // Reject null bytes and newlines which could be used for injection
22
+ // Optimized: single regex test instead of 3 separate .includes() scans
23
+ // Use \x00 instead of \0 for better portability across JS engines
24
+ if (/[\x00\n\r]/.test(str)) {
25
+ throw new Error('Input contains invalid characters (null bytes or newlines)');
26
+ }
27
+
28
+ // Escape all shell metacharacters: " $ ` \ ! ; | & > < ( ) { } [ ] * ? ~ # ' space tab
29
+ return str.replace(/["\$`\\!;|&><(){}[\]*?~#'\s]/g, '\\$&');
30
+ }
31
+
32
+ /**
33
+ * Escape single quotes for shell (replace ' with '\''
34
+ * Use this for strings that will be wrapped in single quotes
35
+ * @param {string} str - String to escape
36
+ * @returns {string} Escaped string safe for single-quoted shell use
37
+ */
38
+ function escapeSingleQuotes(str) {
39
+ if (typeof str !== 'string') return '';
40
+ return str.replace(/'/g, "'\\''");
41
+ }
42
+
43
+ /**
44
+ * Validate and sanitize file extension
45
+ * Removes all non-alphanumeric characters
46
+ * @param {string} ext - Extension to validate
47
+ * @returns {string} Safe extension (alphanumeric only), defaults to 'ts' if empty
48
+ */
49
+ function sanitizeExtension(ext) {
50
+ if (typeof ext !== 'string') return 'ts';
51
+ const safe = ext.replace(/[^a-zA-Z0-9]/g, '');
52
+ return safe || 'ts';
53
+ }
54
+
55
+ /**
56
+ * Escape a string for use in a double-quoted shell context
57
+ * More permissive than escapeShell but still safe
58
+ * @param {string} str - String to escape
59
+ * @returns {string} Escaped string safe for double-quoted shell use
60
+ */
61
+ function escapeDoubleQuotes(str) {
62
+ if (typeof str !== 'string') return '';
63
+
64
+ // In double quotes, we need to escape: $ ` " \ and newlines
65
+ return str.replace(/[$`"\\\n]/g, '\\$&');
66
+ }
67
+
68
+ /**
69
+ * Quote a string for safe shell use
70
+ * Wraps in single quotes and escapes any embedded single quotes
71
+ * This is often safer than escapeShell for complex strings
72
+ * @param {string} str - String to quote
73
+ * @returns {string} Safely quoted string
74
+ */
75
+ function quoteShell(str) {
76
+ if (typeof str !== 'string') return "''";
77
+
78
+ // Wrap in single quotes and escape any embedded single quotes
79
+ return "'" + str.replace(/'/g, "'\\''") + "'";
80
+ }
81
+
82
+ module.exports = {
83
+ escapeShell,
84
+ escapeSingleQuotes,
85
+ sanitizeExtension,
86
+ escapeDoubleQuotes,
87
+ quoteShell
88
+ };
@@ -4,8 +4,18 @@
4
4
 
5
5
  set -e
6
6
 
7
- SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
- PLUGIN_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
7
+ # Detect plugin root - works whether run directly or via bash -c
8
+ if [ -n "${BASH_SOURCE[0]}" ] && [ -f "${BASH_SOURCE[0]}" ]; then
9
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
10
+ PLUGIN_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
11
+ elif [ -f "scripts/install/codex.sh" ]; then
12
+ PLUGIN_ROOT="$(pwd)"
13
+ elif [ -f "package.json" ] && grep -q "awesome-slash" package.json 2>/dev/null; then
14
+ PLUGIN_ROOT="$(pwd)"
15
+ else
16
+ echo "Error: Cannot detect plugin root. Run from the awesome-slash directory."
17
+ exit 1
18
+ fi
9
19
 
10
20
  echo "Installing awesome-slash for Codex CLI..."
11
21
  echo "Plugin root: $PLUGIN_ROOT"
@@ -22,22 +32,56 @@ echo "Installing MCP server dependencies..."
22
32
  cd "$PLUGIN_ROOT/mcp-server"
23
33
  npm install --production
24
34
 
25
- # Add MCP server using codex mcp add command
35
+ # Configure MCP server in config.toml
26
36
  echo "Configuring MCP server..."
27
37
 
28
- # Remove existing awesome-slash MCP server if present
29
- codex mcp remove awesome-slash 2>/dev/null || true
38
+ CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
39
+ CONFIG_FILE="$CODEX_HOME/config.toml"
40
+
41
+ # Ensure config directory exists
42
+ mkdir -p "$CODEX_HOME"
43
+
44
+ # Create config file if it doesn't exist
45
+ if [ ! -f "$CONFIG_FILE" ]; then
46
+ touch "$CONFIG_FILE"
47
+ fi
48
+
49
+ # Backup existing config
50
+ cp "$CONFIG_FILE" "$CONFIG_FILE.backup"
30
51
 
31
- # Add the MCP server with environment variable
32
- codex mcp add awesome-slash \
33
- --env "PLUGIN_ROOT=$PLUGIN_ROOT" \
34
- -- node "$PLUGIN_ROOT/mcp-server/index.js"
52
+ # Remove existing awesome-slash MCP server section if present
53
+ if grep -q "\[mcp_servers.awesome-slash\]" "$CONFIG_FILE" 2>/dev/null; then
54
+ # Use sed to remove the section (from [mcp_servers.awesome-slash] to next section or EOF)
55
+ sed -i '/\[mcp_servers\.awesome-slash\]/,/^\[/{/^\[mcp_servers\.awesome-slash\]/d;/^\[/!d}' "$CONFIG_FILE"
56
+ # Clean up any trailing empty lines
57
+ sed -i '/^$/N;/^\n$/d' "$CONFIG_FILE"
58
+ fi
59
+
60
+ # Convert Git Bash path to Windows path for TOML
61
+ # /c/Users/... -> C:/Users/...
62
+ if [[ "$PLUGIN_ROOT" == /[a-z]/* ]]; then
63
+ DRIVE_LETTER=$(echo "$PLUGIN_ROOT" | cut -c2 | tr '[:lower:]' '[:upper:]')
64
+ PLUGIN_ROOT_WIN="${DRIVE_LETTER}:${PLUGIN_ROOT:2}"
65
+ else
66
+ PLUGIN_ROOT_WIN="$PLUGIN_ROOT"
67
+ fi
68
+ MCP_SERVER_PATH="$PLUGIN_ROOT_WIN/mcp-server/index.js"
69
+
70
+ # Append MCP server configuration
71
+ cat >> "$CONFIG_FILE" << EOF
72
+
73
+ [mcp_servers.awesome-slash]
74
+ command = "node"
75
+ args = ["$MCP_SERVER_PATH"]
76
+ env = { PLUGIN_ROOT = "$PLUGIN_ROOT_WIN", AI_STATE_DIR = ".codex" }
77
+ enabled = true
78
+ EOF
35
79
 
36
- echo "MCP server configured."
80
+ echo "MCP server configured in $CONFIG_FILE"
37
81
 
38
82
  # Create skills directory
39
- CODEX_CONFIG="${CODEX_CONFIG:-$HOME/.codex}"
40
- SKILLS_DIR="$CODEX_CONFIG/skills"
83
+ CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
84
+ SKILLS_DIR="$CODEX_HOME/skills"
41
85
 
42
86
  echo "Installing Codex skills..."
43
87
 
@@ -46,35 +90,48 @@ mkdir -p "$SKILLS_DIR/next-task"
46
90
  cat > "$SKILLS_DIR/next-task/SKILL.md" << 'EOF'
47
91
  ---
48
92
  name: next-task
49
- description: Master workflow orchestrator for task-to-production automation. Use when users want to find their next task, prioritize work, start a new workflow, or ask "what should I work on". Integrates with GitHub Issues, Linear, and PLAN.md for task discovery.
93
+ description: Master workflow orchestrator for task-to-production automation. Use this skill when users want to find their next task, prioritize work, start a new workflow, resume an interrupted workflow, or ask "what should I work on next". Integrates with GitHub Issues, Linear, and local task files for task discovery.
50
94
  ---
51
95
 
52
96
  # Next Task Workflow
53
97
 
54
98
  Find and implement the next priority task with full workflow automation.
55
99
 
56
- ## Capabilities
100
+ ## CRITICAL: Always Ask User First
101
+
102
+ **DO NOT auto-select options.** You MUST ask the user:
103
+
104
+ 1. First call `workflow_status` MCP tool to check for existing workflow
105
+ 2. If resumable, ASK: "Resume existing workflow or start fresh?"
106
+ 3. For new workflows, ASK user to choose:
107
+ - **Task Source**: GitHub Issues, GitLab, Local files, or Custom?
108
+ - **Priority Filter**: Bugs, Security, Features, or All?
109
+ - **Stopping Point**: PR created, Merged, or Deployed?
110
+
111
+ ## MCP Tools
57
112
 
58
- Use the awesome-slash MCP tools:
59
113
  - `workflow_status` - Check current workflow state
60
- - `workflow_start` - Start a new workflow
114
+ - `workflow_start` - Start workflow (params: taskSource, priorityFilter, stoppingPoint)
61
115
  - `workflow_resume` - Resume from checkpoint
62
116
  - `workflow_abort` - Cancel and cleanup
63
- - `task_discover` - Find and prioritize tasks
117
+ - `task_discover` - Find tasks (params: source, filter, limit)
64
118
 
65
- ## Workflow
119
+ ## Task Sources (ask user)
66
120
 
67
- 1. Check `workflow_status` for existing workflow
68
- 2. If none exists, use `workflow_start` to begin
69
- 3. Use `task_discover` to find priority tasks from configured source
70
- 4. Guide through task selection and implementation
71
- 5. Use `workflow_resume` if interrupted
121
+ - `gh-issues` - GitHub Issues
122
+ - `glab-issues` - GitLab Issues
123
+ - `tasks-md` - Local TASKS.md/PLAN.md/TODO.md
124
+ - `custom` - Custom file path
72
125
 
73
- ## Task Sources
126
+ ## Stopping Points (ask user)
74
127
 
75
- - GitHub Issues (default)
76
- - Linear issues
77
- - PLAN.md file
128
+ - `pr-created` - Stop after PR
129
+ - `merged` - Stop after merge
130
+ - `deployed` - Stop after deployment
131
+
132
+ ## State Directory
133
+
134
+ State stored in `.codex/` (flow.json, tasks.json)
78
135
  EOF
79
136
 
80
137
  # Create ship skill
@@ -82,31 +139,44 @@ mkdir -p "$SKILLS_DIR/ship"
82
139
  cat > "$SKILLS_DIR/ship/SKILL.md" << 'EOF'
83
140
  ---
84
141
  name: ship
85
- description: Complete PR workflow from commit to production with validation. Use when users want to ship code, create a PR, merge changes, or deploy. Handles commit, PR creation, CI monitoring, review, merge, and deployment.
142
+ description: Complete PR workflow from commit to production with validation. Use this skill when users want to ship code, create a pull request, merge changes, deploy to production, or finish their current work. Handles commit creation, PR creation, CI monitoring, code review, merge, and deployment validation.
86
143
  ---
87
144
 
88
145
  # Ship Workflow
89
146
 
90
147
  Complete PR workflow from commit to production.
91
148
 
92
- ## Capabilities
149
+ ## MCP Tools Available
93
150
 
94
- Use the awesome-slash MCP tools:
95
151
  - `workflow_status` - Check current state
96
- - `review_code` - Run multi-agent review
97
-
98
- ## Workflow
99
-
100
- 1. Stage and commit changes with AI-generated message
101
- 2. Create PR with context
102
- 3. Run `review_code` for multi-agent review
103
- 4. Monitor CI status
104
- 5. Merge when approved
105
- 6. Deploy if configured
106
-
107
- ## Platforms
108
-
109
- Supports: GitHub Actions, GitLab CI, CircleCI, Railway, Vercel, Netlify, Fly.io
152
+ - `review_code` - Run multi-agent code review
153
+
154
+ ## Workflow Instructions
155
+
156
+ 1. Check `workflow_status` for current state
157
+ 2. Stage and commit changes with a clear, descriptive message
158
+ 3. Create PR using `gh pr create` with context
159
+ 4. Run `review_code` MCP tool for multi-agent review
160
+ 5. Monitor CI status and fix any failures
161
+ 6. Merge when approved
162
+ 7. Validate deployment if configured
163
+
164
+ ## Supported Platforms
165
+
166
+ **CI Platforms:**
167
+ - GitHub Actions
168
+ - GitLab CI
169
+ - CircleCI
170
+ - Jenkins
171
+ - Travis CI
172
+
173
+ **Deployment Platforms:**
174
+ - Railway
175
+ - Vercel
176
+ - Netlify
177
+ - Fly.io
178
+ - Platform.sh
179
+ - Render
110
180
  EOF
111
181
 
112
182
  # Create review skill
@@ -114,30 +184,43 @@ mkdir -p "$SKILLS_DIR/review"
114
184
  cat > "$SKILLS_DIR/review/SKILL.md" << 'EOF'
115
185
  ---
116
186
  name: review
117
- description: Run multi-agent code review on changes. Use when users want to review code, check code quality, or run code analysis before committing or creating a PR.
187
+ description: Run multi-agent code review on changes. Use this skill when users want to review code, check code quality, run code analysis, find bugs, check for security issues, or validate changes before committing or creating a pull request.
118
188
  ---
119
189
 
120
190
  # Code Review
121
191
 
122
192
  Run multi-agent code review on changes.
123
193
 
124
- ## Capabilities
194
+ ## How To Run
125
195
 
126
- Use the awesome-slash MCP tools:
127
- - `review_code` - Run multi-agent review
196
+ **Step 1: Get files to review**
128
197
 
129
- ## Review Agents
198
+ If user provided files, use those. Otherwise get changed files:
199
+ ```bash
200
+ git diff --name-only HEAD
201
+ ```
130
202
 
131
- - Code quality analysis
132
- - Silent failure detection
133
- - Test coverage analysis
134
- - Security review
203
+ **Step 2: Call review_code MCP tool**
204
+ ```
205
+ review_code({ files: ["src/file1.ts", "src/file2.ts"] })
206
+ ```
135
207
 
136
- ## Usage
208
+ ## Review Checks
137
209
 
138
- Run `review_code` tool with the files to review.
139
- Auto-fixes critical and high severity issues.
140
- Reports medium and low severity for manual review.
210
+ - Console debugging statements (console.log, print, dbg!)
211
+ - TODO/FIXME comments
212
+ - Commented-out code
213
+ - Debugger statements
214
+ - Empty catch blocks
215
+ - TypeScript `any` types
216
+ - Hardcoded secrets
217
+
218
+ ## Default Behavior
219
+
220
+ If no files specified:
221
+ 1. Get changed files via `git diff --name-only HEAD`
222
+ 2. If no changes, ASK user: "Which files should I review?"
223
+ 3. Never review 0 files silently
141
224
  EOF
142
225
 
143
226
  # Create deslop skill
@@ -145,37 +228,98 @@ mkdir -p "$SKILLS_DIR/deslop"
145
228
  cat > "$SKILLS_DIR/deslop/SKILL.md" << 'EOF'
146
229
  ---
147
230
  name: deslop
148
- description: Clean AI slop from codebase - console.log statements, TODO comments, placeholder text, empty catch blocks, and other debugging artifacts. Use when users want to clean up code, remove debugging statements, or prepare code for production.
231
+ description: Clean AI slop from codebase. Use this skill when users want to clean up code, remove debugging statements, delete console.log calls, remove TODO comments, clean placeholder text, remove empty catch blocks, or prepare code for production by removing development artifacts.
149
232
  ---
150
233
 
151
234
  # Deslop - AI Slop Cleanup
152
235
 
153
- Remove debugging code, old TODOs, and AI-generated slop from codebase.
236
+ Remove debugging code, old TODOs, and AI-generated slop from the codebase.
237
+
238
+ ## How To Run
239
+
240
+ **Step 1: Get files to analyze**
241
+
242
+ If user provided a path, use that. Otherwise:
243
+ ```bash
244
+ # Get changed files (staged + unstaged)
245
+ git diff --name-only HEAD
246
+ # Or get all source files in a directory
247
+ find src -type f \( -name "*.ts" -o -name "*.js" -o -name "*.py" \)
248
+ ```
249
+
250
+ **Step 2: Call review_code MCP tool with files**
251
+ ```
252
+ review_code({ files: ["src/file1.ts", "src/file2.ts"] })
253
+ ```
254
+
255
+ **Step 3: Fix issues found**
256
+
257
+ Review findings by severity and apply fixes.
154
258
 
155
259
  ## Detection Patterns
156
260
 
157
- - Console debugging (console.log, print, dbg!)
261
+ - Console debugging (console.log, print(), dbg!())
158
262
  - Placeholder text (TODO, FIXME, lorem ipsum)
159
263
  - Empty catch blocks
160
- - Commented-out code
161
- - Magic numbers
162
- - Disabled linters
264
+ - Commented-out code blocks
265
+ - Disabled linters (eslint-disable, @ts-ignore)
266
+
267
+ ## Default Behavior
268
+
269
+ If no path specified:
270
+ 1. First check `git diff --name-only` for changed files
271
+ 2. If no changes, ASK user: "Which directory should I scan?"
272
+ 3. Never scan 0 files silently
273
+ EOF
274
+
275
+ # Create workflow-status skill for quick status checks
276
+ mkdir -p "$SKILLS_DIR/workflow-status"
277
+ cat > "$SKILLS_DIR/workflow-status/SKILL.md" << 'EOF'
278
+ ---
279
+ name: workflow-status
280
+ description: Check the current workflow status. Use this skill when users ask about current task status, workflow progress, what phase they're in, or want to see the state of their work.
281
+ ---
282
+
283
+ # Workflow Status
284
+
285
+ Quick check of the current workflow state.
163
286
 
164
- ## Usage
287
+ ## MCP Tools Available
165
288
 
166
- 1. Analyze codebase or specific files
167
- 2. Report issues found with severity
168
- 3. Apply fixes with verification when requested
289
+ - `workflow_status` - Get current workflow state
290
+
291
+ ## Instructions
292
+
293
+ Simply call the `workflow_status` MCP tool to retrieve:
294
+ - Current task being worked on
295
+ - Current workflow phase
296
+ - Resume capability
297
+ - PR status if applicable
298
+ - Last update timestamp
299
+
300
+ ## Status Information
301
+
302
+ The status includes:
303
+ - **task** - Current task title and ID
304
+ - **phase** - Current workflow phase (exploration, planning, implementation, etc.)
305
+ - **status** - Current status (in_progress, completed, failed)
306
+ - **pr** - Pull request number and URL if created
307
+ - **canResume** - Whether the workflow can be resumed
169
308
  EOF
170
309
 
171
310
  echo ""
172
311
  echo "✓ Installation complete!"
173
312
  echo ""
313
+ echo "Installed:"
314
+ echo " - MCP server: awesome-slash"
315
+ echo " - Skills: next-task, ship, review, deslop, workflow-status"
316
+ echo ""
174
317
  echo "Usage:"
175
- echo " 1. Start Codex: codex --enable skills"
176
- echo " 2. Skills available: \$next-task, \$ship, \$review, \$deslop"
177
- echo " 3. MCP tools: workflow_status, workflow_start, task_discover, review_code"
318
+ echo " 1. Start Codex: codex"
319
+ echo " 2. Skills are automatically selected based on your request"
320
+ echo " 3. Or invoke directly: \$next-task, \$ship, \$review, \$deslop"
321
+ echo " 4. MCP tools: workflow_status, workflow_start, task_discover, review_code"
178
322
  echo ""
179
323
  echo "To verify installation:"
180
- echo " codex mcp list"
181
- echo " ls ~/.codex/skills/"
324
+ echo " cat ~/.codex/config.toml # Check MCP server config"
325
+ echo " ls ~/.codex/skills/ # Check installed skills"