Tujuan
- Mereproduksi bug dari issue atau PR GitHub dengan bentuk transport yang sama seperti yang dilihat pengguna.
- Menangkap artefak sebelum pada ref baseline sebelum menerapkan perbaikan.
- Menangkap artefak sesudah pada ref kandidat setelah menerapkan perbaikan.
- Menggunakan oracle deterministik kapan pun memungkinkan, seperti pembacaan reaction Discord REST atau pemeriksaan transkrip channel.
- Menangkap screenshot ketika bug memiliki permukaan UI yang terlihat.
- Berjalan secara lokal dari CLI yang dikendalikan agen dan secara remote dari GitHub.
- Menyimpan machine state yang cukup untuk penyelamatan VNC ketika login, otomasi browser, atau autentikasi provider tersangkut.
- Memposting status ringkas ke channel Discord operator ketika run terblokir, membutuhkan bantuan VNC manual, atau selesai.
Bukan tujuan
- Mantis bukan pengganti unit test. Run Mantis biasanya harus menjadi regression test yang lebih kecil setelah perbaikannya dipahami.
- Mantis bukan gate CI cepat normal. Ia lebih lambat, menggunakan kredensial live, dan dicadangkan untuk bug ketika lingkungan live penting.
- Mantis tidak boleh membutuhkan manusia untuk operasi normal. VNC manual adalah jalur penyelamatan, bukan jalur utama.
- Mantis tidak menyimpan secret mentah dalam artefak, log, screenshot, laporan Markdown, atau komentar PR.
Kepemilikan
Mantis berada di stack QA OpenClaw.- OpenClaw memiliki runtime skenario, adapter transport, skema bukti, dan CLI lokal di bawah
pnpm openclaw qa mantis. - QA Lab memiliki bagian harness transport live, helper capture browser, dan penulis artefak.
- Crabbox memiliki mesin Linux yang sudah dipanaskan ketika VM remote diperlukan.
- GitHub Actions memiliki entrypoint workflow remote dan retensi artefak.
- ClawSweeper memiliki routing komentar GitHub: mengurai perintah maintainer, men-dispatch workflow, dan memposting komentar PR akhir.
- Agen OpenClaw menjalankan Mantis melalui Codex ketika skenario membutuhkan setup agenik, debugging, atau pelaporan state tersangkut.
Bentuk perintah
Perintah lokal pertama memverifikasi bot Discord, guild, channel, pengiriman pesan, pengiriman reaction, dan jalur artefak:--allow-failures, lalu menulis baseline/, candidate/, comparison.json, dan mantis-report.md. Untuk skenario Discord pertama, verifikasi yang berhasil berarti status baseline adalah fail dan status kandidat adalah pass.
Probe sebelum/sesudah Discord kedua menargetkan attachment thread:
message.thread-reply OpenClaw dengan filePath lokal repo, lalu melakukan polling thread untuk balasan SUT dan nama file attachment. Screenshot baseline menampilkan balasan tanpa attachment; screenshot kandidat menampilkan attachment mantis-thread-report.md yang diharapkan.
Primitif VM/browser pertama adalah smoke desktop:
--provider, --crabbox-bin, atau OPENCLAW_MANTIS_CRABBOX_PROVIDER ketika berjalan terhadap fleet Crabbox lain.
Flag smoke desktop yang berguna:
--lease-id <cbx_...>atauOPENCLAW_MANTIS_CRABBOX_LEASE_IDmenggunakan ulang desktop yang sudah dipanaskan.--browser-url <url>mengubah halaman yang dibuka di browser yang terlihat.--html-file <path>merender artefak HTML lokal repo di browser yang terlihat. Mantis menggunakan ini untuk menangkap timeline reaction status Discord yang dihasilkan melalui desktop Crabbox nyata.--browser-profile-dir <remote-path>menggunakan ulang Chrome user-data-dir remote sehingga desktop Mantis persisten dapat tetap login antar-run. Gunakan ini untuk profil penampil Discord Web yang berjalan lama.--browser-profile-archive-env <name>memulihkan arsip Chrome user-data-dir.tgzbase64 dari environment variable bernama sebelum meluncurkan browser. Gunakan ini untuk saksi yang sudah login seperti Discord Web. Env var default adalahOPENCLAW_MANTIS_BROWSER_PROFILE_TGZ_B64.--video-duration <seconds>mengontrol durasi capture MP4. Gunakan durasi yang lebih panjang untuk aplikasi web login yang lambat dan membutuhkan waktu untuk stabil.--keep-leaseatauOPENCLAW_MANTIS_KEEP_VM=1menjaga lease baru yang berhasil tetap terbuka untuk inspeksi VNC. Run yang gagal mempertahankan lease secara default ketika lease dibuat agar operator dapat reconnect.--class,--idle-timeout, dan--ttlmenyesuaikan ukuran mesin dan masa pakai lease.
thread-reply SUT, dan memeriksa attachment melalui Discord REST. Ketika OPENCLAW_QA_DISCORD_CAPTURE_UI_METADATA=1 disetel, skenario juga menulis artefak URL Discord Web. Ketika OPENCLAW_QA_DISCORD_KEEP_THREADS=1 disetel, skenario membiarkan thread itu tersedia cukup lama agar browser yang sudah login dapat membuka dan merekamnya.
Workflow GitHub membuka URL thread kandidat di Discord Web, menangkap screenshot, merekam MP4, dan menghasilkan pratinjau GIF yang dipangkas berdasarkan gerakan ketika tooling media Crabbox tersedia. Utamakan jalur profil penampil persisten yang dikonfigurasi melalui MANTIS_DISCORD_VIEWER_CHROME_PROFILE_DIR, karena arsip profil Chrome penuh dapat melampaui batas ukuran secret GitHub. Untuk profil kecil/bootstrap, workflow juga dapat memulihkan arsip .tgz base64 dari MANTIS_DISCORD_VIEWER_CHROME_PROFILE_TGZ_B64. Jika tidak ada sumber profil yang dikonfigurasi, workflow tetap menerbitkan screenshot attachment baseline/kandidat yang deterministik dan mencatat pemberitahuan bahwa saksi Discord Web yang sudah login dilewati.
Primitif transport desktop penuh pertama adalah smoke desktop Slack:
pnpm openclaw qa slack di dalam VM itu, membuka Slack Web di browser VNC, menangkap desktop yang terlihat, dan menyalin artefak QA Slack serta screenshot VNC kembali ke direktori output lokal. Ini adalah bentuk Mantis pertama ketika Gateway OpenClaw SUT dan browser sama-sama berada di dalam VM desktop Linux yang sama.
Dengan --gateway-setup, perintah menyiapkan home OpenClaw sekali pakai yang persisten di $HOME/.openclaw-mantis/slack-openclaw, mem-patch konfigurasi Slack Socket Mode untuk channel yang dipilih, memulai openclaw gateway run pada port 38973, dan menjaga Chrome tetap berjalan di sesi VNC. Ini adalah mode “tinggalkan desktop Linux dengan Slack dan claw yang berjalan”; lane QA Slack bot-ke-bot tetap menjadi default ketika --gateway-setup dihilangkan.
Input wajib untuk --credential-source env:
OPENCLAW_QA_SLACK_CHANNEL_IDOPENCLAW_QA_SLACK_DRIVER_BOT_TOKENOPENCLAW_QA_SLACK_SUT_BOT_TOKENOPENCLAW_QA_SLACK_SUT_APP_TOKENOPENCLAW_LIVE_OPENAI_KEYuntuk lane model remote. Jika hanyaOPENAI_API_KEYyang disetel secara lokal, Mantis memetakannya keOPENCLAW_LIVE_OPENAI_KEYsebelum memanggil Crabbox sehingga forwarding envOPENCLAW_*Crabbox dapat membawanya ke VM.
--gateway-setup --credential-source convex, Mantis menyewa kredensial SUT Slack dari pool bersama sebelum membuat VM dan meneruskan channel id yang disewa, token app Socket Mode, dan token bot sebagai env runtime OPENCLAW_MANTIS_SLACK_* di dalam desktop. Itu menjaga workflow GitHub tetap tipis: workflow hanya membutuhkan secret broker Convex, bukan token bot atau app Slack mentah.
Flag desktop Slack yang berguna:
--lease-id <cbx_...>menjalankan ulang terhadap mesin tempat operator sudah login ke Slack Web melalui VNC.--gateway-setupmemulai Gateway Slack OpenClaw persisten di VM alih-alih hanya menjalankan lane QA bot-ke-bot.--keep-leasemenjaga VM Gateway tetap terbuka untuk inspeksi VNC setelah berhasil;--no-keep-leasemenghentikannya setelah mengumpulkan artefak.--slack-url <url>membuka URL Slack Web tertentu. Tanpanya, Mantis menurunkanhttps://app.slack.com/client/<team>/<channel>dari Slackauth.testketika token bot SUT tersedia.--slack-channel-id <id>mengontrol allowlist channel Slack yang digunakan oleh setup Gateway.OPENCLAW_MANTIS_SLACK_BROWSER_PROFILE_DIRmengontrol profil Chrome persisten di dalam VM. Defaultnya adalah$HOME/.config/openclaw-mantis/slack-chrome-profile, sehingga login Slack Web manual bertahan pada rerun di lease yang sama.--credential-source convex --credential-role cimenggunakan pool kredensial bersama alih-alih token env Slack langsung.--provider-mode,--model,--alt-model, dan--fastditeruskan ke lane live Slack.
slack-desktop-smoke.png hanya menjadi bukti Slack Web ketika lease menggunakan profil browser hangat yang sudah login.
Workflow smoke GitHub adalah Mantis Discord Smoke. Workflow GitHub sebelum dan sesudah untuk skenario nyata pertama adalah Mantis Discord Status Reactions. Ia menerima:
baseline_ref: ref yang diharapkan mereproduksi perilaku hanya queued.candidate_ref: ref yang diharapkan menampilkanqueued -> thinking -> done.
discord-status-reactions-tool-only terhadap setiap worktree, dan mengunggah baseline/, candidate/, comparison.json, dan mantis-report.md sebagai artefak Actions. Ia juga merender HTML timeline setiap lane di browser desktop Crabbox dan menerbitkan screenshot VNC itu di samping PNG timeline deterministik dalam komentar PR. Komentar PR yang sama menyematkan pratinjau GIF ringan yang dipangkas berdasarkan gerakan dan dihasilkan oleh crabbox media preview, menautkan ke klip MP4 yang juga dipangkas berdasarkan gerakan, serta mempertahankan file MP4 desktop penuh untuk inspeksi mendalam. Screenshot tetap inline untuk peninjauan cepat. Workflow membangun CLI Crabbox dari main openclaw/crabbox agar dapat menggunakan flag lease desktop/browser saat ini sebelum rilis biner Crabbox berikutnya dibuat.
Mantis Scenario adalah titik masuk manual generik. Ia menerima scenario_id,
candidate_ref, baseline_ref opsional, dan pr_number opsional, lalu
mendispatch alur kerja milik skenario. Pembungkus ini sengaja dibuat tipis:
alur kerja skenario tetap memiliki penyiapan transport, kredensial, kelas VM,
oracle yang diharapkan, dan manifest artefak masing-masing.
Mantis Slack Desktop Smoke adalah alur kerja VM Slack pertama. Ia melakukan checkout
ref kandidat tepercaya di worktree terpisah, menyewa desktop Linux Crabbox,
menjalankan pnpm openclaw qa mantis slack-desktop-smoke --gateway-setup terhadap
kandidat tersebut, membuka Slack Web di browser VNC, merekam desktop, membuat
pratinjau yang dipangkas berdasarkan gerakan dengan crabbox media preview, mengunggah
direktori artefak lengkap, dan secara opsional memposting komentar bukti inline pada PR target.
Secara default ia menggunakan AWS untuk sewa desktop dan menyediakan input penyedia manual agar
operator dapat beralih ke Hetzner saat kapasitas AWS lambat atau tidak tersedia. Gunakan
jalur ini saat Anda menginginkan “desktop Linux dengan Slack dan claw yang berjalan”, bukan
hanya transkrip Slack bot-ke-bot.
Mantis Telegram Live membungkus jalur QA live Telegram yang ada dalam pipeline
bukti PR yang sama. Ia melakukan checkout ref kandidat tepercaya di worktree terpisah,
menjalankan pnpm openclaw qa telegram --credential-source convex --credential-role ci, menulis manifest mantis-evidence.json dari ringkasan
QA Telegram, qa-evidence.json, dan artefak laporan, merender HTML bukti
yang telah disamarkan melalui browser desktop Crabbox, membuat GIF yang dipangkas
berdasarkan gerakan dengan crabbox media preview, dan memposting komentar bukti
PR inline saat nomor PR tersedia. Jalur ini adalah visual bukti QA, bukan bukti
Telegram Web yang sudah login: Telegram Bot API menyediakan bukti pesan live yang stabil,
tetapi status login Telegram Web tidak diperlukan untuk otomatisasi Mantis normal.
Mantis Telegram Desktop Proof adalah pembungkus sebelum/sesudah Telegram Desktop
native yang agentik. Pemelihara dapat memicunya dari komentar PR dengan
@openclaw-mantis telegram desktop proof, dari UI Actions dengan instruksi
bentuk bebas, atau melalui dispatcher generik Mantis Scenario. Alur kerja
menyerahkan PR, ref baseline, ref kandidat, dan instruksi pemelihara kepada Codex.
Agent membaca PR, memutuskan perilaku yang terlihat di Telegram untuk membuktikan
perubahan, menjalankan jalur bukti Crabbox Telegram Desktop pengguna nyata untuk baseline dan
kandidat, melakukan iterasi hingga GIF native berguna, menulis artefak
motionPreview berpasangan ke dalam mantis-evidence.json, mengunggah bundel, dan
memposting tabel bukti PR 2 kolom saat nomor PR tersedia.
Untuk penyiapan desktop Telegram dengan manusia dalam loop, gunakan pembuat skenario:
openclaw gateway run
pada port 38974, memposting pesan kesiapan bot driver ke grup privat yang disewa,
lalu mengambil screenshot dan MP4 dari desktop VNC yang terlihat. Token bot
tidak pernah login ke Telegram Desktop; token hanya mengonfigurasi OpenClaw. Penampil
desktop adalah sesi pengguna Telegram terpisah yang dipulihkan dari
--telegram-profile-archive-env <name> atau dibuat secara manual melalui VNC dan tetap
hidup dengan --keep-lease.
Flag pembuat desktop Telegram yang berguna:
--lease-id <cbx_...>menjalankan ulang terhadap VM tempat operator sudah login ke Telegram Desktop.--telegram-profile-archive-env <name>membaca arsip profil Telegram Desktop.tgzbase64 dari variabel env tersebut dan memulihkannya sebelum peluncuran.--telegram-profile-dir <remote-path>mengontrol direktori profil Telegram Desktop jarak jauh. Defaultnya adalah$HOME/.local/share/TelegramDesktop.--no-gateway-setupmemasang dan membuka Telegram Desktop tanpa mengonfigurasi OpenClaw.--credential-source convex --credential-role cimenggunakan broker kredensial bersama, bukan token env Telegram langsung.
mantis-evidence.json di samping laporannya.
Skema ini adalah serah-terima antara kode skenario dan komentar GitHub:
path artefak relatif terhadap direktori manifest. Nilai targetPath
adalah path relatif di bawah prefiks artefak Mantis R2/S3 yang dikonfigurasi. Publisher
menolak traversal path dan melewati entri bertanda "required": false
saat pratinjau atau video opsional tidak tersedia.
Jenis artefak yang didukung:
timeline: screenshot skenario deterministik, biasanya sebelum/sesudah.desktopScreenshot: screenshot desktop VNC/browser.motionPreview: GIF animasi inline yang dibuat dari rekaman desktop.motionClip: MP4 yang dipangkas berdasarkan gerakan yang menghapus awal dan akhir statis.fullVideo: rekaman MP4 lengkap untuk inspeksi mendalam.metadata: sidecar JSON/log.report: laporan Markdown.
scripts/mantis/publish-pr-evidence.mjs. Alur kerja
memanggilnya dengan manifest, PR target, root target artefak, penanda komentar,
URL artefak Actions, URL run, dan sumber permintaan. Ia mengunggah artefak yang dideklarasikan
ke bucket Mantis R2/S3 yang dikonfigurasi, membuat komentar PR yang mendahulukan ringkasan dengan
gambar/pratinjau inline dan video tertaut, lalu memperbarui komentar berpenanda yang ada
atau membuat yang baru. Alur kerja memublikasikan ke openclaw-crabbox-artifacts
dengan URL publik di bawah https://artifacts.openclaw.ai. Alur kerja menyediakan nilai bucket,
region, dan URL publik secara langsung. Publisher yang dapat digunakan ulang memerlukan:
MANTIS_ARTIFACT_R2_ACCESS_KEY_IDMANTIS_ARTIFACT_R2_SECRET_ACCESS_KEYMANTIS_ARTIFACT_R2_BUCKETMANTIS_ARTIFACT_R2_ENDPOINTMANTIS_ARTIFACT_R2_REGIONMANTIS_ARTIFACT_R2_PUBLIC_BASE_URL
telegram-status-command. Pemelihara dapat mengganti candidate=...,
provider=aws|hetzner, dan lease=<cbx_...> saat membutuhkan ref tertentu atau
desktop Crabbox yang sudah dipanaskan.
Contoh perintah ClawSweeper:
Siklus hidup run
- Dapatkan kredensial.
- Alokasikan atau gunakan ulang VM.
- Siapkan profil desktop/browser saat skenario membutuhkan bukti UI.
- Siapkan checkout bersih untuk ref baseline.
- Pasang dependensi dan build hanya yang dibutuhkan skenario.
- Mulai Gateway OpenClaw anak dengan direktori state terisolasi.
- Konfigurasikan transport live, penyedia, model, dan profil browser.
- Jalankan skenario dan tangkap bukti baseline.
- Hentikan gateway dan pertahankan log.
- Siapkan ref kandidat di VM yang sama.
- Jalankan skenario yang sama dan tangkap bukti kandidat.
- Bandingkan hasil oracle dan bukti visual.
- Tulis Markdown, JSON, log, screenshot, dan artefak trace opsional.
- Unggah artefak GitHub Actions.
- Posting pesan status PR atau Discord yang ringkas.
- Bug direproduksi: baseline gagal dengan cara yang diharapkan.
- Kegagalan harness: penyiapan lingkungan, kredensial, Discord API, browser, atau penyedia gagal sebelum oracle bug bermakna.
MVP Discord
Skenario pertama harus menargetkan reaksi status Discord di kanal guild tempat mode pengiriman balasan sumber adalahmessage_tool_only.
Mengapa ini seed Mantis yang baik:
- Ini terlihat di Discord sebagai reaksi pada pesan pemicu.
- Ini memiliki oracle REST yang kuat melalui state reaksi pesan Discord.
- Ini melatih Gateway OpenClaw nyata, auth bot Discord, dispatch pesan, mode pengiriman balasan sumber, state reaksi status, dan siklus hidup giliran model.
- Ini cukup sempit untuk menjaga implementasi pertama tetap jujur.
messages.statusReactions.enabled secara eksplisit
true.
Irisan pertama yang dapat dieksekusi adalah skenario QA live Discord opt-in:
visibleReplies: "message_tool", ackReaction: "👀", dan reaksi status eksplisit. Oracle
melakukan polling pesan pemicu Discord nyata dan mengharapkan urutan yang diamati
👀 -> 🤔 -> 👍. Artefak mencakup discord-qa-reaction-timelines.json,
discord-status-reactions-tool-only-timeline.html, dan
discord-status-reactions-tool-only-timeline.png.
Komponen QA yang ada
Mantis harus dibangun di atas stack QA privat yang sudah ada, bukan memulai dari nol:pnpm openclaw qa discordsudah menjalankan jalur Discord live dengan bot driver dan SUT.- Runner transport live sudah menulis laporan, bukti QA, dan
artefak khusus transport di bawah
.artifacts/qa-e2e/. - Sewa kredensial Convex sudah menyediakan akses eksklusif ke kredensial transport live bersama.
- Layanan kontrol browser sudah mendukung screenshot, snapshot, profil terkelola headless, dan profil CDP jarak jauh.
- QA Lab sudah memiliki UI debugger dan bus untuk pengujian berbentuk transport.
Model bukti
Setiap run menulis direktori artefak yang stabil:mantis-summary.json harus menjadi sumber kebenaran yang dapat dibaca mesin. Laporan
Markdown ditujukan untuk komentar PR dan tinjauan manusia.
Ringkasan harus mencakup:
- ref dan SHA yang diuji
- transport dan id skenario
- penyedia mesin dan id mesin atau id lease
- sumber kredensial tanpa nilai rahasia
- hasil baseline
- hasil kandidat
- apakah bug tereproduksi pada baseline
- apakah kandidat memperbaikinya
- path artefak
- masalah penyiapan atau pembersihan yang telah disanitasi
Browser dan VNC
Lane browser memiliki dua mode:- Otomasi headless: default untuk CI. Chrome berjalan dengan CDP diaktifkan, dan Playwright atau kontrol browser OpenClaw menangkap screenshot.
- Penyelamatan VNC: diaktifkan pada VM yang sama ketika login, MFA, anti-otomasi Discord, atau debugging visual membutuhkan manusia.
- id run
- id skenario
- penyedia mesin
- direktori artefak
- instruksi koneksi VNC atau noVNC jika tersedia
- teks pemblokir singkat
Mesin
Mantis harus mengutamakan AWS melalui Crabbox untuk implementasi remote pertama. Crabbox memberi kita mesin yang sudah dipanaskan, pelacakan lease, hydration, log, hasil, dan pembersihan. Jika kapasitas AWS terlalu lambat atau tidak tersedia, tambahkan penyedia Hetzner di balik antarmuka mesin yang sama. Persyaratan VM minimum:- Linux dengan instalasi Chrome atau Chromium yang mendukung desktop
- akses CDP untuk otomasi browser
- VNC atau noVNC untuk penyelamatan
- Node 22 dan pnpm
- checkout OpenClaw dan cache dependensi
- cache browser Playwright Chromium ketika Playwright digunakan
- CPU dan memori yang cukup untuk satu OpenClaw Gateway, satu browser, dan satu run model
- akses keluar ke Discord, GitHub, penyedia model, dan broker kredensial
Rahasia
Rahasia berada di rahasia organisasi atau repositori GitHub untuk run remote, dan di file rahasia lokal yang dikendalikan operator untuk run lokal. Nama rahasia yang direkomendasikan:OPENCLAW_QA_DISCORD_MANTIS_BOT_TOKENOPENCLAW_QA_DISCORD_DRIVER_BOT_TOKENOPENCLAW_QA_DISCORD_SUT_BOT_TOKENOPENCLAW_QA_DISCORD_GUILD_IDOPENCLAW_QA_DISCORD_CHANNEL_IDOPENCLAW_QA_DISCORD_NOTIFY_CHANNEL_IDOPENCLAW_QA_REDACT_PUBLIC_METADATA=1untuk unggahan artefak GitHub publikOPENCLAW_QA_CONVEX_SITE_URLOPENCLAW_QA_CONVEX_SECRET_CIOPENCLAW_QA_MANTIS_CRABBOX_COORDINATOROPENCLAW_QA_MANTIS_CRABBOX_COORDINATOR_TOKEN
CRABBOX_COORDINATOR dan CRABBOX_COORDINATOR_TOKEN
yang diharapkan CLI Crabbox. Nama rahasia GitHub CRABBOX_* polos tetap
diterima sebagai fallback kompatibilitas.
Runner Mantis tidak boleh pernah mencetak:
- token bot Discord
- kunci API penyedia
- cookie browser
- isi profil auth
- kata sandi VNC
- payload kredensial mentah
OPENCLAW_QA_REDACT_PUBLIC_METADATA=1 untuk alasan ini.
Jika token tidak sengaja ditempelkan ke issue, PR, chat, atau log, rotasi token tersebut
setelah rahasia baru disimpan.
Artefak GitHub dan komentar PR
Workflow Mantis harus mengunggah bundel bukti lengkap sebagai artefak Actions berumur pendek. Ketika workflow dijalankan untuk laporan bug atau PR perbaikan, workflow juga harus menerbitkan media inline yang telah direduksi ke bucket Mantis R2/S3 yang dikonfigurasi dan melakukan upsert komentar pada bug atau PR perbaikan tersebut dengan screenshot sebelum/sesudah inline. Jangan memposting bukti utama hanya pada PR otomasi QA generik. Log mentah, pesan yang diamati, dan bukti besar lainnya tetap berada di artefak Actions. Workflow produksi harus memposting komentar tersebut dengan Mantis GitHub App, bukan dengangithub-actions[bot]. Simpan id app dan kunci privat sebagai rahasia GitHub Actions
MANTIS_GITHUB_APP_ID dan MANTIS_GITHUB_APP_PRIVATE_KEY.
Workflow menggunakan marker tersembunyi sebagai kunci upsert, memperbarui komentar tersebut
ketika token dapat mengeditnya, dan membuat komentar baru milik Mantis ketika
marker lama milik bot tidak dapat diedit.
Komentar PR harus singkat dan visual:
Catatan deployment privat
Deployment privat mungkin sudah memiliki aplikasi Discord Mantis. Gunakan kembali aplikasi itu alih-alih membuat app lain ketika aplikasi tersebut memiliki izin bot yang tepat dan dapat dirotasi dengan aman. Atur kanal notifikasi operator awal melalui rahasia atau konfigurasi deployment. Kanal tersebut dapat menunjuk ke kanal maintainer atau operasi yang sudah ada terlebih dahulu, lalu berpindah ke kanal Mantis khusus setelah tersedia. Jangan letakkan id guild, id kanal, token bot, cookie browser, atau kata sandi VNC di dokumen ini. Simpan semuanya di rahasia GitHub, broker kredensial, atau penyimpanan rahasia lokal operator.Menambahkan skenario
Skenario Mantis harus mendeklarasikan:- id dan judul
- transport
- kredensial yang diperlukan
- kebijakan ref baseline
- kebijakan ref kandidat
- patch konfigurasi OpenClaw
- langkah penyiapan
- stimulus
- oracle baseline yang diharapkan
- oracle kandidat yang diharapkan
- target tangkapan visual
- anggaran timeout
- langkah pembersihan
- status reaksi Discord untuk bug reaksi
- referensi pesan Discord untuk bug threading
- ts thread Slack dan status API reaksi untuk bug Slack
- id pesan dan header email untuk bug email
- screenshot browser ketika UI adalah satu-satunya observasi yang andal
Ekspansi penyedia
Setelah Discord, runner yang sama dapat menambahkan:- Slack: reaksi, thread, mention app, modal, unggahan file.
- Email: auth Gmail dan threading pesan menggunakan
gogketika konektor tidak cukup. - WhatsApp: login QR, identifikasi ulang, pengiriman pesan, media, reaksi.
- Telegram: gating mention grup, perintah, reaksi jika tersedia.
- Matrix: room terenkripsi, relasi thread atau balasan, resume restart.
Pertanyaan terbuka
- Bot Discord mana yang harus menjadi driver, dan mana yang harus menjadi SUT, ketika bot Mantis yang ada digunakan kembali?
- Apakah login browser pengamat harus menggunakan akun Discord manusia, akun uji, atau hanya bukti REST yang dapat dibaca bot untuk fase pertama?
- Berapa lama GitHub harus menyimpan artefak Mantis untuk PR?
- Kapan ClawSweeper harus secara otomatis merekomendasikan Mantis alih-alih menunggu perintah maintainer?
- Apakah screenshot harus direduksi atau dipangkas sebelum diunggah untuk PR publik?