Guide for creating Azure DevOps work items (Features, User Stories, Tasks). This skill should be used when working with ADO MCP tools to create work items with proper hierarchy and formatting.
/plugin marketplace add charlesjones-dev/claude-code-plugins-dev/plugin install ai-ado@claude-code-plugins-devThis skill inherits all available tools. When active, it can use any tool Claude has access to.
This skill provides guidance on creating and managing Azure DevOps work items when using the Azure DevOps MCP server tools. It ensures work items follow organizational best practices for hierarchy, formatting, naming conventions, and hour estimation.
This skill should be used when:
@azure-devops/mcp MCP server toolsAzure DevOps uses a three-level structure for Agile projects:
Key Rules:
CRITICAL: All text fields (Description, Acceptance Criteria) must use proper HTML formatting for correct rendering in Azure DevOps.
Examples:
<!-- Good: Proper HTML -->
<p>As a developer, I need to implement user authentication.</p>
<p><strong>Background:</strong></p>
<ul>
<li>Current system has no authentication</li>
<li>Users need secure login</li>
</ul>
<!-- Bad: Plain text -->
As a developer, I need to implement user authentication.
Background:
- Current system has no authentication
- Users need secure login
HTML Formatting Guidelines:
<p> tags for paragraphs<ul> and <li> for bullet lists<ol> and <li> for numbered lists<strong> for bold text<em> for italic text<h3>, <h4> for section headers (if needed)Purpose: High-level business capability or objective containing related User Stories.
Description Field:
<p> tags and listsExample Feature:
Title: 1: User Authentication System
Description:
<p>Implement a complete user authentication system with login, registration, and password reset capabilities.</p>
<p><strong>Business Value:</strong></p>
<ul>
<li>Enable secure access to the application</li>
<li>Support personalized user experiences</li>
<li>Meet security compliance requirements</li>
</ul>
Field Settings:
Purpose: Specific functionality described from a user perspective, containing implementation Tasks.
Use HTML formatting with this structure:
<p><strong>As a</strong> [user persona], <strong>I want to</strong> [capability], <strong>so that</strong> [benefit].</p>
<p><strong>Background:</strong></p>
<ul>
<li>[Context point 1]</li>
<li>[Context point 2]</li>
<li>[Context point 3]</li>
</ul>
<p><strong>Additional Information:</strong></p>
<ul>
<li>[Implementation detail 1]</li>
<li>[Implementation detail 2]</li>
</ul>
Example:
<p><strong>As a</strong> website visitor, <strong>I want to</strong> register for an account, <strong>so that</strong> I can access personalized features.</p>
<p><strong>Background:</strong></p>
<ul>
<li>Current system has no user accounts</li>
<li>Marketing team requires user tracking</li>
<li>Future features depend on user identity</li>
</ul>
<p><strong>Additional Information:</strong></p>
<ul>
<li>Email should be the unique identifier</li>
<li>Password strength validation required</li>
<li>Email verification recommended but not required for MVP</li>
</ul>
Use the "Given, When, Then" format with HTML:
<p><strong>Scenario 1: Successful Registration</strong></p>
<ul>
<li><strong>Given</strong> I am on the registration page</li>
<li><strong>When</strong> I enter valid email and password</li>
<li><strong>Then</strong> my account is created and I am logged in</li>
</ul>
<p><strong>Scenario 2: Invalid Email</strong></p>
<ul>
<li><strong>Given</strong> I am on the registration page</li>
<li><strong>When</strong> I enter an invalid email format</li>
<li><strong>Then</strong> I see an error message and cannot submit</li>
</ul>
Guidelines:
Apply Fibonacci sequence values to the "Story Points" field to estimate relative complexity:
Field Settings:
Purpose: Lightweight work tracking items representing individual implementation activities.
Keep Task titles simple and descriptive, focused on the work activity:
Good Task Titles:
Bad Task Titles:
Tasks are the primary container for hour tracking. Set both fields to the same estimated value:
Example:
Original Estimate: 4
Remaining Work: 4
Completed Work: (empty)
Estimation Guidelines:
Field Settings:
Azure DevOps lacks robust priority sorting, so naming conventions ensure proper organization in the backlog.
Format: [NUMBER]: [DESCRIPTION]
Examples:
There are two supported naming conventions. Check the project's CLAUDE.md file for the configured convention, or ask which convention to use before creating User Stories.
Format: [FEATURE_NUMBER].[STORY_NUMBER]: [DESCRIPTION]
Examples:
Benefits:
Format: [DESCRIPTION]
Examples:
Benefits:
Format: [DESCRIPTION]
Examples:
When creating work items, apply these defaults unless explicitly specified otherwise:
All Work Item Types:
Project-Specific Values: These are typically configured in the project's CLAUDE.md file:
Check Configuration First: Before creating work items, check if the project has Azure DevOps configuration in CLAUDE.md that specifies organization, project, team, area path, iteration path, and naming convention preferences.
Always Use HTML: Never use plain text or markdown in Description or Acceptance Criteria fields - always use proper HTML formatting.
Maintain Hierarchy: Never create orphaned work items. Every User Story needs a parent Feature, every Task needs a parent User Story.
Check Naming Convention: If not specified in CLAUDE.md, ask which naming convention is preferred (decimal notation like 1.1, 1.2 or simple descriptive names) before creating User Stories.
Keep Tasks Lightweight: Tasks should not duplicate the User Story's description or acceptance criteria. They should be simple work containers with just a title and hour estimates.
Leave Assignments Blank: Let team members assign themselves to work items during sprint planning or daily standups.
Estimate Realistically: Include time for testing, code review, documentation, and debugging in task hour estimates.
Use Story Points Consistently: Apply Fibonacci sequence values to User Stories based on relative complexity, not absolute time.
Progressive Disclosure: Create Features first, then User Stories, then Tasks. This allows for iterative refinement of scope and estimation.
Validate Before Creating: Review the work item hierarchy and ensure all required fields are populated before calling MCP tools to create items.
When asked to create a new feature with full breakdown:
When asked to add tasks to an existing story:
When a User Story is too large (Story Points 13+):
Feature: 1: User Authentication System
Description: <p>Implement complete user authentication...</p>
User Story: 1.1: User Registration
Description: <p><strong>As a</strong> website visitor...</p>
Acceptance Criteria: <p><strong>Scenario 1...</strong></p>
Story Points: 5
Task: Implement registration API endpoint
Original Estimate: 4
Remaining Work: 4
Task: Create registration form UI
Original Estimate: 3
Remaining Work: 3
Task: Write unit tests for registration
Original Estimate: 2
Remaining Work: 2
User Story: 1.2: User Login
Description: <p><strong>As a</strong> registered user...</p>
Acceptance Criteria: <p><strong>Scenario 1...</strong></p>
Story Points: 3
Task: Implement login API endpoint
Original Estimate: 3
Remaining Work: 3
Task: Create login form UI
Original Estimate: 2
Remaining Work: 2
Problem: Work items not appearing in the correct order in backlog
Solution: Ensure Features are numbered 1-99, and User Stories follow the configured naming convention (decimal notation or descriptive names).
Problem: Acceptance criteria rendering incorrectly in Azure DevOps
Solution: Verify all text fields use proper HTML formatting with <p>, <ul>, <li> tags.
Problem: Tasks showing as orphaned in queries
Solution: Verify each Task has a parent User Story link set correctly when created.
Problem: Story Points not summing correctly at Feature level
Solution: Ensure Story Points are only set on User Stories, not on Features or Tasks.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.