Ekstraksi Azure Boards untuk Kebutuhan AI di Visual Studio
Hi Sobat VSID, Salah satu tantangan yang jarang dibahas ketika tim mulai memakai AI coding assistant (Copilot, Claude, dsb.) di Visual Studio adalah: AI tidak tahu konteks bisnis dari backlog Anda. Ia bisa menulis kode, tapi tidak tahu user story mana yang sedang dikerjakan, apa acceptance criteria-nya, atau bagaimana satu story terkait dengan Epic yang lebih besar.
Bagi tim yang menyimpan backlog di Azure Boards (Azure DevOps), ada cara sederhana untuk menjembatani hal ini: ekstrak seluruh User Story dan Product Backlog Item ke satu file requirements.md, lalu jadikan file itu sebagai "buku panduan" yang dibaca AI assistant sebelum menulis kode.
Artikel ini membahas idenya, sekaligus membagikan tool kecil berbasis C#/.NET yang bisa langsung dipakai.
Kenapa Tidak Copy-Paste Manual Saja?
Bisa saja, tapi ada tiga masalah:
- Tidak konsisten — format hasil copy-paste dari Azure Boards ke Word/Notion sering berantakan (HTML tag ikut kebawa, formatting hilang).
- Tidak scalable — backlog dengan puluhan atau ratusan item butuh waktu lama untuk disalin manual.
- Cepat basi — begitu backlog berubah di sprint berikutnya, dokumen manual langsung usang.
Solusinya: otomatisasi lewat Azure DevOps REST API.
Ide Dasar
Azure Boards
│
▼
1. WIQL Query → ambil daftar ID User Story / PBI
│
▼
2. Work Items Batch API → ambil detail: Title, Description,
│ Acceptance Criteria, Story Points, Tags
▼
3. Resolve Parent → cari Epic/Feature induk tiap item
│
▼
4. Bersihkan HTML → field Description & Acceptance Criteria
│ dari Azure Boards berformat HTML
▼
5. Render ke Markdown → dikelompokkan per Epic/Feature
│
▼
requirements.md ✅ siap dibaca AI coding assistant
WIQL (Work Item Query Language) dipilih dibanding Azure CLI atau export manual karena paling fleksibel untuk memfilter berdasarkan tipe work item, state, area path, atau iterasi tertentu — dan hasilnya bisa langsung dipadukan dengan Work Items Batch API untuk mengambil field lengkap dalam satu-dua kali panggilan.
Format Hasil Akhir
Setiap item dirender dengan struktur yang konsisten, misalnya:
### [1042] Sebagai pengguna, saya ingin login dengan akun Microsoft
- **Tipe**: User Story
- **Status**: Active
- **Story Points**: 3
- **Tags**: auth, sprint-12
- **Iteration**: Project\Sprint 12
- **Link**: https://dev.azure.com/org/project/_workitems/edit/1042
**Deskripsi**
Pengguna perlu bisa login menggunakan akun Microsoft 365 tanpa
membuat akun baru di sistem.
**Acceptance Criteria**
- Tombol "Login dengan Microsoft" tampil di halaman login
- Setelah login, sesi pengguna tersimpan selama 24 jam
Format seperti ini mudah dibaca manusia maupun di-parse AI assistant sebagai konteks sebelum menulis kode.
Tool Siap Pakai (C# .NET 8)
Untuk mempercepat, sudah dibuatkan console app kecil yang bisa langsung dibuka di Visual Studio 2026:
AzureDevOpsClient.cs— menangani autentikasi PAT dan panggilan WIQL + Batch APIWorkItemMapper.cs— mengubah JSON mentah menjadi model bersih, sekaligus membersihkan tag HTML dari field Description/Acceptance CriteriaMarkdownGenerator.cs— merender model kerequirements.md, dikelompokkan per Epic/Featureappsettings.json— konfigurasi organisasi/project (PAT tidak disimpan di sini, melainkan lewatdotnet user-secrets)
Cara pakai singkat:
dotnet user-secrets set "AzureDevOps:PersonalAccessToken" "TEMPEL_PAT_ANDA"
dotnet run --project src/AzureBoardsToRequirements
Dalam beberapa detik, requirements.md siap digunakan. Toolnya bisa diunduh di sini ridiferd/AzureBoardsToRequirementsMD: Converting your azure boards user story to usable requirements.md for Github Copilot / Claude in Visual Studio
Meta Prompt: Menyuruh AI "Berpikir Dulu" Sebelum Menulis Kode
Setelah requirements.md ada di root project, langkah berikutnya adalah menuntun AI assistant agar tidak langsung "asal generate kode". Salah satu meta prompt yang bisa ditempel di Copilot Chat / Claude di Visual Studio 2026:
"Baca
requirements.md. Untuk tiap User Story, buat rencana implementasi singkat (file yang perlu diubah, class/method baru) sebelum menulis kode. Tandai story yang acceptance criteria-nya masih ambigu dan tanyakan ke saya sebelum melanjutkan."
Prompt ini memaksa AI melakukan semacam "code review sebelum coding" — memetakan story ke rencana teknis, dan yang tak kalah penting, mengaku kalau ada acceptance criteria yang tidak jelas alih-alih menebak-nebak sendiri.
Catatan Keamanan
- PAT (Personal Access Token) sebaiknya dibatasi scope-nya hanya Work Items (Read).
- Jangan pernah menaruh PAT langsung di
appsettings.json— gunakan User Secrets atau environment variable.
Penutup
Menjembatani backlog di Azure Boards dengan AI coding assistant sebenarnya bukan soal tool yang canggih, tapi soal memberi AI konteks yang terstruktur. Dengan requirements.md yang dihasilkan otomatis dan meta prompt yang tepat, tim bisa memastikan AI menulis kode yang benar-benar selaras dengan kebutuhan bisnis — bukan sekadar kode yang "terlihat benar"
Tidak ada komentar