devops-workitem-create
Skill0 starsChanged 3 months agoMITView on GitHub
Create a new Azure DevOps work item (Task by default)
In this repository27 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- buildSkill
- cleanup-worktreeSkill
- db-querySkill
- db-searchSkill
- dd-errorsSkill
- devops-wiki-updateSkill
- devops-workitem-readSkill
- devops-workitem-updateSkill
- finalize-taskSkill
- find-codeSkill
- merge-mainSkill
- panel-review-fixSkill
- panel-reviewSkill
- prSkill
- rebase-mainSkill
- starttaskSkill
- testSkill
- ask-codexSkill
- ask-geminiSkill
- councilSkill
- dailySkill
- find-sessionSkill
- merged-prsSkill
- mm-notifySkill
- optimize-promptSkill
- qSkill
The file
We split this skill into the rules it gives an agent
5 rules. About 0 are common, 3 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 16
Create it and report back.
- Distinctive: line 17
Create the work item via PowerShell (see API mechanics).
- Very specific: line 55
Use additional <h3> sections as needed: Background (current state, config values, table names), Business Rules (enumerated rules the AC …
- Distinctive: line 57
If details genuinely need sign-off first, prefer listing the specific open questions (with owners) over a blanket *"validate with …
- Very specific: line 138
Important: Use ConvertTo-Json -InputObject $ops (not piping) to preserve single-element arrays.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Create Azure DevOps Work Item
Title or description: $ARGUMENTS
Process
- Determine the work item type: Task by default; User Story for feature/analysis work that stands on its own; Bug for defects.
- Pick a content shape (below) by who benefits, and draft Title, Description, and Acceptance Criteria as a first draft. These are sensible defaults, not a rigid standard — adapt freely to the item at hand.
- Create it and report back. Show the plain-text draft for a nod first only when the request is genuinely ambiguous or high-stakes — a well-specified item doesn't need one. Blast radius is small (a wrong item is trivially edited or deleted to the recycle bin).
- Create the work item via PowerShell (see API mechanics).
- Extract the
idfrom the response and report the new work item ID and web link.
Content shapes
Defaults the skill drafts toward — a starting point, not a gate. The only real decision is who benefits. If your team has a written work-item format, link it here so the skill and the humans agree.
- Story — someone outside the delivery team benefits (customer/business-facing). Use the
As a / I want / so thatheader with a real beneficiary. - Enabler — the beneficiary is the system, pipeline, or a downstream team (plumbing). Skip the
As aframing rather than inventing a fake actor; useProblem/Change required/Rationaleinstead. Do NOT write "As a Product Owner, I want the backend to…" — that disguises a technical task as a story. - Analysis / Spike — the deliverable is findings, not a code change. Title starts
Investigate …; state "analysis only" explicitly; close with a Deliverable block instead of AC.
Acceptance criteria can be Gherkin (Given/When/Then, reads well for behaviour) or numbered AC1/AC2 bullets (fits technical work) — whichever is more checkable. No format is mandatory; a plain checklist is fine for small items.
Title
- Concise and descriptive: what changes / what is wrong, not a sentence fragment of the description.
- Optional bracket prefix for the epic/project context:
[Checkout redesign] …,[Reporting] …. - Analysis-only stories start with
Investigate ….
User Story — Description
HTML, structured as:
<div>
<p><strong>As</strong> a Product Owner,<br>
<strong>I want</strong> <capability>,<br>
<strong>so that</strong> <benefit / measurable outcome>.</p>
<h3>Description</h3>
<p>Context: what exists today, why the change is needed.</p>
<ul>
<li>Concrete scope item 1</li>
<li>Concrete scope item 2</li>
</ul>
</div>- The role is the real beneficiary — the customer (e.g. "a retail customer") for customer-facing behaviour. If the only honest answer is "the system" or "the team", it's an Enabler — use that shape instead, don't write "a Product Owner".
- Use additional
<h3>sections as needed:Background(current state, config values, table names),Business Rules(enumerated rules the AC will scenario-ize). - Analysis-only stories state explicitly: "This story is intended for analysis only. No implementation changes should be made until the root cause has been identified."
- If details genuinely need sign-off first, prefer listing the specific open questions (with owners) over a blanket "validate with <team> before development" — surface them, don't hide them.
Enabler — Description
Technical work with no external actor. No As a header:
<div>
<h3>Problem</h3>
<p>What is blocked, broken, or absent today. Concrete.</p>
<h3>Change required</h3>
<ul><li>Specific enough that a reviewer could disagree with a bullet.</li></ul>
<h3>Rationale</h3>
<p>Which product outcome or experiment this serves (the "so that", in a different jacket).</p>
</div>Acceptance criteria use the same AC-numbered or Gherkin dialects below.
User Story — Acceptance Criteria
Two accepted dialects — pick per story nature:
AC-numbered (technical/enabler/backend stories):
<div>
<p><strong>AC1 – <Topic></strong></p>
<ul><li>Testable statement.</li><li>Testable statement.</li></ul>
<p><strong>AC2 – <Topic></strong></p>
<ul><li>…</li></ul>
</div>Gherkin scenarios (customer-facing / behavioral stories):
<div>
<p><strong>Scenario 1 – <Name></strong></p>
<p>Given <precondition><br>When <action><br>Then <observable outcome>.</p>
</div>Standard closing ACs — include when applicable (most implementation stories):
- Stability: existing functionality continues to operate; no regressions outside the story's scope.
- Validation: verified in a non-production environment; logging/monitoring exists to confirm the new logic executes correctly.
Analysis stories close with a Deliverable block instead: what the documented analysis must contain (root cause, impacted components, config-vs-defect verdict, recommended solution).
Bug
- The Bug form does not display
System.Description— put the content inMicrosoft.VSTS.TCM.ReproSteps(and environment details inMicrosoft.VSTS.TCM.SystemInfo). Custom.Environmentis required on creation (PROD,STG,DEV,TST,Custom Host).- Structure the ReproSteps as: Observed behavior / Expected behavior / Steps to reproduce / Impact (who/what is affected, since when).
Task
Lightweight: one paragraph on what and why, plus a "Done when" bullet list. Parent-link it to its User Story (see relations below).
Recommended fields
| Field | Values | When |
Custom.StorySize | Small (1-2 days), Medium (3-5 days), Large (5-10 days), X-Large | User Stories |
Custom.Days | 0.5, 1, 2-3, 5 | Estimate, if known |
Microsoft.VSTS.Common.Priority | 1 (highest) – 4 | Set when known; PO default is 3 |
API mechanics
$ops = @(
@{ op = "add"; path = "/fields/System.Title"; value = "Short descriptive title" }
@{ op = "add"; path = "/fields/System.Description"; value = "<div><p><strong>As</strong> a ...</p></div>" }
@{ op = "add"; path = "/fields/Microsoft.VSTS.Common.AcceptanceCriteria"; value = "<div><p><strong>AC1 - ...</strong></p><ul><li>...</li></ul></div>" }
@{ op = "add"; path = "/fields/System.AreaPath"; value = "MyProject\MyArea" }
)
$body = ConvertTo-Json -InputObject $ops -Depth 5
Invoke-RestMethod -Uri "https://devops.example.com/DefaultCollection/MyProject/_apis/wit/workitems/`$Task?api-version=6.0" -Method Post -Body $body -ContentType "application/json-patch+json" -UseDefaultCredentialsImportant: Use ConvertTo-Json -InputObject $ops (not piping) to preserve single-element arrays.
For other work item types, replace `$Task with `$Bug, `$User Story, etc. (URL-encode the space: `$User%20Story).
To parent-link the new item to a Feature/User Story, add a relation op:
@{ op = "add"; path = "/relations/-"; value = @{
rel = "System.LinkTypes.Hierarchy-Reverse"
url = "https://devops.example.com/DefaultCollection/_apis/wit/workItems/<PARENT_ID>"
} }Field Reference
| Field | Path | Notes |
| Title | /fields/System.Title | Required |
| Description | /fields/System.Description | HTML, single line. Not shown on Bugs — use ReproSteps there |
| Acceptance Criteria | /fields/Microsoft.VSTS.Common.AcceptanceCriteria | HTML, single line |
| Repro Steps | /fields/Microsoft.VSTS.TCM.ReproSteps | Bug only, HTML |
| System Info | /fields/Microsoft.VSTS.TCM.SystemInfo | Bug only, HTML |
| Environment | /fields/Custom.Environment | Required for Bugs: PROD, STG, DEV, TST, Custom Host |
| Area Path | /fields/System.AreaPath | MyProject\MyArea for payment work; fallback MyProject. Non-existent nodes fail with TF401347, so check the area tree first |
| Iteration Path | /fields/System.IterationPath | Sprint assignment, e.g. MyProject\Sprint 26 |
| State | /fields/System.State | New, Active, Closed |
| Assigned To | /fields/System.AssignedTo | Display name or email |
| Story Size | /fields/Custom.StorySize | See recommended fields |
| Days | /fields/Custom.Days | See recommended fields |
Web link
https://devops.example.com/DefaultCollection/MyProject/_workitems/edit/<ID>/
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

