# Skill Contract

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

---

## Intent
Untuk menghitung rata-rata aritmetika dari tiga angka yang diberikan oleh pengguna, memastikan semua angka telah disediakan.

---

## Inputs
- X (number, required)
- Y (number, required)
- Z (number, required)

---

## Outputs
- rata-rata (number)

---

## Output Message
rata-rata dari angka X Y dan Z adalah {rata-rata}

---

## Logic
1. Ambil tiga nilai input: X, Y, dan Z.
2. **Validasi Input:** Periksa setiap input (X, Y, Z). Jika ada input yang kosong, tidak disediakan, atau bukan merupakan angka numerik yang valid, hentikan eksekusi skill dan kembalikan pesan kesalahan yang meminta pengguna untuk mengisi angka yang benar pada input yang relevan.
3. Hitung jumlah dari ketiga angka tersebut (X + Y + Z).
4. Bagi jumlah tersebut dengan 3 untuk mendapatkan rata-rata.
5. Kembalikan nilai rata-rata sebagai output.

---

## Additional Logic
- Jika input X, Y, atau Z kosong atau tidak disediakan, skill harus mengembalikan pesan kesalahan yang meminta pengguna untuk mengisi angka pada input yang kosong tersebut. Defaulting ke 0 tidak lagi berlaku.
- Skill juga harus memvalidasi bahwa setiap input yang diberikan adalah angka numerik yang valid.

---

## Side Effects
Tidak ada efek samping karena skill ini hanya melakukan komputasi lokal.

---

## Capability Summary
Menghitung rata-rata aritmetika dari tiga angka numerik yang wajib disediakan.

---

## Allowed Roles
- SUPERUSER

---

## Assumptions
- Input nilai X, Y, dan Z diharapkan berupa angka numerik dan harus selalu disediakan oleh pengguna.
- Konsep "rata-rata" dipahami sebagai mean aritmetika.

---

## Non-Goals
- Tidak akan menghitung rata-rata jika kurang dari tiga angka valid disediakan atau jika ada input non-numerik.
- Tidak menangani tipe rata-rata selain rata-rata aritmetika.

---

## Failure Modes
- Gagal jika salah satu atau lebih input (X, Y, atau Z) tidak disediakan oleh pengguna.
- Gagal jika salah satu atau lebih input (X, Y, atau Z) bukan merupakan angka numerik yang valid.

---

## Data & System Access
- Menggunakan variabel lokal untuk menyimpan input (X, Y, Z), jumlah, dan rata-rata.
- Tidak ada akses ke basis data eksternal, API, atau sistem lain.

---

## Safety & Risk
Risk Level: LOW

---

## Input Mode
form

---

## Approval

    Approved by: USER  
    Approved on: 2026-05-22T07:30:24.801933Z