Repository navigation
Description
Extension ID
ado
Extension Name
Spec Kit for Azure DevOps — human-gated lifecycle
Version
0.3.0
Description
Azure DevOps story to Done through Spec Kit, with a human sign-off before every board change.
Author
praveenlavu
Repository URL
https://github.com/praveenlavu/spec-kit-ado
Download URL
https://github.com/praveenlavu/spec-kit-ado/archive/refs/tags/v0.3.0.zip
License
MIT
Homepage (optional)
https://github.com/praveenlavu/spec-kit-ado
Documentation URL (optional)
https://github.com/praveenlavu/spec-kit-ado/blob/v0.3.0/README.md
Changelog URL (optional)
https://github.com/praveenlavu/spec-kit-ado/blob/main/CHANGELOG.md
Required Spec Kit Version
=1.2.1
Required Tools (optional)
- ado (>=0.3.0) - required; the CLI from the same repository and tag: pipx install git+https://github.com/praveenlavu/spec-kit-ado@v0.3.0
- git - required
- gh - optional; only to open PRs on GitHubNumber of Commands
13
Number of Hooks (optional)
2
Tags
azure-devops, issue-tracking, hitl, workflow, governance
Key Features
- Pulls an Azure DevOps story into a per-story Definition-of-Done ledger with the acceptance criteria copied verbatim, then hands specify, plan, tasks and implement to the installed stack kit or core Spec Kit
- Mirrors tasks.md into child Tasks on the story; a dry run by default, applied only after an explicit yes
- DoD gate: acceptance criterion to named-test traceability, assertion-free tests, AC drift, missing evidence, business-rule coverage; advisory unless a check is opted in to blocking
- Optional strict mode for teams that want hard stops: red/green commit evidence re-run in CI, approved test command, stack profiles and kit pinning
- Eight-plane review of the branch diff with a verification pass, logged in the ledger
- Opens the PR with AB# (GitHub or Azure Repos) and closes the story with the ledger attached, each after an explicit yes
ado doctorexplains what is wrong with a setup; CI templates for GitHub Actions and Azure Pipelines
Testing Checklist
- Extension installs successfully via download URL
- All commands execute without errors
- Documentation is complete and accurate
- No security vulnerabilities identified
- Tested on at least one real project
Submission Requirements
- Valid
extension.ymlmanifest included - README.md with installation and usage instructions
- LICENSE file included
- GitHub release created with version tag
- All command files exist and are properly formatted
- Extension ID follows naming conventions (lowercase-with-hyphens)
Testing Details
Environment: macOS (Apple silicon), Python 3.9 and 3.12, Spec Kit 1.2.4.dev0 (specify); GitHub-hosted Ubuntu CI on Python 3.9 and 3.13; a weekly contract job against Spec Kit 1.2.1 (the minimum) and the latest release.
At the tagged commit (v0.3.0, fcc41df): 5515 tests passed, 15 skipped; hosted CI green; contract job green on both Spec Kit versions. A static security scan (bandit) over about 11,000 lines found no medium or high issue except one raw bidirectional character inside a regex (hygiene, no behaviour effect, fix queued) and two false positives; the project has no runtime dependencies. This is not an independent audit.
Clean-project install from the download URL: specify extension add ado --from https://github.com/praveenlavu/spec-kit-ado/archive/refs/tags/v0.3.0.zip gives v0.3.0 with 13 commands, 2 hooks and 13 skills. All 187 ado command-line invocations in the 13 command files were checked against the real CLI (verbs and flags).
Live end-to-end run on 2026-11-08 using only the published v0.3.0 artifacts (CLI from the tag, this extension zip, the ado-lifecycle workflow), against a real Azure DevOps organization and Azure Repos repository created for testing (not a customer project), advisory mode:
- All 13 commands ran with exit 0 and no error text: pull, plan, tasks, implement, gate, review and pr inside the workflow run (plus its
ado pushsteps); push (preview), done (3 turns), constitution and status headless; setup stopped as designed and asked the human to runado setupin their own terminal (it reads no token); stack stopped because a profile was already approved and approved or installed nothing. - Story A: the workflow paused at 12 gates with no TTY, each was answered with
specify workflow resume <run> --input verdict_<gate>=approve, the run completed, 8 Tasks were created and synced, a pull request was opened and linked to the story; after the PR was merged,doneattached the ledger and closed the story. - Story B: a rejected gate aborted the run; the work item was unchanged (revision 1, no relations, no comments) and resume refused the aborted run.
Not covered by this run: strict mode and comment-approval mode (strict mode was exercised in earlier live runs on 0.3 development builds; comment approvals with a second human identity were never run live), the Azure Pipelines templates on a hosted agent, and Windows (the test suite and strict mode are POSIX-only; use WSL). The product owner's answers were simulated with comments, and the pull request was completed through the REST API. Known open issue: a decision cannot be superseded before it has been posted.
Example Usage
pipx install git+https://github.com/praveenlavu/spec-kit-ado@v0.3.0
specify extension add ado --from https://github.com/praveenlavu/spec-kit-ado/archive/refs/tags/v0.3.0.zip
ado setup --profile starter # in your own terminal: it asks for the PAT
/speckit.ado.pull 1001Proposed Catalog Entry
{
"ado": {
"name": "Spec Kit for Azure DevOps — human-gated lifecycle",
"id": "ado",
"description": "Azure DevOps story to Done through Spec Kit, with a human sign-off before every board change.",
"author": "praveenlavu",
"version": "0.3.0",
"download_url": "https://github.com/praveenlavu/spec-kit-ado/archive/refs/tags/v0.3.0.zip",
"sha256": "8506838e8b2c38ec73239276b30c996170d4182e618dc15811e23e09e86db54a",
"repository": "https://github.com/praveenlavu/spec-kit-ado",
"homepage": "https://github.com/praveenlavu/spec-kit-ado",
"documentation": "https://github.com/praveenlavu/spec-kit-ado/blob/v0.3.0/README.md",
"changelog": "https://github.com/praveenlavu/spec-kit-ado/blob/main/CHANGELOG.md",
"license": "MIT",
"requires": {
"speckit_version": ">=1.2.1",
"tools": [
{
"name": "ado",
"version": ">=0.3.0",
"required": true
},
{
"name": "git",
"required": true
},
{
"name": "gh",
"required": false
}
]
},
"provides": {
"commands": 13,
"hooks": 2
},
"tags": [
"azure-devops",
"issue-tracking",
"hitl",
"workflow",
"governance"
],
"verified": false,
"downloads": 0,
"stars": 0,
"created_at": "2026-11-08T00:00:00Z",
"updated_at": "2026-11-08T00:00:00Z"
}
}Additional Context
The ado command-line program (Python standard library only) ships in the same repository at the same version. The ado-lifecycle workflow is submitted to the workflow catalog by pull request, and an "ado" bundle that installs both is submitted separately. Two other Azure DevOps extensions are listed (azure-devops, maqa-azure-devops) and focus on syncing work items; this one covers the story-to-Done lifecycle with a person approving every board or PR change. This is a community project, not affiliated with or endorsed by GitHub or Microsoft. I would be glad to learn whether a verified-flag process exists and what it asks for.
Activity