findings-to-ado-backlog
End-to-end orchestrator that turns findings from ANY input (audit spreadsheet, code/security review, QA report, meeting notes, a pasted list of issues) into…
Skill by ThodsaphonSonthiphin
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/thodsaphonsonthiphin-findings-to-ado-backlog
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, spreadsheets, testing, devops
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/findings-to-ado-backlog
What's inside
- Skill name
findings-to-ado-backlog- Description
- End-to-end orchestrator that turns findings from ANY input (audit spreadsheet, code/security review, QA report, meeting notes, a pasted list of issues) into an Azure DevOps backlog of linked work items. Drives the six sibling ado-backlog skills in order with safety gates. Trigger whenever the user says "turn this audit/spreadsheet/review/list of issues into ADO work items", "create a backlog from these findings", "file these as ADO tickets/bugs/stories", "import this xlsx/csv into Azure DevOps", "make work items from this report", or hands you a source document and asks for it to land in ADO. This is the headline, one-shot entry point (/ado-backlog:run wraps it). Prefer this over running the sub-skills piecemeal when the user wants the whole pipeline. Not for editing existing items individually — use ado-create-work-items.
- License
- MIT
- Instructions
- 153 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (6)
- SKILL.md
- data-contracts.md · references/
- create-backlog.cs · scripts/
- read_source.py · scripts/
- setup_check.ps1 · scripts/
- tracking.py · scripts/
SKILL.md (first lines)
<!-- generated: third-party requirements -->
> **Requires:** `pip install openpyxl` — this skill's scripts import `openpyxl`.
# findings-to-ado-backlog (orchestrator)
Run the full pipeline: a source document in, an ADO backlog out. You coordinate six
sibling skills; each owns its step and its data contract. Your job is to sequence them,
keep the working files together, and enforce the safety gates so nothing irreversible
happens without the user seeing it first.
**Why an orchestrator:** the value is in the gates, not the glue. Creating work items is a
write the user cannot easily undo, so the pipeline is deliberately staged: read-only
extraction and classification first, a dry run that creates nothing, an explicit human
approval, then the real write. Each sub-skill is reusable on its own; this skill is the
teachable happy path that ties them together.
## Data flow
Three small JSON files carry state between steps. They share a stable **`key`** per finding
(a row number or ID column) so a created ticket can be traced back to its source row.
Full shapes live in `references/data-contracts.md` — read it once; do
not duplicate schemas here.
```
extract-findings -> findings.json
classify-work-items -> backlog_input.json (consumed by create-backlog.cs)
ado-create-work-items -> backlog_result.json (consumed by tracking.py writeback)
```
**Working directory:** create one beside the source (e.g. next to the xlsx) and keep all
three JSON files there. This keeps a run self-contained and re-runnable.
## Process
### 0. Prereqs + auth (optional but recommended on first run)
Confirm the toolchain is present before you invest in extraction. This is read-only.
```powershell
powershell -ExecutionPolicy Bypass -File "${CLAUDE_SKILL_DIR}/scripts/setup_check.ps1"
```
It checks `az login`, .NET >= 10, Python + openpyxl, and the `AZDO_ORG` / `AZDO_PROJECT`
env vars. For auth specifics (Entra token vs `AZDO_PAT`, org/project), delegate to
**ado-auth**. The create script defaults to an Entra token via
`az account get-access-token --resource 499b84ac-1321-427f-aa17-267ca6975798 --query accessToken -o tsv`.
### 1. Extract → `findings.json` (delegate to **extract-findings**)
Have **extract-findings** read the source (it uses
`${CLAUDE_SKILL_DIR}/scripts/read_source.py` for xlsx/csv; docs and pasted text are read
directly) and normalize it to `findings.json`. **Confirm the column mapping with the user**
before moving on — which column is the `key`, which are `current` / `expected`, where
`severity` and `status` come from. A wrong mapping silently poisons everything downstream.
### 2. Triage → scoped subset (delegate to **triage-findings**)
Don't file everything blindly. Have **triage-findings** filter `findings.json` to the wave
worth creating now. **Recommend Critical + confirmed first** — it is the smallest defensible
batch and proves the pipeline before you fan out. Hold `needs-review` items for a later wave
and tell the user you are doing so.
### 3. Classify → `backlog_input.json` (delegate to **classify-work-items**)
Have **classify-work-items** map the scoped findings to ADO work items. It must:
- **Discover the target project's process** (Agile / Scrum / Basic / CMMI) and pick
**industry-standard types that actually exist on that board** — e.g. a defect is `Bug` on
Agile/Scrum/CMMI but Basic has no Bug (use `Issue`). See the process→types table in
`data-contracts.md`.
- Optionally add a **`Feature` or `Epic` parent** to group the batch; every item links under
it via `System.LinkTypes.Hierarchy-Reverse`.
- **Decide assignment — ask the user who these go to.** A fresh backlog is usually created
*unassigned* (assigned later in planning), but ask: leave unassigned, assign to the user
themselves, assign the batch to one person, or map a per-row owner. Set `System.AssignedTo`
(a UPN like `name@domain`) on each item, or assign the whole batch at create time with the
`AZDO_ASSIGNED_TO` env var. The dry run validates the identity before any real write.
- Emit raw ADO field reference names (`System.Title`, `Microsoft.VSTS.Common.Priority`,
`System.Tags`; Bug body `Microsoft.VSTS.TCM.ReproSteps`; Story/PBI body `System.Description`
+ `Microsoft.VSTS.Common.AcceptanceCriteria`). HTML fields must be valid HTML.
- **Estimate time** per item and attach it as a **child Task** (hours in Original/Remaining
Work; the detailed breakdown in the Task description) — see `classify-work-items`.
> **GATE — estimates.** classify proposes the hours per item as a table. **Show it and get the
> user's OK / adjustments before the dry run.** Estimates are cheap to fix now, annoying to fix
> across already-created Tasks.
### 4. DRY RUN → validate, create nothing (delegate to **ado-create-work-items**)
This is the first gate. The create script defaults to dry run, which sends each item to ADO
with `validateOnly=true` — it catches a bad type, a missing required field, or a wrong
area/iteration path **without creating anything**.
```powershell
$env:AZDO_DRY_RUN = "true"
dotnet run "${CLAUDE_SKILL_DIR}/scripts/create-backlog.cs" -- "<workdir>/backlog_input.json"
```
Show the user the validated PASS/FAIL list (type, title per `key`). Fix any FAIL in
`backlog_input.json` and re-run until clean.
> **GATE — stop here.** Do not proceed to the real run until the user has explicitly
> approved the validated list. Present the count, the types, and the parent, and wait for a
> clear yes.
### 5. REAL RUN → `backlog_result.json` (delegate to **ado-create-work-items**)
Only after approval. Setting `AZDO_DRY_RUN` to `false` creates the parent (if any), every
child, **and a child Task (with the hour estimate) under each item**, links them all, and writes
`backlog_result.json`.
```powershell
$env:AZDO_DRY_RUN = "false"
dotnet run "${CLAUDE_SKILL_DIR}/scripts/create-backlog.cs" -- "<workdir>/backlog_input.json"
```
Then **verify the created items** — confirm each `key` got an `id` and `url` in
`backlog_result.json`, and that any rows logged `FAILED` are surfaced to the user, not buried.From ThodsaphonSonthiphin/workflow-daily-work, MIT.
More from ThodsaphonSonthiphin/workflow-daily-work
- 0.529score
fit-gap-analysis
ThodsaphonSonthiphin
Compare a target (spec, product vision, competitor, RFP, or "to-be" design) against a system as actually built, and produce an evidence-first fit-gap — a…
SkillBFreshness: BClaude Code +9 - 0.529score
extract-findings
ThodsaphonSonthiphin
Normalize ANY input into findings.json — the first step toward turning review notes into an Azure DevOps backlog.
SkillBFreshness: BClaude Code +9 - 0.529score
feynman-explain
ThodsaphonSonthiphin
Fixed-format explanation discipline for concepts, systems, and code.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-auth
ThodsaphonSonthiphin
Authenticate to Azure DevOps and fix auth problems — the shared primitive every other ado-* skill relies on.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-create-work-items
ThodsaphonSonthiphin
Create Azure DevOps work items from a backlog_input.json (the output of classify-work-items) via the bundled create-backlog.cs script.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-writeback-tracking
ThodsaphonSonthiphin
Add traceability columns to a spreadsheet source and write created Azure DevOps ticket IDs/URLs back into it, matched row-by-row by key.
SkillBFreshness: BClaude Code +9 - 0.529score
drive-to-legacy
ThodsaphonSonthiphin
Use when exploring, studying, or porting an unfamiliar legacy codebase.
SkillBFreshness: BClaude Code +9 - 0.529score
findings-to-github-issues
ThodsaphonSonthiphin
End-to-end orchestrator that turns findings from ANY input (audit spreadsheet, code/security review, QA report, meeting notes, a pasted list of issues) into a…
SkillBFreshness: BClaude Code +9 - 0.529score
document-what-shipped
ThodsaphonSonthiphin
Write and publish ONE documentation page about something that already ships - a user manual, a process and flow page, a release note, a runbook, or a rules…
SkillBFreshness: BClaude Code +9 - 0.529score
chart-map
ThodsaphonSonthiphin
Chart a Decision map for an effort too big for one agent session — name the destination, grill breadth-first to separate real decision tickets from fog…
SkillBFreshness: BClaude Code +9 - 0.529score
classify-github-issues
ThodsaphonSonthiphin
Map triaged findings to GitHub Issues with the correct labels, milestone, and body, and emit github_backlog_input.json ready for creation.
SkillBFreshness: BClaude Code +9 - 0.529score
classify-work-items
ThodsaphonSonthiphin
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.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 6
- Last commit (this folder)
- Sep 5, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ThodsaphonSonthiphin
- 0.529score
extract-findings
ThodsaphonSonthiphin
Normalize ANY input into findings.json — the first step toward turning review notes into an Azure DevOps backlog.
SkillBFreshness: BClaude Code +9 - 0.529score
feynman-explain
ThodsaphonSonthiphin
Fixed-format explanation discipline for concepts, systems, and code.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-auth
ThodsaphonSonthiphin
Authenticate to Azure DevOps and fix auth problems — the shared primitive every other ado-* skill relies on.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-create-work-items
ThodsaphonSonthiphin
Create Azure DevOps work items from a backlog_input.json (the output of classify-work-items) via the bundled create-backlog.cs script.
SkillBFreshness: BClaude Code +9 - 0.529score
ado-writeback-tracking
ThodsaphonSonthiphin
Add traceability columns to a spreadsheet source and write created Azure DevOps ticket IDs/URLs back into it, matched row-by-row by key.
SkillBFreshness: BClaude Code +9 - 0.529score
document-what-shipped
ThodsaphonSonthiphin
Write and publish ONE documentation page about something that already ships - a user manual, a process and flow page, a release note, a runbook, or a rules…
SkillBFreshness: BClaude Code +9
Cite this page
findings-to-ado-backlog skill. Agent Mart. https://agentmart.dev/skills/thodsaphonsonthiphin-findings-to-ado-backlog (last updated 2026-10-24)