From c2651f3f72893962169b3d983a401b5c0935ee99 Mon Sep 17 00:00:00 2001 From: Zhongwei Li Date: Sat, 29 Nov 2025 18:32:30 +0800 Subject: [PATCH] Initial commit --- .claude-plugin/plugin.json | 14 +++++++++ README.md | 3 ++ commands/do.md | 58 ++++++++++++++++++++++++++++++++++++++ mcp/.mcp.json | 11 ++++++++ plugin.lock.json | 49 ++++++++++++++++++++++++++++++++ 5 files changed, 135 insertions(+) create mode 100644 .claude-plugin/plugin.json create mode 100644 README.md create mode 100644 commands/do.md create mode 100644 mcp/.mcp.json create mode 100644 plugin.lock.json diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..cc7dd64 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -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" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..235b537 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# issuify + +Create GitHub issues and pull requests with structured formatting using the GitHub Copilot MCP server diff --git a/commands/do.md b/commands/do.md new file mode 100644 index 0000000..3669e2c --- /dev/null +++ b/commands/do.md @@ -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 diff --git a/mcp/.mcp.json b/mcp/.mcp.json new file mode 100644 index 0000000..8441d78 --- /dev/null +++ b/mcp/.mcp.json @@ -0,0 +1,11 @@ +{ + "mcpServers": { + "github": { + "type": "http", + "url": "https://api.githubcopilot.com/mcp/", + "env": { + "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" + } + } + } +} diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..5628d7e --- /dev/null +++ b/plugin.lock.json @@ -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": [] + } +} \ No newline at end of file