# Skill Contract

**Skill ID:** dalam_keranjang
**Version:** v1
**Status:** APPROVED

---

## Intent
Melihat produk apa saja yang saat ini ada di dalam keranjang belanja pengguna.

---

## Inputs
Tidak ada input yang diperlukan untuk skill ini.

---

## Outputs
- `product_name`: string (nama produk)
- `quantity`: number (qty)
- `price`: number (harga)

---

## Output Message
Pesan "Berikut isi keranjang Anda:" diikuti dengan tabel isi keranjang berupa nama produk, qty, dan harga. Jika keranjang kosong maka tampilkan "Keranjang Anda belum terisi. Silahkan pilih produk belanja".

---

## Logic
1. Panggil tool `view_cart` untuk mengambil data isi keranjang belanja pengguna.
2. Periksa respons dari `view_cart`:
   a. Jika respons menunjukkan adanya error (`error.status` adalah `True`), tangani kesalahan dan informasikan kepada pengguna dengan pesan yang relevan dari `error.msg` atau pesan default kegagalan.
   b. Jika respons sukses dan `data.detail` berisi array produk:
      i. Iterasi melalui setiap objek produk dalam `data.detail`.
      ii. Ekstrak `product_name`, `quantity`, dan `price` dari setiap objek produk.
      iii. Format informasi produk ini menjadi daftar atau tabel yang rapi.
      iv. Bentuk pesan output sesuai dengan format "Berikut isi keranjang Anda:" diikuti dengan daftar produk.
   c. Jika respons sukses tetapi `data.detail` kosong (keranjang kosong):
      i. Bentuk pesan output sesuai dengan format "Keranjang Anda belum terisi. Silahkan pilih produk belanja".

---

## Additional Logic
Sesuai dengan percakapan sebelumnya, skill ini dirancang agar tidak memerlukan input apa pun dari pengguna. Logika telah dikonfigurasi untuk langsung memanggil tool `view_cart` tanpa menunggu parameter tambahan.
- Update Input Mode to 'chat'. Ensure manifest.json configuration prevents any input requests for this skill.

---

## Side Effects
Memanggil tool `view_cart` untuk membaca status keranjang belanja pengguna. Tidak ada perubahan state pada sistem atau data keranjang.

---

## Capability Summary
Memungkinkan pengguna untuk melihat daftar produk yang ada di dalam keranjang belanja mereka, termasuk nama produk, kuantitas, dan harga.

---

## Allowed Roles
- SUPERUSER

---

## Assumptions
- Tool `view_cart` tersedia dan berfungsi sebagaimana mestinya.
- Format respons dari tool `view_cart` sesuai dengan spesifikasi, terutama pada struktur `data.detail` yang berisi array objek produk.
- Setiap objek produk dalam `data.detail` memiliki properti yang merepresentasikan nama produk (`product_name`), kuantitas (`quantity`), dan harga (`price`).

---

## Non-Goals
- Mengubah isi keranjang (menambah, memperbarui, atau menghapus item).
- Melakukan proses pembayaran atau checkout.
- Menampilkan gambar produk atau deskripsi detail selain nama, kuantitas, dan harga.

---

## Failure Modes
- Tool `view_cart` gagal merespons atau mengembalikan status error (misalnya, `error.status` adalah `True`).
- Format data yang diterima dari `view_cart` tidak sesuai dengan yang diharapkan (misalnya, `data.detail` bukan array atau objek produk tidak memiliki properti yang diperlukan).
- Terjadi masalah koneksi jaringan saat memanggil tool `view_cart`.

---

## Data & System Access
Mengakses data keranjang belanja pengguna melalui tool `view_cart`.

---

## Safety & Risk
Risk Level: LOW

---

## Input Mode
chat

---

## Approval

    Approved by: USER  
    Approved on: 2026-05-22T06:12:06.135082Z