Compare commits

..

1 Commits

Author SHA1 Message Date
Claude
169035f902 Add superpowers plugin to marketplace
Adds the superpowers plugin which teaches Claude brainstorming, subagent driven development with built in code review, systematic debugging, and red/green TDD. Additionally teaches Claude how to author and test new skills.

Source: https://github.com/obra/superpowers.git
2026-01-07 02:13:38 +00:00
9 changed files with 29 additions and 297 deletions

View File

@@ -167,29 +167,6 @@
}
}
},
{
"name": "kotlin-lsp",
"description": "Kotlin language server for code intelligence",
"version": "1.0.0",
"author": {
"name": "Anthropic",
"email": "support@anthropic.com"
},
"source": "./plugins/kotlin-lsp",
"category": "development",
"strict": false,
"lspServers": {
"kotlin-lsp": {
"command": "kotlin-lsp",
"args": ["--stdio"],
"extensionToLanguage": {
".kt": "kotlin",
".kts": "kotlin"
},
"startupTimeout" : 120000
}
}
},
{
"name": "csharp-lsp",
"description": "C# language server for code intelligence",
@@ -317,28 +294,6 @@
"category": "productivity",
"homepage": "https://github.com/anthropics/claude-plugins-public/tree/main/plugins/code-review"
},
{
"name": "code-simplifier",
"description": "Agent that simplifies and refines code for clarity, consistency, and maintainability while preserving functionality. Focuses on recently modified code.",
"author": {
"name": "Anthropic",
"email": "support@anthropic.com"
},
"source": "./plugins/code-simplifier",
"category": "productivity",
"homepage": "https://github.com/anthropics/claude-plugins-official/tree/main/plugins/code-simplifier"
},
{
"name": "caffeinate",
"description": "Prevents blocking sleep commands by intercepting them and prompting Claude to use background execution instead. Keeps your session responsive during long-running operations.",
"author": {
"name": "Anthropic",
"email": "support@anthropic.com"
},
"source": "./plugins/caffeinate",
"category": "productivity",
"homepage": "https://github.com/anthropics/claude-plugins-official/tree/main/plugins/caffeinate"
},
{
"name": "explanatory-output-style",
"description": "Adds educational insights about implementation choices and codebase patterns (mimics the deprecated Explanatory output style)",
@@ -559,14 +514,14 @@
"homepage": "https://github.com/pinecone-io/pinecone-claude-code-plugin"
},
{
"name": "huggingface-skills",
"description": "Build, train, evaluate, and use open source AI models, datasets, and spaces.",
"name": "superpowers",
"description": "Superpowers teaches Claude brainstorming, subagent driven development with built in code review, systematic debugging, and red/green TDD. Additionally, it teaches Claude how to author and test new skills.",
"category": "development",
"source": {
"source": "url",
"url": "https://github.com/huggingface/skills.git"
"url": "https://github.com/obra/superpowers.git"
},
"homepage": "https://github.com/huggingface/skills.git"
"homepage": "https://github.com/obra/superpowers"
}
]
}

View File

@@ -13,35 +13,35 @@ jobs:
if: vars.DISABLE_EXTERNAL_PR_CHECK != 'true'
runs-on: ubuntu-latest
steps:
- name: Check if author has write access
- name: Check if author is org member
uses: actions/github-script@v7
with:
script: |
const org = 'anthropics';
const author = context.payload.pull_request.user.login;
const { data } = await github.rest.repos.getCollaboratorPermissionLevel({
owner: context.repo.owner,
repo: context.repo.repo,
username: author
});
try {
await github.rest.orgs.checkMembershipForUser({
org: org,
username: author
});
console.log(`${author} is an org member, allowing PR`);
} catch (e) {
if (e.status === 404) {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: `Thanks for your interest! This repo only accepts contributions from Anthropic team members. If you'd like to submit a plugin to the marketplace, please submit your plugin [here](https://docs.google.com/forms/d/e/1FAIpQLSdeFthxvjOXUjxg1i3KrOOkEPDJtn71XC-KjmQlxNP63xYydg/viewform).`
});
if (['admin', 'write'].includes(data.permission)) {
console.log(`${author} has ${data.permission} access, allowing PR`);
return;
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
state: 'closed'
});
console.log(`Closed PR from external contributor: ${author}`);
}
}
console.log(`${author} has ${data.permission} access, closing PR`);
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: `Thanks for your interest! This repo only accepts contributions from Anthropic team members. If you'd like to submit a plugin to the marketplace, please submit your plugin [here](https://docs.google.com/forms/d/e/1FAIpQLSdeFthxvjOXUjxg1i3KrOOkEPDJtn71XC-KjmQlxNP63xYydg/viewform).`
});
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.payload.pull_request.number,
state: 'closed'
});

View File

@@ -1,10 +0,0 @@
{
"name": "caffeinate",
"version": "0.1.0",
"description": "Blocks sleep commands and reminds Claude to use background tasks instead",
"author": {
"name": "Anthropic",
"email": "support@anthropic.com"
},
"keywords": ["productivity", "hooks", "bash", "background-tasks"]
}

View File

@@ -1,58 +0,0 @@
# Caffeinate
A Claude Code plugin that blocks `sleep` commands and reminds Claude to use background tasks instead.
## Purpose
When Claude uses `sleep` commands in Bash, it blocks the session unnecessarily. This plugin intercepts these commands and suggests using proper async patterns like:
- `run_in_background: true` parameter for long-running commands
- Polling for conditions instead of sleeping
- Proper async/background task patterns
## Installation
```bash
# From the plugin directory
claude --plugin-dir /path/to/caffeinate
```
Or copy to your project's `.claude-plugin/` directory.
## What Gets Blocked
| Command | Blocked? | Reason |
|---------|----------|--------|
| `sleep 5` | Yes | Direct sleep command |
| `sleep $TIMEOUT` | Yes | Sleep with variable |
| `echo "test" && sleep 5` | Yes | Sleep after separator, outside quotes |
| `cmd; sleep 10` | Yes | Sleep after semicolon |
| `echo "sleep 8 hours"` | No | Sleep is inside quotes (not a command) |
| `echo "foo && sleep 5"` | No | Entire sleep pattern is in a string |
## How It Works
The plugin uses a `PreToolUse` hook on the `Bash` tool to:
1. Check if commands start with `sleep`
2. Detect `sleep` after command separators (`&&`, `||`, `;`, `|`)
3. Use quote-counting to avoid false positives when `sleep` appears inside strings
## Alternatives to Sleep
Instead of:
```bash
sleep 5 && check_status
```
Use background execution:
```bash
# Run in background with run_in_background: true
long_running_command
```
Or poll for conditions:
```bash
# Poll for a file to exist
while [ ! -f /tmp/ready ]; do :; done
```

View File

@@ -1,17 +0,0 @@
{
"description": "Blocks sleep commands and reminds Claude to use background tasks",
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/scripts/check-sleep.sh",
"timeout": 5
}
]
}
]
}
}

View File

@@ -1,61 +0,0 @@
#!/bin/bash
# Caffeinate hook: Blocks sleep commands and suggests background tasks
set -euo pipefail
input=$(cat)
command=$(echo "$input" | jq -r '.tool_input.command // empty')
if [[ -z "$command" ]]; then
exit 0
fi
# Allow sleep if run_in_background is true - that's the whole point!
run_in_bg=$(echo "$input" | jq -r '.tool_input.run_in_background // false')
if [[ "$run_in_bg" == "true" ]]; then
exit 0
fi
block_message='ACTION REQUIRED: Your sleep command was blocked. You MUST now call Bash again with the SAME command but add the parameter run_in_background: true. Do this immediately in your next tool call. Do not explain or apologize - just retry with run_in_background: true.'
output_block() {
# Output JSON to stdout for blocking decision
# Output message to stderr to feed back to Claude
cat << EOF
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "deny",
"permissionDecisionReason": "$block_message"
}
}
EOF
exit 0
}
# Remove all quoted strings to avoid false positives
# Replace single and double quoted strings with placeholder
cmd_no_quotes=$(echo "$command" | sed -E "s/\"[^\"]*\"//g; s/'[^']*'//g")
# Check for sleep command patterns in the de-quoted command
# Pattern 1: Command starts with sleep
if [[ "$cmd_no_quotes" =~ (^|[[:space:]])sleep[[:space:]]+[0-9] ]]; then
output_block
fi
# Pattern 2: sleep after any common separator (&&, ||, ;, |, do, then)
if [[ "$cmd_no_quotes" =~ (\&\&|;\||[[:space:]]do[[:space:]]|[[:space:]]then[[:space:]])[[:space:]]*sleep[[:space:]] ]]; then
output_block
fi
# Pattern 3: Simple contains check - if "sleep " followed by number appears anywhere
if [[ "$cmd_no_quotes" =~ sleep[[:space:]]+[0-9] ]]; then
output_block
fi
# Pattern 4: sleep with variable like $TIMEOUT or ${DELAY}
if [[ "$cmd_no_quotes" =~ sleep[[:space:]]+\$ ]]; then
output_block
fi
# No sleep command detected - allow
exit 0

View File

@@ -1,9 +0,0 @@
{
"name": "code-simplifier",
"version": "1.0.0",
"description": "Agent that simplifies and refines code for clarity, consistency, and maintainability while preserving functionality",
"author": {
"name": "Anthropic",
"email": "support@anthropic.com"
}
}

View File

@@ -1,52 +0,0 @@
---
name: code-simplifier
description: Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Focuses on recently modified code unless instructed otherwise.
model: opus
---
You are an expert code simplification specialist focused on enhancing code clarity, consistency, and maintainability while preserving exact functionality. Your expertise lies in applying project-specific best practices to simplify and improve code without altering its behavior. You prioritize readable, explicit code over overly compact solutions. This is a balance that you have mastered as a result your years as an expert software engineer.
You will analyze recently modified code and apply refinements that:
1. **Preserve Functionality**: Never change what the code does - only how it does it. All original features, outputs, and behaviors must remain intact.
2. **Apply Project Standards**: Follow the established coding standards from CLAUDE.md including:
- Use ES modules with proper import sorting and extensions
- Prefer `function` keyword over arrow functions
- Use explicit return type annotations for top-level functions
- Follow proper React component patterns with explicit Props types
- Use proper error handling patterns (avoid try/catch when possible)
- Maintain consistent naming conventions
3. **Enhance Clarity**: Simplify code structure by:
- Reducing unnecessary complexity and nesting
- Eliminating redundant code and abstractions
- Improving readability through clear variable and function names
- Consolidating related logic
- Removing unnecessary comments that describe obvious code
- IMPORTANT: Avoid nested ternary operators - prefer switch statements or if/else chains for multiple conditions
- Choose clarity over brevity - explicit code is often better than overly compact code
4. **Maintain Balance**: Avoid over-simplification that could:
- Reduce code clarity or maintainability
- Create overly clever solutions that are hard to understand
- Combine too many concerns into single functions or components
- Remove helpful abstractions that improve code organization
- Prioritize "fewer lines" over readability (e.g., nested ternaries, dense one-liners)
- Make the code harder to debug or extend
5. **Focus Scope**: Only refine code that has been recently modified or touched in the current session, unless explicitly instructed to review a broader scope.
Your refinement process:
1. Identify the recently modified code sections
2. Analyze for opportunities to improve elegance and consistency
3. Apply project-specific best practices and coding standards
4. Ensure all functionality remains unchanged
5. Verify the refined code is simpler and more maintainable
6. Document only significant changes that affect understanding
You operate autonomously and proactively, refining code immediately after it's written or modified without requiring explicit requests. Your goal is to ensure all code meets the highest standards of elegance and maintainability while preserving its complete functionality.

View File

@@ -1,16 +0,0 @@
Kotlin language server for Claude Code, providing code intelligence, refactoring, and analysis.
## Supported Extensions
`.kt`
`.kts`
## Installation
Install the Kotlin LSP CLI.
```bash
brew install JetBrains/utils/kotlin-lsp
```
## More Information
- [kotlin LSP](https://github.com/Kotlin/kotlin-lsp)