Loading...
Loading...
Map triaged findings to the correct Azure DevOps work item types for the TARGET project's process, and emit backlog_input.json ready for creation. Use this AFTER triage and BEFORE creating items — when the user asks "what type should these be", "make these into work items / tickets", "turn these findings into a backlog", "classify these for ADO", or "build the backlog input". The type you choose MUST exist on the target board: a Basic-process project has no Bug or User Story, so picking those silently fails at creation time. This skill discovers the project's process first, applies industry typing rules (defect vs new capability vs grouping parent), maps severity to Priority, builds the per-type fields (titles, tags, repro/description as escaped HTML), carries each finding's `key` through, and hands off to ado-create-work-items.
npx skill4agent add thodsaphonsonthiphin/workflow-daily-work classify-work-itemsextract-findingstriage-findingsbacklog_input.jsonado-create-work-itemsreferences/data-contracts.mdfindings.jsonbacklog_input.jsonBugUser StoryProduct Backlog ItemUser StoryRequirementaz login$org = $env:AZDO_ORG # e.g. Cartagena365
$project = $env:AZDO_PROJECT # e.g. GlassHull
$token = az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query accessToken -o tsv
$headers = @{ Authorization = "Bearer $token" }
$proj = Invoke-RestMethod -Headers $headers `
"https://dev.azure.com/$org/_apis/projects/$project?includeCapabilities=true&api-version=7.1"
$proj.capabilities.processTemplate.templateName # -> Agile | Scrum | Basic | CMMI$headers = @{ Authorization = "Basic " + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$env:AZDO_PAT")) }references/data-contracts.mdConvertFrom-Json/_apis/wit/workitemtypesURLurlAZDO_ORGAZDO_PROJECTseverityBugkind: renamedisambiguationIssuedata-contracts.mdkind: missingUser StoryProduct Backlog ItemRequirementIssueFeatureEpicseverityMicrosoft.VSTS.Common.Priority| severity | Priority |
|---|---|
| Critical | 1 |
| High | 2 |
| Medium | 3 |
| Low | 4 |
3fieldsSystem.TitlePortal label "Auto" should display CRM-canonical "Automotive Cargo"Fix namingSystem.Tags"initiative; status""naming-audit; crm-portal; review-confirmed";Microsoft.VSTS.Common.PrioritySystem.AssignedToname@cartagena.noAZDO_ASSIGNED_TOBugMicrosoft.VSTS.TCM.ReproStepsUser StoryProduct Backlog ItemRequirementSystem.DescriptionMicrosoft.VSTS.Common.AcceptanceCriteriaIssueSystem.DescriptionIssueMicrosoft.VSTS.TCM.ReproStepsMicrosoft.VSTS.Common.AcceptanceCriteriavalidateOnly&&<<>><br><b><>currentexpectedrecommendationnoteskey"key""type"keyado-create-work-itemsbacklog_result.jsonado-writeback-trackingreferences/data-contracts.md{
"key": "1",
"type": "Bug",
"fields": {
"System.Title": "Portal label \"Auto\" should display CRM-canonical \"Automotive Cargo\"",
"Microsoft.VSTS.Common.Priority": 1,
"System.Tags": "naming-audit; crm-portal; review-confirmed",
"Microsoft.VSTS.TCM.ReproSteps": "<b>Current:</b> Auto<br><b>Expected:</b> Automotive Cargo"
}
}parentFeatureEpictypefieldsSystem.TitleSystem.TagsPrioritycreate-backlog.csSystem.LinkTypes.Hierarchy-Reversedocs/adr/0001estimatereferences/data-contracts.md| kind | baseline | bump up when… |
|---|---|---|
| rename (one spot) | 1–2h | appears across many screens / variants |
| rename (multi) | 3–4h | |
| disambiguation / mapping | 4–8h | maps to many CRM fields (e.g. 5) → top of band |
| missing field (UI + submit) | 6–8h | + validation; + compliance/regulatory → +2–4h |
| structural (new column / split) | 4–6h |
Microsoft.VSTS.Scheduling.OriginalEstimateRemainingWorkSystem.Description# Type kind Est why
6078 User Story missing+comply 8h new field + submit + compliance check
... ────
~41h (~5–6 days)estimate.taskMicrosoft.VSTS.Scheduling.Effort{ org?, project?, parent?, items: [...] }backlog_input.jsonorgprojectAZDO_ORGAZDO_PROJECTkeytypeSystem.TitleAZDO_DRY_RUN=truevalidateOnly