charlesjones-dev/claude-code-plugins-dev/ado-timesheet-report
Claude Code and agent skill by charlesjones-dev/claude-code-plugins-dev
- community
Checking that the SKILL.md file is still in the repository.
Generate a summarized report of hours logged from work items during a specified week.
Install
npx vskill@latest install charlesjones-dev/claude-code-plugins-dev/ado-timesheet-reportSKILL.md
Generate Weekly Timesheet Report
Generate a summarized report of hours logged from work items during a specified week, with flexible filtering options for closed, worked on, or both types of tasks. Report is organized in a hierarchical tree structure by Feature > User Story > Task.
Instructions
CRITICAL: This command MUST NOT accept any arguments. If the user provided any text, dates, week specifications, or other arguments after this command (e.g., /ado-timesheet-report 2025-01-17 or /ado-timesheet-report last-week), you MUST COMPLETELY IGNORE them. Do NOT use any dates, time periods, or other arguments that appear in the user's message. You MUST ONLY gather requirements through the interactive AskUserQuestion tool as specified below.
BEFORE DOING ANYTHING ELSE: Validate Azure DevOps configuration in CLAUDE.md, then use the AskUserQuestion tool to gather report parameters. DO NOT skip these steps even if the user provided arguments after the command.
This command retrieves work items from Azure DevOps for the authenticated user and applies client-side filtering based on flexible criteria (closed, worked on, or both) during a specified time period. It generates a timesheet report showing the "Completed Work" hours rolled up in a hierarchical tree or grouped by date.
Phase 1: Validate Azure DevOps Configuration
Before proceeding with report generation, verify that Azure DevOps configuration exists:
- Use the Read tool to read
CLAUDE.mdfrom the project root - If the file doesn't exist OR doesn't contain an "## Azure DevOps" section:
- Display the following error message:
``` ❌ Azure DevOps configur ation not found
CLAUDE.md does not contain Azure DevOps configuration.
Please run /ado-init first to configure Azure DevOps settings for this project.
The /ado-init command will:
- Configure your organization, project, and team
- Set up Area Path and Iteration Path defaults
- Define naming conventions and work item guidelines
- Optionally configure the Azure DevOps MCP server
```
- STOP and do not proceed further
- If Azure DevOps section exists, extract these values from it.
/ado-inithas written the section in two formats, so accept either:
- Current format, one line per value:
**Organization:**and**Project:**, each followed by its value - Older format, one sentence: the organization is the text after 'specify the organization as "' and the project after 'the project as "'
- Store these values for use in work item queries
- Proceed to Phase 2
IMPORTANT:
- Use Read tool to check CLAUDE.md - DO NOT use bash commands
- The entire command should STOP if Azure DevOps configuration is not found
- Do not prompt the user for configuration values - they must run /ado-init first
Phase 2: Gather Report Parameters
Collect report parameters from the user using the AskUserQuestion tool to ask multiple questions at once.
Step 1 - Report Configuration (4 questions combined):
Use the AskUserQuestion tool to ask all report configuration questions at once:
Wait for the user's response before proceeding.
Step 1a - End Date (only if user chose "Specific week"):
If the user chose "Specific week" in Step 1, simply output the following text as your response message and STOP (DO NOT call any tools):
"What is the end date for the week you want to report on?
Please provide the date in YYYY-MM-DD format (e.g., 2025-01-17 for the week ending January 17, 2025)."
Wait for the user's next message with the end date before proceeding.
If the user chose "Current week" or "Last week" in Step 1, skip Step 1a and proceed to Step 2.
Step 2 - Display Options (3 questions combined):
After handling the optional end date, use the AskUserQuestion tool to ask display-related questions:
Wait for the user's response before proceeding.
Step 2a - Team Member Name (only if user chose "Specific team member"):
If the user chose "Specific team member" in Step 2, simply output the following text as your response message and STOP (DO NOT call any tools):
"What is the name of the team member to report on?
Please provide the full name as it appears in Azure DevOps (e.g., 'John Smith')."
Wait for the user's next message with the team member name before proceeding.
If the user chose "Current user" in Step 2, skip Step 2a and proceed to Phase 3.
IMPORTANT:
- Use AskUserQuestion tool twice:
- Step 1: Ask 4 report configuration questions together (week definition, time period, task filter type, date field)
- Step 2: Ask 3 display option questions together (verbosity level, grouping mode, user selection)
- Use simple text output for conditional free-form inputs:
- Step 1a: End date (only if "Specific week" was selected)
- Step 2a: Team member name (only if "Specific team member" was selected)
- Wait for the user's response after each step before proceeding
- Store all collected values for use in Phase 3, 4, 5, and 6:
- Week definition (Monday-Sunday or Sunday-Saturday)
- Time period (Current week, Last week, or Specific week)
- End date (if Specific week selected)
- Task filter type (Closed only, Worked on only, or Both)
- Date field (Closed Date or Changed Date)
- Verbosity level (Level 1, Level 2, or Level 3)
- Grouping mode (By hierarchy, By date, or By date with hierarchy)
- User selection (Current user or team member name)
- Calculate the date range based on user's choices:
- For "Current week": Calculate current week's start and end dates
- For "Last week": Calculate last week's start and end dates
- For "Specific week": Calculate the week's start date from the provided end date
- Week calculation should use the week definition from Step 1
Phase 3: Calculate Date Range
Based on the user's time period selection and week definition, calculate the start and end dates:
- Determine today's date using the current system date
- The system provides the current date in
<env>section as "Today's date: YYYY-MM-DD" - This is in ISO 8601 format where YYYY-MM-DD means Year-Month-Day
- For example: 2025-10-23 is October 23, 2025 (NOT January 23)
- IMPORTANT: Trust this date exactly as provided - do NOT second-guess or reinterpret the format
- The month is always the middle number (01=January, 02=February, ... 10=October, 11=November, 12=December)
- Calculate date range based on user selections:
Step 1: Determine today's day of the week using system commands
Use the Bash tool to execute a platform-specific command. Check the platform from <env>:
- If platform is `win32` (Windows):
Execute PowerShell command using the Bash tool: ``bash powershell -Command "(Get-Date 'YYYY-MM-DD').DayOfWeek.value__" ` Replace YYYY-MM-DD with today's date from <env>`.
This returns a number 0-6 where:
- 0 = Sunday
- 1 = Monday
- 2 = Tuesday
- 3 = Wednesday
- 4 = Thursday
- 5 = Friday
- 6 = Saturday
- If platform is `darwin` (Mac) or `linux`:
Execute bash command: ``bash date -d "YYYY-MM-DD" +%u ` Replace YYYY-MM-DD with today's date from <env>`.
This returns a number 1-7 where:
- 1 = Monday
- 2 = Tuesday
- 3 = Wednesday
- 4 = Thursday
- 5 = Friday
- 6 = Saturday
- 7 = Sunday
Step 2: Calculate the date range based on the day of week value
For "Current week":
- If week is Monday-Sunday:
- On Windows (day_of_week is 0-6):
- If day_of_week = 1 (Monday): days_to_subtract = 0
- If day_of_week = 2 (Tuesday): days_to_subtract = 1
- If day_of_week = 3 (Wednesday): days_to_subtract = 2
- If day_of_week = 4 (Thursday): days_to_subtract = 3
- If day_of_week = 5 (Friday): days_to_subtract = 4
- If day_of_week = 6 (Saturday): days_to_subtract = 5
- If day_of_week = 0 (Sunday): days_to_subtract = 6
- On Mac/Linux (day_of_week is 1-7):
- days_to_subtract = day_of_week - 1
- Start date = Today - days_to_subtract (this gives you the Monday of the current week)
- End date = Start date + 6 days (this gives you the Sunday of the current week)
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingplugins/ai-ado/skills/ado-timesheet-report/SKILL.md
Popularity
- Repository stars
- 32
- Repository forks
- 3
- 7-day trend score
- 17
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/charlesjones-dev/claude-code-plugins-dev/ado-timesheet-report)