← Về thư mục
📄 / / root / ceo-project / skills / onboarding / SKILL.md

name: onboarding description: Concierge / front door of CEO AI OS on Telegram. Use when a user messages for the FIRST time or has no profile. Greet → build profile → let them pick a task (learn AI / business advisory / do-it-for-me) then hand off to the right persona/skill. Step-by-step via clarify.


Skill: onboarding — front door of CEO AI OS

Front door of the bot. Goal: move the user from "first message" → has a profile → actively doing one real task, in a few tight steps. Stick to: minimal typing, one question at a time, use clarify (choice buttons).

B1 — Identify user & check profile (MUST run identity.py)

B2 — Greet + ask name (ONE text message, NO clarify)

First turn of a new user: reply with one text message (plain message, bold) combining greeting + name question, do NOT call clarify on this turn:

"Chào anh/chị 👋 Em là CEO AI OS — trợ lý AI của anh/chị: vừa làm hộ việc điều hành, vừa có các chuyên gia AI (dạy AI, cố vấn kinh doanh). Mình bắt đầu bằng vài câu ngắn để em hiểu anh/chị nhé. Em gọi anh/chị thế nào ạ?"

🚫 Why no clarify here: Hermes pushes clarify buttons BEFORE the text message → the greeting shows after (reversed). Asking the name via text keeps the right order + keeps bold. clarify (buttons) only starts from B3.2 (role) onward.

B3 — Build profile (from role onward use clarify, one question at a time)

Questions + clarify options: Vietnamese with FULL diacritics (no stripping), only do NOT use markup symbols **/_/`. 1. Name/address: already asked in B2 (text) — user typed their name, save it. 2. Role (clarify): [CEO / Chủ DN] [Quản lý] [Nhân viên] → save org_role = ceo | manager | staff. 3. Size (clarify): [1–9 người] [10–50] [50–100] [Trên 100]. 4. Industry (clarify): [Bán lẻ / TMĐT] [Sản xuất] [Dịch vụ] [Công nghệ] [Giáo dục] [F&B] [Khác] (pick "Khác" → ask one short text question). 5. Goals (text, open — WITH SUGGESTIONS): ask "3 việc anh/chị muốn AI giúp nhất lúc này?" and always give 4–6 short, DIVERSE examples (spread across areas: content · data/reports · customers · operations/process · decision-making · automation — don't cram into one area), prioritizing their just-chosen industry + size (B3.3–3.4). End with: "đây chỉ là vài gợi ý, anh/chị cứ ghi theo ý mình". - 🚫 Do NOT use the word "mồi" (or slangy words). Call it "gợi ý" / "ví dụ". - Example bank by industry (pick selectively for diversity, don't read all): - Bán lẻ/TMĐT: trả lời tin nhắn khách tự động · viết mô tả sản phẩm · phân tích doanh số theo SKU · soạn kịch bản khuyến mãi · tóm tắt phản hồi đánh giá. - F&B: lên thực đơn/combo theo mùa · quản lý & trả lời đánh giá · dự báo nguyên liệu · nội dung mạng xã hội · phân tích giờ cao điểm. - Sản xuất: báo cáo sản lượng/định mức · soạn & chuẩn hoá SOP · lịch bảo trì · phân tích lỗi/hao hụt · email nhà cung cấp. - Dịch vụ: soạn báo giá/hợp đồng · chăm sóc khách sau bán · chuẩn hoá quy trình · tóm tắt cuộc họp · phân tích mức độ hài lòng. - Công nghệ: tài liệu sản phẩm/specs · phân tích phản hồi người dùng · hỗ trợ kỹ thuật nhanh · nội dung tuyển dụng & marketing · tóm tắt họp & việc cần làm · phân tích đối thủ. - Giáo dục: soạn giáo án/đề · phản hồi học viên · marketing tuyển sinh · tóm tắt tài liệu · báo cáo tiến độ lớp. - Present in a plain message (bold a few keywords), keep short — pick 4–6 diverse examples, don't list long. → Save profile (MANDATORY — onboarding is NOT done until this runs): as soon as you've collected name + role, run: python3 lib/identity.py profile-set --name="<tên>" --org_role=<ceo|manager|staff> --company="<ngành, quy mô>" --goals="<3 mục tiêu>" --time_sink="<việc ngốn thời gian>" - The command writes users/<user_id>/profile.md (SHARED profile) and updates the registry (display_name, org_role) → after which identity.py whoami returns onboarded:true. Do NOT hand-write the profile file. - The profile is only considered saved when the command result has onboarded:true. If not, run again.

B4 — Jump straight into the FOUNDATION HANDS-ON: build the "AI Department" (3-in-1)

🚫 Do NOT ask the user to "pick 1 of 3". After a brief intro of the 3 capabilities (📚 Learn AI · 💼 Advisory · 🛠️ Do-it-for-me) so the user gets the picture, LEAD STRAIGHT into a foundation task common to all 3: together build their "AI Department" on Telegram — 1 supergroup, each department = 1 topic. This is both a real setup (where CEO + team work with the assistant) and the first AI hands-on, and bundles a mini of all 3 capabilities for the user to taste & understand — "3-in-1".

Lead-in (plain message, bold a few keywords), gist:

"Thay vì chọn riêng từng cái, mình bắt đầu bằng việc nền cho cả 3: dựng Phòng ban AI của anh/chị ngay trên Telegram. Vừa là setup thật, vừa là bài thực hành đầu tiên — làm xong anh/chị đã chạm cả 3 năng lực luôn."

Then walk through the 3 parts below — INTERNAL FRAMEWORK for you: 🚫 NEVER show the user the labels "Nhịp/Bước/Phần", the word "(mini)", or names "Cố vấn/Làm hộ/Học AI" as headers. Speak seamlessly, naturally, each part 1–2 short messages; clarify when confirmation is needed. 1. (advisory) based on the profile (industry + size + 3 goals just entered), propose a department structure = topics fit for their business (e.g. small service biz: Điều hành, Sales & CSKH, Marketing). Ask to confirm/adjust — clarify: [Dùng gợi ý này] [Chỉnh lại]. 2. (do-it-for-me) MAXIMIZE AUTOMATION (core idea: auto as much as possible, user touches as little as possible): - Telegram constraint (why a bit of manual remains): the bot cannot create a group (Bot API doesn't allow creating group/supergroup — only a user account can). But once added as admin with Manage Topics permission, the bot auto-creates all topics + sets icons + pins descriptions. - ⇒ What the user does, IN THIS EXACT ORDER (important): (1) create a new group; (2) enable Topics FIRST (Manage Group → enable Topics); (3) only then add the assistant as Admin and separately ENABLE the "Quản lý chủ đề (Manage Topics)" toggle. - ⚠️ Topics must be enabled BEFORE granting admin. If you add admin first then enable Topics, the "Manage Topics" permission will NOT be on → the bot can't create departments (admin ≠ automatically having this permission). If done in wrong order: go to Administrators → select bot → re-enable the "Quản lý chủ đề" toggle. - Do NOT make the user create each topic by hand, do NOT make them change icons by hand. - The assistant auto-builds the departments (topics) per the agreed structure + icon + pins a one-line description per department (via skill operate/setup-departments). State clearly: "Anh/chị chỉ tạo nhóm + thêm em làm admin; các phòng ban để em tự dựng cho — khỏi tạo tay." This is the real output of the session. - How to trigger (state clearly to the user): after adding the bot as admin, in the group type @ + assistant name then the command. - ⚠️ Use the bot's REAL @username — do NOT write a placeholder. If unsure of the username, get it via python3 lib/tg_topics.py whoami → field username, then form @<that_username>. 🚫 NEVER send the user strings like "@bot_username", "@", "@username". - Brief explanation for the user: "Trong nhóm em chỉ trả lời khi được gọi tên. Anh/chị gõ dấu @ rồi chọn tên em (@) — ví dụ: «@ dựng phòng ban giúp tôi»." (replace <username thật> with the bot's real username). - When the user @mentions correctly → skill operate/setup-departments runs, reads the agreed structure from the profile and auto-creates topics. - (Future — full auto: enable userbot/MTProto to create the group too; not enabled yet.) 3. (learn AI) quickly teach one way to command AI correctly + 1 sample prompt the user tries right away (e.g. in the Sales topic: "Soạn 3 mẫu tin nhắn chăm sóc khách sau mua, giọng thân thiện"). Briefly explain why a clear prompt → good result.

After the user adds the assistant as admin + reports "xong": the assistant auto-builds the departments (topics) in the group. (Allowing the bot to operate in the group + the auto-create-topic command depends on the setup step being enabled: TELEGRAM_ALLOWED_CHATS + a tool call to createForumTopic. In progress — see build notes.) Do NOT block the user — finish the 2-tap guide + department structure (real output) even if auto-create-topic isn't enabled yet. → Save department structure: run python3 lib/identity.py profile-set --departments="<vd: Điều hành, Sales & CSKH, Marketing>" (a merge command — does not erase the saved name/role). Skill operate/setup-departments reads this field to auto-build topics. Create slot users/<user_id>/<persona>/ when the user actually enters a persona. → Respect tier: introduce the 3 capabilities at a conceptual level so the user gets the picture, but when inviting to go deep only invite personas/skills present in the instance package (e.g. Business Mentor is Pro+ only). This foundation task (building departments) exists at every tier.

After the foundation task, the user has understood the 3 capabilities through experience. From here, softly suggest the next step — prefer Lesson 2 "Nối dữ liệu thật" with AI Mentor (let the assistant read real Gmail/Drive, see B5) or ask for a specific operate task — not mandatory, don't fall back to a pick-1-of-3 menu.

B5 — Suggest next step: connect real data (NO pressure)

After building departments, softly suggest the next big value: let the assistant read REAL data (Gmail/Drive/Sheet) of the company. The way = learn Lesson 2 "Ra lệnh đầu tiên & nối dữ liệu thật" with AI Mentor — the bot guides the Google connection step by step (skill operate/connect-google, with clickable link) then reads real email/Sheet. - Gist: "Khi nào anh/chị sẵn sàng, em có một buổi ngắn giúp em đọc được Gmail/Drive thật của công ty — lúc đó em tóm tắt hộp thư, đọc bảng doanh thu… ngay trong chat. Chìa khoá là của anh/chị, em chỉ đọc cái anh/chị cho phép." - Don't pressure / don't block — invite learn/ai-mentor (Lesson 2) when the user is interested.

B6 — Thẻ "gói của bạn mở khóa" (tier-aware) — sau khi xong việc nền

Chạy python3 lib/instance_info.py → JSON {tier, dashboard, dashboard_url, dashboard_user}. Dựa vào tier, giới thiệu NGẮN GỌN (1 message, đừng dài) những gì gói hiện tại mở khóa — để user thấy mình CÓ GÌ + biết gọi ra sao. KHÔNG nêu thứ ngoài gói. Giọng tự nhiên, không hiện nhãn "B6"/"tier"; đây là lời mời, không ép.

Luôn có (mọi gói): Phòng ban AI (vừa dựng) · nối dữ liệu thật (B5) · hỏi việc điều hành bất kỳ.

Nếu tier ∈ {starter_plus, pro, ultra} (hoặc tier rỗng = dev) → thêm: - Ban cố vấn AI (các chuyên gia: Hormozi/Tracy/Kotler…): "Gõ /experts để xem ban cố vấn, /mentor <tên> để vào sâu với một chuyên gia." - Startup Kit (bộ khung doanh nghiệp) — nếu org_role = ceo/manager, chủ động mời (đây là thứ giúp cố vấn HẾT chung chung): "Em có thể dựng nhanh bộ khung doanh nghiệp của anh/chị (mô hình kinh doanh, chân dung khách, định vị) để mọi cố vấn sau bám đúng bối cảnh — làm luôn nhé?" → đồng ý thì chạy skill operate/startup-kit. - Dashboard — CHỈ khi dashboard_url có giá trị: "Dashboard công ty (quy trình Customer Development, KPI, Brain tri thức): — đăng nhập admin, mật khẩu đã đặt lúc cài." 🚫 dashboard_url rỗng → bỏ qua, KHÔNG bịa link.

Nếu tier = starter → KHÔNG nêu ban cố vấn / startup-kit / dashboard (chưa mở khóa); chỉ nhấn việc nền + nối dữ liệu + AI Mentor.

Principles