commit 3dae5b07c7c71236919c1d2a48a79a7c03aeeabe Author: Zhongwei Li Date: Sat Nov 29 18:13:33 2025 +0800 Initial commit diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..01851ce --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,12 @@ +{ + "name": "issue-analyzer", + "description": "Fetches GitHub issue details to create comprehensive implementation specifications, analyzing requirements and planning structured approach with clear implementation steps.", + "version": "1.0.0", + "author": { + "name": "ClaudeForge Community", + "url": "https://github.com/claudeforge/marketplace" + }, + "commands": [ + "./commands" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..f601500 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# issue-analyzer + +Fetches GitHub issue details to create comprehensive implementation specifications, analyzing requirements and planning structured approach with clear implementation steps. diff --git a/commands/analyze-issue.md b/commands/analyze-issue.md new file mode 100644 index 0000000..b4f1fb2 --- /dev/null +++ b/commands/analyze-issue.md @@ -0,0 +1,232 @@ +--- +description: Analyze GitHub issues to create detailed implementation plans with requirements and technical approach +version: 1.0.0 +--- + +# Issue Analyzer + +Transform GitHub issues into clear, actionable implementation plans with detailed requirements and technical specifications. + +## What It Does + +- Fetches complete issue details from GitHub +- Extracts functional and technical requirements +- Identifies affected components and dependencies +- Suggests technical approach and architecture +- Creates structured implementation plan + +## How to Use + +Provide the issue number to analyze: + +```bash +/analyze-issue 456 +``` + +The command will generate a comprehensive analysis and implementation plan. + +## What Gets Analyzed + +**Issue Content** +- Title and description +- User requirements and acceptance criteria +- Expected behavior vs current behavior +- Comments and discussion + +**Technical Context** +- Related code files and components +- Existing patterns and architecture +- Dependencies and integrations +- Similar features already implemented + +## Analysis Output + +The analyzer produces: + +1. **Requirements Summary**: What needs to be built and why +2. **Technical Approach**: How to implement it +3. **Task Breakdown**: Step-by-step implementation tasks +4. **File Changes**: What files need to be created or modified +5. **Testing Strategy**: How to verify the solution works + +## Example Analysis + +**Issue #456**: "Add user profile export feature" + +**Requirements** +- Users need ability to export profile data +- Support JSON and CSV formats +- Include all profile information +- Downloadable file generation + +**Technical Approach** +``` +Component: ProfileExportService +Location: src/services/profile-export.ts +Dependencies: json2csv library +API Endpoint: GET /api/users/:id/export?format=json|csv +``` + +**Implementation Tasks** +1. Create ProfileExportService class +2. Add JSON serialization method +3. Add CSV conversion method +4. Create API endpoint handler +5. Add download link to UI +6. Write unit tests +7. Update API documentation + +**Files to Create** +- `src/services/profile-export.ts` +- `src/services/profile-export.test.ts` +- `src/api/routes/export.ts` + +**Files to Modify** +- `src/components/ProfilePage.tsx` (add export button) +- `package.json` (add json2csv dependency) + +## Use Cases + +- **Feature Planning**: Break down new features into concrete steps +- **Bug Investigation**: Understand scope and impact of bugs +- **Estimation**: Get realistic effort estimates for issues +- **Team Communication**: Share clear implementation plans +- **Onboarding**: Help new developers understand what needs to be done + +## Best Practices + +- **Read Thoroughly**: Don't skip comments, they often contain crucial details +- **Identify Gaps**: Note any missing requirements or unclear specifications +- **Consider Edge Cases**: Think about error conditions and boundary cases +- **Check Dependencies**: Verify what other work must be completed first +- **Validate Feasibility**: Ensure the proposed solution is actually implementable +- **Ask Questions**: If anything is unclear, ask for clarification on the issue + +## Technical Approach Template + +When suggesting implementation: + +```markdown +## Technical Approach + +**Architecture** +- Component structure +- Data flow +- Integration points + +**Key Decisions** +- Technology choices +- Design patterns to use +- Libraries or frameworks + +**Considerations** +- Performance implications +- Security requirements +- Backward compatibility +``` + +## Implementation Plan Template + +```markdown +## Implementation Plan + +### Phase 1: Setup (2h) +- [ ] Create service module +- [ ] Add dependencies +- [ ] Set up test structure + +### Phase 2: Core Logic (4h) +- [ ] Implement data extraction +- [ ] Add format conversion +- [ ] Handle edge cases + +### Phase 3: Integration (3h) +- [ ] Create API endpoint +- [ ] Add UI controls +- [ ] Connect frontend to backend + +### Phase 4: Testing (2h) +- [ ] Unit tests +- [ ] Integration tests +- [ ] Manual verification +``` + +## Common Issue Types + +**Feature Request** +- Focus on user needs and acceptance criteria +- Consider UI/UX implications +- Plan for scalability + +**Bug Report** +- Identify root cause +- Assess impact and urgency +- Plan for regression tests + +**Performance Issue** +- Profile and measure current state +- Identify bottlenecks +- Set performance targets + +**Refactoring** +- Document current problems +- Define desired state +- Ensure no behavior changes + +## Questions to Answer + +A complete analysis addresses: + +- **What** needs to be built? +- **Why** is it needed? +- **Who** will use it? +- **Where** in the codebase does it go? +- **When** are the dependencies available? +- **How** should it be implemented? + +## Clarification Checklist + +If these aren't clear, ask on the issue: + +- [ ] Exact success criteria +- [ ] Expected user workflow +- [ ] Error handling requirements +- [ ] Performance expectations +- [ ] Browser/platform support +- [ ] Data validation rules +- [ ] Edge case behavior + +## Risk Assessment + +Identify potential challenges: + +**Technical Risks** +- Complex integrations +- Performance concerns +- Security implications + +**Process Risks** +- Unclear requirements +- Dependency on other teams +- Tight deadlines + +## Troubleshooting + +**Incomplete Issue**: Comment asking for more details + +**Too Broad**: Suggest breaking into smaller issues + +**Unclear Requirements**: List specific questions that need answers + +**Technical Uncertainty**: Research and propose multiple approaches + +## Quality Standards + +A good analysis includes: +- Clear requirements summary +- Concrete technical approach +- Realistic task breakdown +- Identified dependencies and risks +- Specific file changes +- Testing strategy +- Effort estimate diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..0ec7bf3 --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,45 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:claudeforge/marketplace:plugins/commands/issue-analyzer", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "00540569f378b6531a8ce0289a8f8dfa77a5048c", + "treeHash": "f38dd3720783243d45296fd5129b6f04b5e8fc4e045ed6e3dd8a3870151d1b08", + "generatedAt": "2025-11-28T10:15:32.701392Z", + "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": "issue-analyzer", + "description": "Fetches GitHub issue details to create comprehensive implementation specifications, analyzing requirements and planning structured approach with clear implementation steps.", + "version": "1.0.0" + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "62081b0a22f40110dd9619cd8153404607c9e2e38b8a9a583e39fbd8f2a1b665" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "4327dac710cd95fb8c15f06caa84091bcf0dfc61138221b6059169296b50bd56" + }, + { + "path": "commands/analyze-issue.md", + "sha256": "4efd460c8ad41e23fe38a83ae7f7dac53bf3168c2323876781f778ea4dc0154f" + } + ], + "dirSha256": "f38dd3720783243d45296fd5129b6f04b5e8fc4e045ed6e3dd8a3870151d1b08" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file