# dsai-synapsis-agent-init

Tool internal Synapsis DSAI untuk melakukan inisialisasi aturan agent (standardized agent rules).

## Deskripsi
Alat ini digunakan untuk mendistribusikan folder template standar (`.agent`, `.agents`, `.claude`) ke dalam repositori project. Hal ini memastikan seluruh tim DSAI bekerja dengan standar instruksi dan skill yang sama.

## Cara Penggunaan (Tim)

### 1. Menggunakan uvx (Direkomendasikan)
Anda tidak perlu menginstal apa pun secara permanen. Jalankan perintah ini di root repositori project Anda:

```bash
uvx --refresh dsai-synapsis-agent-init
```

*Catatan: Gunakan flag `--refresh` untuk memastikan Anda selalu menggunakan versi terbaru dari PyPI.*

*Catatan: Jika folder `.agent`, `.agents`, atau `.claude` sudah ada, tool akan **menambahkan (merge)** file-file baru ke dalam folder tersebut tanpa menghapus file yang sudah ada.*

### 3. Backup (Menggunakan Git)
Jika terjadi kendala pada PyPI:
```bash
uvx --from git+ssh://git@repo.synapsis.id:2222/software/internal/dsai-documents/ds-ai-internal-project/dsai-synapsis-agent-init.git dsai-synapsis-agent-init
```

---

## ❓ Q&A (Pertanyaan Umum)

### Apa itu "Skills" dalam repositori ini?
**Skills** adalah kumpulan instruksi, aturan, dan praktik terbaik (best practices) yang telah diformat khusus agar AI agent (seperti Gemini CLI, Claude Code, atau Copilot) dapat memahami konteks kerja tim Synapsis DSAI secara mendalam. Dengan mengaktifkan skill tertentu, AI akan berperan sebagai pakar di bidang tersebut.

### Bahasa apa saja yang didukung oleh skills di sini?
Repositori ini mendukung berbagai bahasa pemrograman dan teknologi, termasuk namun tidak terbatas pada:
- **Programming:** Python (FastAPI, Flask, SQLAlchemy), Rust (Async, Systems Programming), SQL (Postgres, QuestDB), Shell (Bash, PowerShell).
- **Human Languages:** Dokumentasi dan instruksi tersedia dalam **Bahasa Indonesia** dan **English**, dengan standar penamaan kode (naming conventions) internasional.

### Apakah skills di sini hanya untuk coding?
**Tidak.** Meskipun banyak skill untuk pengembangan perangkat lunak, kami juga menyediakan skill untuk aspek produk dan riset lainnya, seperti:
- **Product Management:** Pembuatan PRD (Product Requirements Document), pengelolaan backlog, dan riset pasar.
- **Data & Research:** Data storytelling, visualisasi (Matplotlib), dan deep research.
- **Design & Architecture:** Pembuatan diagram (Mermaid), perancangan microservices, dan pola arsitektur (SOLID, Clean Architecture).

### Bagaimana jika saya ingin menambahkan skill baru?
Anda bisa berkontribusi dengan menambahkan template skill baru di folder `src/dsai_synapsis_agent_init/templates/`. Pastikan setiap skill baru menyertakan file `SKILL.md` yang menjelaskan cara AI harus bersikap dan perintah apa yang harus dijalankan.

### Apakah menjalankan tool ini akan menghapus file saya?
Tidak. Tool ini menggunakan mekanisme **Merging**. Jika folder `.agent`, `.agents`, atau `.claude` sudah ada di project Anda, tool ini hanya akan menambahkan file skill yang baru tanpa menghapus atau menimpa file yang sudah Anda miliki.

---

## Pengembangan

### Prasyarat
- [uv](https://github.com/astral-sh/uv) installed.

### Setup Lokal
```bash
cd dsai-synapsis-agent-init
uv sync --extra dev
```

### Menjalankan Test
Project ini menerapkan TDD. Pastikan seluruh test pass sebelum melakukan commit.
```bash
uv run pytest
```

### Menambah/Update Template
1. Update folder di `src/dsai_synapsis_agent_init/templates/`.
2. Jika menambah folder baru, update `FOLDERS_TO_INIT` di `src/dsai_synapsis_agent_init/main.py`.
3. Jalankan test untuk memastikan folder baru ikut ter-copy.
