Initial commit

This commit is contained in:
Zhongwei Li
2025-11-29 18:32:30 +08:00
commit c2651f3f72
5 changed files with 135 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
{
"name": "issuify",
"description": "Create GitHub issues and pull requests with structured formatting using the GitHub Copilot MCP server",
"version": "1.0.0",
"author": {
"name": "Headlands"
},
"commands": [
"./commands"
],
"mcp": [
"./mcp"
]
}

3
README.md Normal file
View File

@@ -0,0 +1,3 @@
# issuify
Create GitHub issues and pull requests with structured formatting using the GitHub Copilot MCP server

58
commands/do.md Normal file
View File

@@ -0,0 +1,58 @@
# Issuify
**IMPORTANT: Before proceeding, check if the GITHUB_PERSONAL_ACCESS_TOKEN environment variable is set.**
If `GITHUB_PERSONAL_ACCESS_TOKEN` is not set in the environment, STOP immediately and output:
```
GitHub Personal Access Token not found.
The issuify plugin requires a GitHub PAT because the GitHub MCP server doesn't support OAuth.
Setup instructions:
1. Create a GitHub PAT at https://github.com/settings/tokens
Required scope: repo
2. Set the environment variable:
export GITHUB_PERSONAL_ACCESS_TOKEN="your_token_here"
3. Add to your shell profile to persist across sessions:
echo 'export GITHUB_PERSONAL_ACCESS_TOKEN="your_token_here"' >> ~/.zshrc
4. Restart Claude Code after setting the variable
Then run /issuify again.
```
If the token IS set, proceed with the normal workflow:
Review all changed files since upstream branch. Include work we're aware of. Ask about unexpected changes.
Use the **GitHub Copilot MCP server** tools to create both the issue and PR:
- `mcp__github__create_issue` - Create the GitHub issue
- `mcp__github__create_pull_request` - Create the pull request
## Issue (what & why)
Write casual, precise language. No fluff. Focus on bottom line.
- **Problem**: What's broken or missing (1-2 sentences max)
- **Value**: Why it matters (1 sentence)
- **Solution**: What we're doing (2-3 bullets, not exhaustive)
Target 3-5 sentences total. Skip obvious details.
## PR (how)
Write casual, precise language. No frilly technical jargon.
- **Summary**: What changed (2-3 bullets max, technical but simple)
- **Why**: How it solves the issue (1 sentence linking back)
- **Test**: What to check (2-3 bullets, just key things)
Target 4-6 sentences total. Cut anything that doesn't add value.
## Style
- Casual but exact (like talking to a teammate)
- No fake technical voice, no marketing speak
- Skip words like "comprehensive", "robust", "ensure", "carefully"
- Bottom line first, skip exhaustive details

11
mcp/.mcp.json Normal file
View File

@@ -0,0 +1,11 @@
{
"mcpServers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
}
}
}
}

49
plugin.lock.json Normal file
View File

@@ -0,0 +1,49 @@
{
"$schema": "internal://schemas/plugin.lock.v1.json",
"pluginId": "gh:headlands-org/claude-marketplace:issuify",
"normalized": {
"repo": null,
"ref": "refs/tags/v20251128.0",
"commit": "61dccfe5b2d68d6f9a36a62913facf88d968d3f6",
"treeHash": "c76c3b371e2f35ffce8921c9413a2e456c628d7942923a78ba3a7dbf46a16dc6",
"generatedAt": "2025-11-28T10:17:23.500307Z",
"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": "issuify",
"description": "Create GitHub issues and pull requests with structured formatting using the GitHub Copilot MCP server",
"version": "1.0.0"
},
"content": {
"files": [
{
"path": "README.md",
"sha256": "590fe3c70caa6c73aa1e7ff499660874c54be648aed2234dd51c27e13f505ca1"
},
{
"path": "mcp/.mcp.json",
"sha256": "94385a1048a507e015329fbc3907afb0159941eac9e8b435d0ee12af975e4c91"
},
{
"path": ".claude-plugin/plugin.json",
"sha256": "9eab7e44f57555b7471608d17e7fec0ed3552184965a63fece11471b5a164591"
},
{
"path": "commands/do.md",
"sha256": "03fcbd4cb5b5a4e93365014ff165ed7ee17833e322c6b7ed64c34b68c945e7ac"
}
],
"dirSha256": "c76c3b371e2f35ffce8921c9413a2e456c628d7942923a78ba3a7dbf46a16dc6"
},
"security": {
"scannedAt": null,
"scannerVersion": null,
"flags": []
}
}