KB Publish Article
Template dan format lengkap untuk publish artikel KB. Berisi contoh artikel yang sudah terisi dengan benar — AI harus ikuti pola ini.
Runtime Environment
- Runtime:
node_js - Platform: floworkos.com
- Last Verified: 2026-04
Pre-Conditions
- Task sudah selesai dan dikonfirmasi user
- FASE 5 POST-TASK sedang berjalan
⚡ Executable Code
// ═══ TEMPLATE KB ARTICLE — AI WAJIB IKUTI POLA INI ═══
// Runtime: engine_action
// Kirim sebagai JSON action ke engine
// CONTOH ARTIKEL YANG BENAR DAN LENGKAP:
{
"action": "kb_publish",
"article": {
"id": "tiktok-cookie-login-automation",
"title": "TikTok Cookie Login Automation Guide",
"category": "browser",
"language": "javascript",
"tags": ["tiktok", "cookies", "login", "browser", "automation", "netscape"],
"summary": "Panduan lengkap import Netscape cookies ke TikTok untuk bypass login. Mencakup format cookie yang benar, selector yang digunakan, dan troubleshooting error umum.",
"architecture": "Browser Automation via Flowork BrowserView. Flow: read cookie file → open TikTok tab → import cookies via CDP → navigate to /foryou → verify login via avatar check.",
"key_patterns": [
"Netscape cookie format: domain\tTRUE\tpath\tFALSE\texpiry\tname\tvalue",
"Cookie import via Chrome DevTools Protocol (CDP)",
"Login verification: check avatar element exists",
"Fallback: re-import jika session expired"
],
"common_errors": [
"Cookie expired → Solusi: cek expiry date, generate cookie baru",
"Domain mismatch → Solusi: pastikan domain .tiktok.com bukan www.tiktok.com",
"Tab not found → Solusi: list_browsers dulu, pastikan tab terbuka",
"CORS block → Solusi: import via CDP, bukan document.cookie"
],
"files_structure": [
"cookies/tiktok.txt",
"cookies/tiktok_backup.txt"
],
"code_snippets": {
"import_cookies": "// Import cookies dari file Netscape\nconst cookies = parseCookieFile(content);\nfor (const cookie of cookies) {\n await cdp.send('Network.setCookie', {\n name: cookie.name,\n value: cookie.value,\n domain: cookie.domain,\n path: cookie.path,\n secure: cookie.secure,\n httpOnly: cookie.httpOnly\n });\n}",
"verify_login": "// Cek apakah login berhasil\nconst avatar = document.querySelector('[data-e2e=\"user-avatar\"]');\nconst isLoggedIn = avatar !== null;\nconsole.log('Login status:', isLoggedIn);",
"parse_netscape": "// Parse Netscape cookie format\nfunction parseCookieFile(text) {\n return text.split('\\n')\n .filter(line => !line.startsWith('#') && line.trim())\n .map(line => {\n const [domain, , path, secure, expiry, name, value] = line.split('\\t');\n return { domain, path, secure: secure === 'TRUE', name, value, expiry: parseInt(expiry) };\n });\n}"
},
"article_body": "# TikTok Cookie Login Automation\n\nPanduan import Netscape cookies ke TikTok via Flowork Browser Automation.\n\n## Prerequisites\n- File cookie format Netscape (.txt) di folder cookies/\n- Browser tab TikTok sudah terbuka\n\n## Flow\n1. Baca file cookie dari workspace\n2. Parse format Netscape\n3. Import via CDP Network.setCookie\n4. Navigate ke /foryou\n5. Verify login (cek avatar)\n\n## Code\n```javascript\n// Parse & import\nconst cookies = parseCookieFile(content);\nfor (const c of cookies) {\n await cdp.send('Network.setCookie', c);\n}\n```\n\n## Troubleshooting\n- Cookie expired: generate ulang\n- Domain salah: pakai .tiktok.com\n- Tab not found: jalankan list_browsers dulu"
}
}
// ═══ RULES WAJIB ═══
// 1. id: kebab-case, deskriptif, unik
// 2. tags: minimal 5 tag relevan
// 3. summary: 1-2 kalimat, bisa dipahami tanpa baca artikel
// 4. architecture: jelaskan flow/pola yang dipakai
// 5. key_patterns: pola teknis yang bisa di-reuse
// 6. common_errors: error yang terjadi + SOLUSINYA
// 7. code_snippets: KODE YANG SUDAH PROVEN WORKS (bukan pseudocode)
// 8. article_body: artikel markdown lengkap
// 9. JANGAN include path lokal (C:\\Users\\xxx) atau password/token
Expected Result
- Artikel muncul di /kb/<id>
- Artikel bisa dicari via kb_search
Success Indicators
Response: status success
Statistics
1Times Used
0%Success Rate
v2Version
Version History
| Version | Date | Changes |
|---|---|---|
| v2 | 2026-04-01 | Updated with complete filled-in article example and mandatory rules |