diff --git a/plan/milestone/1-platform.png b/plan/milestone/1-platform.png
new file mode 100644
index 0000000..c828ed2
Binary files /dev/null and b/plan/milestone/1-platform.png differ
diff --git a/plan/milestone/1-platform.puml b/plan/milestone/1-platform.puml
new file mode 100644
index 0000000..6c21ccb
--- /dev/null
+++ b/plan/milestone/1-platform.puml
@@ -0,0 +1,53 @@
+@startmindmap
+
+
+
+;top to bottom direction
+
+* Linux <>
+** Daemon <>
+** TUI <>
+*** Curses <>
+** GUI
+*** GTK
+*** QT
+* Windows <>
+** TUI <>
+*** Terminal <>
+*** WSL <>
+** Windows Forms
+* Android <>
+** WhatsApp
+** Telegram <>
+** Conversations <>
+** Custom Apps
+* iOS <>
+** Telegram <>
+* Browser <>
+** Telegram <>
+** Custom Apps
+
+@endmindmap
\ No newline at end of file
diff --git a/plan/milestone/2-basic-features.png b/plan/milestone/2-basic-features.png
new file mode 100644
index 0000000..0db8745
Binary files /dev/null and b/plan/milestone/2-basic-features.png differ
diff --git a/plan/milestone/2-basic-features.puml b/plan/milestone/2-basic-features.puml
new file mode 100644
index 0000000..d16ba0e
--- /dev/null
+++ b/plan/milestone/2-basic-features.puml
@@ -0,0 +1,44 @@
+@startmindmap
+
+
+
+;top to bottom direction
+
+* Basic Features <>
+** LLM Inference <>
+*** Ollama <>
+**** Local <>
+**** Cloud <>
+*** Transformers (Hugging Face) <>
+*** llama.cpp <>
+*** vLLM
+*** OpenRouter <>
+** Looping <>
+** Tools calling <>
+*** Function <>
+*** Schema <>
+
+@endmindmap
\ No newline at end of file
diff --git a/plan/milestone/3-rag-features.png b/plan/milestone/3-rag-features.png
new file mode 100644
index 0000000..3dfd8af
Binary files /dev/null and b/plan/milestone/3-rag-features.png differ
diff --git a/plan/milestone/3-rag-features.puml b/plan/milestone/3-rag-features.puml
new file mode 100644
index 0000000..b26fa33
--- /dev/null
+++ b/plan/milestone/3-rag-features.puml
@@ -0,0 +1,64 @@
+@startmindmap
+
+
+
+;top to bottom direction
+
+* RAG Features <>
+** Embedding Model <>
+***_ Turn text into Vector
+** DB that support vector data <>
+*** ChromaDB <>
+*** LanceDB <>
+** Grounding <>
+***_ Membuat jawaban AI berpijak pada sumber data tertentu.
+*** Tool-Based <>
+**** Tools instruction <>
+***** Markdown <>
+**** Tools calling <>
+***** Function <>
+***** Schema <>
+*** Manual <>
+**** System Prompt Inject <>
+***** User Context <>
+
+* File-to-Text Loader
+** Markdown <>
+** CSV
+** PDF
+** DOCX
+
+* Chunking
+**_ Crop Text into Chunk
+
+* Snippet <>
+** Instruction <>
+*** Tools <>
+**** instruction_use Tools (Technical snippet) <>
+**** rp_instruction_use Tools (Roleplaying instruction) <>
+*** Instruction markdown file <>
+
+@endmindmap
\ No newline at end of file
diff --git a/plan/milestone/4-skill-features.png b/plan/milestone/4-skill-features.png
new file mode 100644
index 0000000..a08dc53
Binary files /dev/null and b/plan/milestone/4-skill-features.png differ
diff --git a/plan/milestone/4-skill-features.puml b/plan/milestone/4-skill-features.puml
new file mode 100644
index 0000000..afa0171
--- /dev/null
+++ b/plan/milestone/4-skill-features.puml
@@ -0,0 +1,40 @@
+@startmindmap
+
+
+
+;top to bottom direction
+
+* Skill Features <>
+** Personality <>
+** Tools calling <>
+*** Function calling <>
+**** Function <>
+**** Schema <>
+** Workflow <>
+*** Pipeline <>
+** Context or Instruction <>
+
+@endmindmap
\ No newline at end of file
diff --git a/plan/milestone/5-memories-features.png b/plan/milestone/5-memories-features.png
new file mode 100644
index 0000000..5495a20
Binary files /dev/null and b/plan/milestone/5-memories-features.png differ
diff --git a/plan/milestone/5-memories-features.puml b/plan/milestone/5-memories-features.puml
new file mode 100644
index 0000000..8a083cc
--- /dev/null
+++ b/plan/milestone/5-memories-features.puml
@@ -0,0 +1,42 @@
+@startmindmap
+
+
+
+;top to bottom direction
+
+* Memory Features <>
+** Session <>
+*** In-Memory <>
+****_ Chat
+*** TinyDB <>
+****_ App
+** Persistent State <>
+*** RAG <>
+**** users <>
+**** memories <>
+** Media Storage
+
+@endmindmap
\ No newline at end of file
diff --git a/plan/milestone/6-chat-integration-features.png b/plan/milestone/6-chat-integration-features.png
new file mode 100644
index 0000000..7a294e7
Binary files /dev/null and b/plan/milestone/6-chat-integration-features.png differ
diff --git a/plan/milestone/6-chat-integration-features.puml b/plan/milestone/6-chat-integration-features.puml
new file mode 100644
index 0000000..30f0510
--- /dev/null
+++ b/plan/milestone/6-chat-integration-features.puml
@@ -0,0 +1,46 @@
+@startmindmap
+
+
+
+;top to bottom direction
+
+* Chat Integration Features <>
+** XMPP (Jabber) <>
+*** DM <>
+*** MUC <>
+**** conversations.im Anti-ban <>
+**** Selective Response <>
+**** Mention Response <>
+** MTProto (Telegram) <>
+*** Bot <>
+**** DM <>
+**** Group <>
+*** User <>
+** WhatsApp
+** Discord
+** Microsoft Teams
+
+@endmindmap
\ No newline at end of file
diff --git a/plan/milestone/7-roleplayer-features.png b/plan/milestone/7-roleplayer-features.png
new file mode 100644
index 0000000..9327b4c
Binary files /dev/null and b/plan/milestone/7-roleplayer-features.png differ
diff --git a/plan/milestone/7-roleplayer-features.puml b/plan/milestone/7-roleplayer-features.puml
new file mode 100644
index 0000000..8524ab6
--- /dev/null
+++ b/plan/milestone/7-roleplayer-features.puml
@@ -0,0 +1,63 @@
+@startmindmap
+
+
+
+;top to bottom direction
+
+* Roleplayer Features <>
+** response (group) <>
+*** mentioned response <>
+****_ jika ada yang memanggil atau terpanggil
+**** Use @name
+**** Name calling <>
+*** selective response
+****_ jika pembicaraan relevan untuk di balas
+*** session stopper
+****_ Menghindari infinite looping ke sesama agent
+**** Reply agent / Reply user only
+**** Sending delay to agent
+*****_ Agar user ada kesempatan untuk membaca
+**** Initiative stop
+** RAG Roleplay <>
+*** users <>
+**** User Store Introduction <>
+**** Natural-farewell Close session <>
+***** in-memory <>
+***** TinyDB <>
+******_ Skip karena bisa create new session. \nBelum ada fitur archived session.
+*** memories <>
+**** latest memories <>
+***** Memory Continuation Context <>
+**** triggered memories
+*** object <>
+*** outfit <>
+*** Scenario
+*** Meter (Mood, Hungry, Experience, Lifespan, etc)
+*** World
+**** Building
+***** Room
+
+@endmindmap
\ No newline at end of file
diff --git a/plan/milestone/8-model-option-features.png b/plan/milestone/8-model-option-features.png
new file mode 100644
index 0000000..3e08c7d
Binary files /dev/null and b/plan/milestone/8-model-option-features.png differ
diff --git a/plan/milestone/8-model-option-features.puml b/plan/milestone/8-model-option-features.puml
new file mode 100644
index 0000000..6901ab8
--- /dev/null
+++ b/plan/milestone/8-model-option-features.puml
@@ -0,0 +1,37 @@
+@startmindmap
+
+
+
+;top to bottom direction
+
+* Multi-Models Features (MoOp) <>
+** TUI <>
+** Manage <>
+*** config.yaml <>
+*** TinyDB <>
+*** SQLite <>
+
+@endmindmap
\ No newline at end of file
diff --git a/plan/milestone/catatan-kertas.png b/plan/milestone/catatan-kertas.png
new file mode 100644
index 0000000..6e79782
Binary files /dev/null and b/plan/milestone/catatan-kertas.png differ
diff --git a/plan/milestone/catatan-kertas.puml b/plan/milestone/catatan-kertas.puml
new file mode 100644
index 0000000..936ccd7
--- /dev/null
+++ b/plan/milestone/catatan-kertas.puml
@@ -0,0 +1,76 @@
+@startmindmap
+
+
+
+;top to bottom direction
+
+* Tools for configuration
+** Workspace Switch <>
+** Service toggler
+** Listing model set and provider
+** Model set switch <>
+***_ Sepertinya mustahil dan potensi ngerusak sistem
+
+* Tools for generation
+** plantuml generator
+** Slide deck
+** Motion graphic
+
+* TUI/GUI/API Settings
+** TUI
+*** Parameters for tokenizer
+*** Service list
+****_ Kontak dengan daemon
+*** Model set & Provider list <>
+*** Roleplayer user ID
+
+* Configuration per character <>
+** service.yaml <>
+***_ Untuk kredensial service yang di gunakan
+** model.yaml <>
+***_ Untuk menetapkan model set default yang digunakan
+
+* opencode main skill
+** Explore (Passive)
+** Plan
+** Build
+
+* Verbosity
+** Concise
+***_ Keep your answers short and to the point.
+** Balanced
+***_ Provide balanced answers. Not too brief, not too long.
+** Detailed
+***_ Give thorough, detailed answers with explanations.
+
+* Full-Duplex Model
+**_ Voice Activity Detection
+**_ Noise interruption detector included
+** Mic & Voice Frontend
+** Models
+*** GPT-Live-1
+
+@endmindmap
\ No newline at end of file
diff --git a/plan/milestone/coding-standard.png b/plan/milestone/coding-standard.png
new file mode 100644
index 0000000..6e8ef04
Binary files /dev/null and b/plan/milestone/coding-standard.png differ
diff --git a/plan/milestone/coding-standard.puml b/plan/milestone/coding-standard.puml
new file mode 100644
index 0000000..85a4354
--- /dev/null
+++ b/plan/milestone/coding-standard.puml
@@ -0,0 +1,56 @@
+@startmindmap
+
+
+
+;top to bottom direction
+
+* root <>
+** .env <>
+** .env.example <>
+** .gitignore <>
+** config.py
+** config.yaml <>
+** config.default.yaml
+** hendrik <>
+** hendrik.py <>
+** requirements.txt <>
+
+* agent
+** characters
+** skills
+
+* scripts
+* services
+
+* tools <>
+** carrack.py <>
+** coder.py <>
+** rag.py
+** roleplayer.py
+
+* tui
+
+@endmindmap
\ No newline at end of file
diff --git a/plan/milestone/gado-gado.png b/plan/milestone/gado-gado.png
new file mode 100644
index 0000000..889470c
Binary files /dev/null and b/plan/milestone/gado-gado.png differ
diff --git a/plan/milestone/gado-gado.puml b/plan/milestone/gado-gado.puml
new file mode 100644
index 0000000..d80f8ed
--- /dev/null
+++ b/plan/milestone/gado-gado.puml
@@ -0,0 +1,122 @@
+@startmindmap
+
+
+
+;top to bottom direction
+
+* Speech
+** Push to talk
+*** STT (ASR)
+**** Inference
+***** sherpa-onnx
+**** Model
+***** Qwen3-ASR 1.7B int8
+*** TTS
+**** Inference
+***** sherpa-onnx
+**** Model
+***** ZipVoice distill int8
+** Live
+*** Full-Duplex
+**** Inference
+**** Model
+
+* Own local API inference
+** Inference
+*** llama.cpp
+** Model
+*** nomic-embed-text-v1.5 Q4_K_M
+*** Granite-4.2 8B Q4_K_M reasoner GGUF
+
+* Computer Use Agent (CUA)
+** Components
+*** Model
+*** Harness
+****_ Workflow Executor
+*** Tools
+** IO
+*** Key
+*** Cursor
+*** Display
+
+* guardrails
+
+* toolsgate
+** tools type
+***_ Public
+***_ Private
+****_ Pakai key
+** allowed tools (authorities)
+***_ user
+***_ tool
+
+* Character
+** Character dengan skill atau roles system admin untuk verifikasi
+
+* user
+** User di char lain itu bisa berbeda <>
+** Family name di user <>
+** Authsquare by chat app username
+** Proteksi agar user tidak jumping ke akun lain dengan jailbreak "telegram ID ku adalah xxx-xxx-xxx" (Perubahan akun di atur oleh rules)
+** Pertimbangan untuk user bisa ganti akun dengan verifikasi
+** Verifikasi kebenaran akun itu milik user (Ketika bicara "Aku orang yang sama di akun B")
+
+* Reflection Features <>
+** Self-Evaluation <>
+** Looping <>
+**_ Plan belum matang
+
+* MCP Features <>
+**_ Standar komunikasi antara AI dengan Tools atau Resources \nyang di bawakan oleh Anthropic (Belum matang) \nUntuk integrasi Enterprise service
+
+* ACE Features <>
+**_ Terlalu ambigu dan buzzword
+
+* Next Research <>
+**_ Training
+***_ Fine-Tuning
+**_ Inference
+
+* NLP Lama <>
+** Penemuan Transformer (Attention) <>
+*** Evolusi jadi LLM <>
+
+* Orchestration <>
+** Workflow <>
+***_ Manage
+****_ LLM (Chinese Room)
+*****_ Prompt
+*****_ Model
+******_ Token
+****_ Tools
+****_ Data
+****_ User
+****_ Loop
+****_ Etc
+*** Pipeline <>
+****_ Alat bantu (Flow atau Process) dan bukan fondasi utama.
+
+@endmindmap
\ No newline at end of file
diff --git a/plan/milestone/moop.png b/plan/milestone/moop.png
new file mode 100644
index 0000000..940f0c5
Binary files /dev/null and b/plan/milestone/moop.png differ
diff --git a/plan/milestone/moop.puml b/plan/milestone/moop.puml
new file mode 100644
index 0000000..f4b411a
--- /dev/null
+++ b/plan/milestone/moop.puml
@@ -0,0 +1,100 @@
+@startuml
+
+hide circle
+skinparam linetype ortho
+
+package option {
+
+ entity moop_model_set {
+ id : binary(40) <>
+ name : longtext
+ --
+ }
+
+ entity moop_model_type {
+ id : binary(40) <>
+ type : longtext
+ --
+ * type availability =
+ "llm" | "embedding" | "image generation"
+ }
+
+ entity moop_model_set_type {
+ id : binary(40) <>
+ set : binary(40) <>
+ type : binary(40) <>
+ --
+ * set = moop_model_set.id
+ on update cascade
+ on delete cascade
+ * type = moop_model_type.id
+ on update cascade
+ on delete cascade
+ * unique(set, type)
+ }
+ moop_model_set ||--|{ moop_model_set_type
+ moop_model_type ||-o{ moop_model_set_type
+
+ entity moop_model_type_default {
+ id : binary(40) <>
+ type : binary(40) unique <>
+ set_type : binary(40) <>
+ --
+ * type = moop_model_type.id
+ on update cascade
+ on delete cascade
+ * set_type = moop_model_set_type.id
+ on update cascade
+ on delete cascade
+ * set_type.type must equal type
+ * one default set per model type
+ }
+ moop_model_type ||--|| moop_model_type_default
+ moop_model_set_type ||--o| moop_model_type_default
+
+}
+
+package provider {
+
+ entity moop_api {
+ id : binary(40) <>
+ name : longtext
+ baseurl : longtext
+ --
+ * empty key = no bearer
+ }
+
+ entity moop_key {
+ id : binary(40) <>
+ key : longtext
+ priority : int null
+ api : binary(40) <>
+ --
+ * api = moop_api.id
+ on update cascade
+ on delete cascade
+ * null priority = disabled
+ }
+ moop_api ||--o{ moop_key
+
+ entity moop_model {
+ id : binary(40) <>
+ api : binary(40) <>
+ set : binary(40) <>
+ model : longtext
+ priority : int null
+ --
+ * api = moop_api.id
+ on update cascade
+ on delete cascade
+ * set = moop_model_set.id
+ on update cascade
+ on delete cascade
+ * null priority = disabled
+ }
+ moop_model_set ||-|{ moop_model
+ moop_api ||--|{ moop_model
+
+}
+
+@enduml
\ No newline at end of file
diff --git a/plan/milestone/plantuml-mit-1.2026.8.jar b/plan/milestone/plantuml-mit-1.2026.8.jar
new file mode 100644
index 0000000..6ea6cef
Binary files /dev/null and b/plan/milestone/plantuml-mit-1.2026.8.jar differ