Tiap hari ada saja keputusan yang lahir di meeting — lalu menguap di scroll WhatsApp. Hari ini kita kasih tim satu board yang nggak pernah lupa, plus agent yang menjaga board itu tetap jujur.

Photo: fauxels, Pexels
← → pindah slide · F fullscreen
Sebelum menyentuh tools: dari mana masalahnya datang, apa yang sebenarnya diberikan platform task, dan kenapa dia baru lengkap setelah disambungkan ke OpenClaw.

Photo: Wilson Hui, CC BY 2.0, Wikimedia Commons
Sebelum bicara tools — follow-up itu sekarang sebenarnya tinggal di mana?
"Cek slope Pit-A", "jadwalkan service EX-2012" — semua setuju, nggak ada yang pegang
Notulen di e-mail, daftar di Excel, reminder di WhatsApp, status di kepala orang
Dan jawabannya beda-beda tergantung siapa yang angkat
Ganti shift atau cuti roster, orang berikutnya menggali scroll chat
ClickUp, Trello, Jira — merek boleh beda, tugasnya satu: jadi rumah tunggal untuk pekerjaan tim.
Semua task di satu board — bisa dicari, bukan terkubur di scroll chat.
Tiap ticket bawa satu PIC dan satu due date — kelihatan semua orang, bukan sekadar diingat.
To do · in progress · done — yang macet langsung menonjol sebelum jadi insiden.
Temuan, keputusan, dan closure tercatat — audit berikutnya tinggal filter, bukan berburu.
Prioritas, timeline, siapa yang overload — kelihatan sebelum kamu ambil komitmen baru.
Ganti shift, cuti roster, orang baru — board nggak ikut lupa saat orangnya berpindah.
Habis meeting dua jam, nggak ada yang sukarela bikin lima belas task manual
Di lapangan sudah selesai dari kemarin — di board masih "To Do"
Diam-diam semua balik ke WhatsApp — dan platformnya mati pelan-pelan
Tetap ada orang yang baca seluruh board lalu ngetik ringkasan standup
Keduanya saling menambal kelemahan: board punya struktur tapi nggak punya kerajinan — agent punya kerajinan tapi nggak punya memori.
Enam langkah dengan screenshot asli — dari bikin akun sampai agent-mu menjawab "Bisa 😎" di Telegram. Kerjakan di laptopmu sendiri, centang sambil jalan — angka di gambar = angka langkahnya.

Photo: Arnold Francisca, Unsplash

app.clickup.com → klik Sign upLink kecil di bawah "Welcome back!" — Free Forever, nggak perlu kartu kredit
Sekali klik, tanpa bikin password baru — pakai akun Google latihan-mu
Isi Work email + password → Log In — tetap akun latihan, bukan akun kerja pribadimu
praxislab.id2026@gmail.com) — biar bebas eksperimen tanpa menyentuh data siapa pun.


Langkah ini sebelum gambar — di Template Center, cari Task Management → klik Use Template
Folder Task Management berisi list Action Items · Backlog · Ideas + contoh task
Board · Tasks · Progress Board — satu struktur, tiga tampilan

Menu profil kebuka — Settings ada di paling atas
Gulir sidebar kiri agak ke bawah — klik ClickUp API, tab API tokens kebuka
Token muncul di kolom API Token, diawali pk_… → klik Copy; biarkan tab ini terbuka
.env, lalu gateway kurestart. Autentikasi ke ClickUp sukses 😎Diawali pk_ — pastikan nggak ada spasi ikut kebawa saat copy
Tulis ke .env · openclaw gateway restart · tes autentikasi — tanpa buka terminal atau SSH
Sudah kepasang di .env — nggak perlu nyangkut di riwayat chat

Agent cek env, autentikasi, lalu jawab: "Bisa 😎 … autentikasi sukses"
Guardrail yang benar — kunci itu dipakai, bukan dipamerkan
401 = token salah/revoked · nggak ada balasan = openclaw gateway restart, lalu openclaw doctor

Di chat yang sama — bagian bawah slide sebelumnya
"Saya sarankan di Task Management → Backlog. Boleh saya buat sekarang?" — buktinya di breadcrumb atas: … ▸ Backlog
Badan task terisi: Latar Belakang · Tujuan · metrik — plus link langsung ke task-nya
Tadi pagi (Use Case 1) agent-mu menulis BRD. Pertanyaan bisnisnya: bisa nggak dia buka ClickUp dan mengubah BRD itu jadi task list yang benar-benar bisa dijalankan tim mulai Senin — lengkap dengan PIC, due date, estimasi, dan acceptance criteria?
Yang kita otomasi ini punya nama resmi di dunia project management — kita cuma mengganti siapa yang mengetik.
Upload brd-dashboard.docx langsung ke chat Telegram — atau pakai BRD hasil Use Case 1 tadi pagi.
Aturan work breakdown. Tanpa skill, agent tetap berusaha — tapi granularitas & detailnya acak, dan tiap run hasilnya beda.
Sudah terpasang di Bagian 2. Ini tangan si agent — skill yang menentukan tangan itu ngapain.
Rekap manual ±2 jam tiap pagi — angkanya baru siap setelah rapat mulai
Data lengkap sebelum 06.00 · rekap manual <10 menit · deviasi ketahuan di hari yang sama
Pipeline data · dashboard 6 widget · alert & distribusi Telegram · dokumentasi & pelatihan
Syarat terukur per deliverable: jam, ambang, jumlah widget, waktu muat <5 detik
Tim 2 orang · 10 SP/orang/minggu · D1 wajib selesai sebelum D2 dimulai
Lulus kalau selisih <1% selama 3 hari · forecast & KPI safety tidak dikerjakan
Requirement → acceptance criteria · deliverable → fase · batasan → timeline & due date.
--- name: brd-to-tasks description: Pecah dokumen BRD jadi task list ClickUp yang lengkap — fase, PIC (role), story point, prioritas, due date, dan acceptance criteria — lewat alur draft → konfirmasi → buat via API. Anti-duplikat saat dijalankan ulang. Pakai skill ini saat user minta breakdown BRD/dokumen requirement jadi task, ticket, atau board kerja. --- # brd-to-tasks — SOP Work Breakdown BRD → ClickUp ## 0. Prinsip (baca dulu, berlaku selalu) 1. **Draft dulu, konfirmasi, baru buat.** Jangan pernah menulis apa pun ke ClickUp sebelum user menyetujui draft secara eksplisit. 2. **Cek dulu, jangan menduplikat.** Selalu baca isi list sebelum membuat. Run ulang dengan BRD yang sama harus menghasilkan **nol** task baru. 3. **Tanya, jangan mengarang.** Kalau BRD tidak menyebut sesuatu yang wajib (PIC, tanggal, ambang), jadikan pertanyaan di draft — jangan diisi fiksi. 4. **Token rahasia.** `CLICKUP_API_TOKEN` dibaca dari environment. Jangan pernah menampilkan, menyebut sebagian, atau meminta user mengetiknya di chat. 5. Balas dalam bahasa yang dipakai user (default bahasa Indonesia). ## 1. Input - **File BRD**, urutan prioritas: 1. **File yang di-upload user di chat** (alur utama di kelas) — lampiran chat tersimpan otomatis di workspace; cari file `.docx`/`.md` yang baru masuk, dan sebutkan nama file yang kamu pakai di draft ("Kubaca `brd-dashboard.docx` yang barusan kamu kirim"). 2. Path yang disebut user. 3. Default terakhir: `data/brd-dashboard.md`. Format: `.md`/`.txt` dibaca langsung; `.docx` diekstrak dulu (lihat 1a). File tidak ketemu → beri tahu apa yang kamu cari dan tanya lokasinya, jangan menebak isi BRD. - **List tujuan**: yang disebut user. Kalau tidak disebut: ambil hierarki workspace (lihat §7), tampilkan ringkas, usulkan SATU list (mis. `Backlog`), dan minta konfirmasi list-nya sekalian di draft. ### 1a. Kalau file-nya `.docx` `.docx` itu binary (ZIP berisi XML) — **jangan dibaca mentah**. Ekstrak lewat shell, coba berurutan sampai satu berhasil: 1. **pandoc** (paling bersih, tabel utuh): `pandoc <file>.docx -t gfm -o <file>.extracted.md` 2. **python-docx**: skrip python3 kecil — loop `document.paragraphs` dan `document.tables`, tulis sebagai markdown. 3. **Darurat**: `unzip -p <file>.docx word/document.xml` lalu buang tag XML. Tabel bisa rusak lewat jalur ini — kalau hasil ekstraksi terlihat cacat (deliverable/requirement tidak utuh), **bilang jujur** dan minta versi `.md`. Simpan hasilnya sebagai `data/<nama>.extracted.md` dan pakai file itu untuk run ini dan run berikutnya (supaya dedup konsisten). Sebelum lanjut ke §2, cek kewarasan: jumlah deliverable & requirement masuk akal dan tabel KPI terbaca utuh. ## 2. Aturan breakdown 1. Baca seluruh BRD. Data yang harus terkumpul: daftar **deliverable**, daftar **requirement** (dengan ID-nya, mis. R1–R11), batasan tim/velocity, dan dependency antar-deliverable. 2. Pecah jadi task berukuran **≤ 3 hari kerja (≈ ≤ 5 SP)**. Task lebih besar dari itu → pecah (mis. per widget, per sumber data). 3. Kelompokkan ke fase: **design → build → test → rollout**. 4. **Coverage wajib 100%**: setiap requirement terpetakan ke ≥ 1 task. Task yang tidak menunjuk requirement/deliverable mana pun → buang. 5. Estimasi SP skala 1/2/3/5 (Fibonacci pendek). Konservatif, jangan optimis. 6. Maksimal **25 task per run** (rem pengaman). Lebih dari itu → tanya user sebelum lanjut. ## 3. Isi wajib tiap task (dan cara menyimpannya di ClickUp) | Isi | Aturan | Di ClickUp | |---|---|---| | Judul | Kata kerja + objek, spesifik ("Bangun query KPI produksi harian") | `name` | | Deskripsi | Format §4 di bawah | `markdown_description` | | Fase | design/build/test/rollout | tag (lowercase) | | PIC (role) | Role dari BRD (mis. Data Eng) — **bukan** nama orang, kecuali user menyebut nama | tag + baris deskripsi | | Estimasi | SP | baris deskripsi | | Prioritas | High = jalur kritis / requirement berdeadline keras; sisanya Normal | `priority` (2=high, 3=normal) | | Due date | Dari perhitungan timeline §5 | `due_date` (epoch ms) | | Acceptance criteria | 2–4 butir yang bisa dicentang tester, diturunkan dari requirement | checklist "Acceptance Criteria" | | Dependency | "Blocked by <judul task>" hanya kalau nyata dari BRD | API dependency; kalau gagal cukup baris deskripsi | ## 4. Format deskripsi task ``` **Tujuan:** <satu kalimat, apa yang tercapai kalau task ini selesai> **Ref BRD:** §<bagian> · <R# yang dicakup> **PIC (role):** <role> **Estimasi:** <n> SP **Blocked by:** <judul task lain, atau "-"> ``` ## 5. Timeline & due date - Kapasitas tim = jumlah orang × velocity dari BRD (default 2 × 10 = **20 SP/minggu**). - Mulai = hari Senin terdekat setelah hari ini. - Jadwalkan fase berurutan (design → build → test → rollout); durasi fase = total SP fase ÷ kapasitas, dibulatkan ke atas per minggu. - Due date task = hari **Jumat** di minggu terakhir fasenya. - Task tidak boleh due sebelum task yang mem-block-nya. ## 6. Alur eksekusi **LANGKAH 1 — Baca & petakan.** Baca BRD, laporkan hitungan: "BRD terbaca — X deliverable, Y requirement." **LANGKAH 2 — Cek isi board (dedup).** `GET` semua task di list tujuan (termasuk closed). Normalisasi judul (lowercase, buang spasi ganda & tanda baca) lalu bandingkan. Judul yang sudah ada → tandai **SKIP — sudah ada** di draft. **LANGKAH 3 — Tampilkan draft.** Satu pesan berisi: ``` Draft: <N> task dalam 4 fase (design a · build b · test c · rollout d), total <S> SP Timeline: mulai <tgl Senin> → selesai <tgl Jumat> (kapasitas 20 SP/minggu) # Fase [Role] Judul SP Due Ket 1 design [Data Eng] Desain data model KPI 3 22 Agu 2 build [Data Eng] Bangun query KPI produksi harian 5 29 Agu blocked by #1 … Pertanyaan sebelum eksekusi: - <ambiguitas BRD, mis. "§4 tidak menyebut PIC UAT — mau di-assign ke role siapa?"> Buat <N> task ini di list "<nama list>"? ``` **LANGKAH 4 — Tunggu konfirmasi eksplisit.** Kata seperti "ya / buat / lanjut / gas" = setuju. Permintaan revisi → susun ulang draft, kembali ke LANGKAH 3. Belum ada jawaban = belum boleh membuat apa pun. **LANGKAH 5 — Eksekusi.** Buat task satu per satu sesuai §3: task → checklist AC → dependency. Satu gagal → catat dan lanjutkan sisanya, jangan berhenti diam-diam. **LANGKAH 6 — Lapor.** "✅ <N> task dibuat, <M> di-skip (sudah ada). <Jawaban pertanyaan yang masih menggantung>. Link list: <url>" + link tiap task. ## 7. ClickUp API (referensi cepat) Base URL `https://api.clickup.com/api/v2` · header `Authorization: <token dari env>`. | Kebutuhan | Endpoint | |---|---| | Hierarki | `GET /team` → `GET /team/{id}/space` → `GET /space/{id}/folder` → `GET /folder/{id}/list` | | Isi list | `GET /list/{id}/task?include_closed=true` | | Buat task | `POST /list/{id}/task` — `name`, `markdown_description`, `priority`, `due_date`, `tags` | | Checklist | `POST /task/{id}/checklist` lalu `POST /checklist/{id}/checklist_item` per butir | | Dependency | `POST /task/{id}/dependency` (`depends_on`) | | Link task | `https://app.clickup.com/t/<task_id>` | ## 8. Run ulang & update - Semua task ternyata sudah ada → jawab **"Semua sudah ada di board — tidak ada yang kubuat."** lalu tawarkan: mau kubandingkan dengan BRD dan usulkan update untuk yang berubah? - User minta update task tertentu → tampilkan perubahan yang akan dibuat → konfirmasi → `PUT /task/{id}`. ## 9. Kalau ada masalah | Gejala | Tindakan | |---|---| | `401 Unauthorized` | "Token ClickUp ditolak — cek `CLICKUP_API_TOKEN` di `.env`, lalu `openclaw gateway restart`." Jangan minta token lewat chat. | | List tidak ketemu | Tampilkan hierarki (§7) dan minta user memilih. | | `429 rate limit` | Jeda beberapa detik, ulangi; kalau berulang, laporkan. | | BRD kosong/rusak | Laporkan apa yang terbaca; jangan breakdown dari tebakan. | ## 10. Stretch (kalau user minta) - **Timeline chart** teks per fase dari draft §5. - **Rekap standup** bukan tugas skill ini — arahkan ke skill `task-manager`.
Progres kelihatan tiap hari — nggak ada yang sembunyi di mega-task
"Detail lengkap" dipaksa oleh SOP, bukan tergantung mood
Agent nggak pernah menulis ke board tanpa izin
Celah di BRD jadi pertanyaan buatmu — bukan fiksi di board

SKILL.md + satu kalimatNggak perlu ssh, nggak perlu buka folder
Kartu persetujuan muncul → klik Allow Once (tombol hijau): memasang kemampuan baru pun lewat izinmu, bukan diam-diam
brd-to-tasks aktif — rangkumannya kelihatan di gambar slide berikut; syaratnya token ClickUp di .env (sudah, dari Bagian 2)

brd-dashboard.docxFile Word apa adanya — nggak perlu diubah jadi teks dulu
Bahasa sehari-hari — skill yang menerjemahkannya jadi SOP
Klik tombol kirim — ekstraksi docx & pembacaan requirement terjadi di belakang layar

Plus batasan tim: 2 orang, velocity 10 SP/orang/minggu — semua dari dokumen
4 task lama dicek — bukan duplikat, semua fresh. Run ulang = nol task baru
Per task: role, SP, due, ref R#, blocked by. Belum pas? Minta revisi — belum ada yang ditulis ke board

22 task + checklist AC + dependency, ID-nya dicatat untuk laporan
Format response API checklist beda dari dugaan → di-debug sendiri, data sisa dibersihkan
Dependency dicek balik via API — "task 7 di-block 4, 5, 6" — checklist dobel dihapus

Timeline Senin 17 Agu → Jumat 25 Sep, pas kapasitas 20 SP/minggu
Tag fase, PIC role, prioritas, due, deskripsi format BRD, AC 3-4 butir, 20 dependency verified via API
UAT → Data Eng (16–18 Sep, minggu test) · link list + 22 link task per fase

"Desain skema kpi_daily", bukan "urusan data"
"Ref BRD: §3.2, §3.3 · R1, R9" — kenapa-nya selalu bisa dilacak
Selesai itu checklist, bukan perasaan
3 SP · High · tag design + data eng — bahan mentah timeline
Misal "Siapkan query historis 12 bulan" — anggap barusan kamu selesaikan
Sebut nama task-nya seingatmu saja, nggak perlu persis
Cari task yang cocok → tampilkan rencana (status + link di komentar) → minta konfirmasimu — baru eksekusi
Klaim "selesai" untuk task yang AC-nya jelas belum terpenuhi → dia harus menahan done + menyebut butir yang kurang
Ajari skill-mu tiga hal: cocokkan sebutan bebas ke judul task · baca checklist AC · tampilkan rencana dulu. Minta agent-mu sendiri yang meng-update SKILL.md-nya — lewat chat juga bisa.
Laporannya harus masuk beberapa menit kemudian
SP selesai minggu ini vs 20 SP/minggu rencana · umur task macet · perkiraan tanggal selesai
Kepanjangan / angkanya kurang? Bilang aja — SOP-nya dia sendiri yang perbaiki
Tanya agent-mu: "automation apa saja yang aktif?" — dia bisa mendaftar, mengubah, dan menghapus jadwalnya sendiri dari chat.
Workspace, API token, tes sambungan — semua dari chat.
Satu kalimat bisnis jadi task lengkap, PIC & due date terisi.
Satu dokumen utuh jadi board kerja lewat skill brd-to-tasks.
Lapor sambil jalan — tiket ditutup, link tertempel, done ditahan kalau AC belum lengkap.
Automation Jumat 16.00 — SP selesai vs rencana, task macet, perkiraan selesai.