rakit-cli 2.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- rakit_cli/__init__.py +3 -0
- rakit_cli/branding.py +21 -0
- rakit_cli/config.py +267 -0
- rakit_cli/main.py +1397 -0
- rakit_cli/mcp_server.py +325 -0
- rakit_cli/security.py +90 -0
- rakit_cli/skill_installer.py +218 -0
- rakit_cli/tasks_parser.py +59 -0
- rakit_cli/templates/SKILL.md +125 -0
- rakit_cli-2.0.1.dist-info/METADATA +108 -0
- rakit_cli-2.0.1.dist-info/RECORD +13 -0
- rakit_cli-2.0.1.dist-info/WHEEL +4 -0
- rakit_cli-2.0.1.dist-info/entry_points.txt +3 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rakit
|
|
3
|
+
description: >-
|
|
4
|
+
Skill orkestrator alur kerja AI & pengembang untuk ekosistem RAKIT v2.0.
|
|
5
|
+
Membimbing siklus hidup pengembangan dari ide (PRD, User Story, ADR, DB Design, Prototipe),
|
|
6
|
+
interaksi tiket backlog via MCP/CLI (/rakit, /rakit-status, /rakit-claim-ticket, /rakit-sync-progress, /rakit-ask-human),
|
|
7
|
+
hingga quality gates (G1 Spec, G2 QA/UAT, G3 Production Release).
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# RAKIT v2.0 AI Assistant Skill
|
|
11
|
+
|
|
12
|
+
Skill ini menginstruksikan asisten AI (Antigravity, Claude Code, Cursor, Windsurf, Gemini CLI, dll.)
|
|
13
|
+
untuk bekerja secara disiplin, terstruktur, dan terintegrasi dengan orkestrator **RAKIT v2.0**.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 0. Prinsip Eksekusi Utama (Non-Negotiable)
|
|
18
|
+
|
|
19
|
+
1. **Eksekusi Riil vs Simulasi Teks**:
|
|
20
|
+
- **DILARANG KERAS** hanya mensimulasikan hasil kerja di obrolan chat tanpa tindakan nyata!
|
|
21
|
+
- Saat diperintahkan klaim tiket, sinkronkan progres, atau uji kode, agen **WAJIB** menjalankan
|
|
22
|
+
tool MCP terkait (`rakit_claim_ticket`, `rakit_sync_progress`, dll.) atau mengeksekusi perintah
|
|
23
|
+
terminal nyata (`rakit ...`, `uv run ...`, `flutter test`, dll.).
|
|
24
|
+
|
|
25
|
+
2. **Gerbang Spesifikasi G1 (No Ghost Code)**:
|
|
26
|
+
- Dilarang menulis kode fitur baru sebelum tiket aktif diklaim dan kriteria penerimaan
|
|
27
|
+
berformat *Given-When-Then (GWT)* telah dipahami dari berkas `.rakit/PROMPT.md`.
|
|
28
|
+
|
|
29
|
+
3. **Pagar Keamanan Ketat (Zero Leakage)**:
|
|
30
|
+
- Jangan pernah membaca, memodifikasi, atau membocorkan berkas rahasia: `.env*`, `*.pem`, `*.key`,
|
|
31
|
+
token akses, serta direktori `secrets/`.
|
|
32
|
+
- Selalu sensor data sensitif sebelum melaporkan progres ke server.
|
|
33
|
+
|
|
34
|
+
4. **Disiplin TDD & Quality Gate G2**:
|
|
35
|
+
- Setiap baris logika bisnis atau perbaikan bug **WAJIB** disertai Unit Test yang sesuai.
|
|
36
|
+
- Semua pengujian harus lulus (`uv run pytest` / `flutter test`) sebelum tiket diajukan ke tahap verifikasi.
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 1. Katalog Perintah Slash & Alur Kerja
|
|
41
|
+
|
|
42
|
+
Gunakan perintah-perintah berikut di chat untuk memicu alur kerja terstruktur RAKIT:
|
|
43
|
+
|
|
44
|
+
### A. Perintah Inti MCP & Sinkronisasi
|
|
45
|
+
| Perintah | Alat yang Dipanggil | Deskripsi |
|
|
46
|
+
| :--- | :--- | :--- |
|
|
47
|
+
| `/rakit` | MCP `rakit_status` / CLI `rakit banner` | Menampilkan ringkasan status orkestrasi, tiket aktif, dan panduan cepat. |
|
|
48
|
+
| `/rakit-status` | MCP `rakit_status` / CLI `rakit status` | Membaca status workspace lokal, tiket aktif, dan progres `TASKS.md`. |
|
|
49
|
+
| `/rakit-claim-ticket <KEY>` | MCP `rakit_claim_ticket` / CLI `rakit start <KEY>` | Mengklaim tiket aktif dari backlog, mengikat workspace, & membuat `.rakit/PROMPT.md`. |
|
|
50
|
+
| `/rakit-sync-progress [note]` | MCP `rakit_sync_progress` / CLI `rakit sync --note` | Menyaring rahasia, mencatat event ke antrean luring idempoten, & sinkron ke Web Console. |
|
|
51
|
+
| `/rakit-ask-human <tanya>` | MCP `rakit_ask_human` | Menjeda pengerjaan, ubah status ke `NEEDS_HUMAN`, & kirim eskalasi ke Web Console/HP dev. |
|
|
52
|
+
|
|
53
|
+
### B. Perintah Rekayasa Kebutuhan & Desain (Lifecycle dari Awal)
|
|
54
|
+
| Perintah | Keluaran / Artefak | Deskripsi |
|
|
55
|
+
| :--- | :--- | :--- |
|
|
56
|
+
| `/rakit-new-task <judul>` | `TASKS.md` & BACKLOG Server | Merumuskan task baru berformat GWT, menentukan pagar modul, & mendaftarkan ke backlog. |
|
|
57
|
+
| `/rakit-prd <nama_fitur>` | `docs/prd/<fitur>.md` | Menyusun dokumen PRD lengkap (Problem, Goals, Non-Goals, Scope, Security, Edge Cases). |
|
|
58
|
+
| `/rakit-user-story <fitur>` | `docs/prd/user-stories/<fitur>.md` | Memecah PRD menjadi User Stories tajam dengan Acceptance Criteria GWT dan estimasi poin. |
|
|
59
|
+
| `/rakit-adr <judul>` | `docs/adr/ADR-XXX-<judul>.md` | Membuat Architectural Decision Record standar Nygard untuk keputusan teknik krusial. |
|
|
60
|
+
| `/rakit-db-design <modul>` | Model Django / ERD / Migrasi | Merancang skema database relasional, tenant isolation, audit trails, dan validasi constraint. |
|
|
61
|
+
| `/rakit-proto <komponen>` | Template Cotton / Widget M3 | Merancang spesifikasi prototipe UI (Dasa UI v2, Cotton, HTMX, atau Flutter Pastel). |
|
|
62
|
+
|
|
63
|
+
### C. Perintah Verifikasi, QA & Rilis
|
|
64
|
+
| Perintah | Keluaran / Tindakan | Deskripsi |
|
|
65
|
+
| :--- | :--- | :--- |
|
|
66
|
+
| `/rakit-verify` | CLI `rakit verify` + `uv run pytest` | Menjalankan audit linter, unit test, cakupan coverage, dan kesiapan Gerbang G2 (QA). |
|
|
67
|
+
| `/rakit-uat <skenario>` | `docs/uat/<fitur>.md` & Playwright | Menyusun skenario Acceptance Test Plan dan skrip flow otomatis Playwright E2E. |
|
|
68
|
+
| `/rakit-e2e-run` | Playwright Runner & rekaman mp4 | Menjalankan suite kontainer rootless E2E dan mengumpulkan laporan video transaksi. |
|
|
69
|
+
| `/rakit-release <versi>` | `pyproject.toml`, `CHANGELOG.md` | Memeriksa Gerbang G3, bump SemVer, update log perubahan, dan verifikasi artefak rilis. |
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 2. Panduan Eksekusi Langkah demi Langkah untuk AI
|
|
74
|
+
|
|
75
|
+
### Alur 1: Saat Menerima Instruksi 'Lanjutkan Pekerjaan dari RAKIT'
|
|
76
|
+
1. Panggil MCP `rakit_status` untuk mengetahui proyek dan tiket aktif.
|
|
77
|
+
2. Periksa apakah berkas `.rakit/PROMPT.md` sudah tersedia:
|
|
78
|
+
- Jika belum, jalankan `rakit prompt <KEY>` atau panggil `rakit_claim_ticket`.
|
|
79
|
+
3. Baca `.rakit/PROMPT.md` secara cermat: perhatikan `allowed_paths`, `forbidden_paths`, dan skenario `acceptance_criteria` (GWT).
|
|
80
|
+
4. Buat rencana kerja di `TASKS.md` bila belum ada to-do terperinci.
|
|
81
|
+
5. Kerjakan kode secara nyata di direktori yang diizinkan.
|
|
82
|
+
6. Buat unit test yang sesuai dan jalankan pengujian sampai lulus hijau.
|
|
83
|
+
7. Lakukan sinkronisasi progres berkala: panggil MCP `rakit_sync_progress` atau jalankan `rakit sync --note "..."`.
|
|
84
|
+
|
|
85
|
+
### Alur 2: Merumuskan Fitur Baru dari Nol (/rakit-new-task, /rakit-prd)
|
|
86
|
+
1. Bantu pengguna merumuskan problem statement dan target persona.
|
|
87
|
+
2. Buat dokumen PRD di `docs/prd/<nama_fitur>.md` dengan struktur:
|
|
88
|
+
- Ringkasan Eksekutif & Latar Belakang Masalah
|
|
89
|
+
- Tujuan (Goals) & Hal di Luar Cakupan (Non-Goals)
|
|
90
|
+
- Persyaratan Fungsional (FR) & Kriteria Penerimaan (GWT)
|
|
91
|
+
- Pertimbangan Keamanan, Privasi & Multi-tenancy
|
|
92
|
+
- Batasan Jalur Berkas (`allowed_paths`)
|
|
93
|
+
3. Pecah FR menjadi User Stories di `docs/prd/user-stories/`.
|
|
94
|
+
4. Jika menyangkut keputusan arsitektur baru, buat ADR di `docs/adr/`.
|
|
95
|
+
5. Daftarkan butir-butir to-do ke `TASKS.md` lokal, lalu jalankan `rakit scan --persist` agar draf tiket terkirim ke Web Console RAKIT.
|
|
96
|
+
|
|
97
|
+
### Alur 3: Menyelesaikan dan Memverifikasi Tiket (/rakit-verify)
|
|
98
|
+
1. Pastikan seluruh to-do terkait di `TASKS.md` sudah bertanda `[x]`.
|
|
99
|
+
2. Jalankan linter dan format checker sesuai `verification.lint_command` di `rakit.yaml` (mis. `uv run ruff check .`).
|
|
100
|
+
3. Jalankan unit test & E2E sesuai `rakit.yaml` (mis. `uv run pytest`).
|
|
101
|
+
4. Jalankan perintah `rakit verify`.
|
|
102
|
+
5. Panggil MCP `rakit_sync_progress` dengan ringkasan keberhasilan.
|
|
103
|
+
6. Informasikan kepada pengguna bahwa tiket telah siap untuk ditinjau oleh QA / pengujian UAT (Gerbang G2).
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 3. Penanganan Hambatan & Komunikasi (Human-in-the-Loop)
|
|
108
|
+
|
|
109
|
+
Jika kamu (AI) menemukan:
|
|
110
|
+
- Konflik keputusan arsitektur yang tidak tercantum di dokumen ADR,
|
|
111
|
+
- Ambiguitas kebutuhan bisnis atau kriteria penerimaan,
|
|
112
|
+
- Kegagalan sistem eksternal atau kebutuhan kredensial khusus,
|
|
113
|
+
|
|
114
|
+
**JANGAN PERNAH** membuat asumsi sepihak atau mem-bypass aturan keamanan.
|
|
115
|
+
Segera panggil tool MCP:
|
|
116
|
+
```json
|
|
117
|
+
{
|
|
118
|
+
"name": "rakit_ask_human",
|
|
119
|
+
"arguments": {
|
|
120
|
+
"question": "Jelaskan dengan ringkas apa yang menjadi blocker dan pilihan solusi yang kamu rekomendasikan."
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
Ini akan otomatis mengubah status tiket di peladen RAKIT menjadi `NEEDS_HUMAN` dan menyalakan notifikasi di Web Console pengembang serta aplikasi mobile Flutter.
|
|
125
|
+
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: rakit-cli
|
|
3
|
+
Version: 2.0.1
|
|
4
|
+
Summary: Pendamping folder notebook lokal & server MCP stdio untuk RAKIT v2.0
|
|
5
|
+
Project-URL: Homepage, https://github.com/radianapp/rakit
|
|
6
|
+
Project-URL: Documentation, https://github.com/radianapp/rakit
|
|
7
|
+
Project-URL: Repository, https://github.com/radianapp/rakit
|
|
8
|
+
Author-email: RAKIT Team <rakitsbs@gmail.com>
|
|
9
|
+
License: MIT
|
|
10
|
+
Keywords: agentic,ai,developer-tools,mcp,orchestration,workflow
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Topic :: Software Development :: Build Tools
|
|
17
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
18
|
+
Requires-Python: >=3.12
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
# rakit-cli
|
|
22
|
+
|
|
23
|
+
[](https://pypi.org/project/rakit-cli/)
|
|
24
|
+
[](https://www.python.org/downloads/)
|
|
25
|
+
[](https://opensource.org/licenses/MIT)
|
|
26
|
+
|
|
27
|
+
**rakit-cli** adalah pendamping baris perintah (CLI) dan server MCP (Model Context Protocol) berbasis `stdio` untuk ekosistem **RAKIT v2.0 (Radian Agentic Kit & Interactive Tracking)**.
|
|
28
|
+
|
|
29
|
+
Alat ini digunakan oleh pengembang perangkat lunak dan asisten agen AI (seperti Cursor, Claude Code, Windsurf, Copilot, atau Antigravity) untuk mengikat folder notebook lokal ke peladen RAKIT, menyinkronkan progres tiket, dan menjalankan gerbang verifikasi kualitas.
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Fitur Utama
|
|
34
|
+
|
|
35
|
+
- 🔒 **SecretFilter Bawaan**: Mencegah kebocoran berkas sensitif (`.env*`, `*.pem`, `*.key`, token, dan kredensial) secara lokal sebelum dikirim ke server.
|
|
36
|
+
- 📦 **Zero Runtime Dependencies**: Murni menggunakan pustaka bawaan Python 3.12+ (*standard library*), sangat ringan dan cepat dipasang.
|
|
37
|
+
- 🤖 **Server MCP Stdio (`rakit-mcp`)**: Menyediakan perkakas `rakit_status`, `rakit_claim_ticket`, `rakit_sync_progress`, dan `rakit_ask_human` langsung ke agen AI di editor Anda.
|
|
38
|
+
- ⚡ **Offline-First Synchronization**: Perubahan status dan progres tiket dicatat di buffer lokal saat koneksi internet terputus dan disinkronkan otomatis saat kembali online.
|
|
39
|
+
- 🛡️ **Verifikasi Otomatis**: Integrasi linter dan test suite lokal (`rakit verify`) sebelum mengajukan tiket ke gerbang QA/UAT.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Instalasi
|
|
44
|
+
|
|
45
|
+
### Menggunakan `pip` (Standar)
|
|
46
|
+
```bash
|
|
47
|
+
pip install rakit-cli
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Menggunakan `pipx` (Direkomendasikan untuk CLI Terisolasi)
|
|
51
|
+
```bash
|
|
52
|
+
pipx install rakit-cli
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Menggunakan `uv tool`
|
|
56
|
+
```bash
|
|
57
|
+
uv tool install rakit-cli
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Panduan Penggunaan Singkat
|
|
63
|
+
|
|
64
|
+
### 1. Inisialisasi Proyek Lokal
|
|
65
|
+
Arahkan terminal ke direktori proyek lokal Anda, lalu hubungkan ke server RAKIT:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
cd /jalur/ke/folder/proyek-anda
|
|
69
|
+
rakit init --project siaga --api-url http://localhost:8000/api/v1 --token <TOKEN_API_ANDA>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
> **Tip Token API:** Dapatkan token autentikasi Anda dari Web Console RAKIT di menu **Profil & Token API** (`http://localhost:8000/accounts/profile/`).
|
|
73
|
+
|
|
74
|
+
### 2. Memindai Struktur Proyek (Smart Scan)
|
|
75
|
+
```bash
|
|
76
|
+
rakit scan
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 3. Mengklaim Tiket Kerja
|
|
80
|
+
```bash
|
|
81
|
+
rakit start TIKET-101
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### 4. Menjalankan Verifikasi Kualitas
|
|
85
|
+
```bash
|
|
86
|
+
rakit verify
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### 5. Mengaktifkan Server MCP untuk AI
|
|
90
|
+
Tambahkan konfigurasi berikut ke berkas MCP editor Anda (`claude_desktop_config.json` atau settings Cursor/VS Code):
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"mcpServers": {
|
|
95
|
+
"rakit-dev": {
|
|
96
|
+
"command": "rakit-mcp",
|
|
97
|
+
"args": ["--workspace", "/jalur/ke/folder/proyek-anda"]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Lisensi
|
|
106
|
+
|
|
107
|
+
Didistribusikan di bawah lisensi MIT. Lihat berkas `LICENSE` untuk rincian lengkap.
|
|
108
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
rakit_cli/__init__.py,sha256=Y5JjdNQCDnkFK9d-aNJbLz_2k1pwGoM-Dj5RqcGDyO8,116
|
|
2
|
+
rakit_cli/branding.py,sha256=r5pNAzCxaDEtqBOvgsyFeh67NObDXJvzOhjiw_qZNTo,799
|
|
3
|
+
rakit_cli/config.py,sha256=mf3o4ibZdgPAn7EeWpf28stWLuIu8h-AIKWtegZ-aVQ,10254
|
|
4
|
+
rakit_cli/main.py,sha256=dheGzHlK3LU_d4vbCltZKQB4dAEXkYcwXbsvcfF6Byg,56150
|
|
5
|
+
rakit_cli/mcp_server.py,sha256=nBkssJD3LCJNPhBA3E175YYtjrpxxkvYWREi0k7bb20,11156
|
|
6
|
+
rakit_cli/security.py,sha256=DM2Pgx7zg5Xpr27J_3OksR465dggZXd7RGQxG9kmpHE,2410
|
|
7
|
+
rakit_cli/skill_installer.py,sha256=yzmKQ6C6PyF7MKWZDOCF8_c6K4hjupB-eyDMgGOCKJ4,8559
|
|
8
|
+
rakit_cli/tasks_parser.py,sha256=Q_Pr_lbPwep238YqifZYaDL2m-NCaBNf0UJv29pyyZQ,1698
|
|
9
|
+
rakit_cli/templates/SKILL.md,sha256=ld3z9GkGUGKEzxpNInlRXTBwl4d_vLsETyQfr50ASGw,7346
|
|
10
|
+
rakit_cli-2.0.1.dist-info/METADATA,sha256=Ngh4K0gtk0az_fj2kJUgtZ2j6AzX5W8kSn9DAeMJySU,3771
|
|
11
|
+
rakit_cli-2.0.1.dist-info/WHEEL,sha256=2iZrJkDIkeDh0k9SikKMqFuRP-ua6mb4Ir1AsER4BEw,87
|
|
12
|
+
rakit_cli-2.0.1.dist-info/entry_points.txt,sha256=7xiDa8F9PF5trBm1utZW64z56i4JiOsapD6CeixMOI0,84
|
|
13
|
+
rakit_cli-2.0.1.dist-info/RECORD,,
|