Initial commit
This commit is contained in:
16
.claude-plugin/plugin.json
Normal file
16
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "web-to-github-issue",
|
||||
"description": "Enhances web_search Skill by automatically creating GitHub issues from research findings",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "Claude Code Plugins Team",
|
||||
"email": "hello@claudecodeplugins.io",
|
||||
"url": "https://claudecodeplugins.io"
|
||||
},
|
||||
"skills": [
|
||||
"./skills"
|
||||
],
|
||||
"commands": [
|
||||
"./commands"
|
||||
]
|
||||
}
|
||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# web-to-github-issue
|
||||
|
||||
Enhances web_search Skill by automatically creating GitHub issues from research findings
|
||||
103
commands/research-and-ticket.md
Normal file
103
commands/research-and-ticket.md
Normal file
@@ -0,0 +1,103 @@
|
||||
---
|
||||
name: research-and-ticket
|
||||
description: Research topic via web search and auto-create GitHub issue with findings
|
||||
aliases: [rat, ticket-research]
|
||||
---
|
||||
|
||||
# Research and Create GitHub Issue
|
||||
|
||||
This command enhances Claude's `web_search` Skill by automatically creating a GitHub issue from research findings.
|
||||
|
||||
## Usage
|
||||
|
||||
```bash
|
||||
# Basic usage (uses default repo from config)
|
||||
research-and-ticket <topic>
|
||||
|
||||
# Specify repository
|
||||
research-and-ticket <topic> --repo owner/repo
|
||||
|
||||
# Add custom labels
|
||||
research-and-ticket <topic> --labels security,urgent
|
||||
|
||||
# Assign to team members
|
||||
research-and-ticket <topic> --assignees user1,user2
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
### Technical Research
|
||||
```bash
|
||||
research-and-ticket "PostgreSQL indexing best practices"
|
||||
```
|
||||
|
||||
### Security Monitoring
|
||||
```bash
|
||||
research-and-ticket "React CVE vulnerabilities 2025" --labels security,urgent
|
||||
```
|
||||
|
||||
### Feature Investigation
|
||||
```bash
|
||||
research-and-ticket "Stripe payment features comparison" --labels feature-request
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Set your GitHub token:
|
||||
```bash
|
||||
export GITHUB_TOKEN=ghp_your_token_here
|
||||
```
|
||||
|
||||
Set default repository (optional):
|
||||
```bash
|
||||
# In your .env or shell profile
|
||||
export GITHUB_DEFAULT_REPO=owner/repo
|
||||
```
|
||||
|
||||
## What It Does
|
||||
|
||||
1. **Research Phase**: Uses Claude's `web_search` Skill to find relevant information
|
||||
2. **Analysis Phase**: Extracts key points, detects priority, identifies actionable items
|
||||
3. **Creation Phase**: Generates formatted GitHub issue with:
|
||||
- Research summary
|
||||
- Key findings with source links
|
||||
- Related topics
|
||||
- Next steps (if actionable)
|
||||
- All source references
|
||||
|
||||
## Output
|
||||
|
||||
The command creates a well-structured GitHub issue with:
|
||||
- **Title**: Auto-generated based on topic and priority
|
||||
- **Labels**: Research + custom labels + priority labels
|
||||
- **Body**: Markdown-formatted with sections for findings, sources, and next steps
|
||||
- **Links**: All source URLs preserved for reference
|
||||
|
||||
## Requirements
|
||||
|
||||
- Claude Code with web_search Skill enabled
|
||||
- GitHub Personal Access Token with `repo` scope
|
||||
- Node.js 18+ (for @octokit/rest dependency)
|
||||
|
||||
## Tips
|
||||
|
||||
- Use descriptive topics for better search results
|
||||
- Add `--labels` to help with issue organization
|
||||
- Review the created issue and edit if needed
|
||||
- Use `--assignees` to immediately assign to team members
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
**Error: GitHub token required**
|
||||
- Set `GITHUB_TOKEN` environment variable
|
||||
- Ensure token has `repo` scope
|
||||
|
||||
**Error: Repository not found**
|
||||
- Check repo format: `owner/repo`
|
||||
- Verify you have access to the repository
|
||||
- Ensure repository has issues enabled
|
||||
|
||||
**No search results found**
|
||||
- Try broader search terms
|
||||
- Check internet connectivity
|
||||
- Ensure web_search Skill is available
|
||||
73
plugin.lock.json
Normal file
73
plugin.lock.json
Normal file
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||
"pluginId": "gh:jeremylongshore/claude-code-plugins-plus:plugins/skill-enhancers/web-to-github-issue",
|
||||
"normalized": {
|
||||
"repo": null,
|
||||
"ref": "refs/tags/v20251128.0",
|
||||
"commit": "bc5c0f4ed57b48b35504df10fd27a911bb1ebb52",
|
||||
"treeHash": "7972b1f1420f9e763ace2f2f50f82a2cf60a0ce187e1f474ec293a6ed41bf028",
|
||||
"generatedAt": "2025-11-28T10:18:52.128376Z",
|
||||
"toolVersion": "publish_plugins.py@0.2.0"
|
||||
},
|
||||
"origin": {
|
||||
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||
"branch": "master",
|
||||
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||
},
|
||||
"manifest": {
|
||||
"name": "web-to-github-issue",
|
||||
"description": "Enhances web_search Skill by automatically creating GitHub issues from research findings",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"content": {
|
||||
"files": [
|
||||
{
|
||||
"path": "README.md",
|
||||
"sha256": "247f9114f77fbe1a74d492d9ae953d5aa9193bb8d2f28968ba48eb49404884a5"
|
||||
},
|
||||
{
|
||||
"path": ".claude-plugin/plugin.json",
|
||||
"sha256": "733a07d3b6e92b58fb5e2bc4f38eeb0406693b913771634b310f430fbd4a451d"
|
||||
},
|
||||
{
|
||||
"path": "commands/research-and-ticket.md",
|
||||
"sha256": "fbca7faa11e83bff8fefac03bfc521fde15c369e084adcaa378d9c5af1f7ad76"
|
||||
},
|
||||
{
|
||||
"path": "skills/web-to-github-issue/SKILL.md",
|
||||
"sha256": "ed7a8f60e0951a7bf7dcf22e6b68e42bf296f69a021c956a9e7b698007e331f7"
|
||||
},
|
||||
{
|
||||
"path": "skills/web-to-github-issue/references/README.md",
|
||||
"sha256": "0faf6833c5d453456872299563908f322d122e3214bfec499a2ddd574642be67"
|
||||
},
|
||||
{
|
||||
"path": "skills/web-to-github-issue/scripts/README.md",
|
||||
"sha256": "b8c0d97642e83c5f6db53c8841785837a255c109db347d48349efb74e814d37b"
|
||||
},
|
||||
{
|
||||
"path": "skills/web-to-github-issue/assets/README.md",
|
||||
"sha256": "1bea8d7666a9057f550de02d4f517a1b377aa354f2ba23ddba4866af1dd7d1da"
|
||||
},
|
||||
{
|
||||
"path": "skills/web-to-github-issue/assets/issue_template.md",
|
||||
"sha256": "cb347abdecfef3cc38c5e3be204ce8dd2f65589c21d76ddc05eef891926fac18"
|
||||
},
|
||||
{
|
||||
"path": "skills/web-to-github-issue/assets/example_search_results.json",
|
||||
"sha256": "9a01ef2ccebecf63994341dc3803b8e898125a78d1105220d7657fd48447ba6a"
|
||||
},
|
||||
{
|
||||
"path": "skills/web-to-github-issue/assets/config_template.json",
|
||||
"sha256": "e77bcb05a71d5124f5c4871bbbcb65abc39ea7aebd124ca2d137b3e81b552f2f"
|
||||
}
|
||||
],
|
||||
"dirSha256": "7972b1f1420f9e763ace2f2f50f82a2cf60a0ce187e1f474ec293a6ed41bf028"
|
||||
},
|
||||
"security": {
|
||||
"scannedAt": null,
|
||||
"scannerVersion": null,
|
||||
"flags": []
|
||||
}
|
||||
}
|
||||
54
skills/web-to-github-issue/SKILL.md
Normal file
54
skills/web-to-github-issue/SKILL.md
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
name: creating-github-issues-from-web-research
|
||||
description: |
|
||||
This skill enhances Claude's ability to conduct web research and translate findings into actionable GitHub issues. It automates the process of extracting key information from web search results and formatting it into a well-structured issue, ready for team action. Use this skill when you need to research a topic and create a corresponding GitHub issue for tracking, collaboration, and task management. Trigger this skill by requesting Claude to "research [topic] and create a ticket" or "find [information] and generate a GitHub issue".
|
||||
allowed-tools: Read, WebFetch, WebSearch, Grep
|
||||
version: 1.0.0
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
This skill empowers Claude to streamline the research-to-implementation workflow. By integrating web search with GitHub issue creation, Claude can efficiently convert research findings into trackable tasks for development teams.
|
||||
|
||||
## How It Works
|
||||
|
||||
1. **Web Search**: Claude utilizes its web search capabilities to gather information on the specified topic.
|
||||
2. **Information Extraction**: The plugin extracts relevant details, key findings, and supporting evidence from the search results.
|
||||
3. **GitHub Issue Creation**: A new GitHub issue is created with a clear title, a summary of the research, key recommendations, and links to the original sources.
|
||||
|
||||
## When to Use This Skill
|
||||
|
||||
This skill activates when you need to:
|
||||
- Investigate a technical topic and create an implementation ticket.
|
||||
- Track security vulnerabilities and generate a security issue with remediation steps.
|
||||
- Research competitor features and create a feature request ticket.
|
||||
|
||||
## Examples
|
||||
|
||||
### Example 1: Researching Security Best Practices
|
||||
|
||||
User request: "research Docker security best practices and create a ticket in myorg/backend"
|
||||
|
||||
The skill will:
|
||||
1. Search the web for Docker security best practices.
|
||||
2. Extract key recommendations, security vulnerabilities, and mitigation strategies.
|
||||
3. Create a GitHub issue in the specified repository with a summary of the findings, a checklist of best practices, and links to relevant resources.
|
||||
|
||||
### Example 2: Investigating API Rate Limiting
|
||||
|
||||
User request: "find articles about API rate limiting, create issue with label performance"
|
||||
|
||||
The skill will:
|
||||
1. Search the web for articles and documentation on API rate limiting.
|
||||
2. Extract different rate limiting techniques, their pros and cons, and implementation examples.
|
||||
3. Create a GitHub issue with the "performance" label, summarizing the findings and providing links to the source articles.
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Specify Repository**: When creating issues for a specific project, explicitly mention the repository name to ensure the issue is created in the correct location.
|
||||
- **Use Labels**: Add relevant labels to the issue to categorize it appropriately and facilitate issue tracking.
|
||||
- **Provide Context**: Include sufficient context in your request to guide the web search and ensure the generated issue contains the most relevant information.
|
||||
|
||||
## Integration
|
||||
|
||||
This skill seamlessly integrates with Claude's web search Skill and requires authentication with a GitHub account. It can be used in conjunction with other skills to further automate development workflows.
|
||||
7
skills/web-to-github-issue/assets/README.md
Normal file
7
skills/web-to-github-issue/assets/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Assets
|
||||
|
||||
Bundled resources for web-to-github-issue skill
|
||||
|
||||
- [ ] issue_template.md: Markdown template for generating GitHub issues with predefined sections and formatting.
|
||||
- [ ] example_search_results.json: Example JSON data representing web search results, used for testing and demonstration purposes.
|
||||
- [ ] config_template.json: Template for the configuration file, including placeholders for API keys and other settings.
|
||||
59
skills/web-to-github-issue/assets/config_template.json
Normal file
59
skills/web-to-github-issue/assets/config_template.json
Normal file
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"_comment": "Configuration template for the web-to-github-issue plugin.",
|
||||
"plugin_name": "web-to-github-issue",
|
||||
"github": {
|
||||
"_comment": "GitHub API settings",
|
||||
"api_url": "https://api.github.com",
|
||||
"owner": "your-github-username",
|
||||
"repo": "your-github-repo",
|
||||
"api_token": "YOUR_GITHUB_API_TOKEN",
|
||||
"_comment": "Token with 'repo' scope is required.",
|
||||
"default_labels": [
|
||||
"claude-generated",
|
||||
"web-research"
|
||||
],
|
||||
"_comment": "Default labels to apply to created issues. Can be overridden in the prompt.",
|
||||
"default_assignees": [
|
||||
"your-github-username"
|
||||
],
|
||||
"_comment": "Default assignees for created issues. Can be overridden in the prompt."
|
||||
},
|
||||
"issue_template": {
|
||||
"_comment": "Template for the issue body. Use placeholders like {{title}}, {{summary}}, {{url}}.",
|
||||
"title": "Research Finding: {{title}}",
|
||||
"body": "## Summary\n{{summary}}\n\n## Source URL\n{{url}}\n\n---\nThis issue was automatically generated by Claude based on web research."
|
||||
},
|
||||
"web_search": {
|
||||
"_comment": "Settings related to web search and content extraction.",
|
||||
"max_summary_length": 500,
|
||||
"_comment": "Maximum length of the summary extracted from the web page (characters).",
|
||||
"content_selector": "article, main, .content",
|
||||
"_comment": "CSS selectors to extract main content from the webpage. Try different selectors to improve results.",
|
||||
"request_timeout": 15,
|
||||
"_comment": "Timeout for web requests in seconds."
|
||||
},
|
||||
"error_handling": {
|
||||
"_comment": "Settings for handling errors during issue creation.",
|
||||
"log_errors": true,
|
||||
"_comment": "Whether to log errors to a file or console.",
|
||||
"error_notification_channel": null,
|
||||
"_comment": "Optional Slack channel or email address to send error notifications to."
|
||||
},
|
||||
"rate_limiting": {
|
||||
"_comment": "Settings to prevent exceeding GitHub API rate limits.",
|
||||
"requests_per_minute": 30,
|
||||
"_comment": "Maximum number of requests to GitHub API per minute.",
|
||||
"retry_on_rate_limit": true,
|
||||
"_comment": "Whether to retry requests if rate limited."
|
||||
},
|
||||
"security": {
|
||||
"_comment": "Security configurations to protect sensitive information.",
|
||||
"sanitize_html": true,
|
||||
"_comment": "Whether to sanitize HTML content before including it in the issue body.",
|
||||
"allowed_domains": [
|
||||
"example.com",
|
||||
"github.com"
|
||||
],
|
||||
"_comment": "List of allowed domains to fetch content from. Prevents fetching content from untrusted sources."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"_comment": "Example JSON data representing web search results for the web-to-github-issue plugin.",
|
||||
"query": "CVE-2023-45678 vulnerability analysis",
|
||||
"results": [
|
||||
{
|
||||
"_comment": "First search result",
|
||||
"title": "Detailed Analysis of CVE-2023-45678: Critical Vulnerability in OpenSSL",
|
||||
"url": "https://example.com/cve-2023-45678-analysis",
|
||||
"snippet": "This article provides a comprehensive analysis of CVE-2023-45678, a critical vulnerability affecting OpenSSL versions 1.1.1 and 3.0.x. It details the vulnerability's impact, affected systems, and potential remediation steps. Includes proof-of-concept exploit code.",
|
||||
"metadata": {
|
||||
"source": "Security Blog",
|
||||
"date": "2023-11-15"
|
||||
},
|
||||
"relevance_score": 0.95
|
||||
},
|
||||
{
|
||||
"_comment": "Second search result",
|
||||
"title": "NIST NVD - CVE-2023-45678",
|
||||
"url": "https://nvd.nist.gov/vuln/detail/CVE-2023-45678",
|
||||
"snippet": "NIST's National Vulnerability Database entry for CVE-2023-45678. Provides a description of the vulnerability, affected software, and CVSS score.",
|
||||
"metadata": {
|
||||
"source": "NIST",
|
||||
"date": "2023-11-10"
|
||||
},
|
||||
"relevance_score": 0.90
|
||||
},
|
||||
{
|
||||
"_comment": "Third search result",
|
||||
"title": "GitHub Repository: Proof-of-Concept Exploit for CVE-2023-45678",
|
||||
"url": "https://github.com/exploits/cve-2023-45678",
|
||||
"snippet": "A public GitHub repository containing a proof-of-concept exploit for CVE-2023-45678. Use with caution.",
|
||||
"metadata": {
|
||||
"source": "GitHub",
|
||||
"date": "2023-11-12"
|
||||
},
|
||||
"relevance_score": 0.85
|
||||
},
|
||||
{
|
||||
"_comment": "Fourth search result",
|
||||
"title": "OpenSSL Security Advisory - CVE-2023-45678",
|
||||
"url": "https://openssl.org/news/secadv/20231108.txt",
|
||||
"snippet": "Official security advisory from OpenSSL regarding CVE-2023-45678. Includes information on affected versions and remediation.",
|
||||
"metadata": {
|
||||
"source": "OpenSSL",
|
||||
"date": "2023-11-08"
|
||||
},
|
||||
"relevance_score": 0.92
|
||||
},
|
||||
{
|
||||
"_comment": "Fifth search result - less relevant",
|
||||
"title": "Discussion Forum on OpenSSL Security",
|
||||
"url": "https://example.com/forum/openssl-security",
|
||||
"snippet": "A general discussion forum about OpenSSL security topics. Mentions recent vulnerabilities.",
|
||||
"metadata": {
|
||||
"source": "Security Forum",
|
||||
"date": "2023-11-16"
|
||||
},
|
||||
"relevance_score": 0.60
|
||||
}
|
||||
]
|
||||
}
|
||||
69
skills/web-to-github-issue/assets/issue_template.md
Normal file
69
skills/web-to-github-issue/assets/issue_template.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# GitHub Issue: Web Research Findings
|
||||
|
||||
This issue was automatically generated from web research conducted by Claude. Please review and fill in the missing details.
|
||||
|
||||
## Summary
|
||||
|
||||
[**Briefly summarize the issue here. What problem does this issue address? What is the desired outcome?**]
|
||||
|
||||
*Example: "Improve website loading speed by optimizing image sizes."*
|
||||
|
||||
## Web Research Context
|
||||
|
||||
[**Paste the relevant context from the web research conducted by Claude. This might include snippets of text, links to specific pages, or summaries of research findings.**]
|
||||
|
||||
*Example:*
|
||||
|
||||
>*"According to [website link], large image files are a common cause of slow loading times. The website recommends using optimized image formats like WebP and compressing images before uploading."*
|
||||
|
||||
>*"Google's PageSpeed Insights tool ([link to PageSpeed Insights]) reports that our website's images are not optimized and contribute significantly to the overall loading time."*
|
||||
|
||||
## Proposed Solution
|
||||
|
||||
[**Describe the proposed solution based on the web research. Be specific and actionable.**]
|
||||
|
||||
*Example: "Implement image optimization techniques, including converting images to WebP format, compressing images using tools like ImageOptim, and using responsive images to serve appropriately sized images for different devices."*
|
||||
|
||||
## Steps to Reproduce
|
||||
|
||||
[**If applicable, provide steps to reproduce the problem or verify the solution.**]
|
||||
|
||||
*Example:*
|
||||
|
||||
1. *Visit the website [website link] on a mobile device.*
|
||||
2. *Observe the loading time of the page.*
|
||||
3. *Compare the loading time before and after implementing image optimization techniques.*
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
[**Define the criteria that must be met for the issue to be considered resolved.**]
|
||||
|
||||
*Example:*
|
||||
|
||||
* *Website loading time (as measured by Google PageSpeed Insights) is reduced by at least 20%.*
|
||||
* *Images are optimized for web and mobile devices without significant loss of quality.*
|
||||
* *WebP format is used for all new images uploaded to the website.*
|
||||
|
||||
## Relevant URLs
|
||||
|
||||
[**List any relevant URLs that are related to the issue or the proposed solution.**]
|
||||
|
||||
*Example:*
|
||||
|
||||
* *[Website Link]*
|
||||
* *[Link to Google PageSpeed Insights]*
|
||||
* *[Link to Image Optimization Tool]*
|
||||
|
||||
## Additional Notes
|
||||
|
||||
[**Include any additional information or context that may be helpful.**]
|
||||
|
||||
*Example: "This issue is related to the ongoing project to improve website performance. Ensure that all changes are thoroughly tested before being deployed to production."*
|
||||
|
||||
## Assignee
|
||||
|
||||
[**Assign this issue to the appropriate person or team.**]
|
||||
|
||||
## Labels
|
||||
|
||||
[**Add relevant labels to categorize the issue (e.g., "performance," "optimization," "image").**]
|
||||
7
skills/web-to-github-issue/references/README.md
Normal file
7
skills/web-to-github-issue/references/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# References
|
||||
|
||||
Bundled resources for web-to-github-issue skill
|
||||
|
||||
- [ ] github_api_documentation.md: Comprehensive documentation of the GitHub API, including endpoints, request parameters, and response formats.
|
||||
- [ ] web_search_best_practices.md: Best practices for conducting effective web searches, including search operators, keywords, and strategies for filtering results.
|
||||
- [ ] github_issue_template.md: Template for creating GitHub issues, including sections for summary, description, steps to reproduce, and expected results.
|
||||
7
skills/web-to-github-issue/scripts/README.md
Normal file
7
skills/web-to-github-issue/scripts/README.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Scripts
|
||||
|
||||
Bundled resources for web-to-github-issue skill
|
||||
|
||||
- [ ] github_issue_creator.py: Automates the creation of GitHub issues using the GitHub API. Takes web search results as input and formats them into a well-structured issue.
|
||||
- [ ] web_search_parser.py: Parses web search results from different search engines, extracting relevant information such as titles, snippets, and URLs.
|
||||
- [ ] config_validator.py: Validates the configuration settings for the GitHub API, ensuring that the necessary credentials and settings are correctly configured.
|
||||
Reference in New Issue
Block a user