# Create New Issue

> For use when a new issue/task has been identified and needs to be formally captured using the Wrangler MCP issue management system. Use this skill to create new issues via the issues_create MCP tool with appropriate metadata and structured content.

- Skill: `majiayu000/create-new-issue` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/create-new-issue`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/create-new-issue/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/create-new-issue

---


You are a specialist at taking details about a newly identified issue or outstanding task and converting that information into a well-structured issue using the Wrangler MCP issue management tools.

## Core Responsibilities

## Skill Usage Announcement

**MANDATORY**: When using this skill, announce it at the start with:

```
🔧 Using Skill: create-new-issue | [brief purpose based on context]
```

**Example:**
```
🔧 Using Skill: create-new-issue | [Provide context-specific example of what you're doing]
```

This creates an audit trail showing which skills were applied during the session.



- Analyze the provided issue details to identify key information
- Use the **issues_create** MCP tool to create the issue with proper metadata
- Structure the description field according to issue type (bug vs task)
- Populate all relevant fields: title, description, type, status, priority, labels, assignee, project, wranglerContext
- Verify the issue was created successfully

## Issue Creation Process

### 1. Determine Issue Type

**For bugs:**
- Set `type: "issue"`
- Set `labels: ["bug"]` (plus any other relevant labels)
- Structure description with: Summary (what's broken, impact, current vs. expected behavior), Reproduction Steps, Environment, Root Cause Analysis, Solutions Attempted, Diagnostics, References
- See template: [BUG_ISSUE_TEMPLATE.md](templates/BUG_ISSUE_TEMPLATE.md)

**For tasks:**
- Set `type: "issue"`
- Set `labels: ["task"]` (plus any other relevant labels)
- Structure description with: Description, Objective (goal, value, scope), Requirements (functional, non-functional, dependencies), Tasks (implementation checklist), Testing Requirements, Acceptance Criteria, Implementation Notes, References
- See template: [TASK_ISSUE_TEMPLATE.md](templates/TASK_ISSUE_TEMPLATE.md)

**For feature requests:**
- Set `type: "issue"`
- Set `labels: ["feature", "enhancement"]` (plus any other relevant labels)
- Structure description with: Feature Description (what, why, who), User Story, Current vs. Proposed Behavior, User Experience, Requirements (must/should/nice-to-have), Success Metrics, Design Considerations, Open Questions, References
- See template: [FEATURE_REQUEST_TEMPLATE.md](templates/FEATURE_REQUEST_TEMPLATE.md)

**For specifications:**
- Set `type: "specification"`
- Structure description with: Executive Summary, Goals and Non-Goals, Background & Context, Requirements, Architecture, Implementation Details, Security, Error Handling, Observability, Testing Strategy, Deployment, Performance, Risks, Success Criteria, Timeline, References
- See template: [SPECIFICATION_TEMPLATE.md](../writing-specifications/templates/SPECIFICATION_TEMPLATE.md)
- **Note:** For complex specifications, use the dedicated [writing-specifications](../writing-specifications/SKILL.md) skill which provides comprehensive guidance and process

### 2. Use the issues_create Tool

Call the `issues_create` MCP tool with all relevant parameters:

```javascript
issues_create({
  title: "Clear, concise title",
  description: "Detailed description with appropriate sections based on type",
  type: "issue" | "specification",
  status: "open" | "in_progress" | "closed" | "cancelled",
  priority: "low" | "medium" | "high" | "critical",
  labels: ["bug", "backend", ...],
  assignee: "username",
  project: "project-name",
  wranglerContext: {
    agentId: "agent-identifier",
    parentTaskId: "parent-issue-id",
    estimatedEffort: "2 days"
  }
})
```

### 3. Required vs Optional Fields

**Required:**
- `title` - Clear, concise issue title (max 200 chars)
- `description` - Detailed description with structured sections

**Optional but recommended:**
- `type` - Defaults to "issue"
- `status` - Defaults to "open"
- `priority` - Defaults to "medium"
- `labels` - Array of tags for categorization
- `assignee` - Who's responsible
- `project` - Project/epic association
- `wranglerContext` - Workflow metadata (agentId, parentTaskId, estimatedEffort)

## Template Reference

You can reference the template files for structure guidance:
- **Bug issues**: [BUG_ISSUE_TEMPLATE.md](templates/BUG_ISSUE_TEMPLATE.md) - Comprehensive bug reporting with RCA, environment, diagnostics
- **Task issues**: [TASK_ISSUE_TEMPLATE.md](templates/TASK_ISSUE_TEMPLATE.md) - Implementation tasks with requirements, checklist, acceptance criteria
- **Feature requests**: [FEATURE_REQUEST_TEMPLATE.md](templates/FEATURE_REQUEST_TEMPLATE.md) - User-facing features with user stories, UX details, success metrics

**Important:** These templates show the frontmatter structure and content sections. Use them as a guide for formatting the `description` field when calling `issues_create`, but always use the MCP tool rather than manually creating files.

**For specifications**, use the dedicated [writing-specifications](../writing-specifications/SKILL.md) skill which has its own template and comprehensive process guidance.

## Example Usage

### Creating a Bug Issue

```javascript
issues_create({
  title: "API returns 500 error on user login",
  description: `## Summary

Authentication endpoint fails with 500 error when username contains special characters.

## Issue Reproduction Steps

1. Navigate to /api/auth/login
2. POST with username containing '@' symbol
3. Observe 500 error response

## Solutions Attempted

- Validated input sanitization (not the issue)
- Checked database constraints (no violations)

## Available Diagnostics

Error logs show: "Invalid character in username field"
Stack trace available in logs/api-2025-11-17.log

## References

### Key Files
- src/api/auth/login.ts
- src/validators/username.ts`,
  type: "issue",
  status: "open",
  priority: "high",
  labels: ["bug", "api", "auth"],
  project: "v1.2"
})
```

### Creating a Task Issue

```javascript
issues_create({
  title: "Implement password reset flow",
  description: `## Objective

Add password reset functionality for users who forget their credentials.

## Requirements

- Email-based reset link with expiration
- Secure token generation
- Password strength validation
- Rate limiting to prevent abuse

## Implementation Steps

1. Create password reset API endpoint
2. Implement email service integration
3. Add reset token storage and validation
4. Build password reset UI
5. Add rate limiting middleware

## Testing Requirements

- Unit tests for token generation/validation
- Integration tests for email flow
- E2E tests for complete user journey

## Acceptance Criteria

- [ ] User can request reset via email
- [ ] Reset link expires after 1 hour
- [ ] New password meets strength requirements
- [ ] Rate limiting prevents abuse (max 3 requests/hour)`,
  type: "issue",
  status: "open",
  priority: "medium",
  labels: ["task", "feature", "auth"],
  assignee: "backend-team",
  project: "v1.2",
  wranglerContext: {
    agentId: "implementation-agent",
    estimatedEffort: "3 days"
  }
})
```

## Important Notes

- **Always use the MCP tool** - Don't manually create markdown files; use `issues_create`
- **Auto-generated IDs** - The system assigns sequential IDs (000001, 000002, etc.)
- **Timestamps are automatic** - createdAt and updatedAt are set automatically
- **Files stored at project root** - Issues saved to `issues/`, specs to `specifications/`
- **Markdown format** - Files are stored as markdown with YAML frontmatter for git-friendliness

